diff --git a/lib/core/translations/app_translations.dart b/lib/core/translations/app_translations.dart index e555232b4..354292fa3 100644 --- a/lib/core/translations/app_translations.dart +++ b/lib/core/translations/app_translations.dart @@ -6,7 +6,8 @@ import 'package:get_storage/get_storage.dart'; import 'language/en_us.dart'; // 英语 import 'language/zh_cn.dart'; // 简体中文 import 'language/es_es.dart'; // 西班牙语 -import 'language/zh_hk.dart'; // 繁体中文 +import 'language/zh_hk.dart'; // 繁体中文(香港) +import 'language/zh_tw.dart'; // 繁体中文 import 'language/pt_pt.dart'; // 添加葡萄牙语导入 import 'language/ja_jp.dart'; // 添加日语导入 import 'language/ko_kr.dart'; // 添加韩语导入 @@ -62,24 +63,28 @@ class AppTranslations extends Translations { String? countryCode = systemLocale.countryCode?.toUpperCase(); String? scriptCode = systemLocale.scriptCode; - // 根据脚本代码判断 - if (scriptCode == 'Hant') { - return const Locale('zh', 'HK'); // 繁体中文fallback - } else if (scriptCode == 'Hans') { - return const Locale('zh', 'CN'); // 简体中文fallback - } - // 根据地区代码判断 if (countryCode != null) { switch (countryCode) { case 'HK': case 'MO': - case 'TW': return const Locale('zh', 'HK'); // 繁体中文fallback + case 'TW': + return const Locale('zh', 'TW'); // 繁体中文fallback + case 'CN': + case 'SG': + return const Locale('zh', 'CN'); // 简体中文fallback default: return const Locale('zh', 'CN'); // 简体中文fallback } } + + // 根据脚本代码判断 + if (scriptCode == 'Hant') { + return const Locale('zh', 'TW'); // 繁体中文fallback + } else if (scriptCode == 'Hans') { + return const Locale('zh', 'CN'); // 简体中文fallback + } } // 对于其他语言,如果支持则使用英语,否则使用默认的中文 @@ -94,7 +99,7 @@ class AppTranslations extends Translations { static final supportedLocales = [ const Locale('zh', 'CN'), // 简体中文 const Locale('zh', 'HK'), // 香港繁体中文 - const Locale('zh', 'TW'), // 台湾繁体中文(映射到香港繁体) + const Locale('zh', 'TW'), // 繁体中文 const Locale('en', 'US'), // 英语 const Locale('es', 'ES'), // 添加西班牙语 const Locale('pt', 'PT'), // 添加葡萄牙语支持 @@ -148,16 +153,16 @@ class AppTranslations extends Translations { // 中文繁体的各种表示方式 'zh-HK': const Locale('zh', 'HK'), - 'zh-TW': const Locale('zh', 'HK'), // 台湾繁体映射到香港繁体 - 'zh-Hant': const Locale('zh', 'HK'), + 'zh-TW': const Locale('zh', 'TW'), + 'zh-Hant': const Locale('zh', 'TW'), 'zh-Hant-HK': const Locale('zh', 'HK'), - 'zh-Hant-TW': const Locale('zh', 'HK'), + 'zh-Hant-TW': const Locale('zh', 'TW'), 'zh-Hant-MO': const Locale('zh', 'HK'), 'zh_HK': const Locale('zh', 'HK'), - 'zh_TW': const Locale('zh', 'HK'), - 'zh_Hant': const Locale('zh', 'HK'), + 'zh_TW': const Locale('zh', 'TW'), + 'zh_Hant': const Locale('zh', 'TW'), 'zh_Hant_HK': const Locale('zh', 'HK'), - 'zh_Hant_TW': const Locale('zh', 'HK'), + 'zh_Hant_TW': const Locale('zh', 'TW'), // 英语的各种表示方式 'en-US': const Locale('en', 'US'), @@ -251,15 +256,6 @@ class AppTranslations extends Translations { // 处理中文的特殊情况 if (languageCode == 'zh') { - // 优先根据脚本代码判断简繁体 - if (scriptCode != null) { - if (scriptCode == 'Hans') { - return const Locale('zh', 'CN'); // 简体中文 - } else if (scriptCode == 'Hant') { - return const Locale('zh', 'HK'); // 繁体中文 - } - } - // 根据国家/地区代码判断 if (countryCode != null) { switch (countryCode) { @@ -268,14 +264,24 @@ class AppTranslations extends Translations { return const Locale('zh', 'CN'); // 简体中文 case 'HK': case 'MO': - case 'TW': return const Locale('zh', 'HK'); // 繁体中文 + case 'TW': + return const Locale('zh', 'TW'); // 繁体中文 default: // 默认使用简体中文(大陆用户更多) return const Locale('zh', 'CN'); } } + // 再根据脚本代码判断简繁体 + if (scriptCode != null) { + if (scriptCode == 'Hans') { + return const Locale('zh', 'CN'); // 简体中文 + } else if (scriptCode == 'Hant') { + return const Locale('zh', 'TW'); // 繁体中文 + } + } + // 如果没有国家代码,默认使用简体中文 return const Locale('zh', 'CN'); } @@ -301,6 +307,7 @@ class AppTranslations extends Translations { 'en_US': enUS, 'zh_CN': zhCN, 'zh_HK': zhHK, // 添加繁体中文映射 + 'zh_TW': zhTW, // 添加繁体中文映射 'es_ES': esES, // 添加西班牙语翻译映射 'pt_PT': ptPT, // 添加葡萄牙语映射 'ja_JP': jaJP, // 添加日语映射 diff --git a/lib/core/translations/language/ar_sa.dart b/lib/core/translations/language/ar_sa.dart index 2e3467118..e0042d85f 100644 --- a/lib/core/translations/language/ar_sa.dart +++ b/lib/core/translations/language/ar_sa.dart @@ -33,6 +33,7 @@ const Map arSA = { "spanish": "الإسبانية", "portuguese": "البرتغالية", "traditionalChinese": "الصينية التقليدية", + "traditionalChineseHK": "الصينية التقليدية (هونغ كونغ)", "japanese": "اليابانية", "korean": "الكورية", "french": "الفرنسية", diff --git a/lib/core/translations/language/bg_bg.dart b/lib/core/translations/language/bg_bg.dart index 63445b48a..02e1ce8eb 100644 --- a/lib/core/translations/language/bg_bg.dart +++ b/lib/core/translations/language/bg_bg.dart @@ -33,6 +33,7 @@ const Map bgBG = { "spanish": "Испански", "portuguese": "Португалски", "traditionalChinese": "Традиционен китайски", + "traditionalChineseHK": "Традиционен китайски (Хонконг)", "japanese": "Японски", "korean": "Корейски", "french": "Френски", diff --git a/lib/core/translations/language/cs_cz.dart b/lib/core/translations/language/cs_cz.dart index b3a9a5227..ce5ea20bc 100644 --- a/lib/core/translations/language/cs_cz.dart +++ b/lib/core/translations/language/cs_cz.dart @@ -33,6 +33,7 @@ const Map csCZ = { "spanish": "Španělština", "portuguese": "Portugalština", "traditionalChinese": "Tradiční čínština", + "traditionalChineseHK": "Tradiční čínština (Hongkong)", "japanese": "Japonština", "korean": "Korejština", "french": "Francouzština", diff --git a/lib/core/translations/language/da_dk.dart b/lib/core/translations/language/da_dk.dart index cf5f4e32c..16a2021b3 100644 --- a/lib/core/translations/language/da_dk.dart +++ b/lib/core/translations/language/da_dk.dart @@ -33,6 +33,7 @@ const Map daDK = { "spanish": "Spansk", "portuguese": "Portugisisk", "traditionalChinese": "Traditionel kinesisk", + "traditionalChineseHK": "Traditionel kinesisk (Hongkong)", "japanese": "Japansk", "korean": "Koreansk", "french": "Fransk", diff --git a/lib/core/translations/language/de_de.dart b/lib/core/translations/language/de_de.dart index 7c87543ef..d303138e1 100644 --- a/lib/core/translations/language/de_de.dart +++ b/lib/core/translations/language/de_de.dart @@ -33,6 +33,7 @@ const Map deDE = { "spanish": "Spanisch", "portuguese": "Portugiesisch", "traditionalChinese": "Traditionelles Chinesisch", + "traditionalChineseHK": "Traditionelles Chinesisch (Hongkong)", "japanese": "Japanisch", "korean": "Koreanisch", "french": "Französisch", diff --git a/lib/core/translations/language/el_gr.dart b/lib/core/translations/language/el_gr.dart index 2e8f7e507..5e3c95e20 100644 --- a/lib/core/translations/language/el_gr.dart +++ b/lib/core/translations/language/el_gr.dart @@ -33,6 +33,7 @@ const Map elGR = { "spanish": "Ισπανικά", "portuguese": "Πορτογαλικά", "traditionalChinese": "Παραδοσιακά κινέζικα", + "traditionalChineseHK": "Παραδοσιακά Κινέζικα (Χονγκ Κονγκ)", "japanese": "Ιαπωνικά", "korean": "Κορεατικά", "french": "Γαλλικά", diff --git a/lib/core/translations/language/en_us.dart b/lib/core/translations/language/en_us.dart index 38f23a45f..13a914ebb 100644 --- a/lib/core/translations/language/en_us.dart +++ b/lib/core/translations/language/en_us.dart @@ -33,6 +33,7 @@ const Map enUS = { "spanish": "Spanish", "portuguese": "Portuguese", "traditionalChinese": "Traditional Chinese", + "traditionalChineseHK": "Traditional Chinese (Hong Kong)", "japanese": "Japanese", "korean": "Korean", "french": "French", diff --git a/lib/core/translations/language/es_es.dart b/lib/core/translations/language/es_es.dart index 0b502f683..102fb786f 100644 --- a/lib/core/translations/language/es_es.dart +++ b/lib/core/translations/language/es_es.dart @@ -33,6 +33,7 @@ const Map esES = { "spanish": "Español", "portuguese": "Portugués", "traditionalChinese": "Chino tradicional", + "traditionalChineseHK": "Chino tradicional (Hong Kong)", "japanese": "Japonés", "korean": "Coreano", "french": "Francés", @@ -90,7 +91,8 @@ const Map esES = { "tip": "Consejo", "pleaseEnterCompleteCode": "Ingresa el código de verificación completo", "loginFailed": "Inicio de sesión fallido, inténtalo de nuevo", - 'pleaseAcceptPrivacyPolicy': 'Lee y acepta primero la política de privacidad y el acuerdo de usuario', + 'pleaseAcceptPrivacyPolicy': + 'Lee y acepta primero la política de privacidad y el acuerdo de usuario', "enterVerificationCode": "Ingresa código de verificación", "verificationCodeSentTo": "Código de verificación enviado a", "resendVerificationCode": "Reenviar código de verificación", @@ -99,7 +101,8 @@ const Map esES = { // 隐私政策弹窗 "loginDeclaration": "Declaración de Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Bienvenido a Voitrans, lee cuidadosamente", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Bienvenido a Voitrans, lee cuidadosamente", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +118,29 @@ const Map esES = { "signal": "Señal", "deviceId": "ID del dispositivo", "firmwareVersion": "Versión del firmware", - "disconnectedDevice": "Ningún dispositivo conectado, haz clic en el botón de abajo", + "disconnectedDevice": + "Ningún dispositivo conectado, haz clic en el botón de abajo", "connectDevice": "Conectar dispositivo", "topAiExperiences": "Mejores experiencias de IA", "aiAssistant": "Asistente de IA", "aiAssistantInfo": "Consejero personal 24 horas para preguntas y consejos", "interpretation": "Interpretación simultánea", - "simultaneousInterpretationInfo": "Traducción en tiempo real para más de 80 idiomas", + "simultaneousInterpretationInfo": + "Traducción en tiempo real para más de 80 idiomas", "aiCompanion": "Compañía parental", "aiCompanionInfo": "Te entiende y ofrece compañía cálida", "homeSlogan": "Conectando el mundo, más allá del sonido", - "turnEarphones": "Abre el estuche de los auriculares y colócalos en tus oídos", + "turnEarphones": + "Abre el estuche de los auriculares y colócalos en tus oídos", "currentlyConnected": "Actualmente conectado:", "unsystemSetup": "Ir a configuración del sistema", "talkLater": "Recordar más tarde", "initializing": "Inicializando...", - "bluetoothInitializationFailure": "Fallo en la inicialización del servicio Bluetooth", + "bluetoothInitializationFailure": + "Fallo en la inicialización del servicio Bluetooth", "checkingPermissions": "Verificando permisos...", - "lackPermissions": "Habilita permisos de Bluetooth y ubicación para descubrir y conectar dispositivos cercanos", + "lackPermissions": + "Habilita permisos de Bluetooth y ubicación para descubrir y conectar dispositivos cercanos", "searchingDevice": "Buscando dispositivos...", "findConnectedDevice": "Dispositivo conectado encontrado", "notFound": "No se encontraron dispositivos Bluetooth conectados", @@ -169,13 +177,15 @@ const Map esES = { "faceToFaceTranslation": "Traducción cara a cara", 'audioVideoTranslation': 'Traducción de audio/video', 'callTranslation': 'Traducción de llamadas', - "simultaneousTranslationInfo": "Traducción instantánea para más de 80 idiomas", + "simultaneousTranslationInfo": + "Traducción instantánea para más de 80 idiomas", "aiGirlfriend": "Compañía parental", "aiGirlfriendInfo": "Compañía inteligente, chat en cualquier momento", "healthConsultant": "Chat multifuncional de IA", "healthConsultantInfo": "Más funciones de chat de IA", "conferenceAssistant": "Asistente de reuniones de negocios", - "conferenceAssistantInfo": "Grabación de actas en tiempo real y traducción multiidioma", + "conferenceAssistantInfo": + "Grabación de actas en tiempo real y traducción multiidioma", "usageStats": "Estadísticas de uso", "usageStatsInfo": "Consulte las estadísticas de uso de la aplicación", "scene": "Escenarios", @@ -218,7 +228,8 @@ const Map esES = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +285,10 @@ const Map esES = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +297,35 @@ const Map esES = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +334,10 @@ const Map esES = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +352,8 @@ const Map esES = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Omitir", @@ -355,7 +379,8 @@ const Map esES = { 'guideNavInput': "Navigate to Shenzhen Airport", 'guideNavSend': "Lily will plan the route", 'guideNavEnd': "Navigation set—try other commands", - 'guideMeetingStart': "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", + 'guideMeetingStart': + "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", 'guideMeetingInput': "Create a meeting reminder for 3pm tomorrow", 'guideMeetingSend': "Lily will create a meeting reminder", 'guideMeetingEnd': "Reminder created—try other commands", @@ -405,7 +430,8 @@ const Map esES = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +486,54 @@ const Map esES = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +545,8 @@ const Map esES = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +566,8 @@ const Map esES = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +616,8 @@ const Map esES = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +642,8 @@ const Map esES = { "cloudSync": "Recarga de sincronización en la nube", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Dispositivo conectado:", "accountId": "ID de cuenta:", "systemSetting": "Configuración del sistema", @@ -612,18 +656,22 @@ const Map esES = { "privacySettings": "Configuración de privacidad", "privacySettingsInfo": "Gestionar recopilación de datos y permisos", "permissionManagement": "Gestión de permisos", // 权限管理 - "permissionManagementInfo": "Gestionar configuración de permisos de la aplicación", // 管理应用权限设置 + "permissionManagementInfo": + "Gestionar configuración de permisos de la aplicación", // 管理应用权限设置 "aboutApplication": "Acerca de", "versions": "Versión", "checkUpdates": "Verificar actualizaciones", "selectLanguage": "Seleccionar idioma", "voiceService": "Servicio de voz", - "voiceServiceInfo": "Seleccionar servicio de reconocimiento y síntesis de voz", + "voiceServiceInfo": + "Seleccionar servicio de reconocimiento y síntesis de voz", "selectVoiceService": "Seleccionar servicio de voz", "azureVoiceService": "Servicio de voz Azure", - "azureVoiceServiceInfo": "Servicio en la nube de Microsoft que soporta síntesis y reconocimiento de voz de alta calidad", + "azureVoiceServiceInfo": + "Servicio en la nube de Microsoft que soporta síntesis y reconocimiento de voz de alta calidad", "flutterVoiceService": "Servicio de voz local", - "flutterVoiceServiceInfo": "Servicio de voz local del dispositivo sin necesidad de conexión a internet", + "flutterVoiceServiceInfo": + "Servicio de voz local del dispositivo sin necesidad de conexión a internet", 'timbreService': 'Servicio de timbre de voz', 'timbreServiceInfo': 'Seleccionar servicio de síntesis de voz', 'defaultTimbre': 'Timbre predeterminado', @@ -652,7 +700,8 @@ const Map esES = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Chat de voz en tiempo real", - "realtimeVoiceChatInfo": "Experimenta la función de interacción de voz inteligente (vista previa de función)", + "realtimeVoiceChatInfo": + "Experimenta la función de interacción de voz inteligente (vista previa de función)", "loading": "Cargando...", //设备管理页面 @@ -667,7 +716,8 @@ const Map esES = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -721,12 +771,17 @@ const Map esES = { '• Control de funciones de auriculares\n\n' '¿En qué puedo ayudarte?', 'microphonePermission': 'Micrófono', - 'voiceRecognitionPermissionText': 'La función de reconocimiento de voz necesita acceso al micrófono.', - 'voiceTranslationPermissionText': 'Las funciones de reconocimiento de voz y traducción necesitan acceso al micrófono.', - 'phoneCallPermissionText': 'La función de llamadas telefónicas necesita acceso al micrófono para llamadas de voz.', - 'permissionDeniedText': 'Has denegado permanentemente el permiso del micrófono, ve a la configuración del sistema para habilitarlo.', + 'voiceRecognitionPermissionText': + 'La función de reconocimiento de voz necesita acceso al micrófono.', + 'voiceTranslationPermissionText': + 'Las funciones de reconocimiento de voz y traducción necesitan acceso al micrófono.', + 'phoneCallPermissionText': + 'La función de llamadas telefónicas necesita acceso al micrófono para llamadas de voz.', + 'permissionDeniedText': + 'Has denegado permanentemente el permiso del micrófono, ve a la configuración del sistema para habilitarlo.', 'startVoiceInput': 'Iniciar entrada de voz', - 'startPhoneCallMode': 'Iniciar modo de llamada telefónica, iniciar entrada de voz', + 'startPhoneCallMode': + 'Iniciar modo de llamada telefónica, iniciar entrada de voz', // Agent 全屏编辑器 'fullScreenEditorHint': 'Ingresa tu mensaje aquí...', // 全屏编辑器输入提示 @@ -747,7 +802,8 @@ const Map esES = { 'privacyRelated': 'Relacionado con privacidad', 'copyrightViolation': 'Violación de mis derechos de autor, reputación, etc.', 'other': 'Otro', - 'reportDescriptionHint': 'Queremos conocer la razón de tu reporte, puedes describir el problema que encontraste.', + 'reportDescriptionHint': + 'Queremos conocer la razón de tu reporte, puedes describir el problema que encontraste.', //'submit': '提交', //Message_bubble @@ -778,15 +834,24 @@ const Map esES = { 'highest': 'Máxima', 'lowest': 'Mínima', 'futureForecast': 'Pronóstico futuro', - 'hotWeatherTip': 'Hoy hace calor, presta atención a la protección contra el calor, bebe más agua para evitar golpes de calor', - 'coldWeatherTip': 'Hoy la temperatura es baja, abrígate bien cuando salgas, ten cuidado de no resfriarte', - 'rainyWeatherTip': 'Hoy llueve, lleva paraguas cuando salgas, ten cuidado con la seguridad', - 'snowyWeatherTip': 'Hoy nieva, la carretera está resbaladiza, ten cuidado con la seguridad, abrígate bien', - 'foggyWeatherTip': 'Hoy hay niebla, la visibilidad es baja, usa mascarilla cuando salgas', - 'windyWeatherTip': 'Hoy hay viento fuerte, ten cuidado con la seguridad cuando salgas, asegura bien las cosas', - 'sunnyWeatherTip': 'Hoy el sol es fuerte y la radiación UV es intensa, protégete del sol cuando salgas', - 'temperatureDifferenceTip': 'Hoy hay gran diferencia entre la temperatura diurna y nocturna, ajusta la ropa a tiempo', - 'comfortableWeatherTip': 'Hoy el clima es cómodo, es buen momento para actividades al aire libre', + 'hotWeatherTip': + 'Hoy hace calor, presta atención a la protección contra el calor, bebe más agua para evitar golpes de calor', + 'coldWeatherTip': + 'Hoy la temperatura es baja, abrígate bien cuando salgas, ten cuidado de no resfriarte', + 'rainyWeatherTip': + 'Hoy llueve, lleva paraguas cuando salgas, ten cuidado con la seguridad', + 'snowyWeatherTip': + 'Hoy nieva, la carretera está resbaladiza, ten cuidado con la seguridad, abrígate bien', + 'foggyWeatherTip': + 'Hoy hay niebla, la visibilidad es baja, usa mascarilla cuando salgas', + 'windyWeatherTip': + 'Hoy hay viento fuerte, ten cuidado con la seguridad cuando salgas, asegura bien las cosas', + 'sunnyWeatherTip': + 'Hoy el sol es fuerte y la radiación UV es intensa, protégete del sol cuando salgas', + 'temperatureDifferenceTip': + 'Hoy hay gran diferencia entre la temperatura diurna y nocturna, ajusta la ropa a tiempo', + 'comfortableWeatherTip': + 'Hoy el clima es cómodo, es buen momento para actividades al aire libre', "monday": "Lunes", "tuesday": "Martes", "wednesday": "Miércoles", @@ -836,24 +901,31 @@ const Map esES = { "notSet": "No establecido", "accountSetting": "Configuración de cuenta", "logout": "Cerrar sesión", - "logoutTips": "¿Estás seguro de que quieres cerrar sesión de la cuenta actual?", + "logoutTips": + "¿Estás seguro de que quieres cerrar sesión de la cuenta actual?", 'deleteAccount': 'Eliminar cuenta', - 'deleteAccountTips': '¿Estás seguro de que quieres eliminar permanentemente tu cuenta? Esta acción no se puede deshacer', + 'deleteAccountTips': + '¿Estás seguro de que quieres eliminar permanentemente tu cuenta? Esta acción no se puede deshacer', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Fallo de conexión de red, verifica la configuración de red e inténtalo de nuevo', - 'serverTemporarilyUnavailable': 'El servidor no puede responder temporalmente, inténtalo de nuevo más tarde', + 'networkConnectionFailed': + 'Fallo de conexión de red, verifica la configuración de red e inténtalo de nuevo', + 'serverTemporarilyUnavailable': + 'El servidor no puede responder temporalmente, inténtalo de nuevo más tarde', 'loginExpiredPleaseRelogin': 'Sesión expirada, inicia sesión de nuevo', 'noPermissionForThisOperation': 'Sin permiso para esta operación', 'requestedResourceNotFound': 'El recurso solicitado no existe', - 'imageProcessingFailedPleaseReselect': 'Fallo en el procesamiento de imagen, selecciona imagen de nuevo', + 'imageProcessingFailedPleaseReselect': + 'Fallo en el procesamiento de imagen, selecciona imagen de nuevo', 'operationFailedPleaseRetry': 'Operación fallida, inténtalo de nuevo', 'serverReturnedError': 'El servidor devolvió un error', 'serverError': 'Error del servidor', - 'networkConnectionFailedCheckSettings': 'Fallo de conexión de red, verifica la configuración de red', - 'serverInternalErrorRetryLater': 'Error interno del servidor, inténtalo de nuevo más tarde', + 'networkConnectionFailedCheckSettings': + 'Fallo de conexión de red, verifica la configuración de red', + 'serverInternalErrorRetryLater': + 'Error interno del servidor, inténtalo de nuevo más tarde', // Profile 用户交互 //'error': '错误', @@ -872,13 +944,18 @@ const Map esES = { // 账号服务相关 'clearUserDataFailed': 'Fallo al limpiar datos de usuario', // 清理用户数据失败 'deleteUserDataFailed': 'Fallo al eliminar datos de usuario', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'Cierre de sesión de terceros exitoso', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': 'Fallo en el cierre de sesión de terceros', // 第三方登录退出失败 + 'thirdPartyLogoutSuccess': + 'Cierre de sesión de terceros exitoso', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': + 'Fallo en el cierre de sesión de terceros', // 第三方登录退出失败 'signOutProcessError': 'Error en el proceso de cierre de sesión', // 登出过程发生错误 - 'deleteAccountProcessError': 'Error en el proceso de eliminación de cuenta', // 删除账号过程发生错误 + 'deleteAccountProcessError': + 'Error en el proceso de eliminación de cuenta', // 删除账号过程发生错误 'userDataClearSuccess': 'Limpieza de datos de usuario exitosa', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Limpieza de todos los datos de usuario exitosa', // 所有用户数据清理成功 - 'accountServiceInitialized': 'AccountService inicializado', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Limpieza de todos los datos de usuario exitosa', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'AccountService inicializado', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Fallo al obtener estado de permisos', @@ -901,57 +978,88 @@ const Map esES = { 'locationInfo': 'Información de ubicación', 'phonePermissionDesc': 'Se usa para la función de llamadas telefónicas', 'smsPermissionDesc': 'Se usa para la función de envío de SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Se usa para crear eventos y recordatorios del calendario', - 'calendarFullAccessPermissionDesc': 'Se usa para leer y gestionar eventos y recordatorios del calendario', - 'locationPermissionDesc': 'Se usa para obtener información de ubicación actual', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Se usa para crear eventos y recordatorios del calendario', + 'calendarFullAccessPermissionDesc': + 'Se usa para leer y gestionar eventos y recordatorios del calendario', + 'locationPermissionDesc': + 'Se usa para obtener información de ubicación actual', 'appFunctionNeeds': 'La función de la aplicación necesita', 'authorized': 'Autorizado', 'unauthorized': 'No autorizado', - 'needOpenInSystemSettings': 'Necesita habilitarse en configuración del sistema', + 'needOpenInSystemSettings': + 'Necesita habilitarse en configuración del sistema', 'partialAuthorization': 'Autorización parcial', 'unknownStatus': 'Estado desconocido', 'permissionGranted': 'Permiso otorgado', 'permissionRequestError': 'Error en solicitud de permiso', - 'phonePermissionDetailDesc': 'La función de llamadas telefónicas necesita permiso de teléfono', - 'smsPermissionDetailDesc': 'La función de envío de SMS necesita permiso de SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'La creación de eventos del calendario necesita permiso de escritura del calendario', - 'calendarFullAccessPermissionDetailDesc': 'La gestión de eventos del calendario necesita permiso completo del calendario', - 'locationPermissionDetailDesc': 'Obtener información de ubicación necesita permiso de ubicación', + 'phonePermissionDetailDesc': + 'La función de llamadas telefónicas necesita permiso de teléfono', + 'smsPermissionDetailDesc': + 'La función de envío de SMS necesita permiso de SMS', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'La creación de eventos del calendario necesita permiso de escritura del calendario', + 'calendarFullAccessPermissionDetailDesc': + 'La gestión de eventos del calendario necesita permiso completo del calendario', + 'locationPermissionDetailDesc': + 'Obtener información de ubicación necesita permiso de ubicación', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'La aplicación necesita este permiso para proporcionar funcionalidad completa', - 'permanentDenialText': 'Has denegado permanentemente el permiso {permission}, ve a la configuración de la aplicación para habilitarlo', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'La aplicación necesita este permiso para proporcionar funcionalidad completa', + 'permanentDenialText': + 'Has denegado permanentemente el permiso {permission}, ve a la configuración de la aplicación para habilitarlo', 'goToSettings': 'Ir a configuración', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1069,8 @@ const Map esES = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1079,10 @@ const Map esES = { 'updateNow': 'Actualizar ahora', // 立即更新按钮 'checkUpdate': 'Verificar actualizaciones', // 检查更新按钮 'updateFailed': 'Actualización fallida', // 更新失败提示 - 'cannotOpenAppStore': 'No se puede abrir la tienda de aplicaciones, ve manualmente a la tienda para actualizar', // 无法打开应用商店提示 - 'updateErrorRetry': 'Ocurrió un error durante la actualización, inténtalo de nuevo más tarde', // 更新错误重试提示 + 'cannotOpenAppStore': + 'No se puede abrir la tienda de aplicaciones, ve manualmente a la tienda para actualizar', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Ocurrió un error durante la actualización, inténtalo de nuevo más tarde', // 更新错误重试提示 //国家列表 "邮箱": "Email", @@ -1107,7 +1218,8 @@ const Map esES = { "selectTargetLanguage": "Seleccionar idioma destino", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1235,12 @@ const Map esES = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Limpiar historial", - "clearHistoryConfirm": "¿Estás seguro de que quieres limpiar todo el historial de traducción? Esta operación no se puede deshacer.", + "clearHistoryConfirm": + "¿Estás seguro de que quieres limpiar todo el historial de traducción? Esta operación no se puede deshacer.", "unknownLanguage": "Idioma desconocido", "deleteSessionRecord": "Eliminar registro de sesión", - "deleteSessionConfirm": "¿Estás seguro de que quieres eliminar todos los registros de traducción de esta sesión? Esta operación no se puede deshacer.", + "deleteSessionConfirm": + "¿Estás seguro de que quieres eliminar todos los registros de traducción de esta sesión? Esta operación no se puede deshacer.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1272,20 @@ const Map esES = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1308,8 @@ const Map esES = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Registro original", "recordSummary": "Resumen del registro", - "clickToGenerateSummary": "Haz clic en el botón de abajo para generar resumen de sesión", + "clickToGenerateSummary": + "Haz clic en el botón de abajo para generar resumen de sesión", "summaryContent": "Contenido del resumen", "copied": "Copiado", "summaryCopiledToClipboard": "Resumen copiado al portapapeles", @@ -1197,9 +1317,11 @@ const Map esES = { "summaryGenerated": "Resumen generado", "generating": "Generando...", "regenerate": "Regenerar", - "summaryTimeoutMessage": "Solicitud de generación de resumen expirada, posiblemente debido a problema de red o sobrecarga del servidor.", + "summaryTimeoutMessage": + "Solicitud de generación de resumen expirada, posiblemente debido a problema de red o sobrecarga del servidor.", "deleteTranslationRecord": "Eliminar registro de traducción", - "deleteTranslationConfirm": "¿Estás seguro de que quieres eliminar este registro de traducción? Esta operación no se puede deshacer.", + "deleteTranslationConfirm": + "¿Estás seguro de que quieres eliminar este registro de traducción? Esta operación no se puede deshacer.", "originalText": "Texto original", "translatedText": "Texto traducido", "sessionSummary": "Resumen de sesión", @@ -1227,19 +1349,26 @@ const Map esES = { // 配对状态文本 "readyToPair": "Listo para emparejar", "preparingPairingEnvironment": "Preparando entorno de emparejamiento...", - "connectDeepSoundViaSystemBluetooth": "Conecta primero el dispositivo Voitrans a través del Bluetooth del sistema", + "connectDeepSoundViaSystemBluetooth": + "Conecta primero el dispositivo Voitrans a través del Bluetooth del sistema", "deviceBindingConfirm": "Confirmación de vinculación de dispositivo...", "establishingDeviceAssociation": "Estableciendo asociación de dispositivo...", "waitingCompletePairing": "Espera por favor, completando emparejamiento...", - "pairingSuccessRedirecting": "¡Emparejamiento exitoso! Redirigiendo a página principal...", + "pairingSuccessRedirecting": + "¡Emparejamiento exitoso! Redirigiendo a página principal...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Asegúrate de que el dispositivo conectado sea Voitrans", - "deviceAlreadyBoundToOtherAccount": "Este dispositivo ya está vinculado a otra cuenta", - "deviceAssociationFailed": "Fallo en la asociación del dispositivo, inténtalo de nuevo", - "scanTimeoutEnsureDeviceNearby": "Tiempo de escaneo agotado, asegúrate de que el dispositivo esté cerca", + "ensureConnectedDeepSoundDevice": + "Asegúrate de que el dispositivo conectado sea Voitrans", + "deviceAlreadyBoundToOtherAccount": + "Este dispositivo ya está vinculado a otra cuenta", + "deviceAssociationFailed": + "Fallo en la asociación del dispositivo, inténtalo de nuevo", + "scanTimeoutEnsureDeviceNearby": + "Tiempo de escaneo agotado, asegúrate de que el dispositivo esté cerca", "networkError": "Error de red", - "authorizationFailedCheckCode": "Fallo en la autorización, verifica si el código de autorización es correcto", + "authorizationFailedCheckCode": + "Fallo en la autorización, verifica si el código de autorización es correcto", "pairingFailedRetry": "Fallo en el emparejamiento, inténtalo de nuevo", // 配对控制器相关 @@ -1248,13 +1377,15 @@ const Map esES = { 'deviceDisconnected': 'Dispositivo desconectado', 'readyToStartPairing': 'Listo para iniciar emparejamiento', 'checkingEnvironment': 'Verificando entorno...', - 'ensureHeadsetOnAndPairingMode': 'Asegúrate de que los auriculares estén encendidos y en modo de emparejamiento', + 'ensureHeadsetOnAndPairingMode': + 'Asegúrate de que los auriculares estén encendidos y en modo de emparejamiento', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Estableciendo conexión segura...', - 'needManualBindingAuthCode': 'Necesita código de autorización de vinculación manual...', + 'needManualBindingAuthCode': + 'Necesita código de autorización de vinculación manual...', 'pairingSuccessful': '¡Emparejamiento exitoso!', 'enableBluetooth': 'Habilitar Bluetooth', 'grantPermissions': 'Otorgar permisos', @@ -1266,19 +1397,26 @@ const Map esES = { 'verificationFailedRetry': 'Verificación fallida, inténtalo de nuevo', 'invalidDeviceAddress': 'Dirección de dispositivo inválida', 'bleDeviceAssociationFailed': 'Fallo en la asociación del dispositivo BLE', - 'deviceAssociationFailedRetry': 'Fallo en la asociación del dispositivo, inténtalo de nuevo', - 'bleConnectionTimeoutRetry': 'Tiempo de conexión BLE agotado, inténtalo de nuevo', + 'deviceAssociationFailedRetry': + 'Fallo en la asociación del dispositivo, inténtalo de nuevo', + 'bleConnectionTimeoutRetry': + 'Tiempo de conexión BLE agotado, inténtalo de nuevo', 'blePairingStartupFailed': 'Fallo en el inicio del emparejamiento BLE', 'bleConnectionFailed': 'Fallo en la conexión BLE', - 'deviceAuthorizationFailedCheckCode': 'Fallo en la autorización del dispositivo, verifica el código de autorización', + 'deviceAuthorizationFailedCheckCode': + 'Fallo en la autorización del dispositivo, verifica el código de autorización', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1291,10 +1429,12 @@ const Map esES = { 'contactHint': 'Email/teléfono, para que podamos contactarte', 'submit': 'Enviar', 'feedbackSubmitSuccess': 'Comentarios enviados exitosamente, ¡gracias!', - 'feedbackSubmitFailed': 'Fallo al enviar comentarios, inténtalo de nuevo más tarde', + 'feedbackSubmitFailed': + 'Fallo al enviar comentarios, inténtalo de nuevo más tarde', // OTA升级模块 - "upgradeExitConfirm": "Actualización en progreso, salir interrumpirá el proceso de actualización, ¿estás seguro de que quieres salir?", + "upgradeExitConfirm": + "Actualización en progreso, salir interrumpirá el proceso de actualización, ¿estás seguro de que quieres salir?", "deviceModel": "Modelo del dispositivo", "unknownDevice": "Dispositivo desconocido", "currentFirmwareVersion": "Versión actual del firmware", @@ -1307,14 +1447,19 @@ const Map esES = { "retryConnection": "Reintentar conexión", "ota_updateNow": "Actualizar ahora", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Mantén el dispositivo conectado, no cierres la aplicación", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Mantén el dispositivo conectado, no cierres la aplicación", "doNotDisconnect": "No desconectes", "charging": "Cargando", "updateContent": "Contenido de actualización", - "removeEarbudsEnsureBattery": "Retira ambos auriculares y asegúrate de que la batería de ambos esté por encima del 20%", + "removeEarbudsEnsureBattery": + "Retira ambos auriculares y asegúrate de que la batería de ambos esté por encima del 20%", // 音乐列表页面 "noMusic": "Sin música", // 暂无音乐 @@ -1376,8 +1521,10 @@ const Map esES = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/et_ee.dart b/lib/core/translations/language/et_ee.dart index 754fbf688..c569c3d2e 100644 --- a/lib/core/translations/language/et_ee.dart +++ b/lib/core/translations/language/et_ee.dart @@ -33,6 +33,7 @@ const Map etEE = { "spanish": "Hispaania", "portuguese": "Portugali", "traditionalChinese": "Traditsiooniline hiina", + "traditionalChineseHK": "Traditsiooniline hiina (Hongkong)", "japanese": "Jaapani", "korean": "Korea", "french": "Prantsuse", @@ -90,7 +91,8 @@ const Map etEE = { "tip": "Nõuanne", "pleaseEnterCompleteCode": "Sisesta täielik kinnituskood", "loginFailed": "Sisselogimine ebaõnnestus, proovi uuesti", - 'pleaseAcceptPrivacyPolicy': 'Loe ja nõustu esmalt privaatsuspoliitika ja kasutajalepinguga', + 'pleaseAcceptPrivacyPolicy': + 'Loe ja nõustu esmalt privaatsuspoliitika ja kasutajalepinguga', "enterVerificationCode": "Sisesta kinnituskood", "verificationCodeSentTo": "Kinnituskood saadetud aadressile", "resendVerificationCode": "Saada kinnituskood uuesti", @@ -99,7 +101,8 @@ const Map etEE = { // 隐私政策弹窗 "loginDeclaration": "Voitrans avaldus", // Voitrans 声明 - "welcomeToThisApp": "Tere tulemast Voitrans'i, loe hoolikalt", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Tere tulemast Voitrans'i, loe hoolikalt", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -130,7 +133,8 @@ const Map etEE = { "unsystemSetup": "Mine süsteemi seadetesse", "talkLater": "Tuleta hiljem meelde", "initializing": "Lähtestamine...", - "bluetoothInitializationFailure": "Bluetooth teenuse lähtestamine ebaõnnestus", + "bluetoothInitializationFailure": + "Bluetooth teenuse lähtestamine ebaõnnestus", "checkingPermissions": "Lubade kontrollimine...", "lackPermissions": "Puuduvad Bluetooth lubad ja luba kasutamiseks loetakse", "searchingDevice": "Seadmete otsimine...", @@ -175,7 +179,8 @@ const Map etEE = { "healthConsultant": "Mitmefunktsionaalne AI vestlus", "healthConsultantInfo": "Rohkem AI vestluse funktsioone", "conferenceAssistant": "Ärikoosoleku assistent", - "conferenceAssistantInfo": "Reaalajas protokolli salvestamine ja mitmekeelne tõlge", + "conferenceAssistantInfo": + "Reaalajas protokolli salvestamine ja mitmekeelne tõlge", "usageStats": "Kasutamise statistika", "usageStatsInfo": "Näita sovelluksen kasutamise statistikat", "scene": "Stsenaariumid", @@ -218,7 +223,8 @@ const Map etEE = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +280,10 @@ const Map etEE = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +292,35 @@ const Map etEE = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +329,10 @@ const Map etEE = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +347,8 @@ const Map etEE = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Jäta vahele", @@ -355,7 +374,8 @@ const Map etEE = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +425,8 @@ const Map etEE = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +481,54 @@ const Map etEE = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +540,8 @@ const Map etEE = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +561,8 @@ const Map etEE = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +611,8 @@ const Map etEE = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +637,8 @@ const Map etEE = { "cloudSync": "Pääsyvaraus cloud-synkronointiin", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Ühendatud seade:", "accountId": "Konto ID:", "systemSetting": "Süsteemi seaded", @@ -621,9 +660,11 @@ const Map etEE = { "voiceServiceInfo": "Vali häältuvastuse ja sünteesi teenus", "selectVoiceService": "Vali hääleteenused", "azureVoiceService": "Azure hääleteenused", - "azureVoiceServiceInfo": "Microsofti pilveteenus, mis toetab kvaliteetset häälsünteesi ja -tuvastust", + "azureVoiceServiceInfo": + "Microsofti pilveteenus, mis toetab kvaliteetset häälsünteesi ja -tuvastust", "flutterVoiceService": "Kohalik hääleteenused", - "flutterVoiceServiceInfo": "Seadme kohalik hääleteenused ilma internetiühenduseta", + "flutterVoiceServiceInfo": + "Seadme kohalik hääleteenused ilma internetiühenduseta", 'timbreService': 'Hääletämber teenus', 'timbreServiceInfo': 'Vali häälsünteesi teenus', 'defaultTimbre': 'Vaikimisi tämber', @@ -652,7 +693,8 @@ const Map etEE = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Reaalajas häälvestlus", - "realtimeVoiceChatInfo": "Koge nutika häälinteraktsiooni funktsiooni (funktsiooni eelvaade)", + "realtimeVoiceChatInfo": + "Koge nutika häälinteraktsiooni funktsiooni (funktsiooni eelvaade)", "loading": "Laadimine...", //设备管理页面 @@ -667,7 +709,8 @@ const Map etEE = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -721,10 +764,14 @@ const Map etEE = { '• Kõrvaklappide funktsioonide kontroll\n\n' 'Kuidas saan sind aidata?', 'microphonePermission': 'Mikrofon', - 'voiceRecognitionPermissionText': 'Häältuvastuse funktsioon vajab mikrofoni ligipääsu.', - 'voiceTranslationPermissionText': 'Häältuvastuse ja tõlke funktsioonid vajavad mikrofoni ligipääsu.', - 'phoneCallPermissionText': 'Telefonikõnede funktsioon vajab mikrofoni ligipääsu häälkõnede jaoks.', - 'permissionDeniedText': 'Oled püsivalt keeldunud mikrofoni loast, mine süsteemi seadetesse selle lubamiseks.', + 'voiceRecognitionPermissionText': + 'Häältuvastuse funktsioon vajab mikrofoni ligipääsu.', + 'voiceTranslationPermissionText': + 'Häältuvastuse ja tõlke funktsioonid vajavad mikrofoni ligipääsu.', + 'phoneCallPermissionText': + 'Telefonikõnede funktsioon vajab mikrofoni ligipääsu häälkõnede jaoks.', + 'permissionDeniedText': + 'Oled püsivalt keeldunud mikrofoni loast, mine süsteemi seadetesse selle lubamiseks.', 'startVoiceInput': 'Alusta häälsisestust', 'startPhoneCallMode': 'Alusta telefonikõne režiimi, alusta häälsisestust', @@ -747,7 +794,8 @@ const Map etEE = { 'privacyRelated': 'Privaatsusega seotud', 'copyrightViolation': 'Minu autoriõiguste, maine jms rikkumine', 'other': 'Muu', - 'reportDescriptionHint': 'Tahame teada teate põhjust, võid kirjeldada probleemi, millega kokku puutusid.', + 'reportDescriptionHint': + 'Tahame teada teate põhjust, võid kirjeldada probleemi, millega kokku puutusid.', //'submit': '提交', //Message_bubble @@ -778,14 +826,21 @@ const Map etEE = { 'highest': 'Kõrgeim', 'lowest': 'Madalaim', 'futureForecast': 'Tuleviku prognoos', - 'hotWeatherTip': 'Täna on kuum, pööra tähelepanu kuumakaitsele, joo rohkem vett kuumalöögi vältimiseks', - 'coldWeatherTip': 'Täna on temperatuur madal, riietumine soojalt välja minnes, ettevaatust külmetusega', - 'rainyWeatherTip': 'Täna sajab vihma, võta vihmavari kaasa välja minnes, ole ettevaatlik ohutusega', - 'snowyWeatherTip': 'Täna sajab lund, tee on libe, ole ettevaatlik ohutusega, riietumine soojalt', + 'hotWeatherTip': + 'Täna on kuum, pööra tähelepanu kuumakaitsele, joo rohkem vett kuumalöögi vältimiseks', + 'coldWeatherTip': + 'Täna on temperatuur madal, riietumine soojalt välja minnes, ettevaatust külmetusega', + 'rainyWeatherTip': + 'Täna sajab vihma, võta vihmavari kaasa välja minnes, ole ettevaatlik ohutusega', + 'snowyWeatherTip': + 'Täna sajab lund, tee on libe, ole ettevaatlik ohutusega, riietumine soojalt', 'foggyWeatherTip': 'Täna on udu, nähtavus on halb, kanna maski välja minnes', - 'windyWeatherTip': 'Täna on tugev tuul, ole ettevaatlik ohutusega välja minnes, kinnita asjad hästi', - 'sunnyWeatherTip': 'Täna on päike tugev ja UV-kiirgus intensiivne, kaitse end päikese eest välja minnes', - 'temperatureDifferenceTip': 'Täna on suur erinevus päeva- ja öise temperatuuri vahel, lisa või eemalda riideid õigeaegselt', + 'windyWeatherTip': + 'Täna on tugev tuul, ole ettevaatlik ohutusega välja minnes, kinnita asjad hästi', + 'sunnyWeatherTip': + 'Täna on päike tugev ja UV-kiirgus intensiivne, kaitse end päikese eest välja minnes', + 'temperatureDifferenceTip': + 'Täna on suur erinevus päeva- ja öise temperatuuri vahel, lisa või eemalda riideid õigeaegselt', 'comfortableWeatherTip': 'Täna on ilm mugav, hea aeg õuetegevusteks', "monday": "Esmaspäev", "tuesday": "Teisipäev", @@ -838,22 +893,28 @@ const Map etEE = { "logout": "Logi välja", "logoutTips": "Kas oled kindel, et tahad praegusest kontost välja logida?", 'deleteAccount': 'Kustuta konto', - 'deleteAccountTips': 'Kas oled kindel, et tahad oma konto jäädavalt kustutada? Seda toimingut ei saa tagasi võtta', + 'deleteAccountTips': + 'Kas oled kindel, et tahad oma konto jäädavalt kustutada? Seda toimingut ei saa tagasi võtta', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Võrguühendus ebaõnnestus, kontrolli võrgu seadeid ja proovi uuesti', - 'serverTemporarilyUnavailable': 'Server ei saa ajutiselt vastata, proovi hiljem uuesti', + 'networkConnectionFailed': + 'Võrguühendus ebaõnnestus, kontrolli võrgu seadeid ja proovi uuesti', + 'serverTemporarilyUnavailable': + 'Server ei saa ajutiselt vastata, proovi hiljem uuesti', 'loginExpiredPleaseRelogin': 'Sisselogimine aegunud, logi uuesti sisse', 'noPermissionForThisOperation': 'Pole luba selle toimingu jaoks', 'requestedResourceNotFound': 'Taotletud ressurss ei eksisteeri', - 'imageProcessingFailedPleaseReselect': 'Pildi töötlemine ebaõnnestus, vali pilt uuesti', + 'imageProcessingFailedPleaseReselect': + 'Pildi töötlemine ebaõnnestus, vali pilt uuesti', 'operationFailedPleaseRetry': 'Toiming ebaõnnestus, proovi uuesti', 'serverReturnedError': 'Server tagastas vea', 'serverError': 'Serveri viga', - 'networkConnectionFailedCheckSettings': 'Võrguühendus ebaõnnestus, kontrolli võrgu seadeid', - 'serverInternalErrorRetryLater': 'Serveri sisemine viga, proovi hiljem uuesti', + 'networkConnectionFailedCheckSettings': + 'Võrguühendus ebaõnnestus, kontrolli võrgu seadeid', + 'serverInternalErrorRetryLater': + 'Serveri sisemine viga, proovi hiljem uuesti', // Profile 用户交互 //'error': '错误', @@ -872,13 +933,17 @@ const Map etEE = { // 账号服务相关 'clearUserDataFailed': 'Kasutajaandmete tühjendamine ebaõnnestus', // 清理用户数据失败 'deleteUserDataFailed': 'Kasutajaandmete kustutamine ebaõnnestus', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'Kolmanda osapoole väljalogimine õnnestus', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': 'Kolmanda osapoole väljalogimine ebaõnnestus', // 第三方登录退出失败 + 'thirdPartyLogoutSuccess': + 'Kolmanda osapoole väljalogimine õnnestus', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': + 'Kolmanda osapoole väljalogimine ebaõnnestus', // 第三方登录退出失败 'signOutProcessError': 'Väljalogimine protsessi viga', // 登出过程发生错误 'deleteAccountProcessError': 'Konto kustutamise protsessi viga', // 删除账号过程发生错误 'userDataClearSuccess': 'Kasutajaandmete tühjendamine õnnestus', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Kõigi kasutajaandmete tühjendamine õnnestus', // 所有用户数据清理成功 - 'accountServiceInitialized': 'AccountService lähtestatud', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Kõigi kasutajaandmete tühjendamine õnnestus', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'AccountService lähtestatud', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Lubade oleku hankimine ebaõnnestus', @@ -901,9 +966,12 @@ const Map etEE = { 'locationInfo': 'Asukoha info', 'phonePermissionDesc': 'Kasutatakse telefonikõnede funktsiooni jaoks', 'smsPermissionDesc': 'Kasutatakse SMS saatmise funktsiooni jaoks', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Kasutatakse kalendri sündmuste ja meeldetuletuste loomiseks', - 'calendarFullAccessPermissionDesc': 'Kasutatakse kalendri sündmuste ja meeldetuletuste lugemiseks ja haldamiseks', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Kasutatakse kalendri sündmuste ja meeldetuletuste loomiseks', + 'calendarFullAccessPermissionDesc': + 'Kasutatakse kalendri sündmuste ja meeldetuletuste lugemiseks ja haldamiseks', 'locationPermissionDesc': 'Kasutatakse praeguse asukoha info hankimiseks', 'appFunctionNeeds': 'Rakenduse funktsioon vajab', 'authorized': 'Autoriseeritud', @@ -915,43 +983,66 @@ const Map etEE = { 'permissionRequestError': 'Loa taotluse viga', 'phonePermissionDetailDesc': 'Telefonikõnede funktsioon vajab telefoni luba', 'smsPermissionDetailDesc': 'SMS saatmise funktsioon vajab SMS luba', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Kalendri sündmuste loomine vajab kalendri kirjutamise luba', - 'calendarFullAccessPermissionDetailDesc': 'Kalendri sündmuste haldamine vajab kalendri täielikku luba', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Kalendri sündmuste loomine vajab kalendri kirjutamise luba', + 'calendarFullAccessPermissionDetailDesc': + 'Kalendri sündmuste haldamine vajab kalendri täielikku luba', 'locationPermissionDetailDesc': 'Asukoha info hankimine vajab asukoha luba', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Rakendus vajab seda luba täieliku funktsionaalsuse pakkumiseks', - 'permanentDenialText': 'Oled püsivalt keeldunud {permission} loast, mine rakenduse seadetesse selle lubamiseks', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Rakendus vajab seda luba täieliku funktsionaalsuse pakkumiseks', + 'permanentDenialText': + 'Oled püsivalt keeldunud {permission} loast, mine rakenduse seadetesse selle lubamiseks', 'goToSettings': 'Mine seadetesse', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1052,8 @@ const Map etEE = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1062,10 @@ const Map etEE = { 'updateNow': 'Uuenda kohe', // 立即更新按钮 'checkUpdate': 'Kontrolli uuendusi', // 检查更新按钮 'updateFailed': 'Uuendamine ebaõnnestus', // 更新失败提示 - 'cannotOpenAppStore': 'Ei saa rakenduste poodi avada, mine käsitsi poodi uuendamiseks', // 无法打开应用商店提示 - 'updateErrorRetry': 'Uuendamisel tekkis viga, proovi hiljem uuesti', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Ei saa rakenduste poodi avada, mine käsitsi poodi uuendamiseks', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Uuendamisel tekkis viga, proovi hiljem uuesti', // 更新错误重试提示 //国家列表 "邮箱": "E-mail", @@ -1107,7 +1201,8 @@ const Map etEE = { "selectTargetLanguage": "Vali sihtkeel", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1218,12 @@ const Map etEE = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Tühjenda ajalugu", - "clearHistoryConfirm": "Kas oled kindel, et tahad kogu tõlke ajaloo tühjendada? Seda toimingut ei saa tagasi võtta.", + "clearHistoryConfirm": + "Kas oled kindel, et tahad kogu tõlke ajaloo tühjendada? Seda toimingut ei saa tagasi võtta.", "unknownLanguage": "Tundmatu keel", "deleteSessionRecord": "Kustuta seansi kirje", - "deleteSessionConfirm": "Kas oled kindel, et tahad kõik selle seansi tõlke kirjed kustutada? Seda toimingut ei saa tagasi võtta.", + "deleteSessionConfirm": + "Kas oled kindel, et tahad kõik selle seansi tõlke kirjed kustutada? Seda toimingut ei saa tagasi võtta.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1255,20 @@ const Map etEE = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1291,8 @@ const Map etEE = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Algne kirje", "recordSummary": "Kirje kokkuvõte", - "clickToGenerateSummary": "Klõpsa alloleval nupul seansi kokkuvõtte genereerimiseks", + "clickToGenerateSummary": + "Klõpsa alloleval nupul seansi kokkuvõtte genereerimiseks", "summaryContent": "Kokkuvõtte sisu", "copied": "Kopeeritud", "summaryCopiledToClipboard": "Kokkuvõte kopeeritud lõikelauale", @@ -1197,9 +1300,11 @@ const Map etEE = { "summaryGenerated": "Kokkuvõte genereeritud", "generating": "Genereerimine...", "regenerate": "Genereeri uuesti", - "summaryTimeoutMessage": "Kokkuvõtte genereerimise taotlus aegus, võimalik võrguprobleem või serveri ülekoormatus.", + "summaryTimeoutMessage": + "Kokkuvõtte genereerimise taotlus aegus, võimalik võrguprobleem või serveri ülekoormatus.", "deleteTranslationRecord": "Kustuta tõlke kirje", - "deleteTranslationConfirm": "Kas oled kindel, et tahad selle tõlke kirje kustutada? Seda toimingut ei saa tagasi võtta.", + "deleteTranslationConfirm": + "Kas oled kindel, et tahad selle tõlke kirje kustutada? Seda toimingut ei saa tagasi võtta.", "originalText": "Algne tekst", "translatedText": "Tõlgitud tekst", "sessionSummary": "Seansi kokkuvõte", @@ -1227,7 +1332,8 @@ const Map etEE = { // 配对状态文本 "readyToPair": "Valmis sidumiseks", "preparingPairingEnvironment": "Sidumiskeskkonna ettevalmistamine...", - "connectDeepSoundViaSystemBluetooth": "Ühenda esmalt Voitrans seade süsteemi Bluetooth kaudu", + "connectDeepSoundViaSystemBluetooth": + "Ühenda esmalt Voitrans seade süsteemi Bluetooth kaudu", "deviceBindingConfirm": "Seadme sidumise kinnitus...", "establishingDeviceAssociation": "Seadme seose loomine...", "waitingCompletePairing": "Palun oota, sidumise lõpetamine...", @@ -1237,9 +1343,11 @@ const Map etEE = { "ensureConnectedDeepSoundDevice": "Veendu, et ühendatud seade on Voitrans", "deviceAlreadyBoundToOtherAccount": "See seade on juba seotud teise kontoga", "deviceAssociationFailed": "Seadme seostamine ebaõnnestus, proovi uuesti", - "scanTimeoutEnsureDeviceNearby": "Skaneerimine aegus, veendu, et seade on lähedal", + "scanTimeoutEnsureDeviceNearby": + "Skaneerimine aegus, veendu, et seade on lähedal", "networkError": "Võrgu viga", - "authorizationFailedCheckCode": "Autoriseerimine ebaõnnestus, kontrolli, kas autoriseerimiskood on õige", + "authorizationFailedCheckCode": + "Autoriseerimine ebaõnnestus, kontrolli, kas autoriseerimiskood on õige", "pairingFailedRetry": "Sidumine ebaõnnestus, proovi uuesti", // 配对控制器相关 @@ -1248,7 +1356,8 @@ const Map etEE = { 'deviceDisconnected': 'Seade lahti ühendatud', 'readyToStartPairing': 'Valmis sidumist alustama', 'checkingEnvironment': 'Keskkonna kontrollimine...', - 'ensureHeadsetOnAndPairingMode': 'Veendu, et kõrvaklapid on sisse lülitatud ja sidumisrežiimis', + 'ensureHeadsetOnAndPairingMode': + 'Veendu, et kõrvaklapid on sisse lülitatud ja sidumisrežiimis', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1266,19 +1375,25 @@ const Map etEE = { 'verificationFailedRetry': 'Kontrollimine ebaõnnestus, proovi uuesti', 'invalidDeviceAddress': 'Vigane seadme aadress', 'bleDeviceAssociationFailed': 'BLE seadme seostamine ebaõnnestus', - 'deviceAssociationFailedRetry': 'Seadme seostamine ebaõnnestus, proovi uuesti', + 'deviceAssociationFailedRetry': + 'Seadme seostamine ebaõnnestus, proovi uuesti', 'bleConnectionTimeoutRetry': 'BLE ühenduse ajalõpp, proovi uuesti', 'blePairingStartupFailed': 'BLE sidumise käivitamine ebaõnnestus', 'bleConnectionFailed': 'BLE ühendus ebaõnnestus', - 'deviceAuthorizationFailedCheckCode': 'Seadme autoriseerimine ebaõnnestus, kontrolli autoriseerimiskoodi', + 'deviceAuthorizationFailedCheckCode': + 'Seadme autoriseerimine ebaõnnestus, kontrolli autoriseerimiskoodi', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1291,10 +1406,12 @@ const Map etEE = { 'contactHint': 'E-mail/telefon, et saaksime sinuga ühendust võtta', 'submit': 'Esita', 'feedbackSubmitSuccess': 'Tagasiside edukalt esitatud, täname!', - 'feedbackSubmitFailed': 'Tagasiside esitamine ebaõnnestus, proovi hiljem uuesti', + 'feedbackSubmitFailed': + 'Tagasiside esitamine ebaõnnestus, proovi hiljem uuesti', // OTA升级模块 - "upgradeExitConfirm": "Uuendamine käib, väljumine katkestab uuendamise protsessi, kas oled kindel, et tahad väljuda?", + "upgradeExitConfirm": + "Uuendamine käib, väljumine katkestab uuendamise protsessi, kas oled kindel, et tahad väljuda?", "deviceModel": "Seadme mudel", "unknownDevice": "Tundmatu seade", "currentFirmwareVersion": "Praegune püsivara versioon", @@ -1307,14 +1424,18 @@ const Map etEE = { "retryConnection": "Proovi ühendust uuesti", "ota_updateNow": "Uuenda kohe", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "Hoia seade ühendatuna, ära sulge rakendust", "doNotDisconnect": "Ära ühenda lahti", "charging": "Laadimine", "updateContent": "Uuenduse sisu", - "removeEarbudsEnsureBattery": "Võta mõlemad kõrvaklapid välja ja veendu, et mõlema aku on üle 20%", + "removeEarbudsEnsureBattery": + "Võta mõlemad kõrvaklapid välja ja veendu, et mõlema aku on üle 20%", // 音乐列表页面 "noMusic": "Muusikat pole", // 暂无音乐 @@ -1376,8 +1497,10 @@ const Map etEE = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/fa_ir.dart b/lib/core/translations/language/fa_ir.dart index 41b355ef4..d9ba2fa8d 100644 --- a/lib/core/translations/language/fa_ir.dart +++ b/lib/core/translations/language/fa_ir.dart @@ -33,6 +33,7 @@ const Map faIR = { "spanish": "اسپانیایی", "portuguese": "پرتغالی", "traditionalChinese": "چینی سنتی", + "traditionalChineseHK": "چینی سنتی (هنگ‌کنگ)", "japanese": "ژاپنی", "korean": "کره‌ای", "french": "فرانسوی", @@ -71,7 +72,8 @@ const Map faIR = { // 登录页 "welcome": "خوش آمدید", - "loginTips": "لطفاً با شماره تلفن یا ایمیل خود وارد شوید یا حساب کاربری ایجاد کنید", + "loginTips": + "لطفاً با شماره تلفن یا ایمیل خود وارد شوید یا حساب کاربری ایجاد کنید", "accountNumber": "شماره تلفن یا ایمیل", "verificationCode": "کد تأیید", "getCode": "دریافت کد", @@ -90,7 +92,8 @@ const Map faIR = { "tip": "نکته", "pleaseEnterCompleteCode": "لطفاً کد تأیید کامل را وارد کنید", "loginFailed": "ورود ناموفق بود، لطفاً دوباره تلاش کنید", - 'pleaseAcceptPrivacyPolicy': 'لطفاً ابتدا سیاست حفظ حریم خصوصی و توافقنامه کاربری را بخوانید و بپذیرید', + 'pleaseAcceptPrivacyPolicy': + 'لطفاً ابتدا سیاست حفظ حریم خصوصی و توافقنامه کاربری را بخوانید و بپذیرید', "enterVerificationCode": "کد تأیید را وارد کنید", "verificationCodeSentTo": "کد تأیید به", "resendVerificationCode": "ارسال مجدد کد تأیید", @@ -99,7 +102,8 @@ const Map faIR = { // 隐私政策弹窗 "loginDeclaration": "بیانیه Voitrans", // Voitrans 声明 - "welcomeToThisApp": "به Voitrans خوش آمدید، لطفاً با دقت بخوانید ", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "به Voitrans خوش آمدید، لطفاً با دقت بخوانید ", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -125,14 +129,16 @@ const Map faIR = { "aiCompanion": "همراه والدین و فرزند", "aiCompanionInfo": "شما را درک می‌کند و همراهی گرمی را فراهم می‌کند", "homeSlogan": "دنیا را متصل کن، فراتر از صدا", - "turnEarphones": "لطفاً کیس ایرفون را باز کنید و ایربادها را در گوش خود قرار دهید", + "turnEarphones": + "لطفاً کیس ایرفون را باز کنید و ایربادها را در گوش خود قرار دهید", "currentlyConnected": "در حال حاضر متصل به:", "unsystemSetup": "رفتن به تنظیمات سیستم", "talkLater": "بعداً یادآوری کن", "initializing": "در حال آماده‌سازی...", "bluetoothInitializationFailure": "آماده‌سازی سرویس بلوتوث ناموفق بود", "checkingPermissions": "در حال بررسی مجوزها...", - "lackPermissions": "مجوزهای بلوتوث مورد نیاز است و دسترسی به لوکیشن نیز لازم است", + "lackPermissions": + "مجوزهای بلوتوث مورد نیاز است و دسترسی به لوکیشن نیز لازم است", "searchingDevice": "در حال جستجوی دستگاه‌ها...", "findConnectedDevice": "دستگاه متصل پیدا شد", "notFound": "دستگاه بلوتوث متصلی پیدا نشد", @@ -218,7 +224,8 @@ const Map faIR = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +281,10 @@ const Map faIR = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +293,35 @@ const Map faIR = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +330,10 @@ const Map faIR = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +348,8 @@ const Map faIR = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "رد کردن", @@ -355,7 +375,8 @@ const Map faIR = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -398,14 +419,16 @@ const Map faIR = { 'connectedToAiPen': 'متصل به دستگاه AI PEN', 'checkingNewFiles': 'در حال بررسی فایل‌های جدید برای وارد کردن', 'startingWifi': 'در حال راه‌اندازی Wi-Fi...', - 'newFilesDetected': 'فایل‌های جدید شناسایی شد، در حال آماده‌سازی برای وارد کردن', + 'newFilesDetected': + 'فایل‌های جدید شناسایی شد، در حال آماده‌سازی برای وارد کردن', 'noNewFiles': 'فایل جدیدی برای وارد کردن وجود ندارد', 'connectingWifi': 'در حال اتصال به Wi-Fi...', 'wifiConnected': 'اتصال Wi-Fi موفقیت‌آمیز بود', 'downloadingFiles': 'در حال دانلود فایل‌ها...', 'downloadingFileProgress': 'مجموع {total} فایل، در حال دانلود فایل {current}', 'downloadComplete': 'دانلود کامل شد', - 'downloadCompleteInfo': 'دانلود کامل شد، مجموعاً {count} فایل، بازگشت خودکار تا ۲ ثانیه دیگر', + 'downloadCompleteInfo': + 'دانلود کامل شد، مجموعاً {count} فایل، بازگشت خودکار تا ۲ ثانیه دیگر', // Meeting模块 - 录音功能 'startRecording': 'شروع ضبط', @@ -441,7 +464,8 @@ const Map faIR = { 'meetingHours': 'ساعت', 'voitransAiMember': 'عضو هوش مصنوعی Voitrans', 'unlockStarterMember': 'باز کردن عضویت Starter', - 'bindDeviceToActivate': 'دستگاه Voitrans را برای فعال‌سازی عضویت Starter متصل کنید', + 'bindDeviceToActivate': + 'دستگاه Voitrans را برای فعال‌سازی عضویت Starter متصل کنید', 'unlockNow': 'اکنون باز کنید', // Meeting模块 - 会员功能 @@ -460,40 +484,55 @@ const Map faIR = { 'audioImport': 'وارد کردن صدا', 'multipleExportFormats': 'فرمت‌های خروجی متعدد', 'professionalSummaryTemplates': 'الگوهای خلاصه حرفه‌ای', - 'professionalTemplateDesc': 'طراحی الگوی حرفه‌ای برای بهبود کارایی شما. سفارشی‌شده بر اساس نیازهای صنعت.', - 'customTemplateDesc': 'شما می‌توانید اعلان‌های خلاصه را بر اساس نیازهای خود سفارشی کنید و از آن‌ها برای ایجاد خلاصه‌های مورد نیاز استفاده کنید.', - 'askAiDesc': 'استخراج هوشمند اطلاعات عمیق‌تر از ضبط‌ها، ایجاد جداول داده، نتایج کلیدی بحث، لیست کارها، ایمیل‌های گزارش و سایر محتوای فرمت‌شده با یک کلیک.', - 'visualMindMapDesc': 'فراتر از خلاصه‌ها - سازماندهی و بصری‌سازی نکات کلیدی با نقشه‌های ذهنی برای درک مؤثرتر متن کامل.', - 'templateCommunityDesc': 'کشف کنید، به اشتراک بگذارید و از کتابخانه الگوهای ایجاد شده توسط کاربران الهام بگیرید.', - 'speakerIdentificationDesc': 'تبدیل متن صوتی از شناسایی گوینده پشتیبانی می‌کند، محتوای جلسه یا تماس تلفنی را به طور شهودی‌تر بازیابی می‌کند. در عین حال، خلاصه دقیق‌تر خواهد بود.', - 'privateCloudSyncDesc': 'ضبط‌ها و متن‌های شما به طور ایمن در سرورهای ابری اختصاصی ذخیره می‌شوند، با رمزگذاری کامل در هنگام آپلود و دانلود برای اطمینان از حریم خصوصی و امنیت.', - 'aiVoiceEnhancementDesc': 'بهبود صدای هوش مصنوعی از تنظیمات کاهش نویز چندگانه پشتیبانی می‌کند، به طور هوشمند نویز پس‌زمینه را حذف می‌کند، وضوح صدا را افزایش می‌دهد و کیفیت پخش صدا را بهبود می‌بخشد.', - 'audioImportDesc': 'به راحتی فایل‌های صوتی را از برنامه‌های محلی یا شخص ثالث مانند یادداشت‌های صوتی، Google Drive و غیره وارد کنید.', - 'multipleExportFormatsDesc': 'ضبط‌های صوتی، متن تبدیل‌شده و خلاصه‌های خود را در فرمت‌های مختلف (TXT، PDF، JPEG) برای رفع نیازهای خود خروجی بگیرید.', + 'professionalTemplateDesc': + 'طراحی الگوی حرفه‌ای برای بهبود کارایی شما. سفارشی‌شده بر اساس نیازهای صنعت.', + 'customTemplateDesc': + 'شما می‌توانید اعلان‌های خلاصه را بر اساس نیازهای خود سفارشی کنید و از آن‌ها برای ایجاد خلاصه‌های مورد نیاز استفاده کنید.', + 'askAiDesc': + 'استخراج هوشمند اطلاعات عمیق‌تر از ضبط‌ها، ایجاد جداول داده، نتایج کلیدی بحث، لیست کارها، ایمیل‌های گزارش و سایر محتوای فرمت‌شده با یک کلیک.', + 'visualMindMapDesc': + 'فراتر از خلاصه‌ها - سازماندهی و بصری‌سازی نکات کلیدی با نقشه‌های ذهنی برای درک مؤثرتر متن کامل.', + 'templateCommunityDesc': + 'کشف کنید، به اشتراک بگذارید و از کتابخانه الگوهای ایجاد شده توسط کاربران الهام بگیرید.', + 'speakerIdentificationDesc': + 'تبدیل متن صوتی از شناسایی گوینده پشتیبانی می‌کند، محتوای جلسه یا تماس تلفنی را به طور شهودی‌تر بازیابی می‌کند. در عین حال، خلاصه دقیق‌تر خواهد بود.', + 'privateCloudSyncDesc': + 'ضبط‌ها و متن‌های شما به طور ایمن در سرورهای ابری اختصاصی ذخیره می‌شوند، با رمزگذاری کامل در هنگام آپلود و دانلود برای اطمینان از حریم خصوصی و امنیت.', + 'aiVoiceEnhancementDesc': + 'بهبود صدای هوش مصنوعی از تنظیمات کاهش نویز چندگانه پشتیبانی می‌کند، به طور هوشمند نویز پس‌زمینه را حذف می‌کند، وضوح صدا را افزایش می‌دهد و کیفیت پخش صدا را بهبود می‌بخشد.', + 'audioImportDesc': + 'به راحتی فایل‌های صوتی را از برنامه‌های محلی یا شخص ثالث مانند یادداشت‌های صوتی، Google Drive و غیره وارد کنید.', + 'multipleExportFormatsDesc': + 'ضبط‌های صوتی، متن تبدیل‌شده و خلاصه‌های خود را در فرمت‌های مختلف (TXT، PDF، JPEG) برای رفع نیازهای خود خروجی بگیرید.', // Meeting模块 - 升级会员 'upgradeMembership': 'عضویت خود را ارتقا دهید', 'yearlySubscription': 'اشتراک سالانه', 'monthlySubscription': 'اشتراک ماهانه', 'proMonthly': 'Pro ¥۶۰/ماه', - 'proMonthlyDesc': '۷ روز استفاده آزمایشی رایگان، سپس ¥۸۰۰/سال. هر زمان قبل از پایان دوره آزمایشی لغو کنید.', + 'proMonthlyDesc': + '۷ روز استفاده آزمایشی رایگان، سپس ¥۸۰۰/سال. هر زمان قبل از پایان دوره آزمایشی لغو کنید.', 'sevenDayTrial': '۷ روز استفاده آزمایشی رایگان', 'unlimitedMonthly': 'Unlimited ¥۱۲۰/ماه', - 'unlimitedMonthlyDesc': '۷ روز استفاده آزمایشی رایگان، سپس ¥۱۶۰۰/سال. هر زمان قبل از پایان دوره آزمایشی لغو کنید.', - 'trialNote': '*استفاده آزمایشی رایگان برای ۷ روز، سپس سالانه شارژ می‌شود، هر زمان لغو کنید.', + 'unlimitedMonthlyDesc': + '۷ روز استفاده آزمایشی رایگان، سپس ¥۱۶۰۰/سال. هر زمان قبل از پایان دوره آزمایشی لغو کنید.', + 'trialNote': + '*استفاده آزمایشی رایگان برای ۷ روز، سپس سالانه شارژ می‌شود، هر زمان لغو کنید.', 'proPrice': 'Pro ¥۱۲۰', 'proMonthlyPrice': '¥۱۲۰/ماه', 'subscribe': 'اشتراک', 'unlimitedPrice': 'Unlimited ¥۱۹۸', 'unlimitedMonthlyPrice': '¥۱۹۸/ماه', - 'upgradeNote': '*پس از ارتقای اشتراک، روزهای باقیمانده اشتراک اصلی به طور خودکار محاسبه و به حساب پرداخت شما بازپرداخت می‌شود', + 'upgradeNote': + '*پس از ارتقای اشتراک، روزهای باقیمانده اشتراک اصلی به طور خودکار محاسبه و به حساب پرداخت شما بازپرداخت می‌شود', 'buyMoreTranscriptionTime': 'خرید زمان تبدیل متن بیشتر', 'sixThousandMinutes': '۶,۰۰۰ دقیقه', 'threeThousandMinutes': '۳,۰۰۰ دقیقه', 'sixHundredMinutes': '۶۰۰ دقیقه', 'oneHundredTwentyMinutes': '۱۲۰ دقیقه', 'validityPeriod': '*دوره اعتبار: ', - 'validityNote': 'بلافاصله پس از خرید فعال می‌شود، تا ۲ سال پس از فعال‌سازی معتبر است.', + 'validityNote': + 'بلافاصله پس از خرید فعال می‌شود، تا ۲ سال پس از فعال‌سازی معتبر است.', 'purchase': 'خرید', // Meeting模块 - 模版和生成 @@ -505,7 +544,8 @@ const Map faIR = { 'chineseSimplified': 'چینی ماندارین (ساده‌شده)', 'meetingGenerateNow': 'اکنون ایجاد کن', 'keyEventsAnalyzed': '{count} رویداد کلیدی تجزیه و تحلیل شد.', - 'aiAnalysisDesc': 'تجزیه و تحلیل هوش مصنوعی رویدادهای کلیدی را در ضبط‌ها شناسایی می‌کند، به شما امکان می‌دهد رویدادهای مهم را برای ایجاد توسط هوش مصنوعی انتخاب کنید.', + 'aiAnalysisDesc': + 'تجزیه و تحلیل هوش مصنوعی رویدادهای کلیدی را در ضبط‌ها شناسایی می‌کند، به شما امکان می‌دهد رویدادهای مهم را برای ایجاد توسط هوش مصنوعی انتخاب کنید.', // Meeting模块 - 文件操作和状态 'importing': 'در حال وارد کردن...', @@ -525,7 +565,8 @@ const Map faIR = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'ذخیره‌سازی', - 'meetingStoragePermissionExplanation': 'ما به مجوزهای ذخیره‌سازی نیاز داریم تا شما بتوانید فایل‌های صوتی را انتخاب و آپلود کنید.', + 'meetingStoragePermissionExplanation': + 'ما به مجوزهای ذخیره‌سازی نیاز داریم تا شما بتوانید فایل‌های صوتی را انتخاب و آپلود کنید.', 'meetingStoragePermissionPermanentDenial': 'شناسایی شد که شما مجوز ذخیره‌سازی را برای همیشه رد کرده‌اید. برای ادامه استفاده از این ویژگی، لطفاً به تنظیمات برنامه بروید تا مجوز ذخیره‌سازی را به صورت دستی فعال کنید.', @@ -574,7 +615,8 @@ const Map faIR = { 'recentlyUsedNames': 'نام‌های اخیراً استفاده‌شده', 'applyToCurrentParagraph': 'اعمال به پاراگراف فعلی', 'totalTime': 'زمان کل', - 'summarySpeakerWillBeUpdatedAutomatically': 'گویندگان خلاصه به طور خودکار به‌روزرسانی خواهند شد', + 'summarySpeakerWillBeUpdatedAutomatically': + 'گویندگان خلاصه به طور خودکار به‌روزرسانی خواهند شد', // Meeting模块 - 云端同步相关 'syncToCloud': 'همگام‌سازی با ابر', @@ -599,7 +641,8 @@ const Map faIR = { "cloudSync": "شارژ همگام‌سازی ابری", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "دستگاه متصل:", "accountId": "شناسه حساب:", "systemSetting": "تنظیمات سیستم", @@ -621,7 +664,8 @@ const Map faIR = { "voiceServiceInfo": "انتخاب سرویس تشخیص و تولید گفتار", "selectVoiceService": "انتخاب سرویس صوتی", "azureVoiceService": "سرویس گفتار Azure", - "azureVoiceServiceInfo": "سرویس مبتنی بر ابر مایکروسافت که از تولید و تشخیص گفتار با کیفیت بالا پشتیبانی می‌کند", + "azureVoiceServiceInfo": + "سرویس مبتنی بر ابر مایکروسافت که از تولید و تشخیص گفتار با کیفیت بالا پشتیبانی می‌کند", "flutterVoiceService": "سرویس صوتی محلی", "flutterVoiceServiceInfo": "سرویس صوتی محلی دستگاه بدون نیاز به اینترنت", 'timbreService': 'سرویس طنین صدا', @@ -667,7 +711,8 @@ const Map faIR = { "noMacAddress": "بدون آدرس MAC", "licenseCode": "کد مجوز", "confirmUnbind": "تأیید لغو اتصال", - "confirmUnbindMessage": "آیا مطمئن هستید که می‌خواهید اتصال دستگاه «{deviceName}» را لغو کنید؟", + "confirmUnbindMessage": + "آیا مطمئن هستید که می‌خواهید اتصال دستگاه «{deviceName}» را لغو کنید؟", "confirmUnbindAction": "تأیید لغو اتصال", //Agent 模块 @@ -722,9 +767,12 @@ const Map faIR = { 'چه کمکی می‌توانم به شما بکنم؟', 'microphonePermission': 'میکروفون', 'voiceRecognitionPermissionText': 'تشخیص صدا به دسترسی میکروفون نیاز دارد.', - 'voiceTranslationPermissionText': 'تشخیص و ترجمه صدا به دسترسی میکروفون نیاز دارد.', - 'phoneCallPermissionText': 'عملکرد تماس تلفنی برای تماس‌های صوتی به دسترسی میکروفون نیاز دارد.', - 'permissionDeniedText': 'شما مجوز میکروفون را برای همیشه رد کرده‌اید، لطفاً برای فعال کردن آن به تنظیمات سیستم بروید.', + 'voiceTranslationPermissionText': + 'تشخیص و ترجمه صدا به دسترسی میکروفون نیاز دارد.', + 'phoneCallPermissionText': + 'عملکرد تماس تلفنی برای تماس‌های صوتی به دسترسی میکروفون نیاز دارد.', + 'permissionDeniedText': + 'شما مجوز میکروفون را برای همیشه رد کرده‌اید، لطفاً برای فعال کردن آن به تنظیمات سیستم بروید.', 'startVoiceInput': 'شروع ورودی صوتی', 'startPhoneCallMode': 'شروع حالت تماس تلفنی، شروع ورودی صوتی', @@ -747,7 +795,8 @@ const Map faIR = { 'privacyRelated': 'مرتبط با حریم خصوصی', 'copyrightViolation': 'نقض حق کپی‌رایت، حقوق شهرت و غیره من.', 'other': 'دیگر', - 'reportDescriptionHint': 'ما می‌خواهیم دلیل گزارش شما را بدانیم، می‌توانید مشکلی را که با آن مواجه شدید توصیف کنید.', + 'reportDescriptionHint': + 'ما می‌خواهیم دلیل گزارش شما را بدانیم، می‌توانید مشکلی را که با آن مواجه شدید توصیف کنید.', //'submit': '提交', //Message_bubble @@ -778,15 +827,24 @@ const Map faIR = { 'highest': 'حداکثر', 'lowest': 'حداقل', 'futureForecast': 'پیش‌بینی آینده', - 'hotWeatherTip': 'امروز هوا گرم است، لطفاً به پیشگیری از گرما و خنک شدن توجه کنید، برای جلوگیری از گرمازدگی آب بیشتری بنوشید', - 'coldWeatherTip': 'امروز دما پایین است، لطفاً هنگام بیرون رفتن گرم بپوشید و مراقب سرماخوردگی باشید', - 'rainyWeatherTip': 'امروز بارانی است، لطفاً هنگام بیرون رفتن چتر همراه داشته باشید و به ایمنی سفر توجه کنید', - 'snowyWeatherTip': 'امروز برفی است، جاده‌ها لغزنده هستند، لطفاً به ایمنی توجه کنید و گرم بپوشید', - 'foggyWeatherTip': 'امروز مه و غبارآلود است، دید کم است، لطفاً هنگام بیرون رفتن ماسک بزنید', - 'windyWeatherTip': 'امروز باد شدید است، لطفاً هنگام بیرون رفتن به ایمنی توجه کنید و وسایل را محکم کنید', - 'sunnyWeatherTip': 'امروز آفتابی با اشعه ماوراء بنفش قوی است، لطفاً هنگام بیرون رفتن از خود در برابر آفتاب محافظت کنید', - 'temperatureDifferenceTip': 'امروز اختلاف دمای شب و روز زیاد است، لطفاً لباس خود را متناسب با آن تنظیم کنید', - 'comfortableWeatherTip': 'امروز هوا دلپذیر است، عالی برای فعالیت‌های بیرون از خانه', + 'hotWeatherTip': + 'امروز هوا گرم است، لطفاً به پیشگیری از گرما و خنک شدن توجه کنید، برای جلوگیری از گرمازدگی آب بیشتری بنوشید', + 'coldWeatherTip': + 'امروز دما پایین است، لطفاً هنگام بیرون رفتن گرم بپوشید و مراقب سرماخوردگی باشید', + 'rainyWeatherTip': + 'امروز بارانی است، لطفاً هنگام بیرون رفتن چتر همراه داشته باشید و به ایمنی سفر توجه کنید', + 'snowyWeatherTip': + 'امروز برفی است، جاده‌ها لغزنده هستند، لطفاً به ایمنی توجه کنید و گرم بپوشید', + 'foggyWeatherTip': + 'امروز مه و غبارآلود است، دید کم است، لطفاً هنگام بیرون رفتن ماسک بزنید', + 'windyWeatherTip': + 'امروز باد شدید است، لطفاً هنگام بیرون رفتن به ایمنی توجه کنید و وسایل را محکم کنید', + 'sunnyWeatherTip': + 'امروز آفتابی با اشعه ماوراء بنفش قوی است، لطفاً هنگام بیرون رفتن از خود در برابر آفتاب محافظت کنید', + 'temperatureDifferenceTip': + 'امروز اختلاف دمای شب و روز زیاد است، لطفاً لباس خود را متناسب با آن تنظیم کنید', + 'comfortableWeatherTip': + 'امروز هوا دلپذیر است، عالی برای فعالیت‌های بیرون از خانه', "monday": "دوشنبه", "tuesday": "سه‌شنبه", "wednesday": "چهارشنبه", @@ -838,22 +896,28 @@ const Map faIR = { "logout": "خروج از حساب", "logoutTips": "آیا مطمئن هستید که می‌خواهید از حساب فعلی خارج شوید؟", 'deleteAccount': 'حذف حساب', - 'deleteAccountTips': 'آیا مطمئن هستید که می‌خواهید حساب خود را برای همیشه حذف کنید؟ این عمل قابل بازگشت نیست.', + 'deleteAccountTips': + 'آیا مطمئن هستید که می‌خواهید حساب خود را برای همیشه حذف کنید؟ این عمل قابل بازگشت نیست.', 'clean': 'پاک کردن حافظه پنهان', 'cleanTips': 'آیا مطمئن هستید که می‌خواهید حافظه پنهان شخصی را پاک کنید؟', // Profile 错误信息 - 'networkConnectionFailed': 'اتصال شبکه ناموفق بود، لطفاً تنظیمات شبکه را بررسی کرده و دوباره تلاش کنید', - 'serverTemporarilyUnavailable': 'سرور به طور موقت در دسترس نیست، لطفاً بعداً دوباره تلاش کنید', + 'networkConnectionFailed': + 'اتصال شبکه ناموفق بود، لطفاً تنظیمات شبکه را بررسی کرده و دوباره تلاش کنید', + 'serverTemporarilyUnavailable': + 'سرور به طور موقت در دسترس نیست، لطفاً بعداً دوباره تلاش کنید', 'loginExpiredPleaseRelogin': 'ورود منقضی شده است، لطفاً دوباره وارد شوید', 'noPermissionForThisOperation': 'مجوز انجام این عملیات وجود ندارد', 'requestedResourceNotFound': 'منبع درخواستی یافت نشد', - 'imageProcessingFailedPleaseReselect': 'پردازش تصویر ناموفق بود، لطفاً تصویر را دوباره انتخاب کنید', + 'imageProcessingFailedPleaseReselect': + 'پردازش تصویر ناموفق بود، لطفاً تصویر را دوباره انتخاب کنید', 'operationFailedPleaseRetry': 'عملیات ناموفق بود، لطفاً دوباره تلاش کنید', 'serverReturnedError': 'سرور خطا بازگرداند', 'serverError': 'خطای سرور', - 'networkConnectionFailedCheckSettings': 'اتصال شبکه ناموفق بود، لطفاً تنظیمات شبکه را بررسی کنید', - 'serverInternalErrorRetryLater': 'خطای داخلی سرور، لطفاً بعداً دوباره تلاش کنید', + 'networkConnectionFailedCheckSettings': + 'اتصال شبکه ناموفق بود، لطفاً تنظیمات شبکه را بررسی کنید', + 'serverInternalErrorRetryLater': + 'خطای داخلی سرور، لطفاً بعداً دوباره تلاش کنید', // Profile 用户交互 //'error': '错误', @@ -872,13 +936,17 @@ const Map faIR = { // 账号服务相关 'clearUserDataFailed': 'پاک کردن داده‌های کاربر ناموفق بود', // 清理用户数据失败 'deleteUserDataFailed': 'حذف داده‌های کاربر ناموفق بود', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'خروج از حساب شخص ثالث موفقیت‌آمیز بود', // 第三方登录退出成功 + 'thirdPartyLogoutSuccess': + 'خروج از حساب شخص ثالث موفقیت‌آمیز بود', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'خروج از حساب شخص ثالث ناموفق بود', // 第三方登录退出失败 'signOutProcessError': 'خطا در طول فرآیند خروج از حساب رخ داد', // 登出过程发生错误 - 'deleteAccountProcessError': 'خطا در طول فرآیند حذف حساب رخ داد', // 删除账号过程发生错误 + 'deleteAccountProcessError': + 'خطا در طول فرآیند حذف حساب رخ داد', // 删除账号过程发生错误 'userDataClearSuccess': 'داده‌های کاربر با موفقیت پاک شد', // 用户数据清理成功 - 'allUserDataClearSuccess': 'تمام داده‌های کاربر با موفقیت پاک شد', // 所有用户数据清理成功 - 'accountServiceInitialized': 'AccountService آماده‌سازی شد', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'تمام داده‌های کاربر با موفقیت پاک شد', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'AccountService آماده‌سازی شد', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'دریافت وضعیت مجوز ناموفق بود', @@ -901,10 +969,14 @@ const Map faIR = { 'locationInfo': 'اطلاعات موقعیت مکانی', 'phonePermissionDesc': 'برای عملکرد تماس تلفنی استفاده می‌شود', 'smsPermissionDesc': 'برای عملکرد پیامک استفاده می‌شود', - 'alarmPermissionDesc': 'برای تنظیم زنگ‌های هشدار دقیق استفاده می‌شود تا اطمینان حاصل شود یادآوری‌ها به موقع فعال می‌شوند', - 'calendarWritePermissionDesc': 'برای ایجاد رویدادها و یادآوری‌های تقویم استفاده می‌شود', - 'calendarFullAccessPermissionDesc': 'برای خواندن و مدیریت رویدادها و یادآوری‌های تقویم استفاده می‌شود', - 'locationPermissionDesc': 'برای دریافت اطلاعات موقعیت مکانی فعلی استفاده می‌شود', + 'alarmPermissionDesc': + 'برای تنظیم زنگ‌های هشدار دقیق استفاده می‌شود تا اطمینان حاصل شود یادآوری‌ها به موقع فعال می‌شوند', + 'calendarWritePermissionDesc': + 'برای ایجاد رویدادها و یادآوری‌های تقویم استفاده می‌شود', + 'calendarFullAccessPermissionDesc': + 'برای خواندن و مدیریت رویدادها و یادآوری‌های تقویم استفاده می‌شود', + 'locationPermissionDesc': + 'برای دریافت اطلاعات موقعیت مکانی فعلی استفاده می‌شود', 'appFunctionNeeds': 'عملکرد برنامه نیاز دارد', 'authorized': 'مجاز', 'unauthorized': 'غیرمجاز', @@ -915,43 +987,69 @@ const Map faIR = { 'permissionRequestError': 'خطا در درخواست مجوز', 'phonePermissionDetailDesc': 'عملکرد تماس تلفنی به مجوز تلفن نیاز دارد', 'smsPermissionDetailDesc': 'عملکرد پیامک به مجوز پیامک نیاز دارد', - 'alarmPermissionDetailDesc': 'این مجوز برای تنظیم زنگ‌های هشدار دقیق و اطمینان از فعال شدن یادآوری‌ها به موقع مورد نیاز است', - 'calendarWritePermissionDetailDesc': 'ایجاد رویدادهای تقویم به مجوز نوشتن در تقویم نیاز دارد', - 'calendarFullAccessPermissionDetailDesc': 'مدیریت رویدادهای تقویم به مجوز دسترسی کامل به تقویم نیاز دارد', - 'locationPermissionDetailDesc': 'دریافت اطلاعات موقعیت مکانی به مجوز موقعیت مکانی نیاز دارد', + 'alarmPermissionDetailDesc': + 'این مجوز برای تنظیم زنگ‌های هشدار دقیق و اطمینان از فعال شدن یادآوری‌ها به موقع مورد نیاز است', + 'calendarWritePermissionDetailDesc': + 'ایجاد رویدادهای تقویم به مجوز نوشتن در تقویم نیاز دارد', + 'calendarFullAccessPermissionDetailDesc': + 'مدیریت رویدادهای تقویم به مجوز دسترسی کامل به تقویم نیاز دارد', + 'locationPermissionDetailDesc': + 'دریافت اطلاعات موقعیت مکانی به مجوز موقعیت مکانی نیاز دارد', 'contactsPermissionDesc': 'برای دسترسی به اطلاعات مخاطبین استفاده می‌شود', - 'contactsPermissionDetailDesc': 'عملکرد تماس تلفنی و پیامک برای انتخاب مخاطبین به مجوز مخاطبین نیاز دارد', - 'bluetoothPermissionDesc': 'برای اتصال و مدیریت دستگاه‌های بلوتوث استفاده می‌شود', - 'bluetoothPermissionDetailDesc': 'اتصال به هدفون‌های بلوتوث و سایر دستگاه‌ها به مجوز بلوتوث نیاز دارد', - 'bluetoothScanPermissionDesc': 'برای اسکن دستگاه‌های بلوتوث اطراف استفاده می‌شود', - 'bluetoothScanPermissionDetailDesc': 'اسکن دستگاه‌های بلوتوث اطراف به مجوز اسکن بلوتوث نیاز دارد', - 'bluetoothConnectPermissionDesc': 'برای اتصال به دستگاه‌های بلوتوث استفاده می‌شود', - 'bluetoothConnectPermissionDetailDesc': 'اتصال به دستگاه‌های بلوتوث به مجوز اتصال بلوتوث نیاز دارد', + 'contactsPermissionDetailDesc': + 'عملکرد تماس تلفنی و پیامک برای انتخاب مخاطبین به مجوز مخاطبین نیاز دارد', + 'bluetoothPermissionDesc': + 'برای اتصال و مدیریت دستگاه‌های بلوتوث استفاده می‌شود', + 'bluetoothPermissionDetailDesc': + 'اتصال به هدفون‌های بلوتوث و سایر دستگاه‌ها به مجوز بلوتوث نیاز دارد', + 'bluetoothScanPermissionDesc': + 'برای اسکن دستگاه‌های بلوتوث اطراف استفاده می‌شود', + 'bluetoothScanPermissionDetailDesc': + 'اسکن دستگاه‌های بلوتوث اطراف به مجوز اسکن بلوتوث نیاز دارد', + 'bluetoothConnectPermissionDesc': + 'برای اتصال به دستگاه‌های بلوتوث استفاده می‌شود', + 'bluetoothConnectPermissionDetailDesc': + 'اتصال به دستگاه‌های بلوتوث به مجوز اتصال بلوتوث نیاز دارد', 'notificationPermissionDesc': 'برای ارسال پیام‌های اعلان استفاده می‌شود', - 'notificationPermissionDetailDesc': 'برنامه برای ارسال هشدارها و پیام‌های مهم به شما به مجوز اعلان نیاز دارد', - 'appNeedsPermissionForFullFunction': 'برنامه برای ارائه عملکرد کامل به این مجوز نیاز دارد', - 'permanentDenialText': 'شما مجوز {permission} را برای همیشه رد کرده‌اید، لطفاً برای فعال کردن آن به تنظیمات برنامه بروید', + 'notificationPermissionDetailDesc': + 'برنامه برای ارسال هشدارها و پیام‌های مهم به شما به مجوز اعلان نیاز دارد', + 'appNeedsPermissionForFullFunction': + 'برنامه برای ارائه عملکرد کامل به این مجوز نیاز دارد', + 'permanentDenialText': + 'شما مجوز {permission} را برای همیشه رد کرده‌اید، لطفاً برای فعال کردن آن به تنظیمات برنامه بروید', 'goToSettings': 'رفتن به تنظیمات', // 权限申请 'bluetoothScan': 'اسکن بلوتوث', 'bluetoothConnect': 'اتصال بلوتوث', - 'bluetoothScanExplanation': 'برنامه برای اسکن دستگاه‌های بلوتوث اطراف به مجوز اسکن بلوتوث نیاز دارد.', - 'bluetoothConnectExplanation': 'برنامه برای اتصال به دستگاه‌های بلوتوث به مجوز اتصال بلوتوث نیاز دارد.', - 'locationForBluetoothExplanation': 'برنامه برای اسکن دستگاه‌های بلوتوث به مجوز موقعیت مکانی نیاز دارد.', - 'bluetoothScanPermanentDenial': 'مجوز اسکن بلوتوث برای همیشه رد شده است، لطفاً برای فعال کردن آن به صورت دستی به تنظیمات بروید.', - 'bluetoothConnectPermanentDenial': 'مجوز اتصال بلوتوث برای همیشه رد شده است، لطفاً برای فعال کردن آن به صورت دستی به تنظیمات بروید.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'برنامه برای اسکن دستگاه‌های بلوتوث اطراف به مجوز اسکن بلوتوث نیاز دارد.', + 'bluetoothConnectExplanation': + 'برنامه برای اتصال به دستگاه‌های بلوتوث به مجوز اتصال بلوتوث نیاز دارد.', + 'locationForBluetoothExplanation': + 'برنامه برای اسکن دستگاه‌های بلوتوث به مجوز موقعیت مکانی نیاز دارد.', + 'bluetoothScanPermanentDenial': + 'مجوز اسکن بلوتوث برای همیشه رد شده است، لطفاً برای فعال کردن آن به صورت دستی به تنظیمات بروید.', + 'bluetoothConnectPermanentDenial': + 'مجوز اتصال بلوتوث برای همیشه رد شده است، لطفاً برای فعال کردن آن به صورت دستی به تنظیمات بروید.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'اعلان', 'locationPermission': 'موقعیت مکانی', - 'notificationPermissionExplanation': 'مجوز اعلان برای نمایش وضعیت پخش موسیقی مورد نیاز است.', - 'locationPermissionExplanation': 'مجوز موقعیت مکانی برای دریافت موقعیت مکانی فعلی مورد نیاز است.', - 'notificationPermissionPermanentDenial': 'شما مجوز اعلان را برای همیشه رد کرده‌اید، لطفاً برای فعال کردن آن به تنظیمات بروید.', - 'locationPermissionPermanentDenial': 'شما مجوز موقعیت مکانی را برای همیشه رد کرده‌اید، لطفاً برای فعال کردن آن به تنظیمات بروید.', + 'notificationPermissionExplanation': + 'مجوز اعلان برای نمایش وضعیت پخش موسیقی مورد نیاز است.', + 'locationPermissionExplanation': + 'مجوز موقعیت مکانی برای دریافت موقعیت مکانی فعلی مورد نیاز است.', + 'notificationPermissionPermanentDenial': + 'شما مجوز اعلان را برای همیشه رد کرده‌اید، لطفاً برای فعال کردن آن به تنظیمات بروید.', + 'locationPermissionPermanentDenial': + 'شما مجوز موقعیت مکانی را برای همیشه رد کرده‌اید، لطفاً برای فعال کردن آن به تنظیمات بروید.', //'microphonePermission': '录音', 'storagePermission': 'ذخیره‌سازی', - 'microphonePermissionExplanation': 'ما برای ضبط محتوای صوتی به مجوز میکروفون نیاز داریم.', - 'storagePermissionExplanation': 'ما به مجوز ذخیره‌سازی نیاز داریم تا شما بتوانید فایل‌های صوتی را انتخاب و آپلود کنید.', + 'microphonePermissionExplanation': + 'ما برای ضبط محتوای صوتی به مجوز میکروفون نیاز داریم.', + 'storagePermissionExplanation': + 'ما به مجوز ذخیره‌سازی نیاز داریم تا شما بتوانید فایل‌های صوتی را انتخاب و آپلود کنید.', 'microphonePermissionPermanentDenial': 'مجوز میکروفون برای همیشه رد شده است. برای ادامه استفاده از این ویژگی، لطفاً به تنظیمات برنامه بروید تا مجوز میکروفون را به صورت دستی فعال کنید.', 'storagePermissionPermanentDenial': @@ -961,7 +1059,8 @@ const Map faIR = { 'permissionUtilNeed': 'نیاز به مجوز ', 'permissionUtilPermission': ' ', 'permissionUtilRestricted': ' مجوز محدود شده است', - 'permissionUtilRestrictedMessage': 'این ویژگی در دستگاه فعلی در دسترس نیست یا محدود شده است، لطفاً تنظیمات دستگاه یا محدودیت‌های سیستم را بررسی کنید', + 'permissionUtilRestrictedMessage': + 'این ویژگی در دستگاه فعلی در دسترس نیست یا محدود شده است، لطفاً تنظیمات دستگاه یا محدودیت‌های سیستم را بررسی کنید', 'permissionUtilConfirm': 'تأیید', // 版本更新对话框 @@ -970,8 +1069,10 @@ const Map faIR = { 'updateNow': 'اکنون به‌روزرسانی کن', // 立即更新按钮 'checkUpdate': 'بررسی به‌روزرسانی', // 检查更新按钮 'updateFailed': 'به‌روزرسانی ناموفق بود', // 更新失败提示 - 'cannotOpenAppStore': 'نمی‌توان فروشگاه برنامه را باز کرد، لطفاً به صورت دستی به‌روزرسانی کنید', // 无法打开应用商店提示 - 'updateErrorRetry': 'خطا در طول به‌روزرسانی رخ داد، لطفاً بعداً دوباره تلاش کنید', // 更新错误重试提示 + 'cannotOpenAppStore': + 'نمی‌توان فروشگاه برنامه را باز کرد، لطفاً به صورت دستی به‌روزرسانی کنید', // 无法打开应用商店提示 + 'updateErrorRetry': + 'خطا در طول به‌روزرسانی رخ داد، لطفاً بعداً دوباره تلاش کنید', // 更新错误重试提示 //国家列表 "邮箱": "ایمیل", @@ -1107,7 +1208,8 @@ const Map faIR = { "selectTargetLanguage": "انتخاب زبان مقصد", "me": "من", "counterPart": "طرف مقابل", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1225,12 @@ const Map faIR = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "پاک کردن تاریخچه", - "clearHistoryConfirm": "آیا مطمئن هستید که می‌خواهید تمام تاریخچه ترجمه را پاک کنید؟ این عمل قابل بازگشت نیست.", + "clearHistoryConfirm": + "آیا مطمئن هستید که می‌خواهید تمام تاریخچه ترجمه را پاک کنید؟ این عمل قابل بازگشت نیست.", "unknownLanguage": "زبان ناشناخته", "deleteSessionRecord": "حذف سابقه جلسه", - "deleteSessionConfirm": "آیا مطمئن هستید که می‌خواهید تمام سوابق ترجمه این جلسه را حذف کنید؟ این عمل قابل بازگشت نیست.", + "deleteSessionConfirm": + "آیا مطمئن هستید که می‌خواهید تمام سوابق ترجمه این جلسه را حذف کنید؟ این عمل قابل بازگشت نیست.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1262,20 @@ const Map faIR = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1197,9 +1306,11 @@ const Map faIR = { "summaryGenerated": "خلاصه ایجاد شد", "generating": "در حال ایجاد...", "regenerate": "ایجاد مجدد", - "summaryTimeoutMessage": "درخواست ایجاد خلاصه به پایان رسید، احتمالاً به دلیل مشکلات شبکه یا مشغولی سرور.", + "summaryTimeoutMessage": + "درخواست ایجاد خلاصه به پایان رسید، احتمالاً به دلیل مشکلات شبکه یا مشغولی سرور.", "deleteTranslationRecord": "حذف سابقه ترجمه", - "deleteTranslationConfirm": "آیا مطمئن هستید که می‌خواهید این سابقه ترجمه را حذف کنید؟ این عمل قابل بازگشت نیست.", + "deleteTranslationConfirm": + "آیا مطمئن هستید که می‌خواهید این سابقه ترجمه را حذف کنید؟ این عمل قابل بازگشت نیست.", "originalText": "متن اصلی", "translatedText": "متن ترجمه‌شده", "sessionSummary": "خلاصه جلسه", @@ -1227,19 +1338,25 @@ const Map faIR = { // 配对状态文本 "readyToPair": "آماده برای جفت‌سازی", "preparingPairingEnvironment": "در حال آماده‌سازی محیط جفت‌سازی...", - "connectDeepSoundViaSystemBluetooth": "لطفاً ابتدا دستگاه Voitrans را از طریق بلوتوث سیستم متصل کنید", + "connectDeepSoundViaSystemBluetooth": + "لطفاً ابتدا دستگاه Voitrans را از طریق بلوتوث سیستم متصل کنید", "deviceBindingConfirm": "تأیید اتصال دستگاه...", "establishingDeviceAssociation": "در حال برقراری ارتباط دستگاه...", "waitingCompletePairing": "لطفاً صبر کنید، در حال تکمیل جفت‌سازی...", - "pairingSuccessRedirecting": "جفت‌سازی موفقیت‌آمیز بود! در حال هدایت به صفحه اصلی...", + "pairingSuccessRedirecting": + "جفت‌سازی موفقیت‌آمیز بود! در حال هدایت به صفحه اصلی...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "لطفاً اطمینان حاصل کنید که دستگاه متصل Voitrans است", - "deviceAlreadyBoundToOtherAccount": "این دستگاه قبلاً به حساب دیگری متصل شده است", + "ensureConnectedDeepSoundDevice": + "لطفاً اطمینان حاصل کنید که دستگاه متصل Voitrans است", + "deviceAlreadyBoundToOtherAccount": + "این دستگاه قبلاً به حساب دیگری متصل شده است", "deviceAssociationFailed": "ارتباط دستگاه ناموفق بود، لطفاً دوباره تلاش کنید", - "scanTimeoutEnsureDeviceNearby": "پایان مهلت اسکن، لطفاً اطمینان حاصل کنید که دستگاه در نزدیکی است", + "scanTimeoutEnsureDeviceNearby": + "پایان مهلت اسکن، لطفاً اطمینان حاصل کنید که دستگاه در نزدیکی است", "networkError": "خطای شبکه", - "authorizationFailedCheckCode": "مجوز ناموفق بود، لطفاً کد مجوز را بررسی کنید", + "authorizationFailedCheckCode": + "مجوز ناموفق بود، لطفاً کد مجوز را بررسی کنید", "pairingFailedRetry": "جفت‌سازی ناموفق بود، لطفاً دوباره تلاش کنید", // 配对控制器相关 @@ -1248,7 +1365,8 @@ const Map faIR = { 'deviceDisconnected': 'دستگاه قطع شد', 'readyToStartPairing': 'آماده برای شروع جفت‌سازی', 'checkingEnvironment': 'در حال بررسی محیط...', - 'ensureHeadsetOnAndPairingMode': 'لطفاً اطمینان حاصل کنید که هدست روشن و در حالت جفت‌سازی است', + 'ensureHeadsetOnAndPairingMode': + 'لطفاً اطمینان حاصل کنید که هدست روشن و در حالت جفت‌سازی است', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1266,19 +1384,26 @@ const Map faIR = { 'verificationFailedRetry': 'تأیید ناموفق بود، لطفاً دوباره تلاش کنید', 'invalidDeviceAddress': 'آدرس دستگاه نامعتبر است', 'bleDeviceAssociationFailed': 'ارتباط دستگاه BLE ناموفق بود', - 'deviceAssociationFailedRetry': 'ارتباط دستگاه ناموفق بود، لطفاً دوباره تلاش کنید', - 'bleConnectionTimeoutRetry': 'پایان مهلت اتصال BLE. لطفاً ایرفون را مجدداً راه‌اندازی کرده و دوباره تلاش کنید', + 'deviceAssociationFailedRetry': + 'ارتباط دستگاه ناموفق بود، لطفاً دوباره تلاش کنید', + 'bleConnectionTimeoutRetry': + 'پایان مهلت اتصال BLE. لطفاً ایرفون را مجدداً راه‌اندازی کرده و دوباره تلاش کنید', 'blePairingStartupFailed': 'شروع جفت‌سازی BLE ناموفق بود', 'bleConnectionFailed': 'اتصال BLE ناموفق بود', - 'deviceAuthorizationFailedCheckCode': 'مجوز دستگاه ناموفق بود، لطفاً کد مجوز را بررسی کنید', + 'deviceAuthorizationFailedCheckCode': + 'مجوز دستگاه ناموفق بود، لطفاً کد مجوز را بررسی کنید', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'فعال‌سازی دستی بلوتوث مورد نیاز است', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'لطفاً این مراحل را دنبال کنید:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'فعال کردن بلوتوث: تنظیمات ← بلوتوث ← روشن کردن', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'اتصال دستگاه: دستگاه خود را در «دستگاه‌های من» پیدا کنید و برای اتصال ضربه بزنید', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'بازگشت به برنامه برای ادامه فرآیند جفت‌سازی', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'نکته: می‌توانید آیکون بلوتوث را در مرکز کنترل به مدت طولانی فشار دهید تا به سرعت به تنظیمات بلوتوث دسترسی پیدا کنید', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'فعال کردن بلوتوث: تنظیمات ← بلوتوث ← روشن کردن', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'اتصال دستگاه: دستگاه خود را در «دستگاه‌های من» پیدا کنید و برای اتصال ضربه بزنید', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'بازگشت به برنامه برای ادامه فرآیند جفت‌سازی', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'نکته: می‌توانید آیکون بلوتوث را در مرکز کنترل به مدت طولانی فشار دهید تا به سرعت به تنظیمات بلوتوث دسترسی پیدا کنید', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'متوجه شدم', // 我知道了 //用户反馈页 @@ -1291,10 +1416,12 @@ const Map faIR = { 'contactHint': 'ایمیل/تلفن، تا بتوانیم با شما تماس بگیریم', 'submit': 'ارسال', 'feedbackSubmitSuccess': 'بازخورد با موفقیت ارسال شد، متشکریم!', - 'feedbackSubmitFailed': 'ارسال بازخورد ناموفق بود، لطفاً بعداً دوباره تلاش کنید', + 'feedbackSubmitFailed': + 'ارسال بازخورد ناموفق بود، لطفاً بعداً دوباره تلاش کنید', // OTA升级模块 - "upgradeExitConfirm": "در حال ارتقا، خروج فرآیند ارتقا را قطع خواهد کرد. آیا مطمئن هستید که می‌خواهید خارج شوید؟", + "upgradeExitConfirm": + "در حال ارتقا، خروج فرآیند ارتقا را قطع خواهد کرد. آیا مطمئن هستید که می‌خواهید خارج شوید؟", "deviceModel": "مدل دستگاه", "unknownDevice": "دستگاه ناشناخته", "currentFirmwareVersion": "نسخه سفت‌افزار فعلی", @@ -1307,14 +1434,18 @@ const Map faIR = { "retryConnection": "تلاش مجدد برای اتصال", "ota_updateNow": "اکنون به‌روزرسانی کن", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "لطفاً دستگاه را متصل نگه دارید، برنامه را نبندید", "doNotDisconnect": "اتصال را قطع نکنید", "charging": "در حال شارژ", "updateContent": "محتوای به‌روزرسانی", - "removeEarbudsEnsureBattery": "هر دو ایرباد را بردارید و اطمینان حاصل کنید که سطح باتری بالای ۲۰٪ است", + "removeEarbudsEnsureBattery": + "هر دو ایرباد را بردارید و اطمینان حاصل کنید که سطح باتری بالای ۲۰٪ است", // 音乐列表页面 "noMusic": "بدون موسیقی", // 暂无音乐 @@ -1376,8 +1507,10 @@ const Map faIR = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/fi_fi.dart b/lib/core/translations/language/fi_fi.dart index dabb4447a..e69482122 100644 --- a/lib/core/translations/language/fi_fi.dart +++ b/lib/core/translations/language/fi_fi.dart @@ -33,6 +33,7 @@ const Map fiFI = { "spanish": "Espanja", "portuguese": "Portugali", "traditionalChinese": "Perinteinen kiina", + "traditionalChineseHK": "Perinteinen kiina (Hongkong)", "japanese": "Japani", "korean": "Korea", "french": "Ranska", @@ -71,7 +72,8 @@ const Map fiFI = { // 登录页 "welcome": "Tervetuloa", - "loginTips": "Kirjaudu sisään tai rekisteröidy puhelinnumerollasi tai sähköpostillasi", + "loginTips": + "Kirjaudu sisään tai rekisteröidy puhelinnumerollasi tai sähköpostillasi", "accountNumber": "Puhelinnumero tai sähköposti", "verificationCode": "Vahvistuskoodi", "getCode": "Hae koodi", @@ -90,7 +92,8 @@ const Map fiFI = { "tip": "Vinkki", "pleaseEnterCompleteCode": "Syötä koko vahvistuskoodi", "loginFailed": "Kirjautuminen epäonnistui, yritä uudelleen", - 'pleaseAcceptPrivacyPolicy': 'Lue ja hyväksy ensin tietosuojakäytäntö ja käyttäjäsopimus', + 'pleaseAcceptPrivacyPolicy': + 'Lue ja hyväksy ensin tietosuojakäytäntö ja käyttäjäsopimus', "enterVerificationCode": "Syötä vahvistuskoodi", "verificationCodeSentTo": "Vahvistuskoodi lähetetty osoitteeseen", "resendVerificationCode": "Lähetä vahvistuskoodi uudelleen", @@ -99,7 +102,8 @@ const Map fiFI = { // 隐私政策弹窗 "loginDeclaration": "Voitransin ilmoitus", // Voitrans 声明 - "welcomeToThisApp": "Tervetuloa Voitransiin, lue huolellisesti", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Tervetuloa Voitransiin, lue huolellisesti", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +119,29 @@ const Map fiFI = { "signal": "Signaali", "deviceId": "Laitteen tunnus", "firmwareVersion": "Laiteohjelmiston versio", - "disconnectedDevice": "Ei yhdistettyä laitetta, yhdistä napsauttamalla alla olevaa painiketta", + "disconnectedDevice": + "Ei yhdistettyä laitetta, yhdistä napsauttamalla alla olevaa painiketta", "connectDevice": "Yhdistä laite", "topAiExperiences": "Suosituimmat AI-kokemukset", "aiAssistant": "Kattava AI-avustaja", - "aiAssistantInfo": "Yksinomainen 24/7-konsultti, vastaa kysymyksiin, antaa ehdotuksia", + "aiAssistantInfo": + "Yksinomainen 24/7-konsultti, vastaa kysymyksiin, antaa ehdotuksia", "interpretation": "Simultaanitulkkaus", - "simultaneousInterpretationInfo": "Reaaliaikainen käännös yli 80 kielelle, huolettomat ulkomaanmatkat", + "simultaneousInterpretationInfo": + "Reaaliaikainen käännös yli 80 kielelle, huolettomat ulkomaanmatkat", "aiCompanion": "Perheen seuralainen", "aiCompanionInfo": "Ymmärtää sinua, lämmin seura", "homeSlogan": "Maailman yhdistäminen, äänen ylittäminen", - "turnEarphones": "Avaa kuulokkeiden latauskotelo ja aseta kuulokkeet korviisi", + "turnEarphones": + "Avaa kuulokkeiden latauskotelo ja aseta kuulokkeet korviisi", "currentlyConnected": "Tällä hetkellä yhdistetty:", "unsystemSetup": "Siirry järjestelmäasetuksiin", "talkLater": "Myöhemmin", "initializing": "Alustetaan...", "bluetoothInitializationFailure": "Bluetooth-palvelun alustus epäonnistui", "checkingPermissions": "Tarkistetaan käyttöoikeuksia...", - "lackPermissions": "Bluetooth-käyttöoikeudet puuttuvat ja lokaatioon pääsy on tarpeen", + "lackPermissions": + "Bluetooth-käyttöoikeudet puuttuvat ja lokaatioon pääsy on tarpeen", "searchingDevice": "Etsitään laitteita...", "findConnectedDevice": "Yhdistetty laite löytyi", "notFound": "Yhdistettyä Bluetooth-laitetta ei löytynyt", @@ -175,7 +184,8 @@ const Map fiFI = { "healthConsultant": "Monitoiminen AI-keskustelu", "healthConsultantInfo": "Tarjoaa enemmän AI-keskustelutoimintoja", "conferenceAssistant": "Yrityskokousavustaja", - "conferenceAssistantInfo": "Reaaliaikainen pöytäkirjan pito, monikielinen käännös", + "conferenceAssistantInfo": + "Reaaliaikainen pöytäkirjan pito, monikielinen käännös", "usageStats": "Käyttöstatistiikka", "usageStatsInfo": "Näytä sovelluksen käytön statistiikka", "scene": "Skenaario", @@ -218,7 +228,8 @@ const Map fiFI = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +285,10 @@ const Map fiFI = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +297,35 @@ const Map fiFI = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +334,10 @@ const Map fiFI = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +352,8 @@ const Map fiFI = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Ohita", @@ -355,7 +379,8 @@ const Map fiFI = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +430,8 @@ const Map fiFI = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +486,54 @@ const Map fiFI = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +545,8 @@ const Map fiFI = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +566,8 @@ const Map fiFI = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +616,8 @@ const Map fiFI = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +642,8 @@ const Map fiFI = { "cloudSync": "Pääsyvaraus cloud-synkronointiin", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Yhdistetty laite:", "accountId": "Tilin tunnus:", "systemSetting": "Järjestelmäasetukset", @@ -612,7 +656,8 @@ const Map fiFI = { "privacySettings": "Tietosuoja-asetukset", "privacySettingsInfo": "Hallitse tiedonkeruuta ja käyttöoikeuksia", "permissionManagement": "Käyttöoikeuksien hallinta", // 权限管理 - "permissionManagementInfo": "Hallitse sovelluksen käyttöoikeusasetuksia", // 管理应用权限设置 + "permissionManagementInfo": + "Hallitse sovelluksen käyttöoikeusasetuksia", // 管理应用权限设置 "aboutApplication": "Tietoja sovelluksesta", "versions": "Versio", "checkUpdates": "Tarkista päivitykset", @@ -621,9 +666,11 @@ const Map fiFI = { "voiceServiceInfo": "Valitse puheentunnistus- ja synteesipalvelu", "selectVoiceService": "Valitse äänipalvelu", "azureVoiceService": "Azure-äänipalvelu", - "azureVoiceServiceInfo": "Microsoftin pilvipohjainen äänipalvelu, tukee korkealaatuista puhesynteesiä ja -tunnistusta", + "azureVoiceServiceInfo": + "Microsoftin pilvipohjainen äänipalvelu, tukee korkealaatuista puhesynteesiä ja -tunnistusta", "flutterVoiceService": "Flutter paikallinen äänipalvelu", - "flutterVoiceServiceInfo": "Laitteen paikallinen äänipalvelu, voidaan käyttää ilman internetyhteyttä", + "flutterVoiceServiceInfo": + "Laitteen paikallinen äänipalvelu, voidaan käyttää ilman internetyhteyttä", 'timbreService': 'Äänensävypalvelu', 'timbreServiceInfo': 'Valitse äänensävyn puhesynteesipalvelu', 'defaultTimbre': 'Oletusäänensävy', @@ -634,7 +681,8 @@ const Map fiFI = { 'pleaseRead': 'Lue ääneen', 'completeRecording': 'Lopeta tallennus', "firmwareUpgrade": "Laiteohjelmiston päivitys", - "bleHeadsetFirmwareUpgrade": "BLE-kuulokkeiden laiteohjelmiston version päivitys", + "bleHeadsetFirmwareUpgrade": + "BLE-kuulokkeiden laiteohjelmiston version päivitys", "deviceManagement": "Laitehallinta", "manageConnectedDevices": "Hallitse yhdistettyjä Bluetooth-laitteita", @@ -652,7 +700,8 @@ const Map fiFI = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Reaaliaikainen puhekeskustelu", - "realtimeVoiceChatInfo": "Koe älykäs puhevuorovaikutustoiminto (toiminnon esikatselu)", + "realtimeVoiceChatInfo": + "Koe älykäs puhevuorovaikutustoiminto (toiminnon esikatselu)", "loading": "Ladataan...", //设备管理页面 @@ -667,7 +716,8 @@ const Map fiFI = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -721,10 +771,14 @@ const Map fiFI = { '• Hallitsemaan kuulokkeiden toimintoja\n\n' 'Miten voin auttaa sinua?', 'microphonePermission': 'Mikrofoni', - 'voiceRecognitionPermissionText': 'Puheentunnistus vaatii mikrofonin käyttöoikeuden.', - 'voiceTranslationPermissionText': 'Puheentunnistus ja -kääntäminen vaativat mikrofonin käyttöoikeuden.', - 'phoneCallPermissionText': 'Soittaminen vaatii mikrofonin käyttöoikeuden äänipuheluita varten.', - 'permissionDeniedText': 'Olet pysyvästi kieltänyt mikrofonin käyttöoikeuden, ota se käyttöön järjestelmäasetuksista.', + 'voiceRecognitionPermissionText': + 'Puheentunnistus vaatii mikrofonin käyttöoikeuden.', + 'voiceTranslationPermissionText': + 'Puheentunnistus ja -kääntäminen vaativat mikrofonin käyttöoikeuden.', + 'phoneCallPermissionText': + 'Soittaminen vaatii mikrofonin käyttöoikeuden äänipuheluita varten.', + 'permissionDeniedText': + 'Olet pysyvästi kieltänyt mikrofonin käyttöoikeuden, ota se käyttöön järjestelmäasetuksista.', 'startVoiceInput': 'Aloita puhesyöttö', 'startPhoneCallMode': 'Aloita puhelutila, aloita puhesyöttö', @@ -747,7 +801,8 @@ const Map fiFI = { 'privacyRelated': 'Tietosuojaan liittyvä', 'copyrightViolation': 'Loukkaa tekijänoikeuksiani, mainettani jne.', 'other': 'Muu', - 'reportDescriptionHint': 'Haluamme tietää, miksi ilmoitat, voit kuvailla kohtaamaasi ongelmaa.', + 'reportDescriptionHint': + 'Haluamme tietää, miksi ilmoitat, voit kuvailla kohtaamaasi ongelmaa.', //'submit': '提交', //Message_bubble @@ -779,13 +834,20 @@ const Map fiFI = { 'lowest': 'Matalin', 'futureForecast': 'Tulevaisuuden ennuste', 'hotWeatherTip': 'Tänään on kuuma, varo lämpöhalvausta ja juo paljon vettä', - 'coldWeatherTip': 'Tänään lämpötila on alhainen, pukeudu lämpimästi ulos mennessäsi, jotta et vilustu', - 'rainyWeatherTip': 'Tänään sataa, ota sateenvarjo mukaan ulos mennessäsi ja ole varovainen', - 'snowyWeatherTip': 'Tänään sataa lunta, tie on liukas, ole varovainen ja pukeudu lämpimästi', - 'foggyWeatherTip': 'Tänään on sumuista, näkyvyys on huono, käytä maskia ulos mennessäsi', - 'windyWeatherTip': 'Tänään on tuulista, ole varovainen ulos mennessäsi ja kiinnitä tavarasi', - 'sunnyWeatherTip': 'Tänään on aurinkoista ja UV-säteily on voimakasta, käytä aurinkovoidetta ulos mennessäsi', - 'temperatureDifferenceTip': 'Tänään on suuri lämpötilaero päivän ja yön välillä, säädä vaatetustasi', + 'coldWeatherTip': + 'Tänään lämpötila on alhainen, pukeudu lämpimästi ulos mennessäsi, jotta et vilustu', + 'rainyWeatherTip': + 'Tänään sataa, ota sateenvarjo mukaan ulos mennessäsi ja ole varovainen', + 'snowyWeatherTip': + 'Tänään sataa lunta, tie on liukas, ole varovainen ja pukeudu lämpimästi', + 'foggyWeatherTip': + 'Tänään on sumuista, näkyvyys on huono, käytä maskia ulos mennessäsi', + 'windyWeatherTip': + 'Tänään on tuulista, ole varovainen ulos mennessäsi ja kiinnitä tavarasi', + 'sunnyWeatherTip': + 'Tänään on aurinkoista ja UV-säteily on voimakasta, käytä aurinkovoidetta ulos mennessäsi', + 'temperatureDifferenceTip': + 'Tänään on suuri lämpötilaero päivän ja yön välillä, säädä vaatetustasi', 'comfortableWeatherTip': 'Tänään sää on miellyttävä, hyvä aika ulkoiluun', "monday": "Ma", "tuesday": "Ti", @@ -838,22 +900,30 @@ const Map fiFI = { "logout": "Kirjaudu ulos", "logoutTips": "Oletko varma, että haluat kirjautua ulos nykyisestä tilistä?", 'deleteAccount': 'Poista tili', - 'deleteAccountTips': 'Oletko varma, että haluat poistaa tilisi pysyvästi? Tätä toimintoa ei voi kumota.', + 'deleteAccountTips': + 'Oletko varma, että haluat poistaa tilisi pysyvästi? Tätä toimintoa ei voi kumota.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Verkkoyhteys epäonnistui, tarkista verkkoyhteyden asetukset ja yritä uudelleen', - 'serverTemporarilyUnavailable': 'Palvelin on väliaikaisesti poissa käytöstä, yritä myöhemmin uudelleen', - 'loginExpiredPleaseRelogin': 'Istuntosi on vanhentunut, kirjaudu sisään uudelleen', - 'noPermissionForThisOperation': 'Sinulla ei ole lupaa suorittaa tätä toimintoa', + 'networkConnectionFailed': + 'Verkkoyhteys epäonnistui, tarkista verkkoyhteyden asetukset ja yritä uudelleen', + 'serverTemporarilyUnavailable': + 'Palvelin on väliaikaisesti poissa käytöstä, yritä myöhemmin uudelleen', + 'loginExpiredPleaseRelogin': + 'Istuntosi on vanhentunut, kirjaudu sisään uudelleen', + 'noPermissionForThisOperation': + 'Sinulla ei ole lupaa suorittaa tätä toimintoa', 'requestedResourceNotFound': 'Pyydettyä resurssia ei löytynyt', - 'imageProcessingFailedPleaseReselect': 'Kuvan käsittely epäonnistui, valitse toinen kuva', + 'imageProcessingFailedPleaseReselect': + 'Kuvan käsittely epäonnistui, valitse toinen kuva', 'operationFailedPleaseRetry': 'Toiminto epäonnistui, yritä uudelleen', 'serverReturnedError': 'Palvelin palautti virheen', 'serverError': 'Palvelinvirhe', - 'networkConnectionFailedCheckSettings': 'Verkkoyhteys epäonnistui, tarkista verkkoyhteyden asetukset', - 'serverInternalErrorRetryLater': 'Sisäinen palvelinvirhe, yritä myöhemmin uudelleen', + 'networkConnectionFailedCheckSettings': + 'Verkkoyhteys epäonnistui, tarkista verkkoyhteyden asetukset', + 'serverInternalErrorRetryLater': + 'Sisäinen palvelinvirhe, yritä myöhemmin uudelleen', // Profile 用户交互 //'error': '错误', @@ -872,13 +942,20 @@ const Map fiFI = { // 账号服务相关 'clearUserDataFailed': 'Käyttäjätietojen tyhjennys epäonnistui', // 清理用户数据失败 'deleteUserDataFailed': 'Käyttäjätietojen poisto epäonnistui', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'Kolmannen osapuolen uloskirjautuminen onnistui', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': 'Kolmannen osapuolen uloskirjautuminen epäonnistui', // 第三方登录退出失败 - 'signOutProcessError': 'Uloskirjautumisprosessin aikana tapahtui virhe', // 登出过程发生错误 - 'deleteAccountProcessError': 'Tilin poistoprosessin aikana tapahtui virhe', // 删除账号过程发生错误 - 'userDataClearSuccess': 'Käyttäjätiedot tyhjennetty onnistuneesti', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Kaikki käyttäjätiedot tyhjennetty onnistuneesti', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Tili-palvelu on alustettu', // AccountService 已初始化 + 'thirdPartyLogoutSuccess': + 'Kolmannen osapuolen uloskirjautuminen onnistui', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': + 'Kolmannen osapuolen uloskirjautuminen epäonnistui', // 第三方登录退出失败 + 'signOutProcessError': + 'Uloskirjautumisprosessin aikana tapahtui virhe', // 登出过程发生错误 + 'deleteAccountProcessError': + 'Tilin poistoprosessin aikana tapahtui virhe', // 删除账号过程发生错误 + 'userDataClearSuccess': + 'Käyttäjätiedot tyhjennetty onnistuneesti', // 用户数据清理成功 + 'allUserDataClearSuccess': + 'Kaikki käyttäjätiedot tyhjennetty onnistuneesti', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Tili-palvelu on alustettu', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Käyttöoikeuden tilan haku epäonnistui', @@ -901,9 +978,12 @@ const Map fiFI = { 'locationInfo': 'Sijaintitiedot', 'phonePermissionDesc': 'Käytetään soittotoimintoon', 'smsPermissionDesc': 'Käytetään tekstiviestien lähetystoimintoon', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Käytetään kalenteritapahtumien ja muistutusten luomiseen', - 'calendarFullAccessPermissionDesc': 'Käytetään kalenteritapahtumien ja muistutusten lukemiseen ja hallintaan', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Käytetään kalenteritapahtumien ja muistutusten luomiseen', + 'calendarFullAccessPermissionDesc': + 'Käytetään kalenteritapahtumien ja muistutusten lukemiseen ja hallintaan', 'locationPermissionDesc': 'Käytetään nykyisen sijaintitiedon hakemiseen', 'appFunctionNeeds': 'Sovelluksen toiminto vaatii', 'authorized': 'Hyväksytty', @@ -914,44 +994,68 @@ const Map fiFI = { 'permissionGranted': 'Lupa myönnetty', 'permissionRequestError': 'Virhe luvan pyytämisessä', 'phonePermissionDetailDesc': 'Soittotoiminto vaatii puhelinluvan', - 'smsPermissionDetailDesc': 'Tekstiviestien lähetystoiminto vaatii tekstiviestiluvan', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Kalenteritapahtumien luominen vaatii kalenterin kirjoitusluvan', - 'calendarFullAccessPermissionDetailDesc': 'Kalenteritapahtumien hallinta vaatii täyden kalenteriluvan', + 'smsPermissionDetailDesc': + 'Tekstiviestien lähetystoiminto vaatii tekstiviestiluvan', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Kalenteritapahtumien luominen vaatii kalenterin kirjoitusluvan', + 'calendarFullAccessPermissionDetailDesc': + 'Kalenteritapahtumien hallinta vaatii täyden kalenteriluvan', 'locationPermissionDetailDesc': 'Sijaintitietojen haku vaatii sijaintiluvan', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Sovellus tarvitsee tämän luvan täyden toiminnallisuuden varmistamiseksi', - 'permanentDenialText': 'Olet pysyvästi kieltänyt {permission}-luvan, ota se käyttöön sovelluksen asetuksista', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Sovellus tarvitsee tämän luvan täyden toiminnallisuuden varmistamiseksi', + 'permanentDenialText': + 'Olet pysyvästi kieltänyt {permission}-luvan, ota se käyttöön sovelluksen asetuksista', 'goToSettings': 'Siirry asetuksiin', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1065,8 @@ const Map fiFI = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1075,10 @@ const Map fiFI = { 'updateNow': 'Päivitä nyt', // 立即更新按钮 'checkUpdate': 'Tarkista päivitys', // 检查更新按钮 'updateFailed': 'Päivitys epäonnistui', // 更新失败提示 - 'cannotOpenAppStore': 'Sovelluskauppaa ei voi avata, siirry sovelluskauppaan manuaalisesti päivittääksesi', // 无法打开应用商店提示 - 'updateErrorRetry': 'Päivityksen aikana tapahtui virhe, yritä myöhemmin uudelleen', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Sovelluskauppaa ei voi avata, siirry sovelluskauppaan manuaalisesti päivittääksesi', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Päivityksen aikana tapahtui virhe, yritä myöhemmin uudelleen', // 更新错误重试提示 //国家列表 "邮箱": "Sähköposti", @@ -1107,7 +1214,8 @@ const Map fiFI = { "selectTargetLanguage": "Valitse kohdekieli", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1231,12 @@ const Map fiFI = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Tyhjennä historia", - "clearHistoryConfirm": "Oletko varma, että haluat tyhjentää kaiken käännöshistorian? Tätä toimintoa ei voi kumota.", + "clearHistoryConfirm": + "Oletko varma, että haluat tyhjentää kaiken käännöshistorian? Tätä toimintoa ei voi kumota.", "unknownLanguage": "Tuntematon kieli", "deleteSessionRecord": "Poista istunnon tallenne", - "deleteSessionConfirm": "Oletko varma, että haluat poistaa kaikki tämän istunnon käännöstallenteet? Tätä toimintoa ei voi kumota.", + "deleteSessionConfirm": + "Oletko varma, että haluat poistaa kaikki tämän istunnon käännöstallenteet? Tätä toimintoa ei voi kumota.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1268,20 @@ const Map fiFI = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1304,8 @@ const Map fiFI = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Alkuperäinen tallenne", "recordSummary": "Tallenteen yhteenveto", - "clickToGenerateSummary": "Napsauta alla olevaa painiketta luodaksesi istunnon yhteenvedon", + "clickToGenerateSummary": + "Napsauta alla olevaa painiketta luodaksesi istunnon yhteenvedon", "summaryContent": "Yhteenvedon sisältö", "copied": "Kopioitu", "summaryCopiledToClipboard": "Yhteenveto kopioitu leikepöydälle", @@ -1197,9 +1313,11 @@ const Map fiFI = { "summaryGenerated": "Yhteenveto luotu", "generating": "Luodaan...", "regenerate": "Luo uudelleen", - "summaryTimeoutMessage": "Yhteenvedon luontipyyntö aikakatkaistiin, syynä saattaa olla verkko-ongelma tai palvelimen ruuhkaisuus.", + "summaryTimeoutMessage": + "Yhteenvedon luontipyyntö aikakatkaistiin, syynä saattaa olla verkko-ongelma tai palvelimen ruuhkaisuus.", "deleteTranslationRecord": "Poista käännöstallenne", - "deleteTranslationConfirm": "Oletko varma, että haluat poistaa tämän käännöstallenteen? Tätä toimintoa ei voi kumota.", + "deleteTranslationConfirm": + "Oletko varma, että haluat poistaa tämän käännöstallenteen? Tätä toimintoa ei voi kumota.", "originalText": "Alkuperäinen teksti", "translatedText": "Käännetty teksti", "sessionSummary": "Istunnon yhteenveto", @@ -1227,19 +1345,24 @@ const Map fiFI = { // 配对状态文本 "readyToPair": "Valmis paritukseen", "preparingPairingEnvironment": "Valmistellaan paritusympäristöä...", - "connectDeepSoundViaSystemBluetooth": "Yhdistä ensin Voitrans-laitteeseen järjestelmän Bluetoothin kautta", + "connectDeepSoundViaSystemBluetooth": + "Yhdistä ensin Voitrans-laitteeseen järjestelmän Bluetoothin kautta", "deviceBindingConfirm": "Laitteen sidonnan vahvistus...", "establishingDeviceAssociation": "Luodaan laiteyhteyttä...", "waitingCompletePairing": "Odota, paritus on valmis...", "pairingSuccessRedirecting": "Paritus onnistui! Siirrytään etusivulle...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Varmista, että olet yhteydessä Voitrans-laitteeseen", + "ensureConnectedDeepSoundDevice": + "Varmista, että olet yhteydessä Voitrans-laitteeseen", "deviceAlreadyBoundToOtherAccount": "Tämä laite on jo sidottu toiseen tiliin", - "deviceAssociationFailed": "Laiteyhteyden luominen epäonnistui, yritä uudelleen", - "scanTimeoutEnsureDeviceNearby": "Skannaus aikakatkaistiin, varmista, että laite on lähellä", + "deviceAssociationFailed": + "Laiteyhteyden luominen epäonnistui, yritä uudelleen", + "scanTimeoutEnsureDeviceNearby": + "Skannaus aikakatkaistiin, varmista, että laite on lähellä", "networkError": "Verkkovirhe", - "authorizationFailedCheckCode": "Valtuutus epäonnistui, tarkista, onko valtuutuskoodi oikein", + "authorizationFailedCheckCode": + "Valtuutus epäonnistui, tarkista, onko valtuutuskoodi oikein", "pairingFailedRetry": "Paritus epäonnistui, yritä uudelleen", // 配对控制器相关 @@ -1248,7 +1371,8 @@ const Map fiFI = { 'deviceDisconnected': 'Laite irrotettu', 'readyToStartPairing': 'Valmis aloittamaan parituksen', 'checkingEnvironment': 'Tarkistetaan ympäristöä...', - 'ensureHeadsetOnAndPairingMode': 'Varmista, että kuulokkeet ovat päällä ja paritustilassa', + 'ensureHeadsetOnAndPairingMode': + 'Varmista, että kuulokkeet ovat päällä ja paritustilassa', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1266,19 +1390,25 @@ const Map fiFI = { 'verificationFailedRetry': 'Vahvistus epäonnistui, yritä uudelleen', 'invalidDeviceAddress': 'Virheellinen laiteosoite', 'bleDeviceAssociationFailed': 'BLE-laiteyhteyden luominen epäonnistui', - 'deviceAssociationFailedRetry': 'Laiteyhteyden luominen epäonnistui, yritä uudelleen', + 'deviceAssociationFailedRetry': + 'Laiteyhteyden luominen epäonnistui, yritä uudelleen', 'bleConnectionTimeoutRetry': 'BLE-yhteyden aikakatkaisu, yritä uudelleen', 'blePairingStartupFailed': 'BLE-parituksen aloitus epäonnistui', 'bleConnectionFailed': 'BLE-yhteys epäonnistui', - 'deviceAuthorizationFailedCheckCode': 'Laitteen valtuutus epäonnistui, tarkista valtuutuskoodi', + 'deviceAuthorizationFailedCheckCode': + 'Laitteen valtuutus epäonnistui, tarkista valtuutuskoodi', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1290,11 +1420,14 @@ const Map fiFI = { 'contactInfo': 'Yhteystiedot', 'contactHint': 'Sähköposti/puhelin, jotta voimme ottaa sinuun yhteyttä', 'submit': 'Lähetä', - 'feedbackSubmitSuccess': 'Palaute lähetetty onnistuneesti, kiitos palautteestasi!', - 'feedbackSubmitFailed': 'Palautteen lähettäminen epäonnistui, yritä myöhemmin uudelleen', + 'feedbackSubmitSuccess': + 'Palaute lähetetty onnistuneesti, kiitos palautteestasi!', + 'feedbackSubmitFailed': + 'Palautteen lähettäminen epäonnistui, yritä myöhemmin uudelleen', // OTA升级模块 - "upgradeExitConfirm": "Päivitys on käynnissä, poistuminen keskeyttää prosessin, oletko varma, että haluat poistua?", + "upgradeExitConfirm": + "Päivitys on käynnissä, poistuminen keskeyttää prosessin, oletko varma, että haluat poistua?", "deviceModel": "Laitteen malli", "unknownDevice": "Tuntematon laite", "currentFirmwareVersion": "Nykyinen laiteohjelmiston versio", @@ -1307,14 +1440,18 @@ const Map fiFI = { "retryConnection": "Yritä yhdistää uudelleen", "ota_updateNow": "Päivitä nyt", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "Pidä laite yhteydessä, älä sulje sovellusta", "doNotDisconnect": "Älä katkaise yhteyttä", "charging": "Ladataan", "updateContent": "Päivityksen sisältö", - "removeEarbudsEnsureBattery": "Poista molemmat kuulokkeet ja varmista, että molempien akun varaus on yli 20%", + "removeEarbudsEnsureBattery": + "Poista molemmat kuulokkeet ja varmista, että molempien akun varaus on yli 20%", // 音乐列表页面 "noMusic": "Ei musiikkia", // 暂无音乐 @@ -1376,8 +1513,10 @@ const Map fiFI = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/fr_fr.dart b/lib/core/translations/language/fr_fr.dart index 61216c373..49086705a 100644 --- a/lib/core/translations/language/fr_fr.dart +++ b/lib/core/translations/language/fr_fr.dart @@ -33,6 +33,7 @@ const Map frFR = { "spanish": "Espagnol", "portuguese": "Portugais", "traditionalChinese": "Chinois traditionnel", + "traditionalChineseHK": "Chinois traditionnel (Hong Kong)", "japanese": "Japonais", "korean": "Coréen", "french": "Français", @@ -71,7 +72,8 @@ const Map frFR = { // 登录页 "welcome": "Bienvenue", - "loginTips": "Veuillez vous connecter ou vous inscrire avec votre numéro de téléphone ou votre e-mail", + "loginTips": + "Veuillez vous connecter ou vous inscrire avec votre numéro de téléphone ou votre e-mail", "accountNumber": "Numéro de téléphone ou e-mail", "verificationCode": "Code de vérification", "getCode": "Obtenir le code", @@ -84,13 +86,15 @@ const Map frFR = { 'selectCountry': 'Sélectionner le pays/région', "email": "E-mail", "phoneNumber": "Numéro de téléphone", - "pleaseEnterContactInfo": "Veuillez saisir le numéro de téléphone ou l'e-mail", + "pleaseEnterContactInfo": + "Veuillez saisir le numéro de téléphone ou l'e-mail", "invalidEmailFormat": "Format d'e-mail invalide", "invalidPhoneFormat": "Format de numéro de téléphone invalide", "tip": "Conseil", "pleaseEnterCompleteCode": "Veuillez saisir le code de vérification complet", "loginFailed": "Échec de la connexion, veuillez réessayer", - 'pleaseAcceptPrivacyPolicy': 'Veuillez d\'abord lire et accepter la politique de confidentialité et l\'accord d\'utilisateur', + 'pleaseAcceptPrivacyPolicy': + 'Veuillez d\'abord lire et accepter la politique de confidentialité et l\'accord d\'utilisateur', "enterVerificationCode": "Saisir le code de vérification", "verificationCodeSentTo": "Code de vérification envoyé à", "resendVerificationCode": "Renvoyer le code de vérification", @@ -99,7 +103,8 @@ const Map frFR = { // 隐私政策弹窗 "loginDeclaration": "Déclaration Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Bienvenue sur Voitrans, veuillez lire attentivement", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Bienvenue sur Voitrans, veuillez lire attentivement", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,7 +120,8 @@ const Map frFR = { "signal": "Signal", "deviceId": "ID de l'appareil", "firmwareVersion": "Version du firmware", - "disconnectedDevice": "Aucun appareil connecté, cliquez sur le bouton ci-dessous", + "disconnectedDevice": + "Aucun appareil connecté, cliquez sur le bouton ci-dessous", "connectDevice": "Connecter l'appareil", "topAiExperiences": "Meilleures expériences IA", "aiAssistant": "Assistant IA", @@ -125,14 +131,17 @@ const Map frFR = { "aiCompanion": "Accompagnement parent-enfant", "aiCompanionInfo": "Vous comprend et offre un accompagnement chaleureux", "homeSlogan": "Connecter le monde, au-delà du son", - "turnEarphones": "Veuillez ouvrir l'étui des écouteurs et mettre les écouteurs dans vos oreilles", + "turnEarphones": + "Veuillez ouvrir l'étui des écouteurs et mettre les écouteurs dans vos oreilles", "currentlyConnected": "Actuellement connecté :", "unsystemSetup": "Aller aux paramètres système", "talkLater": "Rappeler plus tard", "initializing": "Initialisation...", - "bluetoothInitializationFailure": "Échec de l'initialisation du service Bluetooth", + "bluetoothInitializationFailure": + "Échec de l'initialisation du service Bluetooth", "checkingPermissions": "Vérification des autorisations...", - "lackPermissions": "Autorisations Bluetooth requises et accès à la localisation nécessaire", + "lackPermissions": + "Autorisations Bluetooth requises et accès à la localisation nécessaire", "searchingDevice": "Recherche d'appareils...", "findConnectedDevice": "Appareil connecté trouvé", "notFound": "Aucun appareil Bluetooth connecté trouvé", @@ -140,7 +149,8 @@ const Map frFR = { "connectedDevice": "Connecté à l'appareil :", "failedRefreshDevice": "Échec de l'actualisation de l'appareil", "noDeviceFound": "Aucun appareil connecté trouvé", - "failedDeviceInformation": "Impossible d'obtenir les informations de l'appareil", + "failedDeviceInformation": + "Impossible d'obtenir les informations de l'appareil", "unknownEquipment": "Appareil inconnu", "zeroSignal": "Aucun signal", "good": "Bon", @@ -154,7 +164,8 @@ const Map frFR = { 'chargingCase': 'Étui de charge', 'left': 'Gauche', 'right': 'Droite', - 'checkConnectionStatusFailed': 'Échec de la vérification de l\'état de la connexion', + 'checkConnectionStatusFailed': + 'Échec de la vérification de l\'état de la connexion', // 发现页 "searchAi": "Rechercher des fonctions IA...", @@ -175,7 +186,8 @@ const Map frFR = { "healthConsultant": "Chat IA multifonction", "healthConsultantInfo": "Plus de fonctions de chat IA", "conferenceAssistant": "Assistant de réunion d'affaires", - "conferenceAssistantInfo": "Enregistrement de procès-verbaux en temps réel et traduction multilingue", + "conferenceAssistantInfo": + "Enregistrement de procès-verbaux en temps réel et traduction multilingue", "usageStats": "Statistiques d'utilisation", "usageStatsInfo": "Consultez les statistiques d'utilisation de l'application", "scene": "Scénarios", @@ -218,7 +230,8 @@ const Map frFR = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +287,10 @@ const Map frFR = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +299,35 @@ const Map frFR = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +336,10 @@ const Map frFR = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +354,8 @@ const Map frFR = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Ignorer", @@ -355,7 +381,8 @@ const Map frFR = { 'guideNavInput': "Navigate to Shenzhen Airport", 'guideNavSend': "Lily will plan the route", 'guideNavEnd': "Navigation set—try other commands", - 'guideMeetingStart': "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", + 'guideMeetingStart': + "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", 'guideMeetingInput': "Create a meeting reminder for 3pm tomorrow", 'guideMeetingSend': "Lily will create a meeting reminder", 'guideMeetingEnd': "Reminder created—try other commands", @@ -405,7 +432,8 @@ const Map frFR = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +488,54 @@ const Map frFR = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +547,8 @@ const Map frFR = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +568,8 @@ const Map frFR = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +618,8 @@ const Map frFR = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +644,8 @@ const Map frFR = { "cloudSync": "Recharge de synchronisation cloud", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Appareil connecté :", "accountId": "ID du compte :", "systemSetting": "Paramètres système", @@ -612,18 +658,22 @@ const Map frFR = { "privacySettings": "Paramètres de confidentialité", "privacySettingsInfo": "Gérer la collecte de données et les autorisations", "permissionManagement": "Gestion des autorisations", // 权限管理 - "permissionManagementInfo": "Gérer les paramètres d'autorisation de l'application", // 管理应用权限设置 + "permissionManagementInfo": + "Gérer les paramètres d'autorisation de l'application", // 管理应用权限设置 "aboutApplication": "À propos", "versions": "Version", "checkUpdates": "Vérifier les mises à jour", "selectLanguage": "Sélectionner la langue", "voiceService": "Service vocal", - "voiceServiceInfo": "Sélectionner le service de reconnaissance et de synthèse vocale", + "voiceServiceInfo": + "Sélectionner le service de reconnaissance et de synthèse vocale", "selectVoiceService": "Sélectionner le service vocal", "azureVoiceService": "Service vocal Azure", - "azureVoiceServiceInfo": "Service basé sur le cloud Microsoft prenant en charge la synthèse et la reconnaissance vocale de haute qualité", + "azureVoiceServiceInfo": + "Service basé sur le cloud Microsoft prenant en charge la synthèse et la reconnaissance vocale de haute qualité", "flutterVoiceService": "Service vocal local", - "flutterVoiceServiceInfo": "Service vocal local de l'appareil sans connexion Internet requise", + "flutterVoiceServiceInfo": + "Service vocal local de l'appareil sans connexion Internet requise", 'timbreService': 'Service de timbre', 'timbreServiceInfo': 'Sélectionner le service de synthèse vocale', 'defaultTimbre': 'Timbre par défaut', @@ -652,7 +702,8 @@ const Map frFR = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": 'Conversation vocale en temps réel', - "realtimeVoiceChatInfo": 'Découvrez les fonctions d\'interaction vocale intelligente (Aperçu)', + "realtimeVoiceChatInfo": + 'Découvrez les fonctions d\'interaction vocale intelligente (Aperçu)', "loading": 'Chargement...', //设备管理页面 @@ -667,7 +718,8 @@ const Map frFR = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -678,7 +730,8 @@ const Map frFR = { "inputMessage": "Saisir un message...", "imListening": "J'écoute...", "canStartTalking": "Vous pouvez commencer à parler", - "addQuestionAboutImage": "Ajouter des questions ou descriptions sur l'image...", + "addQuestionAboutImage": + "Ajouter des questions ou descriptions sur l'image...", "summarizeImageContent": "Résumer le contenu de l'image", "extractImageText": "Extraire le texte de l'image", "translateImageText": "Traduire le texte de l'image", @@ -721,10 +774,14 @@ const Map frFR = { '• Contrôler les fonctions des écouteurs\n\n' 'Comment puis-je vous aider ?', 'microphonePermission': 'Microphone', - 'voiceRecognitionPermissionText': 'La fonction de reconnaissance vocale nécessite l\'accès au microphone.', - 'voiceTranslationPermissionText': 'Les fonctions de reconnaissance vocale et de traduction nécessitent l\'accès au microphone.', - 'phoneCallPermissionText': 'La fonction d\'appel nécessite l\'accès au microphone pour les appels vocaux.', - 'permissionDeniedText': 'Vous avez refusé définitivement l\'autorisation du microphone, veuillez aller dans les paramètres système pour l\'activer.', + 'voiceRecognitionPermissionText': + 'La fonction de reconnaissance vocale nécessite l\'accès au microphone.', + 'voiceTranslationPermissionText': + 'Les fonctions de reconnaissance vocale et de traduction nécessitent l\'accès au microphone.', + 'phoneCallPermissionText': + 'La fonction d\'appel nécessite l\'accès au microphone pour les appels vocaux.', + 'permissionDeniedText': + 'Vous avez refusé définitivement l\'autorisation du microphone, veuillez aller dans les paramètres système pour l\'activer.', 'startVoiceInput': 'Démarrer la saisie vocale', 'startPhoneCallMode': 'Démarrer le mode appel, commencer la saisie vocale', @@ -745,9 +802,11 @@ const Map frFR = { 'misleadingAttack': 'Trompeur/Attaque', 'illegalCriminal': 'Illégal/Criminel', 'privacyRelated': 'Lié à la vie privée', - 'copyrightViolation': 'Violation de mes droits d\'auteur, droits de la personnalité, etc.', + 'copyrightViolation': + 'Violation de mes droits d\'auteur, droits de la personnalité, etc.', 'other': 'Autre', - 'reportDescriptionHint': 'Nous aimerions connaître la raison de votre signalement, vous pouvez décrire le problème que vous avez rencontré.', + 'reportDescriptionHint': + 'Nous aimerions connaître la raison de votre signalement, vous pouvez décrire le problème que vous avez rencontré.', //'submit': '提交', //Message_bubble @@ -778,15 +837,24 @@ const Map frFR = { 'highest': 'Maximum', 'lowest': 'Minimum', 'futureForecast': 'Prévisions futures', - 'hotWeatherTip': 'Il fait chaud aujourd\'hui, veuillez faire attention à la protection contre la chaleur et au refroidissement, buvez plus d\'eau pour éviter les coups de chaleur', - 'coldWeatherTip': 'Il fait froid aujourd\'hui, veuillez vous habiller chaudement en sortant et attention aux rhumes', - 'rainyWeatherTip': 'Il pleut aujourd\'hui, veuillez emporter une protection contre la pluie et faire attention à la sécurité de voyage', - 'snowyWeatherTip': 'Il neige aujourd\'hui, les routes sont glissantes, veuillez faire attention à la sécurité et rester au chaud', - 'foggyWeatherTip': 'Il y a du brouillard et de la brume aujourd\'hui, la visibilité est mauvaise, veuillez porter un masque en sortant', - 'windyWeatherTip': 'Il y a du vent aujourd\'hui, veuillez faire attention à la sécurité en sortant et sécuriser les objets', - 'sunnyWeatherTip': 'Le soleil brille aujourd\'hui avec des rayons UV forts, veuillez vous protéger du soleil en sortant', - 'temperatureDifferenceTip': 'La différence de température entre le jour et la nuit est importante aujourd\'hui, veuillez ajuster vos vêtements en conséquence', - 'comfortableWeatherTip': 'Le temps est agréable aujourd\'hui, parfait pour les activités de plein air', + 'hotWeatherTip': + 'Il fait chaud aujourd\'hui, veuillez faire attention à la protection contre la chaleur et au refroidissement, buvez plus d\'eau pour éviter les coups de chaleur', + 'coldWeatherTip': + 'Il fait froid aujourd\'hui, veuillez vous habiller chaudement en sortant et attention aux rhumes', + 'rainyWeatherTip': + 'Il pleut aujourd\'hui, veuillez emporter une protection contre la pluie et faire attention à la sécurité de voyage', + 'snowyWeatherTip': + 'Il neige aujourd\'hui, les routes sont glissantes, veuillez faire attention à la sécurité et rester au chaud', + 'foggyWeatherTip': + 'Il y a du brouillard et de la brume aujourd\'hui, la visibilité est mauvaise, veuillez porter un masque en sortant', + 'windyWeatherTip': + 'Il y a du vent aujourd\'hui, veuillez faire attention à la sécurité en sortant et sécuriser les objets', + 'sunnyWeatherTip': + 'Le soleil brille aujourd\'hui avec des rayons UV forts, veuillez vous protéger du soleil en sortant', + 'temperatureDifferenceTip': + 'La différence de température entre le jour et la nuit est importante aujourd\'hui, veuillez ajuster vos vêtements en conséquence', + 'comfortableWeatherTip': + 'Le temps est agréable aujourd\'hui, parfait pour les activités de plein air', "monday": "Lun", "tuesday": "Mar", "wednesday": "Mer", @@ -838,22 +906,28 @@ const Map frFR = { "logout": "Se déconnecter", "logoutTips": "Êtes-vous sûr de vouloir vous déconnecter du compte actuel ?", 'deleteAccount': 'Supprimer le compte', - 'deleteAccountTips': 'Êtes-vous sûr de vouloir supprimer définitivement votre compte ? Cette action ne peut pas être annulée.', + 'deleteAccountTips': + 'Êtes-vous sûr de vouloir supprimer définitivement votre compte ? Cette action ne peut pas être annulée.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Échec de la connexion réseau, veuillez vérifier les paramètres réseau et réessayer', - 'serverTemporarilyUnavailable': 'Serveur temporairement indisponible, veuillez réessayer plus tard', + 'networkConnectionFailed': + 'Échec de la connexion réseau, veuillez vérifier les paramètres réseau et réessayer', + 'serverTemporarilyUnavailable': + 'Serveur temporairement indisponible, veuillez réessayer plus tard', 'loginExpiredPleaseRelogin': 'Connexion expirée, veuillez vous reconnecter', 'noPermissionForThisOperation': 'Aucune autorisation pour cette opération', 'requestedResourceNotFound': 'Ressource demandée introuvable', - 'imageProcessingFailedPleaseReselect': 'Échec du traitement de l\'image, veuillez resélectionner l\'image', + 'imageProcessingFailedPleaseReselect': + 'Échec du traitement de l\'image, veuillez resélectionner l\'image', 'operationFailedPleaseRetry': 'Échec de l\'opération, veuillez réessayer', 'serverReturnedError': 'Le serveur a retourné une erreur', 'serverError': 'Erreur serveur', - 'networkConnectionFailedCheckSettings': 'Échec de la connexion réseau, veuillez vérifier les paramètres réseau', - 'serverInternalErrorRetryLater': 'Erreur interne du serveur, veuillez réessayer plus tard', + 'networkConnectionFailedCheckSettings': + 'Échec de la connexion réseau, veuillez vérifier les paramètres réseau', + 'serverInternalErrorRetryLater': + 'Erreur interne du serveur, veuillez réessayer plus tard', // Profile 用户交互 //'error': '错误', @@ -867,21 +941,30 @@ const Map frFR = { 'loggedOut': 'Déconnecté', 'logoutFailedRetry': 'Échec de la déconnexion, veuillez réessayer', 'accountPermanentlyDeleted': 'Compte supprimé définitivement', - 'deleteAccountFailedRetry': 'Échec de la suppression du compte, veuillez réessayer', + 'deleteAccountFailedRetry': + 'Échec de la suppression du compte, veuillez réessayer', // 账号服务相关 - 'clearUserDataFailed': 'Échec de l\'effacement des données utilisateur', // 清理用户数据失败 - 'deleteUserDataFailed': 'Échec de la suppression des données utilisateur', // 删除用户数据失败 + 'clearUserDataFailed': + 'Échec de l\'effacement des données utilisateur', // 清理用户数据失败 + 'deleteUserDataFailed': + 'Échec de la suppression des données utilisateur', // 删除用户数据失败 'thirdPartyLogoutSuccess': 'Déconnexion tierce réussie', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Échec de la déconnexion tierce', // 第三方登录退出失败 - 'signOutProcessError': 'Erreur survenue lors du processus de déconnexion', // 登出过程发生错误 - 'deleteAccountProcessError': 'Erreur survenue lors du processus de suppression de compte', // 删除账号过程发生错误 - 'userDataClearSuccess': 'Données utilisateur effacées avec succès', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Toutes les données utilisateur effacées avec succès', // 所有用户数据清理成功 - 'accountServiceInitialized': 'AccountService initialisé', // AccountService 已初始化 + 'signOutProcessError': + 'Erreur survenue lors du processus de déconnexion', // 登出过程发生错误 + 'deleteAccountProcessError': + 'Erreur survenue lors du processus de suppression de compte', // 删除账号过程发生错误 + 'userDataClearSuccess': + 'Données utilisateur effacées avec succès', // 用户数据清理成功 + 'allUserDataClearSuccess': + 'Toutes les données utilisateur effacées avec succès', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'AccountService initialisé', // AccountService 已初始化 // 权限管理页面 - 'getPermissionStatusFailed': 'Échec de l\'obtention du statut d\'autorisation', + 'getPermissionStatusFailed': + 'Échec de l\'obtention du statut d\'autorisation', 'communicationPermissions': 'Autorisations de communication', 'bluetoothPermissions': 'Bluetooth Permissions', 'notificationPermissions': 'Notification Permissions', @@ -901,10 +984,14 @@ const Map frFR = { 'locationInfo': 'Informations de localisation', 'phonePermissionDesc': 'Utilisé pour les fonctions d\'appel', 'smsPermissionDesc': 'Utilisé pour les fonctions SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Utilisé pour créer des événements de calendrier et des rappels', - 'calendarFullAccessPermissionDesc': 'Utilisé pour lire et gérer les événements de calendrier et les rappels', - 'locationPermissionDesc': 'Utilisé pour obtenir les informations de localisation actuelles', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Utilisé pour créer des événements de calendrier et des rappels', + 'calendarFullAccessPermissionDesc': + 'Utilisé pour lire et gérer les événements de calendrier et les rappels', + 'locationPermissionDesc': + 'Utilisé pour obtenir les informations de localisation actuelles', 'appFunctionNeeds': 'Fonction d\'application nécessaire', 'authorized': 'Autorisé', 'unauthorized': 'Non autorisé', @@ -913,45 +1000,70 @@ const Map frFR = { 'unknownStatus': 'Statut inconnu', 'permissionGranted': 'Autorisation accordée', 'permissionRequestError': 'Erreur lors de la demande d\'autorisation', - 'phonePermissionDetailDesc': 'La fonction d\'appel nécessite l\'autorisation téléphone', + 'phonePermissionDetailDesc': + 'La fonction d\'appel nécessite l\'autorisation téléphone', 'smsPermissionDetailDesc': 'La fonction SMS nécessite l\'autorisation SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'La création d\'événements de calendrier nécessite l\'autorisation d\'écriture calendrier', - 'calendarFullAccessPermissionDetailDesc': 'La gestion des événements de calendrier nécessite l\'autorisation complète du calendrier', - 'locationPermissionDetailDesc': 'L\'obtention d\'informations de localisation nécessite l\'autorisation de localisation', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'La création d\'événements de calendrier nécessite l\'autorisation d\'écriture calendrier', + 'calendarFullAccessPermissionDetailDesc': + 'La gestion des événements de calendrier nécessite l\'autorisation complète du calendrier', + 'locationPermissionDetailDesc': + 'L\'obtention d\'informations de localisation nécessite l\'autorisation de localisation', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'L\'application a besoin de cette autorisation pour une fonctionnalité complète', - 'permanentDenialText': 'Vous avez refusé définitivement l\'autorisation {permission}, veuillez aller dans les paramètres de l\'application pour l\'activer', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'L\'application a besoin de cette autorisation pour une fonctionnalité complète', + 'permanentDenialText': + 'Vous avez refusé définitivement l\'autorisation {permission}, veuillez aller dans les paramètres de l\'application pour l\'activer', 'goToSettings': 'Aller aux paramètres', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1073,8 @@ const Map frFR = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1083,10 @@ const Map frFR = { 'updateNow': 'Mettre à jour maintenant', // 立即更新按钮 'checkUpdate': 'Vérifier la mise à jour', // 检查更新按钮 'updateFailed': 'Échec de la mise à jour', // 更新失败提示 - 'cannotOpenAppStore': 'Impossible d\'ouvrir l\'App Store, veuillez mettre à jour manuellement', // 无法打开应用商店提示 - 'updateErrorRetry': 'Erreur survenue lors du processus de mise à jour, veuillez réessayer plus tard', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Impossible d\'ouvrir l\'App Store, veuillez mettre à jour manuellement', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Erreur survenue lors du processus de mise à jour, veuillez réessayer plus tard', // 更新错误重试提示 //国家列表 "邮箱": "E-mail", @@ -1107,7 +1222,8 @@ const Map frFR = { "selectTargetLanguage": "Sélectionner la langue cible", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1239,12 @@ const Map frFR = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Effacer l'historique", - "clearHistoryConfirm": "Êtes-vous sûr de vouloir effacer tout l'historique de traduction ? Cette action ne peut pas être annulée.", + "clearHistoryConfirm": + "Êtes-vous sûr de vouloir effacer tout l'historique de traduction ? Cette action ne peut pas être annulée.", "unknownLanguage": "Langue inconnue", "deleteSessionRecord": "Supprimer l'enregistrement de session", - "deleteSessionConfirm": "Êtes-vous sûr de vouloir supprimer tous les enregistrements de traduction pour cette session ? Cette action ne peut pas être annulée.", + "deleteSessionConfirm": + "Êtes-vous sûr de vouloir supprimer tous les enregistrements de traduction pour cette session ? Cette action ne peut pas être annulée.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1276,20 @@ const Map frFR = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1312,8 @@ const Map frFR = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Enregistrement original", "recordSummary": "Résumé de l'enregistrement", - "clickToGenerateSummary": "Cliquez sur le bouton ci-dessous pour générer un résumé de session", + "clickToGenerateSummary": + "Cliquez sur le bouton ci-dessous pour générer un résumé de session", "summaryContent": "Contenu du résumé", "copied": "Copié", "summaryCopiledToClipboard": "Résumé copié dans le presse-papiers", @@ -1197,9 +1321,11 @@ const Map frFR = { "summaryGenerated": "Résumé généré", "generating": "Génération en cours...", "regenerate": "Régénérer", - "summaryTimeoutMessage": "La demande de génération de résumé a expiré, possiblement due à des problèmes de réseau ou à une surcharge du serveur.", + "summaryTimeoutMessage": + "La demande de génération de résumé a expiré, possiblement due à des problèmes de réseau ou à une surcharge du serveur.", "deleteTranslationRecord": "Supprimer l'enregistrement de traduction", - "deleteTranslationConfirm": "Êtes-vous sûr de vouloir supprimer cet enregistrement de traduction ? Cette action ne peut pas être annulée.", + "deleteTranslationConfirm": + "Êtes-vous sûr de vouloir supprimer cet enregistrement de traduction ? Cette action ne peut pas être annulée.", "originalText": "Texte original", "translatedText": "Texte traduit", "sessionSummary": "Résumé de session", @@ -1226,20 +1352,29 @@ const Map frFR = { // 配对状态文本 "readyToPair": "Prêt à appairer", - "preparingPairingEnvironment": "Préparation de l'environnement d'appairage...", - "connectDeepSoundViaSystemBluetooth": "Veuillez d'abord connecter l'appareil Voitrans via le Bluetooth système", + "preparingPairingEnvironment": + "Préparation de l'environnement d'appairage...", + "connectDeepSoundViaSystemBluetooth": + "Veuillez d'abord connecter l'appareil Voitrans via le Bluetooth système", "deviceBindingConfirm": "Confirmation de liaison d'appareil...", - "establishingDeviceAssociation": "Établissement de l'association d'appareil...", + "establishingDeviceAssociation": + "Établissement de l'association d'appareil...", "waitingCompletePairing": "Veuillez patienter, appairage en cours...", - "pairingSuccessRedirecting": "Appairage réussi ! Redirection vers la page d'accueil...", + "pairingSuccessRedirecting": + "Appairage réussi ! Redirection vers la page d'accueil...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Veuillez vous assurer que l'appareil connecté est Voitrans", - "deviceAlreadyBoundToOtherAccount": "Cet appareil est déjà lié à un autre compte", - "deviceAssociationFailed": "Échec de l'association d'appareil, veuillez réessayer", - "scanTimeoutEnsureDeviceNearby": "Délai de scan dépassé, veuillez vous assurer que l'appareil est à proximité", + "ensureConnectedDeepSoundDevice": + "Veuillez vous assurer que l'appareil connecté est Voitrans", + "deviceAlreadyBoundToOtherAccount": + "Cet appareil est déjà lié à un autre compte", + "deviceAssociationFailed": + "Échec de l'association d'appareil, veuillez réessayer", + "scanTimeoutEnsureDeviceNearby": + "Délai de scan dépassé, veuillez vous assurer que l'appareil est à proximité", "networkError": "Erreur réseau", - "authorizationFailedCheckCode": "Échec de l'autorisation, veuillez vérifier le code d'autorisation", + "authorizationFailedCheckCode": + "Échec de l'autorisation, veuillez vérifier le code d'autorisation", "pairingFailedRetry": "Échec de l'appairage, veuillez réessayer", // 配对控制器相关 @@ -1248,37 +1383,47 @@ const Map frFR = { 'deviceDisconnected': 'Appareil déconnecté', 'readyToStartPairing': 'Prêt à démarrer l\'appairage', 'checkingEnvironment': 'Vérification de l\'environnement...', - 'ensureHeadsetOnAndPairingMode': 'Veuillez vous assurer que le casque est allumé et en mode appairage', + 'ensureHeadsetOnAndPairingMode': + 'Veuillez vous assurer que le casque est allumé et en mode appairage', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Établissement d\'une connexion sécurisée...', - 'needManualBindingAuthCode': 'Liaison manuelle du code d\'autorisation nécessaire...', + 'needManualBindingAuthCode': + 'Liaison manuelle du code d\'autorisation nécessaire...', 'pairingSuccessful': 'Appairage réussi !', 'enableBluetooth': 'Activer le Bluetooth', 'grantPermissions': 'Accorder les autorisations', 'retryAssociation': 'Réessayer l\'association', 'retryAuthorization': 'Réessayer l\'autorisation', - 'pleaseGrantNecessaryPermissions': 'Veuillez accorder les autorisations nécessaires', + 'pleaseGrantNecessaryPermissions': + 'Veuillez accorder les autorisations nécessaires', 'checkFailedRetry': 'Échec de la vérification, veuillez réessayer', 'pleaseConnectDeepSoundDevice': 'Veuillez connecter l\'appareil Voitrans', 'verificationFailedRetry': 'Échec de la vérification, veuillez réessayer', 'invalidDeviceAddress': 'Adresse d\'appareil invalide', 'bleDeviceAssociationFailed': 'Échec de l\'association d\'appareil BLE', - 'deviceAssociationFailedRetry': 'Échec de l\'association d\'appareil, veuillez réessayer', - 'bleConnectionTimeoutRetry': 'Délai de connexion BLE dépassé, veuillez réessayer', + 'deviceAssociationFailedRetry': + 'Échec de l\'association d\'appareil, veuillez réessayer', + 'bleConnectionTimeoutRetry': + 'Délai de connexion BLE dépassé, veuillez réessayer', 'blePairingStartupFailed': 'Échec du démarrage de l\'appairage BLE', 'bleConnectionFailed': 'Échec de la connexion BLE', - 'deviceAuthorizationFailedCheckCode': 'Échec de l\'autorisation d\'appareil, veuillez vérifier le code d\'autorisation', + 'deviceAuthorizationFailedCheckCode': + 'Échec de l\'autorisation d\'appareil, veuillez vérifier le code d\'autorisation', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1291,10 +1436,12 @@ const Map frFR = { 'contactHint': 'E-mail/Téléphone pour que nous puissions vous contacter', 'submit': 'Soumettre', 'feedbackSubmitSuccess': 'Commentaires soumis avec succès, merci !', - 'feedbackSubmitFailed': 'Échec de la soumission des commentaires, veuillez réessayer plus tard', + 'feedbackSubmitFailed': + 'Échec de la soumission des commentaires, veuillez réessayer plus tard', // OTA升级模块 - "upgradeExitConfirm": "Une mise à niveau est actuellement en cours, quitter interrompra le processus de mise à niveau. Êtes-vous sûr de vouloir quitter ?", + "upgradeExitConfirm": + "Une mise à niveau est actuellement en cours, quitter interrompra le processus de mise à niveau. Êtes-vous sûr de vouloir quitter ?", "deviceModel": "Modèle d'appareil", "unknownDevice": "Appareil inconnu", "currentFirmwareVersion": "Version actuelle du firmware", @@ -1307,14 +1454,19 @@ const Map frFR = { "retryConnection": "Réessayer la connexion", "ota_updateNow": "Mettre à jour maintenant", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Veuillez maintenir l'appareil connecté, ne fermez pas l'application", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Veuillez maintenir l'appareil connecté, ne fermez pas l'application", "doNotDisconnect": "Ne pas déconnecter", "charging": "En charge", "updateContent": "Contenu de la mise à jour", - "removeEarbudsEnsureBattery": "Retirez les deux écouteurs et assurez-vous que le niveau de batterie est supérieur à 20%", + "removeEarbudsEnsureBattery": + "Retirez les deux écouteurs et assurez-vous que le niveau de batterie est supérieur à 20%", // 音乐列表页面 "noMusic": "Aucune musique", // 暂无音乐 @@ -1376,8 +1528,10 @@ const Map frFR = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/hi_in.dart b/lib/core/translations/language/hi_in.dart index 0a6b1c3fe..2f53fc831 100644 --- a/lib/core/translations/language/hi_in.dart +++ b/lib/core/translations/language/hi_in.dart @@ -33,6 +33,7 @@ const Map hiIN = { "spanish": "स्पेनिश", "portuguese": "पुर्तगाली", "traditionalChinese": "पारंपरिक चीनी", + "traditionalChineseHK": "पारंपरागत चीनी (हांगकांग)", "japanese": "जापानी", "korean": "कोरियाई", "french": "फ्रेंच", @@ -90,7 +91,8 @@ const Map hiIN = { "tip": "संकेत", "pleaseEnterCompleteCode": "कृपया पूरा सत्यापन कोड दर्ज करें", "loginFailed": "लॉगिन विफल, कृपया पुनः प्रयास करें", - 'pleaseAcceptPrivacyPolicy': 'कृपया पहले गोपनीयता नीति और उपयोगकर्ता अनुबंध पढ़ें और सहमत हों', + 'pleaseAcceptPrivacyPolicy': + 'कृपया पहले गोपनीयता नीति और उपयोगकर्ता अनुबंध पढ़ें और सहमत हों', "enterVerificationCode": "सत्यापन कोड दर्ज करें", "verificationCodeSentTo": "सत्यापन कोड भेजा गया है", "resendVerificationCode": "सत्यापन कोड पुनः भेजें", @@ -99,7 +101,8 @@ const Map hiIN = { // 隐私政策弹窗 "loginDeclaration": "Voitrans घोषणा", // Voitrans 声明 - "welcomeToThisApp": "Voitrans में आपका स्वागत है, कृपया ध्यान से पढ़ें", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Voitrans में आपका स्वागत है, कृपया ध्यान से पढ़ें", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +118,28 @@ const Map hiIN = { "signal": "सिग्नल", "deviceId": "डिवाइस आईडी", "firmwareVersion": "फर्मवेयर संस्करण", - "disconnectedDevice": "कोई डिवाइस कनेक्ट नहीं है, कनेक्ट करने के लिए नीचे दिए गए बटन पर क्लिक करें", + "disconnectedDevice": + "कोई डिवाइस कनेक्ट नहीं है, कनेक्ट करने के लिए नीचे दिए गए बटन पर क्लिक करें", "connectDevice": "डिवाइस कनेक्ट करें", "topAiExperiences": "शीर्ष एआई अनुभव", "aiAssistant": "एआई ऑल-इन-वन असिस्टेंट", "aiAssistantInfo": "24/7 विशेष सलाहकार, सवालों के जवाब देना, सुझाव देना", "interpretation": "एक साथ व्याख्या", - "simultaneousInterpretationInfo": "80+ भाषाओं में रीयल-टाइम अनुवाद, चिंता मुक्त विदेश यात्रा", + "simultaneousInterpretationInfo": + "80+ भाषाओं में रीयल-टाइम अनुवाद, चिंता मुक्त विदेश यात्रा", "aiCompanion": "परिवार का साथी", "aiCompanionInfo": "आपको समझता है, गर्मजोशी से साथ देता है", "homeSlogan": "दुनिया को जोड़ना, ध्वनि को पार करना", - "turnEarphones": "कृपया ईयरफोन चार्जिंग केस खोलें और ईयरफोन को अपने कानों में लगाएं", + "turnEarphones": + "कृपया ईयरफोन चार्जिंग केस खोलें और ईयरफोन को अपने कानों में लगाएं", "currentlyConnected": "वर्तमान में जुड़ा हुआ है:", "unsystemSetup": "सिस्टम सेटिंग्स पर जाएं", "talkLater": "बाद में", "initializing": "प्रारंभ हो रहा है...", "bluetoothInitializationFailure": "ब्लूटूथ सेवा प्रारंभ करने में विफल", "checkingPermissions": "अनुमतियों की जाँच हो रही है...", - "lackPermissions": "ब्लूटूथ अनुमतियों की कमी है और लोकेशन तक पहुंच नहीं सकता है", + "lackPermissions": + "ब्लूटूथ अनुमतियों की कमी है और लोकेशन तक पहुंच नहीं सकता है", "searchingDevice": "डिवाइस खोज रहा है...", "findConnectedDevice": "कनेक्टेड डिवाइस मिला", "notFound": "कोई कनेक्टेड ब्लूटूथ डिवाइस नहीं मिला", @@ -175,7 +182,8 @@ const Map hiIN = { "healthConsultant": "बहु-कार्यात्मक एआई चैट", "healthConsultantInfo": "अधिक एआई चैट फ़ंक्शन प्रदान करता है", "conferenceAssistant": "बिजनेस मीटिंग असिस्टेंट", - "conferenceAssistantInfo": "रीयल-टाइम मीटिंग मिनट रिकॉर्डिंग, बहु-भाषा अनुवाद", + "conferenceAssistantInfo": + "रीयल-टाइम मीटिंग मिनट रिकॉर्डिंग, बहु-भाषा अनुवाद", "usageStats": "उपयोग सtatistik", "usageStatsInfo": "अप्लिकेशन का उपयोग सtatistik देखें", "scene": "दृश्य", @@ -218,7 +226,8 @@ const Map hiIN = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +283,10 @@ const Map hiIN = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +295,35 @@ const Map hiIN = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'रीयल-टाइम समकालीन व्याख्या और पाठ अनुवाद, कम विलंबता वॉइस प्रसारण के साथ।', + 'transHeaderDesc1': + 'रीयल-टाइम समकालीन व्याख्या और पाठ अनुवाद, कम विलंबता वॉइस प्रसारण के साथ।', 'transHeaderDesc2': 'यात्रा, व्यवसाय, भाषण और शिक्षण के लिए उपयुक्त।', 'translateZhEn': 'चीनी-अंग्रेज़ी अनुवाद', 'lowLatencyVoiceBroadcast': 'कम विलंबता वॉइस प्रसारण', 'multiLangTextTranslation': 'बहुभाषी पाठ अनुवाद', - 'termOptimizationContextPreserve': 'पारिभाषिक शब्दों का अनुकूलन और संदर्भ बनाए रखना', + 'termOptimizationContextPreserve': + 'पारिभाषिक शब्दों का अनुकूलन और संदर्भ बनाए रखना', 'lexiconTourBusinessLife': 'यात्रा/व्यवसाय/जीवन शब्दकोश', 'personalVocabularyMemory': 'व्यक्तिगत शब्दावली स्मृति', 'conversationSubtitleLargeText': 'वार्तालाप उपशीर्षक / बड़े-टेक्स्ट मोड', 'colorHighContrast': 'उच्च रंग-विपरीत', - 'transDisclaimer': 'अनुवाद की गुणवत्ता माइक्रोफोन, नेटवर्क विलंबता और परिवेशी शोर पर निर्भर करती है।', + 'transDisclaimer': + 'अनुवाद की गुणवत्ता माइक्रोफोन, नेटवर्क विलंबता और परिवेशी शोर पर निर्भर करती है।', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +332,10 @@ const Map hiIN = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'लाभों का अवलोकन', @@ -329,7 +350,8 @@ const Map hiIN = { 'generalPrivileges': 'सामान्य विशेषाधिकार', 'earlyAccessNewFeatures': 'नई सुविधाओं का प्रारंभिक उपयोग', 'crossDeviceSync': 'क्रॉस-डिवाइस सिंक', - 'vipDisclaimer': 'वास्तविक लाभ पैकेज विवरण पर निर्भर करते हैं और संस्करणों के साथ बदल सकते हैं।', + 'vipDisclaimer': + 'वास्तविक लाभ पैकेज विवरण पर निर्भर करते हैं और संस्करणों के साथ बदल सकते हैं।', // 新手引导 / Onboarding 'skip': "छोड़ें", @@ -355,7 +377,8 @@ const Map hiIN = { 'guideNavInput': "Navigate to Shenzhen Airport", 'guideNavSend': "Lily will plan the route", 'guideNavEnd': "Navigation set—try other commands", - 'guideMeetingStart': "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", + 'guideMeetingStart': + "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", 'guideMeetingInput': "Create a meeting reminder for 3pm tomorrow", 'guideMeetingSend': "Lily will create a meeting reminder", 'guideMeetingEnd': "Reminder created—try other commands", @@ -405,7 +428,8 @@ const Map hiIN = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +484,54 @@ const Map hiIN = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +543,8 @@ const Map hiIN = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +564,8 @@ const Map hiIN = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +614,8 @@ const Map hiIN = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +640,8 @@ const Map hiIN = { "cloudSync": "क्लाउड सिंक्रोनाइज़ेशन रिचार्ज", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "कनेक्टेड डिवाइस:", "accountId": "खाता आईडी:", "systemSetting": "सिस्टम सेटिंग", @@ -621,9 +663,11 @@ const Map hiIN = { "voiceServiceInfo": "वॉयस रिकग्निशन और सिंथेसिस सर्विस चुनें", "selectVoiceService": "वॉयस सर्विस चुनें", "azureVoiceService": "Azure वॉयस सर्विस", - "azureVoiceServiceInfo": "Microsoft की क्लाउड वॉयस सर्विस, उच्च गुणवत्ता वाली वॉयस सिंथेसिस और रिकग्निशन का समर्थन करती है", + "azureVoiceServiceInfo": + "Microsoft की क्लाउड वॉयस सर्विस, उच्च गुणवत्ता वाली वॉयस सिंथेसिस और रिकग्निशन का समर्थन करती है", "flutterVoiceService": "Flutter लोकल वॉयस सर्विस", - "flutterVoiceServiceInfo": "डिवाइस की लोकल वॉयस सर्विस, बिना इंटरनेट कनेक्शन के इस्तेमाल की जा सकती है", + "flutterVoiceServiceInfo": + "डिवाइस की लोकल वॉयस सर्विस, बिना इंटरनेट कनेक्शन के इस्तेमाल की जा सकती है", 'timbreService': 'टिम्बर सर्विस', 'timbreServiceInfo': 'टिम्बर वॉयस सिंथेसिस सर्विस चुनें', 'defaultTimbre': 'डिफ़ॉल्ट टिम्बर', @@ -652,7 +696,8 @@ const Map hiIN = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "रीयल-टाइम वॉयस चैट", - "realtimeVoiceChatInfo": "बुद्धिमान वॉयस इंटरैक्शन फ़ंक्शन का अनुभव करें (फ़ंक्शन पूर्वावलोकन)", + "realtimeVoiceChatInfo": + "बुद्धिमान वॉयस इंटरैक्शन फ़ंक्शन का अनुभव करें (फ़ंक्शन पूर्वावलोकन)", "loading": "लोड हो रहा है...", //设备管理页面 @@ -667,7 +712,8 @@ const Map hiIN = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -695,7 +741,8 @@ const Map hiIN = { "listeningToYou": "आपको सुन रहा हूँ...", "processing": "संसाधित हो रहा है...", "loadMoreMessages": "और संदेश लोड करें...", - "loadFailedClickRetry": "लोड करने में विफल, पुनः प्रयास करने के लिए क्लिक करें", + "loadFailedClickRetry": + "लोड करने में विफल, पुनः प्रयास करने के लिए क्लिक करें", "swipeUpForMore": "अधिक के लिए ऊपर स्वाइप करें", "callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等! "voice_interrupt": "Interrupt", // 语音打断 @@ -721,10 +768,14 @@ const Map hiIN = { '• ईयरफोन फ़ंक्शन को नियंत्रित करना\n\n' 'मैं आपकी क्या मदद कर सकता हूँ?', 'microphonePermission': 'माइक्रोफोन', - 'voiceRecognitionPermissionText': 'वॉयस रिकग्निशन फ़ंक्शन के लिए माइक्रोफोन एक्सेस की आवश्यकता होती है।', - 'voiceTranslationPermissionText': 'वॉयस रिकग्निशन और अनुवाद फ़ंक्शन के लिए माइक्रोफोन एक्सेस की आवश्यकता होती है।', - 'phoneCallPermissionText': 'कॉल करने के लिए वॉयस कॉल के लिए माइक्रोफोन एक्सेस की आवश्यकता होती है।', - 'permissionDeniedText': 'आपने माइक्रोफोन की अनुमति को स्थायी रूप से अस्वीकार कर दिया है, कृपया इसे सक्षम करने के لیے सिस्टम सेटिंग्स पर जाएं।', + 'voiceRecognitionPermissionText': + 'वॉयस रिकग्निशन फ़ंक्शन के लिए माइक्रोफोन एक्सेस की आवश्यकता होती है।', + 'voiceTranslationPermissionText': + 'वॉयस रिकग्निशन और अनुवाद फ़ंक्शन के लिए माइक्रोफोन एक्सेस की आवश्यकता होती है।', + 'phoneCallPermissionText': + 'कॉल करने के लिए वॉयस कॉल के लिए माइक्रोफोन एक्सेस की आवश्यकता होती है।', + 'permissionDeniedText': + 'आपने माइक्रोफोन की अनुमति को स्थायी रूप से अस्वीकार कर दिया है, कृपया इसे सक्षम करने के لیے सिस्टम सेटिंग्स पर जाएं।', 'startVoiceInput': 'वॉयस इनपुट शुरू करें', 'startPhoneCallMode': 'कॉल मोड शुरू करें, वॉयस इनपुट शुरू करें', @@ -747,7 +798,8 @@ const Map hiIN = { 'privacyRelated': 'गोपनीयता से संबंधित', 'copyrightViolation': 'मेरे कॉपीराइट, प्रतिष्ठा आदि का उल्लंघन करता है।', 'other': 'अन्य', - 'reportDescriptionHint': 'हम जानना चाहते हैं कि आप क्यों रिपोर्ट कर रहे हैं, आप जिस समस्या का सामना कर रहे हैं उसका वर्णन कर सकते हैं।', + 'reportDescriptionHint': + 'हम जानना चाहते हैं कि आप क्यों रिपोर्ट कर रहे हैं, आप जिस समस्या का सामना कर रहे हैं उसका वर्णन कर सकते हैं।', //'submit': '提交', //Message_bubble @@ -779,14 +831,22 @@ const Map hiIN = { 'lowest': 'न्यूनतम', 'futureForecast': 'भविष्य का पूर्वानुमान', 'hotWeatherTip': 'आज गर्मी है, कृपया लू से बचें और खूब पानी पिएं', - 'coldWeatherTip': 'आज तापमान कम है, कृपया बाहर जाते समय गर्म कपड़े पहनें ताकि जुकाम न लगे', - 'rainyWeatherTip': 'आज बारिश हो रही है, कृपया बाहर जाते समय छाता ले जाएं और सावधान रहें', - 'snowyWeatherTip': 'आज बर्फ पड़ रही है, सड़क फिसलन भरी है, कृपया सावधान रहें और गर्म कपड़े पहनें', - 'foggyWeatherTip': 'आज कोहरा है, दृश्यता कम है, कृपया बाहर जाते समय मास्क पहनें', - 'windyWeatherTip': 'आज हवा तेज है, कृपया बाहर जाते समय सावधान रहें और अपनी चीजों को सुरक्षित रखें', - 'sunnyWeatherTip': 'आज धूप तेज है और यूवी किरणें मजबूत हैं, कृपया बाहर जाते समय सनस्क्रीन का उपयोग करें', - 'temperatureDifferenceTip': 'आज दिन और रात के तापमान में बड़ा अंतर है, कृपया अपने कपड़े समायोजित करें', - 'comfortableWeatherTip': 'आज मौसम सुहावना है, बाहरी गतिविधियों के लिए एक अच्छा समय है', + 'coldWeatherTip': + 'आज तापमान कम है, कृपया बाहर जाते समय गर्म कपड़े पहनें ताकि जुकाम न लगे', + 'rainyWeatherTip': + 'आज बारिश हो रही है, कृपया बाहर जाते समय छाता ले जाएं और सावधान रहें', + 'snowyWeatherTip': + 'आज बर्फ पड़ रही है, सड़क फिसलन भरी है, कृपया सावधान रहें और गर्म कपड़े पहनें', + 'foggyWeatherTip': + 'आज कोहरा है, दृश्यता कम है, कृपया बाहर जाते समय मास्क पहनें', + 'windyWeatherTip': + 'आज हवा तेज है, कृपया बाहर जाते समय सावधान रहें और अपनी चीजों को सुरक्षित रखें', + 'sunnyWeatherTip': + 'आज धूप तेज है और यूवी किरणें मजबूत हैं, कृपया बाहर जाते समय सनस्क्रीन का उपयोग करें', + 'temperatureDifferenceTip': + 'आज दिन और रात के तापमान में बड़ा अंतर है, कृपया अपने कपड़े समायोजित करें', + 'comfortableWeatherTip': + 'आज मौसम सुहावना है, बाहरी गतिविधियों के लिए एक अच्छा समय है', "monday": "सोम", "tuesday": "मंगल", "wednesday": "बुध", @@ -838,22 +898,30 @@ const Map hiIN = { "logout": "लॉग आउट करें", "logoutTips": "क्या आप वाकई वर्तमान खाते से लॉग आउट करना चाहते हैं?", 'deleteAccount': 'खाता हटाएं', - 'deleteAccountTips': 'क्या आप वाकई अपना खाता स्थायी रूप से हटाना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती है।', + 'deleteAccountTips': + 'क्या आप वाकई अपना खाता स्थायी रूप से हटाना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती है।', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'नेटवर्क कनेक्शन विफल, कृपया अपनी नेटवर्क सेटिंग्स जांचें और पुनः प्रयास करें', - 'serverTemporarilyUnavailable': 'सर्वर अस्थायी रूप से अनुपलब्ध है, कृपया बाद में पुनः प्रयास करें', - 'loginExpiredPleaseRelogin': 'आपका सत्र समाप्त हो गया है, कृपया पुनः लॉग इन करें', - 'noPermissionForThisOperation': 'इस ऑपरेशन को करने की आपके पास अनुमति नहीं है', + 'networkConnectionFailed': + 'नेटवर्क कनेक्शन विफल, कृपया अपनी नेटवर्क सेटिंग्स जांचें और पुनः प्रयास करें', + 'serverTemporarilyUnavailable': + 'सर्वर अस्थायी रूप से अनुपलब्ध है, कृपया बाद में पुनः प्रयास करें', + 'loginExpiredPleaseRelogin': + 'आपका सत्र समाप्त हो गया है, कृपया पुनः लॉग इन करें', + 'noPermissionForThisOperation': + 'इस ऑपरेशन को करने की आपके पास अनुमति नहीं है', 'requestedResourceNotFound': 'अनुरोधित संसाधन नहीं मिला', - 'imageProcessingFailedPleaseReselect': 'छवि प्रसंस्करण विफल, कृपया दूसरी छवि चुनें', + 'imageProcessingFailedPleaseReselect': + 'छवि प्रसंस्करण विफल, कृपया दूसरी छवि चुनें', 'operationFailedPleaseRetry': 'ऑपरेशन विफल, कृपया पुनः प्रयास करें', 'serverReturnedError': 'सर्वर ने एक त्रुटि वापस की', 'serverError': 'सर्वर त्रुटि', - 'networkConnectionFailedCheckSettings': 'नेटवर्क कनेक्शन विफल, कृपया अपनी नेटवर्क सेटिंग्स जांचें', - 'serverInternalErrorRetryLater': 'सर्वर आंतरिक त्रुटि, कृपया बाद में पुनः प्रयास करें', + 'networkConnectionFailedCheckSettings': + 'नेटवर्क कनेक्शन विफल, कृपया अपनी नेटवर्क सेटिंग्स जांचें', + 'serverInternalErrorRetryLater': + 'सर्वर आंतरिक त्रुटि, कृपया बाद में पुनः प्रयास करें', // Profile 用户交互 //'error': '错误', @@ -874,11 +942,16 @@ const Map hiIN = { 'deleteUserDataFailed': 'उपयोगकर्ता डेटा हटाने में विफल', // 删除用户数据失败 'thirdPartyLogoutSuccess': 'तीसरे पक्ष का लॉगआउट सफल', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'तीसरे पक्ष का लॉगआउट विफल', // 第三方登录退出失败 - 'signOutProcessError': 'साइन आउट प्रक्रिया के दौरान एक त्रुटि हुई', // 登出过程发生错误 - 'deleteAccountProcessError': 'खाता हटाने की प्रक्रिया के दौरान एक त्रुटि हुई', // 删除账号过程发生错误 - 'userDataClearSuccess': 'उपयोगकर्ता डेटा सफलतापूर्वक साफ़ किया गया', // 用户数据清理成功 - 'allUserDataClearSuccess': 'सभी उपयोगकर्ता डेटा सफलतापूर्वक साफ़ किया गया', // 所有用户数据清理成功 - 'accountServiceInitialized': 'खाता सेवा प्रारंभ की गई है', // AccountService 已初始化 + 'signOutProcessError': + 'साइन आउट प्रक्रिया के दौरान एक त्रुटि हुई', // 登出过程发生错误 + 'deleteAccountProcessError': + 'खाता हटाने की प्रक्रिया के दौरान एक त्रुटि हुई', // 删除账号过程发生错误 + 'userDataClearSuccess': + 'उपयोगकर्ता डेटा सफलतापूर्वक साफ़ किया गया', // 用户数据清理成功 + 'allUserDataClearSuccess': + 'सभी उपयोगकर्ता डेटा सफलतापूर्वक साफ़ किया गया', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'खाता सेवा प्रारंभ की गई है', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'अनुमति की स्थिति प्राप्त करने में विफल', @@ -901,10 +974,14 @@ const Map hiIN = { 'locationInfo': 'स्थान की जानकारी', 'phonePermissionDesc': 'कॉल करने के लिए उपयोग किया जाता है', 'smsPermissionDesc': 'एसएमएस भेजने के लिए उपयोग किया जाता है', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'कैलेंडर ईवेंट और रिमाइंडर बनाने के लिए उपयोग किया जाता है', - 'calendarFullAccessPermissionDesc': 'कैलेंडर ईवेंट और रिमाइंडर पढ़ने और प्रबंधित करने के लिए उपयोग किया जाता है', - 'locationPermissionDesc': 'वर्तमान स्थान की जानकारी प्राप्त करने के लिए उपयोग किया जाता है', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'कैलेंडर ईवेंट और रिमाइंडर बनाने के लिए उपयोग किया जाता है', + 'calendarFullAccessPermissionDesc': + 'कैलेंडर ईवेंट और रिमाइंडर पढ़ने और प्रबंधित करने के लिए उपयोग किया जाता है', + 'locationPermissionDesc': + 'वर्तमान स्थान की जानकारी प्राप्त करने के लिए उपयोग किया जाता है', 'appFunctionNeeds': 'ऐप फ़ंक्शन की आवश्यकता है', 'authorized': 'अधिकृत', 'unauthorized': 'अनधिकृत', @@ -913,45 +990,71 @@ const Map hiIN = { 'unknownStatus': 'अज्ञात स्थिति', 'permissionGranted': 'अनुमति दी गई', 'permissionRequestError': 'अनुमति का अनुरोध करते समय त्रुटि हुई', - 'phonePermissionDetailDesc': 'कॉल फ़ंक्शन के लिए फ़ोन अनुमति की आवश्यकता होती है', - 'smsPermissionDetailDesc': 'एसएमएस भेजने के लिए एसएमएस अनुमति की आवश्यकता होती है', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'कैलेंडर ईवेंट बनाने के लिए कैलेंडर में लिखने की अनुमति की आवश्यकता होती है', - 'calendarFullAccessPermissionDetailDesc': 'कैलेंडर ईवेंट प्रबंधित करने के लिए पूर्ण कैलेंडर अनुमति की आवश्यकता होती है', - 'locationPermissionDetailDesc': 'स्थान की जानकारी प्राप्त करने के लिए स्थान अनुमति की आवश्यकता होती है', + 'phonePermissionDetailDesc': + 'कॉल फ़ंक्शन के लिए फ़ोन अनुमति की आवश्यकता होती है', + 'smsPermissionDetailDesc': + 'एसएमएस भेजने के लिए एसएमएस अनुमति की आवश्यकता होती है', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'कैलेंडर ईवेंट बनाने के लिए कैलेंडर में लिखने की अनुमति की आवश्यकता होती है', + 'calendarFullAccessPermissionDetailDesc': + 'कैलेंडर ईवेंट प्रबंधित करने के लिए पूर्ण कैलेंडर अनुमति की आवश्यकता होती है', + 'locationPermissionDetailDesc': + 'स्थान की जानकारी प्राप्त करने के लिए स्थान अनुमति की आवश्यकता होती है', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'ऐप को पूर्ण कार्यक्षमता के लिए इस अनुमति की आवश्यकता है', - 'permanentDenialText': 'आपने {permission} अनुमति को स्थायी रूप से अस्वीकार कर दिया है, कृपया इसे सक्षम करने کے لیے ऐप सेटिंग्स पर जाएं', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'ऐप को पूर्ण कार्यक्षमता के लिए इस अनुमति की आवश्यकता है', + 'permanentDenialText': + 'आपने {permission} अनुमति को स्थायी रूप से अस्वीकार कर दिया है, कृपया इसे सक्षम करने کے لیے ऐप सेटिंग्स पर जाएं', 'goToSettings': 'सेटिंग्स पर जाएं', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1064,8 @@ const Map hiIN = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1074,10 @@ const Map hiIN = { 'updateNow': 'अभी अपडेट करें', // 立即更新按钮 'checkUpdate': 'अपडेट की जाँच करें', // 检查更新按钮 'updateFailed': 'अपडेट विफल', // 更新失败提示 - 'cannotOpenAppStore': 'ऐप स्टोर नहीं खोल सकता, कृपया अपडेट करने के लिए मैन्युअल रूप से ऐप स्टोर पर जाएं', // 无法打开应用商店提示 - 'updateErrorRetry': 'अपडेट के दौरान एक त्रुटि हुई, कृपया बाद में पुनः प्रयास करें', // 更新错误重试提示 + 'cannotOpenAppStore': + 'ऐप स्टोर नहीं खोल सकता, कृपया अपडेट करने के लिए मैन्युअल रूप से ऐप स्टोर पर जाएं', // 无法打开应用商店提示 + 'updateErrorRetry': + 'अपडेट के दौरान एक त्रुटि हुई, कृपया बाद में पुनः प्रयास करें', // 更新错误重试提示 //国家列表 "邮箱": "ईमेल", @@ -1107,7 +1213,8 @@ const Map hiIN = { "selectTargetLanguage": "लक्ष्य भाषा चुनें", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1230,12 @@ const Map hiIN = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "इतिहास साफ़ करें", - "clearHistoryConfirm": "क्या आप वाकई सभी अनुवाद इतिहास साफ़ करना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती है।", + "clearHistoryConfirm": + "क्या आप वाकई सभी अनुवाद इतिहास साफ़ करना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती है।", "unknownLanguage": "अज्ञात भाषा", "deleteSessionRecord": "सत्र रिकॉर्ड हटाएं", - "deleteSessionConfirm": "क्या आप वाकई इस सत्र के सभी अनुवाद रिकॉर्ड हटाना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती है।", + "deleteSessionConfirm": + "क्या आप वाकई इस सत्र के सभी अनुवाद रिकॉर्ड हटाना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती है।", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1267,20 @@ const Map hiIN = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1303,8 @@ const Map hiIN = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "मूल रिकॉर्ड", "recordSummary": "रिकॉर्ड सारांश", - "clickToGenerateSummary": "सत्र सारांश बनाने के लिए नीचे दिए गए बटन पर क्लिक करें", + "clickToGenerateSummary": + "सत्र सारांश बनाने के लिए नीचे दिए गए बटन पर क्लिक करें", "summaryContent": "सारांश सामग्री", "copied": "कॉपी किया गया", "summaryCopiledToClipboard": "सारांश क्लिपबोर्ड पर कॉपी किया गया", @@ -1197,9 +1312,11 @@ const Map hiIN = { "summaryGenerated": "सारांश बनाया गया", "generating": "बनाया जा रहा है...", "regenerate": "पुनः बनाएं", - "summaryTimeoutMessage": "सारांश बनाने का अनुरोध समय समाप्त हो गया, शायद नेटवर्क समस्याओं या व्यस्त सर्वर के कारण।", + "summaryTimeoutMessage": + "सारांश बनाने का अनुरोध समय समाप्त हो गया, शायद नेटवर्क समस्याओं या व्यस्त सर्वर के कारण।", "deleteTranslationRecord": "अनुवाद रिकॉर्ड हटाएं", - "deleteTranslationConfirm": "क्या आप वाकई इस अनुवाद रिकॉर्ड को हटाना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती है।", + "deleteTranslationConfirm": + "क्या आप वाकई इस अनुवाद रिकॉर्ड को हटाना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती है।", "originalText": "मूल पाठ", "translatedText": "अनुवादित पाठ", "sessionSummary": "सत्र सारांश", @@ -1227,19 +1344,25 @@ const Map hiIN = { // 配对状态文本 "readyToPair": "पेयर करने के लिए तैयार", "preparingPairingEnvironment": "पेयरिंग वातावरण तैयार हो रहा है...", - "connectDeepSoundViaSystemBluetooth": "कृपया पहले सिस्टम ब्लूटूथ के माध्यम से Voitrans डिवाइस से कनेक्ट करें", + "connectDeepSoundViaSystemBluetooth": + "कृपया पहले सिस्टम ब्लूटूथ के माध्यम से Voitrans डिवाइस से कनेक्ट करें", "deviceBindingConfirm": "डिवाइस बाइंडिंग की पुष्टि...", "establishingDeviceAssociation": "डिवाइस एसोसिएशन स्थापित हो रहा है...", "waitingCompletePairing": "कृपया प्रतीक्षा करें, पेयरिंग पूरी हो रही है...", - "pairingSuccessRedirecting": "पेयरिंग सफल! होमपेज पर रीडायरेक्ट किया जा रहा है...", + "pairingSuccessRedirecting": + "पेयरिंग सफल! होमपेज पर रीडायरेक्ट किया जा रहा है...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "कृपया सुनिश्चित करें कि आप Voitrans डिवाइस से जुड़े हैं", - "deviceAlreadyBoundToOtherAccount": "यह डिवाइस पहले से ही दूसरे खाते से बंधा हुआ है", + "ensureConnectedDeepSoundDevice": + "कृपया सुनिश्चित करें कि आप Voitrans डिवाइस से जुड़े हैं", + "deviceAlreadyBoundToOtherAccount": + "यह डिवाइस पहले से ही दूसरे खाते से बंधा हुआ है", "deviceAssociationFailed": "डिवाइस एसोसिएशन विफल, कृपया पुनः प्रयास करें", - "scanTimeoutEnsureDeviceNearby": "स्कैन टाइमआउट, कृपया सुनिश्चित करें कि डिवाइस पास में है", + "scanTimeoutEnsureDeviceNearby": + "स्कैन टाइमआउट, कृपया सुनिश्चित करें कि डिवाइस पास में है", "networkError": "नेटवर्क त्रुटि", - "authorizationFailedCheckCode": "प्राधिकरण विफल, कृपया जांचें कि प्राधिकरण कोड सही है या नहीं", + "authorizationFailedCheckCode": + "प्राधिकरण विफल, कृपया जांचें कि प्राधिकरण कोड सही है या नहीं", "pairingFailedRetry": "पेयरिंग विफल, कृपया पुनः प्रयास करें", // 配对控制器相关 @@ -1248,13 +1371,15 @@ const Map hiIN = { 'deviceDisconnected': 'डिवाइस डिस्कनेक्ट हो गया', 'readyToStartPairing': 'पेयरिंग शुरू करने के लिए तैयार', 'checkingEnvironment': 'वातावरण की जाँच हो रही है...', - 'ensureHeadsetOnAndPairingMode': 'कृपया सुनिश्चित करें कि हेडसेट चालू है और पेयरिंग मोड में है', + 'ensureHeadsetOnAndPairingMode': + 'कृपया सुनिश्चित करें कि हेडसेट चालू है और पेयरिंग मोड में है', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'सुरक्षित कनेक्शन स्थापित हो रहा है...', - 'needManualBindingAuthCode': 'मैनुअल बाइंडिंग प्राधिकरण कोड की आवश्यकता है...', + 'needManualBindingAuthCode': + 'मैनुअल बाइंडिंग प्राधिकरण कोड की आवश्यकता है...', 'pairingSuccessful': 'पेयरिंग सफल!', 'enableBluetooth': 'ब्लूटूथ सक्षम करें', 'grantPermissions': 'अनुमतियाँ दें', @@ -1266,35 +1391,45 @@ const Map hiIN = { 'verificationFailedRetry': 'सत्यापन विफल, कृपया पुनः प्रयास करें', 'invalidDeviceAddress': 'अमान्य डिवाइस पता', 'bleDeviceAssociationFailed': 'BLE डिवाइस एसोसिएशन विफल', - 'deviceAssociationFailedRetry': 'डिवाइस एसोसिएशन विफल, कृपया पुनः प्रयास करें', + 'deviceAssociationFailedRetry': + 'डिवाइस एसोसिएशन विफल, कृपया पुनः प्रयास करें', 'bleConnectionTimeoutRetry': 'BLE कनेक्शन टाइमआउट, कृपया पुनः प्रयास करें', 'blePairingStartupFailed': 'BLE पेयरिंग स्टार्टअप विफल', 'bleConnectionFailed': 'BLE कनेक्शन विफल', - 'deviceAuthorizationFailedCheckCode': 'डिवाइस प्राधिकरण विफल, कृपया प्राधिकरण कोड जांचें', + 'deviceAuthorizationFailedCheckCode': + 'डिवाइस प्राधिकरण विफल, कृपया प्राधिकरण कोड जांचें', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "उपयोगकर्ता प्रतिक्रिया", 'feedbackInfo': 'प्रतिक्रिया या सुझाव दें', - 'feedbackDescription': 'कृपया आपके द्वारा सामना की गई समस्या या आपके सुझाव का वर्णन करें', + 'feedbackDescription': + 'कृपया आपके द्वारा सामना की गई समस्या या आपके सुझाव का वर्णन करें', 'feedbackHint': 'कृपया अपनी प्रतिक्रिया दर्ज करें...', 'feedbackRequired': 'कृपया प्रतिक्रिया सामग्री दर्ज करें', 'contactInfo': 'संपर्क जानकारी', 'contactHint': 'ईमेल/फोन, ताकि हम आपसे संपर्क कर सकें', 'submit': 'सबमिट करें', - 'feedbackSubmitSuccess': 'प्रतिक्रिया सफलतापूर्वक सबमिट की गई, आपकी प्रतिक्रिया के लिए धन्यवाद!', - 'feedbackSubmitFailed': 'प्रतिक्रिया सबमिट करने में विफल, कृपया बाद में पुनः प्रयास करें', + 'feedbackSubmitSuccess': + 'प्रतिक्रिया सफलतापूर्वक सबमिट की गई, आपकी प्रतिक्रिया के लिए धन्यवाद!', + 'feedbackSubmitFailed': + 'प्रतिक्रिया सबमिट करने में विफल, कृपया बाद में पुनः प्रयास करें', // OTA升级模块 - "upgradeExitConfirm": "अपग्रेड चल रहा है, बाहर निकलने से प्रक्रिया बाधित होगी, क्या आप वाकई बाहर निकलना चाहते हैं?", + "upgradeExitConfirm": + "अपग्रेड चल रहा है, बाहर निकलने से प्रक्रिया बाधित होगी, क्या आप वाकई बाहर निकलना चाहते हैं?", "deviceModel": "डिवाइस मॉडल", "unknownDevice": "अज्ञात डिवाइस", "currentFirmwareVersion": "वर्तमान फर्मवेयर संस्करण", @@ -1307,14 +1442,18 @@ const Map hiIN = { "retryConnection": "कनेक्शन पुनः प्रयास करें", "ota_updateNow": "अभी अपडेट करें", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "डिवाइस को कनेक्टेड रखें, ऐप बंद न करें", "doNotDisconnect": "डिस्कनेक्ट न करें", "charging": "चार्ज हो रहा है", "updateContent": "अपडेट सामग्री", - "removeEarbudsEnsureBattery": "दोनों ईयरबड निकालें, और सुनिश्चित करें कि दोनों की बैटरी 20% से ऊपर है", + "removeEarbudsEnsureBattery": + "दोनों ईयरबड निकालें, और सुनिश्चित करें कि दोनों की बैटरी 20% से ऊपर है", // 音乐列表页面 "noMusic": "कोई संगीत नहीं", // 暂无音乐 @@ -1376,8 +1515,10 @@ const Map hiIN = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/hr_hr.dart b/lib/core/translations/language/hr_hr.dart index 2a92d6faa..05def5efe 100644 --- a/lib/core/translations/language/hr_hr.dart +++ b/lib/core/translations/language/hr_hr.dart @@ -33,6 +33,7 @@ const Map hrHR = { "spanish": "Španjolski", "portuguese": "Portugalski", "traditionalChinese": "Tradicionalni kineski", + "traditionalChineseHK": "Tradicionalni kineski (Hong Kong)", "japanese": "Japanski", "korean": "Korejski", "french": "Francuski", @@ -71,7 +72,8 @@ const Map hrHR = { // 登录页 "welcome": "Dobrodošli", - "loginTips": "Prijavite se ili registrirajte pomoću svog telefonskog broja ili e-pošte", + "loginTips": + "Prijavite se ili registrirajte pomoću svog telefonskog broja ili e-pošte", "accountNumber": "Telefonski broj ili e-pošta", "verificationCode": "Verifikacijski kod", "getCode": "Dohvati kod", @@ -90,7 +92,8 @@ const Map hrHR = { "tip": "Savjet", "pleaseEnterCompleteCode": "Unesite potpuni verifikacijski kod", "loginFailed": "Prijava nije uspjela, pokušajte ponovno", - 'pleaseAcceptPrivacyPolicy': 'Molimo, prvo pročitajte i prihvatite Pravila o privatnosti i Korisnički ugovor', + 'pleaseAcceptPrivacyPolicy': + 'Molimo, prvo pročitajte i prihvatite Pravila o privatnosti i Korisnički ugovor', "enterVerificationCode": "Unesite verifikacijski kod", "verificationCodeSentTo": "Verifikacijski kod poslan je na", "resendVerificationCode": "Ponovno pošalji verifikacijski kod", @@ -99,7 +102,8 @@ const Map hrHR = { // 隐私政策弹窗 "loginDeclaration": "Izjava tvrtke Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Dobrodošli u Voitrans, molimo pročitajte pažljivo", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Dobrodošli u Voitrans, molimo pročitajte pažljivo", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +119,30 @@ const Map hrHR = { "signal": "Signal", "deviceId": "ID uređaja", "firmwareVersion": "Verzija firmvera", - "disconnectedDevice": "Nijedan uređaj nije povezan, kliknite na gumb ispod za povezivanje", + "disconnectedDevice": + "Nijedan uređaj nije povezan, kliknite na gumb ispod za povezivanje", "connectDevice": "Poveži uređaj", "topAiExperiences": "Vrhunska AI iskustva", "aiAssistant": "Sveobuhvatni AI asistent", - "aiAssistantInfo": "Ekskluzivni konzultant 24/7, odgovara na pitanja, daje prijedloge", + "aiAssistantInfo": + "Ekskluzivni konzultant 24/7, odgovara na pitanja, daje prijedloge", "interpretation": "Simultano prevođenje", - "simultaneousInterpretationInfo": "Prijevod u stvarnom vremenu na više od 80 jezika, bezbrižna putovanja u inozemstvo", + "simultaneousInterpretationInfo": + "Prijevod u stvarnom vremenu na više od 80 jezika, bezbrižna putovanja u inozemstvo", "aiCompanion": "Obiteljski pratilac", "aiCompanionInfo": "Razumije vas, toplo društvo", "homeSlogan": "Povezivanje svijeta, nadilazeći zvuk", - "turnEarphones": "Otvorite kućište za punjenje slušalica i stavite slušalice u uši", + "turnEarphones": + "Otvorite kućište za punjenje slušalica i stavite slušalice u uši", "currentlyConnected": "Trenutno povezano:", "unsystemSetup": "Idite na postavke sustava", "talkLater": "Kasnije", "initializing": "Inicijalizacija...", - "bluetoothInitializationFailure": "Inicijalizacija Bluetooth usluge nije uspjela", + "bluetoothInitializationFailure": + "Inicijalizacija Bluetooth usluge nije uspjela", "checkingPermissions": "Provjera dopuštenja...", - "lackPermissions": "Nedostaju Bluetooth dopuštenja i pristup lokacijskom podacima je potrebno", + "lackPermissions": + "Nedostaju Bluetooth dopuštenja i pristup lokacijskom podacima je potrebno", "searchingDevice": "Pretraživanje uređaja...", "findConnectedDevice": "Pronađen povezan uređaj", "notFound": "Nije pronađen povezan Bluetooth uređaj", @@ -169,13 +179,15 @@ const Map hrHR = { "faceToFaceTranslation": "Prijevod licem u lice", 'audioVideoTranslation': 'Prijevod zvuka i videa', 'callTranslation': 'Prijevod poziva', - "simultaneousTranslationInfo": "Prijevod u stvarnom vremenu na više od 80 jezika", + "simultaneousTranslationInfo": + "Prijevod u stvarnom vremenu na više od 80 jezika", "aiGirlfriend": "AI djevojka", "aiGirlfriendInfo": "Inteligentni pratilac, razgovarajte bilo kada", "healthConsultant": "Višenamjenski AI chat", "healthConsultantInfo": "Nudi više AI chat funkcija", "conferenceAssistant": "Asistent za poslovne sastanke", - "conferenceAssistantInfo": "Bilježenje zapisnika u stvarnom vremenu, višejezični prijevod", + "conferenceAssistantInfo": + "Bilježenje zapisnika u stvarnom vremenu, višejezični prijevod", "usageStats": "Statistika upotrebe", "usageStatsInfo": "Pregledajte statistiku upotrebe aplikacije", "scene": "Scenarij", @@ -218,7 +230,8 @@ const Map hrHR = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +287,10 @@ const Map hrHR = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +299,35 @@ const Map hrHR = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +336,10 @@ const Map hrHR = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +354,8 @@ const Map hrHR = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Preskoči", @@ -355,7 +381,8 @@ const Map hrHR = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +432,8 @@ const Map hrHR = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +488,54 @@ const Map hrHR = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +547,8 @@ const Map hrHR = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +568,8 @@ const Map hrHR = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +618,8 @@ const Map hrHR = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +644,8 @@ const Map hrHR = { "cloudSync": "Synchronizacija u oblaku ponuda", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Povezan uređaj:", "accountId": "ID računa:", "systemSetting": "Postavke sustava", @@ -612,7 +658,8 @@ const Map hrHR = { "privacySettings": "Postavke privatnosti", "privacySettingsInfo": "Upravljanje prikupljanjem podataka i dopuštenjima", "permissionManagement": "Upravljanje dopuštenjima", // 权限管理 - "permissionManagementInfo": "Upravljanje postavkama dopuštenja aplikacije", // 管理应用权限设置 + "permissionManagementInfo": + "Upravljanje postavkama dopuštenja aplikacije", // 管理应用权限设置 "aboutApplication": "O aplikaciji", "versions": "Verzija", "checkUpdates": "Provjeri ažuriranja", @@ -621,9 +668,11 @@ const Map hrHR = { "voiceServiceInfo": "Odabir usluge za prepoznavanje i sintezu govora", "selectVoiceService": "Odaberi glasovnu uslugu", "azureVoiceService": "Azure glasovna usluga", - "azureVoiceServiceInfo": "Microsoftova glasovna usluga u oblaku, podržava visokokvalitetnu sintezu i prepoznavanje govora", + "azureVoiceServiceInfo": + "Microsoftova glasovna usluga u oblaku, podržava visokokvalitetnu sintezu i prepoznavanje govora", "flutterVoiceService": "Flutter lokalna glasovna usluga", - "flutterVoiceServiceInfo": "Lokalna glasovna usluga uređaja, može se koristiti bez internetske veze", + "flutterVoiceServiceInfo": + "Lokalna glasovna usluga uređaja, može se koristiti bez internetske veze", 'timbreService': 'Usluga boje glasa', 'timbreServiceInfo': 'Odaberite uslugu sinteze govora s bojom glasa', 'defaultTimbre': 'Zadana boja glasa', @@ -652,7 +701,8 @@ const Map hrHR = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Glasovni chat u stvarnom vremenu", - "realtimeVoiceChatInfo": "Iskusite funkciju inteligentne glasovne interakcije (pregled funkcije)", + "realtimeVoiceChatInfo": + "Iskusite funkciju inteligentne glasovne interakcije (pregled funkcije)", "loading": "Učitavanje...", //设备管理页面 @@ -667,7 +717,8 @@ const Map hrHR = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -721,10 +772,14 @@ const Map hrHR = { '• Kontrolirati funkcije slušalica\n\n' 'Kako vam mogu pomoći?', 'microphonePermission': 'Mikrofon', - 'voiceRecognitionPermissionText': 'Funkcija prepoznavanja govora zahtijeva pristup mikrofonu.', - 'voiceTranslationPermissionText': 'Funkcija prepoznavanja i prevođenja govora zahtijeva pristup mikrofonu.', - 'phoneCallPermissionText': 'Funkcija pozivanja zahtijeva pristup mikrofonu za glasovne pozive.', - 'permissionDeniedText': 'Trajno ste odbili dopuštenje za mikrofon, idite u postavke sustava da biste ga omogućili.', + 'voiceRecognitionPermissionText': + 'Funkcija prepoznavanja govora zahtijeva pristup mikrofonu.', + 'voiceTranslationPermissionText': + 'Funkcija prepoznavanja i prevođenja govora zahtijeva pristup mikrofonu.', + 'phoneCallPermissionText': + 'Funkcija pozivanja zahtijeva pristup mikrofonu za glasovne pozive.', + 'permissionDeniedText': + 'Trajno ste odbili dopuštenje za mikrofon, idite u postavke sustava da biste ga omogućili.', 'startVoiceInput': 'Započni unos glasom', 'startPhoneCallMode': 'Započni način poziva, započni unos glasom', @@ -747,7 +802,8 @@ const Map hrHR = { 'privacyRelated': 'Vezano za privatnost', 'copyrightViolation': 'Kršenje mog autorskog prava, ugleda, itd.', 'other': 'Ostalo', - 'reportDescriptionHint': 'Želimo znati razlog vaše prijave, možete opisati problem s kojim ste se suočili.', + 'reportDescriptionHint': + 'Želimo znati razlog vaše prijave, možete opisati problem s kojim ste se suočili.', //'submit': '提交', //Message_bubble @@ -779,14 +835,22 @@ const Map hrHR = { 'lowest': 'Najniža', 'futureForecast': 'Buduća prognoza', 'hotWeatherTip': 'Danas je vruće, pazite na toplinski udar i pijte puno vode', - 'coldWeatherTip': 'Danas je temperatura niska, obucite se toplo kada izlazite da se ne prehladite', - 'rainyWeatherTip': 'Danas pada kiša, ponesite kišobran kada izlazite i pazite na putu', - 'snowyWeatherTip': 'Danas pada snijeg, put je sklizak, pazite i obucite se toplo', - 'foggyWeatherTip': 'Danas je magla, vidljivost je smanjena, nosite masku kada izlazite', - 'windyWeatherTip': 'Danas puše jak vjetar, pazite kada izlazite i osigurajte svoje stvari', - 'sunnyWeatherTip': 'Danas je sunčano i jako UV zračenje, koristite kremu za sunčanje kada izlazite', - 'temperatureDifferenceTip': 'Danas je velika razlika u temperaturi između dana i noći, prilagodite odjeću', - 'comfortableWeatherTip': 'Danas je vrijeme ugodno, odlično vrijeme za aktivnosti na otvorenom', + 'coldWeatherTip': + 'Danas je temperatura niska, obucite se toplo kada izlazite da se ne prehladite', + 'rainyWeatherTip': + 'Danas pada kiša, ponesite kišobran kada izlazite i pazite na putu', + 'snowyWeatherTip': + 'Danas pada snijeg, put je sklizak, pazite i obucite se toplo', + 'foggyWeatherTip': + 'Danas je magla, vidljivost je smanjena, nosite masku kada izlazite', + 'windyWeatherTip': + 'Danas puše jak vjetar, pazite kada izlazite i osigurajte svoje stvari', + 'sunnyWeatherTip': + 'Danas je sunčano i jako UV zračenje, koristite kremu za sunčanje kada izlazite', + 'temperatureDifferenceTip': + 'Danas je velika razlika u temperaturi između dana i noći, prilagodite odjeću', + 'comfortableWeatherTip': + 'Danas je vrijeme ugodno, odlično vrijeme za aktivnosti na otvorenom', "monday": "Pon", "tuesday": "Uto", "wednesday": "Sri", @@ -838,22 +902,28 @@ const Map hrHR = { "logout": "Odjavi se", "logoutTips": "Jeste li sigurni da se želite odjaviti s trenutnog računa?", 'deleteAccount': 'Obriši račun', - 'deleteAccountTips': 'Jeste li sigurni da želite trajno obrisati svoj račun? Ova se radnja ne može poništiti.', + 'deleteAccountTips': + 'Jeste li sigurni da želite trajno obrisati svoj račun? Ova se radnja ne može poništiti.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Mrežna veza nije uspjela, provjerite postavke mreže i pokušajte ponovno', - 'serverTemporarilyUnavailable': 'Poslužitelj je privremeno nedostupan, pokušajte ponovno kasnije', + 'networkConnectionFailed': + 'Mrežna veza nije uspjela, provjerite postavke mreže i pokušajte ponovno', + 'serverTemporarilyUnavailable': + 'Poslužitelj je privremeno nedostupan, pokušajte ponovno kasnije', 'loginExpiredPleaseRelogin': 'Vaša sesija je istekla, prijavite se ponovno', 'noPermissionForThisOperation': 'Nemate dopuštenje za ovu operaciju', 'requestedResourceNotFound': 'Traženi resurs nije pronađen', - 'imageProcessingFailedPleaseReselect': 'Obrada slike nije uspjela, odaberite drugu sliku', + 'imageProcessingFailedPleaseReselect': + 'Obrada slike nije uspjela, odaberite drugu sliku', 'operationFailedPleaseRetry': 'Operacija nije uspjela, pokušajte ponovno', 'serverReturnedError': 'Poslužitelj je vratio grešku', 'serverError': 'Greška na poslužitelju', - 'networkConnectionFailedCheckSettings': 'Mrežna veza nije uspjela, provjerite postavke mreže', - 'serverInternalErrorRetryLater': 'Interna greška na poslužitelju, pokušajte ponovno kasnije', + 'networkConnectionFailedCheckSettings': + 'Mrežna veza nije uspjela, provjerite postavke mreže', + 'serverInternalErrorRetryLater': + 'Interna greška na poslužitelju, pokušajte ponovno kasnije', // Profile 用户交互 //'error': '错误', @@ -870,15 +940,21 @@ const Map hrHR = { 'deleteAccountFailedRetry': 'Brisanje računa nije uspjelo, pokušajte ponovno', // 账号服务相关 - 'clearUserDataFailed': 'Brisanje korisničkih podataka nije uspjelo', // 清理用户数据失败 - 'deleteUserDataFailed': 'Brisanje korisničkih podataka nije uspjelo', // 删除用户数据失败 + 'clearUserDataFailed': + 'Brisanje korisničkih podataka nije uspjelo', // 清理用户数据失败 + 'deleteUserDataFailed': + 'Brisanje korisničkih podataka nije uspjelo', // 删除用户数据失败 'thirdPartyLogoutSuccess': 'Uspješna odjava treće strane', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Odjava treće strane nije uspjela', // 第三方登录退出失败 - 'signOutProcessError': 'Došlo je do greške tijekom procesa odjave', // 登出过程发生错误 - 'deleteAccountProcessError': 'Došlo je do greške tijekom procesa brisanja računa', // 删除账号过程发生错误 + 'signOutProcessError': + 'Došlo je do greške tijekom procesa odjave', // 登出过程发生错误 + 'deleteAccountProcessError': + 'Došlo je do greške tijekom procesa brisanja računa', // 删除账号过程发生错误 'userDataClearSuccess': 'Korisnički podaci uspješno obrisani', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Svi korisnički podaci uspješno obrisani', // 所有用户数据清理成功 - 'accountServiceInitialized': 'AccountService je inicijaliziran', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Svi korisnički podaci uspješno obrisani', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'AccountService je inicijaliziran', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Dohvaćanje statusa dopuštenja nije uspjelo', @@ -901,10 +977,14 @@ const Map hrHR = { 'locationInfo': 'Informacije o lokaciji', 'phonePermissionDesc': 'Koristi se za funkciju pozivanja', 'smsPermissionDesc': 'Koristi se za funkciju slanja SMS-a', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Koristi se za stvaranje događaja i podsjetnika u kalendaru', - 'calendarFullAccessPermissionDesc': 'Koristi se za čitanje i upravljanje događajima i podsjetnicima u kalendaru', - 'locationPermissionDesc': 'Koristi se za dobivanje informacija o trenutnoj lokaciji', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Koristi se za stvaranje događaja i podsjetnika u kalendaru', + 'calendarFullAccessPermissionDesc': + 'Koristi se za čitanje i upravljanje događajima i podsjetnicima u kalendaru', + 'locationPermissionDesc': + 'Koristi se za dobivanje informacija o trenutnoj lokaciji', 'appFunctionNeeds': 'Funkcija aplikacije zahtijeva', 'authorized': 'Autorizirano', 'unauthorized': 'Neautorizirano', @@ -913,45 +993,71 @@ const Map hrHR = { 'unknownStatus': 'Nepoznat status', 'permissionGranted': 'Dopuštenje je odobreno', 'permissionRequestError': 'Greška prilikom traženja dopuštenja', - 'phonePermissionDetailDesc': 'Funkcija pozivanja zahtijeva dopuštenje za telefon', - 'smsPermissionDetailDesc': 'Funkcija slanja SMS-a zahtijeva dopuštenje za SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Stvaranje događaja u kalendaru zahtijeva dopuštenje za pisanje u kalendar', - 'calendarFullAccessPermissionDetailDesc': 'Upravljanje događajima u kalendaru zahtijeva potpuno dopuštenje za kalendar', - 'locationPermissionDetailDesc': 'Dobivanje informacija o lokaciji zahtijeva dopuštenje za lokaciju', + 'phonePermissionDetailDesc': + 'Funkcija pozivanja zahtijeva dopuštenje za telefon', + 'smsPermissionDetailDesc': + 'Funkcija slanja SMS-a zahtijeva dopuštenje za SMS', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Stvaranje događaja u kalendaru zahtijeva dopuštenje za pisanje u kalendar', + 'calendarFullAccessPermissionDetailDesc': + 'Upravljanje događajima u kalendaru zahtijeva potpuno dopuštenje za kalendar', + 'locationPermissionDetailDesc': + 'Dobivanje informacija o lokaciji zahtijeva dopuštenje za lokaciju', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Aplikacija zahtijeva ovo dopuštenje za punu funkcionalnost', - 'permanentDenialText': 'Trajno ste odbili dopuštenje za {permission}, idite u postavke aplikacije da biste ga omogućili', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Aplikacija zahtijeva ovo dopuštenje za punu funkcionalnost', + 'permanentDenialText': + 'Trajno ste odbili dopuštenje za {permission}, idite u postavke aplikacije da biste ga omogućili', 'goToSettings': 'Idi na postavke', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1067,8 @@ const Map hrHR = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1077,10 @@ const Map hrHR = { 'updateNow': 'Ažuriraj sada', // 立即更新按钮 'checkUpdate': 'Provjeri ažuriranja', // 检查更新按钮 'updateFailed': 'Ažuriranje nije uspjelo', // 更新失败提示 - 'cannotOpenAppStore': 'Nije moguće otvoriti trgovinu aplikacija, idite ručno u trgovinu da biste ažurirali', // 无法打开应用商店提示 - 'updateErrorRetry': 'Došlo je do greške tijekom ažuriranja, pokušajte ponovno kasnije', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Nije moguće otvoriti trgovinu aplikacija, idite ručno u trgovinu da biste ažurirali', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Došlo je do greške tijekom ažuriranja, pokušajte ponovno kasnije', // 更新错误重试提示 //国家列表 "邮箱": "E-pošta", @@ -1107,7 +1216,8 @@ const Map hrHR = { "selectTargetLanguage": "Odaberi ciljni jezik", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1233,12 @@ const Map hrHR = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Obriši povijest", - "clearHistoryConfirm": "Jeste li sigurni da želite obrisati cijelu povijest prijevoda? Ova se radnja ne može poništiti.", + "clearHistoryConfirm": + "Jeste li sigurni da želite obrisati cijelu povijest prijevoda? Ova se radnja ne može poništiti.", "unknownLanguage": "Nepoznat jezik", "deleteSessionRecord": "Obriši zapis sesije", - "deleteSessionConfirm": "Jeste li sigurni da želite obrisati sve zapise prijevoda za ovu sesiju? Ova se radnja ne može poništiti.", + "deleteSessionConfirm": + "Jeste li sigurni da želite obrisati sve zapise prijevoda za ovu sesiju? Ova se radnja ne može poništiti.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1270,20 @@ const Map hrHR = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1306,8 @@ const Map hrHR = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Originalni zapis", "recordSummary": "Sažetak zapisa", - "clickToGenerateSummary": "Kliknite na gumb ispod da biste generirali sažetak sesije", + "clickToGenerateSummary": + "Kliknite na gumb ispod da biste generirali sažetak sesije", "summaryContent": "Sadržaj sažetka", "copied": "Kopirano", "summaryCopiledToClipboard": "Sažetak je kopiran u međuspremnik", @@ -1197,9 +1315,11 @@ const Map hrHR = { "summaryGenerated": "Sažetak je generiran", "generating": "Generiranje...", "regenerate": "Ponovno generiraj", - "summaryTimeoutMessage": "Isteklo je vrijeme za generiranje sažetka, možda zbog problema s mrežom ili zauzetosti poslužitelja.", + "summaryTimeoutMessage": + "Isteklo je vrijeme za generiranje sažetka, možda zbog problema s mrežom ili zauzetosti poslužitelja.", "deleteTranslationRecord": "Obriši zapis prijevoda", - "deleteTranslationConfirm": "Jeste li sigurni da želite obrisati ovaj zapis prijevoda? Ova se radnja ne može poništiti.", + "deleteTranslationConfirm": + "Jeste li sigurni da želite obrisati ovaj zapis prijevoda? Ova se radnja ne može poništiti.", "originalText": "Originalni tekst", "translatedText": "Prevedeni tekst", "sessionSummary": "Sažetak sesije", @@ -1227,19 +1347,26 @@ const Map hrHR = { // 配对状态文本 "readyToPair": "Spremno za uparivanje", "preparingPairingEnvironment": "Priprema okruženja za uparivanje...", - "connectDeepSoundViaSystemBluetooth": "Prvo se povežite s Voitrans uređajem putem sistemskog Bluetootha", + "connectDeepSoundViaSystemBluetooth": + "Prvo se povežite s Voitrans uređajem putem sistemskog Bluetootha", "deviceBindingConfirm": "Potvrda povezivanja uređaja...", "establishingDeviceAssociation": "Uspostavljanje veze s uređajem...", "waitingCompletePairing": "Molimo pričekajte, uparivanje se završava...", - "pairingSuccessRedirecting": "Uparivanje uspješno! Preusmjeravanje na početnu stranicu...", + "pairingSuccessRedirecting": + "Uparivanje uspješno! Preusmjeravanje na početnu stranicu...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Provjerite jeste li povezani s Voitrans uređajem", - "deviceAlreadyBoundToOtherAccount": "Ovaj je uređaj već povezan s drugim računom", - "deviceAssociationFailed": "Povezivanje uređaja nije uspjelo, pokušajte ponovno", - "scanTimeoutEnsureDeviceNearby": "Isteklo je vrijeme skeniranja, provjerite je li uređaj u blizini", + "ensureConnectedDeepSoundDevice": + "Provjerite jeste li povezani s Voitrans uređajem", + "deviceAlreadyBoundToOtherAccount": + "Ovaj je uređaj već povezan s drugim računom", + "deviceAssociationFailed": + "Povezivanje uređaja nije uspjelo, pokušajte ponovno", + "scanTimeoutEnsureDeviceNearby": + "Isteklo je vrijeme skeniranja, provjerite je li uređaj u blizini", "networkError": "Mrežna greška", - "authorizationFailedCheckCode": "Autorizacija nije uspjela, provjerite je li autorizacijski kod točan", + "authorizationFailedCheckCode": + "Autorizacija nije uspjela, provjerite je li autorizacijski kod točan", "pairingFailedRetry": "Uparivanje nije uspjelo, pokušajte ponovno", // 配对控制器相关 @@ -1248,13 +1375,15 @@ const Map hrHR = { 'deviceDisconnected': 'Uređaj je isključen', 'readyToStartPairing': 'Spremno za početak uparivanja', 'checkingEnvironment': 'Provjera okruženja...', - 'ensureHeadsetOnAndPairingMode': 'Provjerite jesu li slušalice uključene i u načinu uparivanja', + 'ensureHeadsetOnAndPairingMode': + 'Provjerite jesu li slušalice uključene i u načinu uparivanja', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Uspostavljanje sigurne veze...', - 'needManualBindingAuthCode': 'Potreban je kod za autorizaciju ručnog povezivanja...', + 'needManualBindingAuthCode': + 'Potreban je kod za autorizaciju ručnog povezivanja...', 'pairingSuccessful': 'Uparivanje uspješno!', 'enableBluetooth': 'Omogući Bluetooth', 'grantPermissions': 'Daj dopuštenja', @@ -1266,35 +1395,46 @@ const Map hrHR = { 'verificationFailedRetry': 'Verifikacija nije uspjela, pokušajte ponovno', 'invalidDeviceAddress': 'Nevažeća adresa uređaja', 'bleDeviceAssociationFailed': 'Povezivanje BLE uređaja nije uspjelo', - 'deviceAssociationFailedRetry': 'Povezivanje uređaja nije uspjelo, pokušajte ponovno', - 'bleConnectionTimeoutRetry': 'Isteklo je vrijeme za BLE vezu, pokušajte ponovno', + 'deviceAssociationFailedRetry': + 'Povezivanje uređaja nije uspjelo, pokušajte ponovno', + 'bleConnectionTimeoutRetry': + 'Isteklo je vrijeme za BLE vezu, pokušajte ponovno', 'blePairingStartupFailed': 'Pokretanje BLE uparivanja nije uspjelo', 'bleConnectionFailed': 'BLE veza nije uspjela', - 'deviceAuthorizationFailedCheckCode': 'Autorizacija uređaja nije uspjela, provjerite autorizacijski kod', + 'deviceAuthorizationFailedCheckCode': + 'Autorizacija uređaja nije uspjela, provjerite autorizacijski kod', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Povratne informacije korisnika", 'feedbackInfo': 'Dajte povratne informacije ili prijedloge', - 'feedbackDescription': 'Opišite problem s kojim ste se suočili ili svoj prijedlog', + 'feedbackDescription': + 'Opišite problem s kojim ste se suočili ili svoj prijedlog', 'feedbackHint': 'Unesite svoje povratne informacije...', 'feedbackRequired': 'Unesite sadržaj povratnih informacija', 'contactInfo': 'Kontakt informacije', 'contactHint': 'E-pošta/Telefon, da bismo vas mogli kontaktirati', 'submit': 'Pošalji', - 'feedbackSubmitSuccess': 'Povratne informacije su uspješno poslane, hvala vam!', - 'feedbackSubmitFailed': 'Slanje povratnih informacija nije uspjelo, pokušajte ponovno kasnije', + 'feedbackSubmitSuccess': + 'Povratne informacije su uspješno poslane, hvala vam!', + 'feedbackSubmitFailed': + 'Slanje povratnih informacija nije uspjelo, pokušajte ponovno kasnije', // OTA升级模块 - "upgradeExitConfirm": "Nadogradnja je u tijeku, izlazak će prekinuti proces, jeste li sigurni da želite izaći?", + "upgradeExitConfirm": + "Nadogradnja je u tijeku, izlazak će prekinuti proces, jeste li sigurni da želite izaći?", "deviceModel": "Model uređaja", "unknownDevice": "Nepoznat uređaj", "currentFirmwareVersion": "Trenutna verzija firmvera", @@ -1307,14 +1447,18 @@ const Map hrHR = { "retryConnection": "Pokušaj ponovno povezivanje", "ota_updateNow": "Ažuriraj sada", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "Držite uređaj povezanim, ne zatvarajte aplikaciju", "doNotDisconnect": "Ne prekidajte vezu", "charging": "Punjenje", "updateContent": "Sadržaj ažuriranja", - "removeEarbudsEnsureBattery": "Izvadite obje slušalice i provjerite je li baterija obje iznad 20%", + "removeEarbudsEnsureBattery": + "Izvadite obje slušalice i provjerite je li baterija obje iznad 20%", // 音乐列表页面 "noMusic": "Nema glazbe", // 暂无音乐 @@ -1376,8 +1520,10 @@ const Map hrHR = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/hu_hu.dart b/lib/core/translations/language/hu_hu.dart index 7c9c0af6e..5eaf7e422 100644 --- a/lib/core/translations/language/hu_hu.dart +++ b/lib/core/translations/language/hu_hu.dart @@ -33,6 +33,7 @@ const Map huHU = { "spanish": "Spanyol", "portuguese": "Portugál", "traditionalChinese": "Hagyományos kínai", + "traditionalChineseHK": "Hagyományos kínai (Hongkong)", "japanese": "Japán", "korean": "Koreai", "french": "Francia", @@ -71,7 +72,8 @@ const Map huHU = { // 登录页 "welcome": "Üdvözöljük", - "loginTips": "Jelentkezzen be vagy regisztráljon telefonszámával vagy e-mail címével", + "loginTips": + "Jelentkezzen be vagy regisztráljon telefonszámával vagy e-mail címével", "accountNumber": "Telefonszám vagy e-mail", "verificationCode": "Megerősítő kód", "getCode": "Kód kérése", @@ -84,13 +86,15 @@ const Map huHU = { 'selectCountry': 'Válasszon országot/régiót', "email": "E-mail", "phoneNumber": "Telefonszám", - "pleaseEnterContactInfo": "Kérjük, adja meg a telefonszámot vagy az e-mail címet", + "pleaseEnterContactInfo": + "Kérjük, adja meg a telefonszámot vagy az e-mail címet", "invalidEmailFormat": "Érvénytelen e-mail formátum", "invalidPhoneFormat": "Érvénytelen telefonszám formátum", "tip": "Tipp", "pleaseEnterCompleteCode": "Kérjük, adja meg a teljes megerősítő kódot", "loginFailed": "Bejelentkezés sikertelen, próbálja újra", - 'pleaseAcceptPrivacyPolicy': 'Kérjük, először olvassa el és fogadja el az Adatvédelmi Szabályzatot és a Felhasználói Szerződést', + 'pleaseAcceptPrivacyPolicy': + 'Kérjük, először olvassa el és fogadja el az Adatvédelmi Szabályzatot és a Felhasználói Szerződést', "enterVerificationCode": "Írja be a megerősítő kódot", "verificationCodeSentTo": "A megerősítő kód elküldve a következő címre:", "resendVerificationCode": "Megerősítő kód újraküldése", @@ -99,7 +103,8 @@ const Map huHU = { // 隐私政策弹窗 "loginDeclaration": "Voitrans nyilatkozat", // Voitrans 声明 - "welcomeToThisApp": "Üdvözöljük a Voitransban, kérjük, olvassa el figyelmesen", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Üdvözöljük a Voitransban, kérjük, olvassa el figyelmesen", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +120,30 @@ const Map huHU = { "signal": "Jel", "deviceId": "Eszköz azonosító", "firmwareVersion": "Firmware verzió", - "disconnectedDevice": "Nincs csatlakoztatott eszköz, kattintson az alábbi gombra a csatlakozáshoz", + "disconnectedDevice": + "Nincs csatlakoztatott eszköz, kattintson az alábbi gombra a csatlakozáshoz", "connectDevice": "Eszköz csatlakoztatása", "topAiExperiences": "Legjobb AI élmények", "aiAssistant": "Mindenre kiterjedő AI asszisztens", - "aiAssistantInfo": "Exkluzív 24/7 tanácsadó, válaszol a kérdésekre, javaslatokat tesz", + "aiAssistantInfo": + "Exkluzív 24/7 tanácsadó, válaszol a kérdésekre, javaslatokat tesz", "interpretation": "Szinkrontolmácsolás", - "simultaneousInterpretationInfo": "Valós idejű fordítás több mint 80 nyelven, gondtalan külföldi utazások", + "simultaneousInterpretationInfo": + "Valós idejű fordítás több mint 80 nyelven, gondtalan külföldi utazások", "aiCompanion": "Családi társ", "aiCompanionInfo": "Megérti Önt, meleg társaság", "homeSlogan": "A világ összekötése, a hangot felülmúlva", - "turnEarphones": "Kérjük, nyissa ki a fülhallgató töltőtokját, és helyezze a fülhallgatót a fülébe", + "turnEarphones": + "Kérjük, nyissa ki a fülhallgató töltőtokját, és helyezze a fülhallgatót a fülébe", "currentlyConnected": "Jelenleg csatlakoztatva:", "unsystemSetup": "Ugrás a rendszerbeállításokhoz", "talkLater": "Később", "initializing": "Inicializálás...", - "bluetoothInitializationFailure": "A Bluetooth szolgáltatás inicializálása sikertelen", + "bluetoothInitializationFailure": + "A Bluetooth szolgáltatás inicializálása sikertelen", "checkingPermissions": "Engedélyek ellenőrzése...", - "lackPermissions": "Hiányoznak a Bluetooth engedélyek és a helyzetek elérése szükséges", + "lackPermissions": + "Hiányoznak a Bluetooth engedélyek és a helyzetek elérése szükséges", "searchingDevice": "Eszközök keresése...", "findConnectedDevice": "Csatlakoztatott eszköz található", "notFound": "Nem található csatlakoztatott Bluetooth eszköz", @@ -154,7 +165,8 @@ const Map huHU = { 'chargingCase': 'Töltőtok', 'left': 'Bal', 'right': 'Jobb', - 'checkConnectionStatusFailed': 'A kapcsolat állapotának ellenőrzése sikertelen', + 'checkConnectionStatusFailed': + 'A kapcsolat állapotának ellenőrzése sikertelen', // 发现页 "searchAi": "AI funkciók keresése...", @@ -218,7 +230,8 @@ const Map huHU = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +287,10 @@ const Map huHU = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +299,35 @@ const Map huHU = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +336,10 @@ const Map huHU = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +354,8 @@ const Map huHU = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Kihagyás", @@ -355,7 +381,8 @@ const Map huHU = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +432,8 @@ const Map huHU = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +488,54 @@ const Map huHU = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +547,8 @@ const Map huHU = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +568,8 @@ const Map huHU = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +618,8 @@ const Map huHU = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +644,8 @@ const Map huHU = { "cloudSync": "Synchronizációs ponuda", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Csatlakoztatott eszköz:", "accountId": "Fiók azonosító:", "systemSetting": "Rendszerbeállítás", @@ -612,18 +658,22 @@ const Map huHU = { "privacySettings": "Adatvédelmi beállítások", "privacySettingsInfo": "Adatgyűjtés és engedélyek kezelése", "permissionManagement": "Engedélykezelés", // 权限管理 - "permissionManagementInfo": "Alkalmazásengedély-beállítások kezelése", // 管理应用权限设置 + "permissionManagementInfo": + "Alkalmazásengedély-beállítások kezelése", // 管理应用权限设置 "aboutApplication": "Az alkalmazásról", "versions": "Verzió", "checkUpdates": "Frissítések keresése", "selectLanguage": "Nyelv kiválasztása", "voiceService": "Hangszolgáltatás", - "voiceServiceInfo": "Hangfelismerő és -szintetizáló szolgáltatás kiválasztása", + "voiceServiceInfo": + "Hangfelismerő és -szintetizáló szolgáltatás kiválasztása", "selectVoiceService": "Hangszolgáltatás kiválasztása", "azureVoiceService": "Azure Hangszolgáltatás", - "azureVoiceServiceInfo": "Microsoft felhőalapú hangszolgáltatás, támogatja a magas minőségű hangszintézist és -felismerést", + "azureVoiceServiceInfo": + "Microsoft felhőalapú hangszolgáltatás, támogatja a magas minőségű hangszintézist és -felismerést", "flutterVoiceService": "Flutter Helyi Hangszolgáltatás", - "flutterVoiceServiceInfo": "Eszköz helyi hangszolgáltatása, internetkapcsolat nélkül is használható", + "flutterVoiceServiceInfo": + "Eszköz helyi hangszolgáltatása, internetkapcsolat nélkül is használható", 'timbreService': 'Hangszínszolgáltatás', 'timbreServiceInfo': 'Hangszínszintetizáló szolgáltatás kiválasztása', 'defaultTimbre': 'Alapértelmezett hangszín', @@ -652,7 +702,8 @@ const Map huHU = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Valós idejű hangcsevegés", - "realtimeVoiceChatInfo": "Tapasztalja meg az intelligens hanginterakciós funkciót (funkció előnézet)", + "realtimeVoiceChatInfo": + "Tapasztalja meg az intelligens hanginterakciós funkciót (funkció előnézet)", "loading": "Betöltés...", //设备管理页面 @@ -667,7 +718,8 @@ const Map huHU = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -695,7 +747,8 @@ const Map huHU = { "listeningToYou": "Hallgatom Önt...", "processing": "Feldolgozás...", "loadMoreMessages": "További üzenetek betöltése...", - "loadFailedClickRetry": "Betöltés sikertelen, kattintson az újrapróbálkozáshoz", + "loadFailedClickRetry": + "Betöltés sikertelen, kattintson az újrapróbálkozáshoz", "swipeUpForMore": "Húzza felfelé a továbbiakért", "callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等! "voice_interrupt": "Interrupt", // 语音打断 @@ -721,10 +774,14 @@ const Map huHU = { '• Fülhallgató funkciók vezérlésében\n\n' 'Miben segíthetek?', 'microphonePermission': 'Mikrofon', - 'voiceRecognitionPermissionText': 'A hangfelismerő funkcióhoz mikrofon-hozzáférés szükséges.', - 'voiceTranslationPermissionText': 'A hangfelismerő és -fordító funkcióhoz mikrofon-hozzáférés szükséges.', - 'phoneCallPermissionText': 'A hívás funkcióhoz mikrofon-hozzáférés szükséges a hanghívásokhoz.', - 'permissionDeniedText': 'Véglegesen letiltotta a mikrofon-hozzáférést, kérjük, engedélyezze a rendszerbeállításokban.', + 'voiceRecognitionPermissionText': + 'A hangfelismerő funkcióhoz mikrofon-hozzáférés szükséges.', + 'voiceTranslationPermissionText': + 'A hangfelismerő és -fordító funkcióhoz mikrofon-hozzáférés szükséges.', + 'phoneCallPermissionText': + 'A hívás funkcióhoz mikrofon-hozzáférés szükséges a hanghívásokhoz.', + 'permissionDeniedText': + 'Véglegesen letiltotta a mikrofon-hozzáférést, kérjük, engedélyezze a rendszerbeállításokban.', 'startVoiceInput': 'Hangbevitel indítása', 'startPhoneCallMode': 'Hívás mód indítása, hangbevitel indítása', @@ -747,7 +804,8 @@ const Map huHU = { 'privacyRelated': 'Adatvédelemmel kapcsolatos', 'copyrightViolation': 'Sérti a szerzői jogomat, hírnevemet stb.', 'other': 'Egyéb', - 'reportDescriptionHint': 'Szeretnénk tudni a jelentés okát, leírhatja a tapasztalt problémát.', + 'reportDescriptionHint': + 'Szeretnénk tudni a jelentés okát, leírhatja a tapasztalt problémát.', //'submit': '提交', //Message_bubble @@ -779,14 +837,22 @@ const Map huHU = { 'lowest': 'Legalacsonyabb', 'futureForecast': 'Jövőbeli előrejelzés', 'hotWeatherTip': 'Ma meleg van, vigyázzon a hőgutára és igyon sok vizet', - 'coldWeatherTip': 'Ma alacsony a hőmérséklet, öltözzön melegen, ha kimegy, hogy ne fázzon meg', - 'rainyWeatherTip': 'Ma esik az eső, vigyen magával esernyőt, ha kimegy, és legyen óvatos', - 'snowyWeatherTip': 'Ma havazik, az út csúszós, legyen óvatos és öltözzön melegen', - 'foggyWeatherTip': 'Ma köd van, a látótávolság alacsony, viseljen maszkot, ha kimegy', - 'windyWeatherTip': 'Ma szeles az idő, legyen óvatos, ha kimegy, és rögzítse a tárgyait', - 'sunnyWeatherTip': 'Ma napos az idő és erős az UV-sugárzás, használjon naptejet, ha kimegy', - 'temperatureDifferenceTip': 'Ma nagy a hőmérséklet-különbség a nappal és az éjszaka között, öltözzön rétegesen', - 'comfortableWeatherTip': 'Ma kellemes az idő, remek alkalom a szabadtéri tevékenységekhez', + 'coldWeatherTip': + 'Ma alacsony a hőmérséklet, öltözzön melegen, ha kimegy, hogy ne fázzon meg', + 'rainyWeatherTip': + 'Ma esik az eső, vigyen magával esernyőt, ha kimegy, és legyen óvatos', + 'snowyWeatherTip': + 'Ma havazik, az út csúszós, legyen óvatos és öltözzön melegen', + 'foggyWeatherTip': + 'Ma köd van, a látótávolság alacsony, viseljen maszkot, ha kimegy', + 'windyWeatherTip': + 'Ma szeles az idő, legyen óvatos, ha kimegy, és rögzítse a tárgyait', + 'sunnyWeatherTip': + 'Ma napos az idő és erős az UV-sugárzás, használjon naptejet, ha kimegy', + 'temperatureDifferenceTip': + 'Ma nagy a hőmérséklet-különbség a nappal és az éjszaka között, öltözzön rétegesen', + 'comfortableWeatherTip': + 'Ma kellemes az idő, remek alkalom a szabadtéri tevékenységekhez', "monday": "Hé", "tuesday": "Ke", "wednesday": "Sze", @@ -838,21 +904,28 @@ const Map huHU = { "logout": "Kijelentkezés", "logoutTips": "Biztosan ki szeretne jelentkezni a jelenlegi fiókból?", 'deleteAccount': 'Fiók törlése', - 'deleteAccountTips': 'Biztosan véglegesen törli a fiókját? Ezt a műveletet nem lehet visszavonni.', + 'deleteAccountTips': + 'Biztosan véglegesen törli a fiókját? Ezt a műveletet nem lehet visszavonni.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Hálózati kapcsolat sikertelen, ellenőrizze a hálózati beállításokat és próbálja újra', - 'serverTemporarilyUnavailable': 'A szerver átmenetileg nem elérhető, próbálja újra később', - 'loginExpiredPleaseRelogin': 'A munkamenet lejárt, kérjük, jelentkezzen be újra', - 'noPermissionForThisOperation': 'Nincs jogosultsága végrehajtani ezt a műveletet', + 'networkConnectionFailed': + 'Hálózati kapcsolat sikertelen, ellenőrizze a hálózati beállításokat és próbálja újra', + 'serverTemporarilyUnavailable': + 'A szerver átmenetileg nem elérhető, próbálja újra később', + 'loginExpiredPleaseRelogin': + 'A munkamenet lejárt, kérjük, jelentkezzen be újra', + 'noPermissionForThisOperation': + 'Nincs jogosultsága végrehajtani ezt a műveletet', 'requestedResourceNotFound': 'A kért erőforrás nem található', - 'imageProcessingFailedPleaseReselect': 'A képfeldolgozás sikertelen, válasszon másik képet', + 'imageProcessingFailedPleaseReselect': + 'A képfeldolgozás sikertelen, válasszon másik képet', 'operationFailedPleaseRetry': 'A művelet sikertelen, próbálja újra', 'serverReturnedError': 'A szerver hibát adott vissza', 'serverError': 'Szerverhiba', - 'networkConnectionFailedCheckSettings': 'Hálózati kapcsolat sikertelen, ellenőrizze a hálózati beállításokat', + 'networkConnectionFailedCheckSettings': + 'Hálózati kapcsolat sikertelen, ellenőrizze a hálózati beállításokat', 'serverInternalErrorRetryLater': 'Belső szerverhiba, próbálja újra később', // Profile 用户交互 @@ -871,14 +944,21 @@ const Map huHU = { // 账号服务相关 'clearUserDataFailed': 'A felhasználói adatok törlése sikertelen', // 清理用户数据失败 - 'deleteUserDataFailed': 'A felhasználói adatok törlése sikertelen', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'A harmadik féltől származó kijelentkezés sikeres', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': 'A harmadik féltől származó kijelentkezés sikertelen', // 第三方登录退出失败 - 'signOutProcessError': 'Hiba történt a kijelentkezési folyamat során', // 登出过程发生错误 - 'deleteAccountProcessError': 'Hiba történt a fióktörlési folyamat során', // 删除账号过程发生错误 + 'deleteUserDataFailed': + 'A felhasználói adatok törlése sikertelen', // 删除用户数据失败 + 'thirdPartyLogoutSuccess': + 'A harmadik féltől származó kijelentkezés sikeres', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': + 'A harmadik féltől származó kijelentkezés sikertelen', // 第三方登录退出失败 + 'signOutProcessError': + 'Hiba történt a kijelentkezési folyamat során', // 登出过程发生错误 + 'deleteAccountProcessError': + 'Hiba történt a fióktörlési folyamat során', // 删除账号过程发生错误 'userDataClearSuccess': 'A felhasználói adatok sikeresen törölve', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Az összes felhasználói adat sikeresen törölve', // 所有用户数据清理成功 - 'accountServiceInitialized': 'A fiókszolgáltatás inicializálva', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Az összes felhasználói adat sikeresen törölve', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'A fiókszolgáltatás inicializálva', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Az engedély állapotának lekérése sikertelen', @@ -901,10 +981,14 @@ const Map huHU = { 'locationInfo': 'Helyinformáció', 'phonePermissionDesc': 'A hívás funkcióhoz használatos', 'smsPermissionDesc': 'Az SMS küldési funkcióhoz használatos', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Naptáresemények és emlékeztetők létrehozásához használatos', - 'calendarFullAccessPermissionDesc': 'Naptáresemények és emlékeztetők olvasásához és kezeléséhez használatos', - 'locationPermissionDesc': 'Az aktuális helyinformációk lekéréséhez használatos', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Naptáresemények és emlékeztetők létrehozásához használatos', + 'calendarFullAccessPermissionDesc': + 'Naptáresemények és emlékeztetők olvasásához és kezeléséhez használatos', + 'locationPermissionDesc': + 'Az aktuális helyinformációk lekéréséhez használatos', 'appFunctionNeeds': 'Az alkalmazás funkciójához szükséges', 'authorized': 'Engedélyezve', 'unauthorized': 'Nincs engedélyezve', @@ -915,43 +999,67 @@ const Map huHU = { 'permissionRequestError': 'Hiba az engedély kérésekor', 'phonePermissionDetailDesc': 'A hívás funkcióhoz telefonengedély szükséges', 'smsPermissionDetailDesc': 'Az SMS küldési funkcióhoz SMS engedély szükséges', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'A naptáresemények létrehozásához naptárírási engedély szükséges', - 'calendarFullAccessPermissionDetailDesc': 'A naptáresemények kezeléséhez teljes naptárengedély szükséges', - 'locationPermissionDetailDesc': 'A helyinformációk lekéréséhez helymeghatározási engedély szükséges', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'A naptáresemények létrehozásához naptárírási engedély szükséges', + 'calendarFullAccessPermissionDetailDesc': + 'A naptáresemények kezeléséhez teljes naptárengedély szükséges', + 'locationPermissionDetailDesc': + 'A helyinformációk lekéréséhez helymeghatározási engedély szükséges', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Az alkalmazásnak szüksége van erre az engedélyre a teljes funkcionalitáshoz', - 'permanentDenialText': 'Véglegesen letiltotta a(z) {permission} engedélyt, kérjük, engedélyezze az alkalmazás beállításaiban', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Az alkalmazásnak szüksége van erre az engedélyre a teljes funkcionalitáshoz', + 'permanentDenialText': + 'Véglegesen letiltotta a(z) {permission} engedélyt, kérjük, engedélyezze az alkalmazás beállításaiban', 'goToSettings': 'Ugrás a beállításokhoz', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1069,8 @@ const Map huHU = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1079,10 @@ const Map huHU = { 'updateNow': 'Frissítés most', // 立即更新按钮 'checkUpdate': 'Frissítés keresése', // 检查更新按钮 'updateFailed': 'A frissítés sikertelen', // 更新失败提示 - 'cannotOpenAppStore': 'Nem lehet megnyitni az alkalmazásboltot, kérjük, manuálisan keresse fel a frissítéshez', // 无法打开应用商店提示 - 'updateErrorRetry': 'Hiba történt a frissítés során, próbálja újra később', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Nem lehet megnyitni az alkalmazásboltot, kérjük, manuálisan keresse fel a frissítéshez', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Hiba történt a frissítés során, próbálja újra később', // 更新错误重试提示 //国家列表 "邮箱": "E-mail", @@ -1107,7 +1218,8 @@ const Map huHU = { "selectTargetLanguage": "Célnyelv kiválasztása", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1235,12 @@ const Map huHU = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Előzmények törlése", - "clearHistoryConfirm": "Biztosan törli az összes fordítási előzményt? Ezt a műveletet nem lehet visszavonni.", + "clearHistoryConfirm": + "Biztosan törli az összes fordítási előzményt? Ezt a műveletet nem lehet visszavonni.", "unknownLanguage": "Ismeretlen nyelv", "deleteSessionRecord": "Munkamenet-rekord törlése", - "deleteSessionConfirm": "Biztosan törli az összes fordítási rekordot ehhez a munkamenethez? Ezt a műveletet nem lehet visszavonni.", + "deleteSessionConfirm": + "Biztosan törli az összes fordítási rekordot ehhez a munkamenethez? Ezt a műveletet nem lehet visszavonni.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1272,20 @@ const Map huHU = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1308,8 @@ const Map huHU = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Eredeti felvétel", "recordSummary": "Felvétel összefoglalója", - "clickToGenerateSummary": "Kattintson az alábbi gombra a munkamenet összefoglalójának generálásához", + "clickToGenerateSummary": + "Kattintson az alábbi gombra a munkamenet összefoglalójának generálásához", "summaryContent": "Összefoglaló tartalma", "copied": "Másolva", "summaryCopiledToClipboard": "Az összefoglaló a vágólapra másolva", @@ -1197,9 +1317,11 @@ const Map huHU = { "summaryGenerated": "Összefoglaló generálva", "generating": "Generálás...", "regenerate": "Újragenerálás", - "summaryTimeoutMessage": "Az összefoglaló generálási kérelme időtúllépést okozott, lehetséges hálózati probléma vagy szerverterhelés miatt.", + "summaryTimeoutMessage": + "Az összefoglaló generálási kérelme időtúllépést okozott, lehetséges hálózati probléma vagy szerverterhelés miatt.", "deleteTranslationRecord": "Fordítási rekord törlése", - "deleteTranslationConfirm": "Biztosan törli ezt a fordítási rekordot? Ezt a műveletet nem lehet visszavonni.", + "deleteTranslationConfirm": + "Biztosan törli ezt a fordítási rekordot? Ezt a műveletet nem lehet visszavonni.", "originalText": "Eredeti szöveg", "translatedText": "Fordított szöveg", "sessionSummary": "Munkamenet összefoglalója", @@ -1227,19 +1349,25 @@ const Map huHU = { // 配对状态文本 "readyToPair": "Készen áll a párosításra", "preparingPairingEnvironment": "Párosítási környezet előkészítése...", - "connectDeepSoundViaSystemBluetooth": "Kérjük, először csatlakozzon a Voitrans eszközhöz a rendszer Bluetooth-on keresztül", + "connectDeepSoundViaSystemBluetooth": + "Kérjük, először csatlakozzon a Voitrans eszközhöz a rendszer Bluetooth-on keresztül", "deviceBindingConfirm": "Eszközpárosítás megerősítése...", "establishingDeviceAssociation": "Eszköztársítás létrehozása...", "waitingCompletePairing": "Kérjük, várjon, a párosítás befejeződik...", - "pairingSuccessRedirecting": "A párosítás sikeres! Átirányítás a főoldalra...", + "pairingSuccessRedirecting": + "A párosítás sikeres! Átirányítás a főoldalra...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Győződjön meg róla, hogy a Voitrans eszközhöz csatlakozik", - "deviceAlreadyBoundToOtherAccount": "Ez az eszköz már egy másik fiókhoz van párosítva", + "ensureConnectedDeepSoundDevice": + "Győződjön meg róla, hogy a Voitrans eszközhöz csatlakozik", + "deviceAlreadyBoundToOtherAccount": + "Ez az eszköz már egy másik fiókhoz van párosítva", "deviceAssociationFailed": "Az eszköztársítás sikertelen, próbálja újra", - "scanTimeoutEnsureDeviceNearby": "A szkennelés időtúllépést okozott, győződjön meg róla, hogy az eszköz a közelben van", + "scanTimeoutEnsureDeviceNearby": + "A szkennelés időtúllépést okozott, győződjön meg róla, hogy az eszköz a közelben van", "networkError": "Hálózati hiba", - "authorizationFailedCheckCode": "Az engedélyezés sikertelen, ellenőrizze, hogy az engedélyezési kód helyes-e", + "authorizationFailedCheckCode": + "Az engedélyezés sikertelen, ellenőrizze, hogy az engedélyezési kód helyes-e", "pairingFailedRetry": "A párosítás sikertelen, próbálja újra", // 配对控制器相关 @@ -1248,7 +1376,8 @@ const Map huHU = { 'deviceDisconnected': 'Az eszköz lecsatlakoztatva', 'readyToStartPairing': 'Készen áll a párosítás megkezdésére', 'checkingEnvironment': 'Környezet ellenőrzése...', - 'ensureHeadsetOnAndPairingMode': 'Győződjön meg róla, hogy a fülhallgató be van kapcsolva és párosítási módban van', + 'ensureHeadsetOnAndPairingMode': + 'Győződjön meg róla, hogy a fülhallgató be van kapcsolva és párosítási módban van', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1260,41 +1389,53 @@ const Map huHU = { 'grantPermissions': 'Engedélyek megadása', 'retryAssociation': 'Társítás újrapróbálása', 'retryAuthorization': 'Engedélyezés újrapróbálása', - 'pleaseGrantNecessaryPermissions': 'Kérjük, adja meg a szükséges engedélyeket', + 'pleaseGrantNecessaryPermissions': + 'Kérjük, adja meg a szükséges engedélyeket', 'checkFailedRetry': 'Az ellenőrzés sikertelen, próbálja újra', - 'pleaseConnectDeepSoundDevice': 'Kérjük, csatlakoztasson egy Voitrans eszközt', + 'pleaseConnectDeepSoundDevice': + 'Kérjük, csatlakoztasson egy Voitrans eszközt', 'verificationFailedRetry': 'Az ellenőrzés sikertelen, próbálja újra', 'invalidDeviceAddress': 'Érvénytelen eszközcím', 'bleDeviceAssociationFailed': 'A BLE eszköztársítás sikertelen', 'deviceAssociationFailedRetry': 'Az eszköztársítás sikertelen, próbálja újra', - 'bleConnectionTimeoutRetry': 'A BLE kapcsolat időtúllépést okozott, próbálja újra', + 'bleConnectionTimeoutRetry': + 'A BLE kapcsolat időtúllépést okozott, próbálja újra', 'blePairingStartupFailed': 'A BLE párosítás indítása sikertelen', 'bleConnectionFailed': 'A BLE kapcsolat sikertelen', - 'deviceAuthorizationFailedCheckCode': 'Az eszközengedélyezés sikertelen, ellenőrizze az engedélyezési kódot', + 'deviceAuthorizationFailedCheckCode': + 'Az eszközengedélyezés sikertelen, ellenőrizze az engedélyezési kódot', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Felhasználói visszajelzés", 'feedbackInfo': 'Adjon visszajelzést vagy javaslatot', - 'feedbackDescription': 'Kérjük, írja le a tapasztalt problémát vagy javaslatát', + 'feedbackDescription': + 'Kérjük, írja le a tapasztalt problémát vagy javaslatát', 'feedbackHint': 'Kérjük, írja be a visszajelzését...', 'feedbackRequired': 'Kérjük, írja be a visszajelzés tartalmát', 'contactInfo': 'Elérhetőség', 'contactHint': 'E-mail/Telefon, hogy felvehessük Önnel a kapcsolatot', 'submit': 'Küldés', - 'feedbackSubmitSuccess': 'A visszajelzés sikeresen elküldve, köszönjük a visszajelzését!', - 'feedbackSubmitFailed': 'A visszajelzés küldése sikertelen, próbálja újra később', + 'feedbackSubmitSuccess': + 'A visszajelzés sikeresen elküldve, köszönjük a visszajelzését!', + 'feedbackSubmitFailed': + 'A visszajelzés küldése sikertelen, próbálja újra később', // OTA升级模块 - "upgradeExitConfirm": "Frissítés folyamatban van, a kilépés megszakítja a folyamatot, biztosan kilép?", + "upgradeExitConfirm": + "Frissítés folyamatban van, a kilépés megszakítja a folyamatot, biztosan kilép?", "deviceModel": "Eszközmodell", "unknownDevice": "Ismeretlen eszköz", "currentFirmwareVersion": "Jelenlegi firmware verzió", @@ -1307,14 +1448,19 @@ const Map huHU = { "retryConnection": "Kapcsolat újrapróbálása", "ota_updateNow": "Frissítés most", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Tartsa csatlakoztatva az eszközt, ne zárja be az alkalmazást", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Tartsa csatlakoztatva az eszközt, ne zárja be az alkalmazást", "doNotDisconnect": "Ne szakítsa meg a kapcsolatot", "charging": "Töltés", "updateContent": "Frissítés tartalma", - "removeEarbudsEnsureBattery": "Vegye ki mindkét fülhallgatót, és győződjön meg róla, hogy mindkettő akkumulátora 20% felett van", + "removeEarbudsEnsureBattery": + "Vegye ki mindkét fülhallgatót, és győződjön meg róla, hogy mindkettő akkumulátora 20% felett van", // 音乐列表页面 "noMusic": "Nincs zene", // 暂无音乐 @@ -1376,8 +1522,10 @@ const Map huHU = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/id_id.dart b/lib/core/translations/language/id_id.dart index 992e2d375..d3199b9c9 100644 --- a/lib/core/translations/language/id_id.dart +++ b/lib/core/translations/language/id_id.dart @@ -33,6 +33,7 @@ const Map idID = { "spanish": "Bahasa Spanyol", "portuguese": "Bahasa Portugis", "traditionalChinese": "Bahasa Mandarin Tradisional", + "traditionalChineseHK": "Cina Tradisional (Hong Kong)", "japanese": "Bahasa Jepang", "korean": "Bahasa Korea", "french": "Bahasa Prancis", @@ -90,7 +91,8 @@ const Map idID = { "tip": "Tip", "pleaseEnterCompleteCode": "Silakan masukkan kode verifikasi lengkap", "loginFailed": "Gagal masuk, silakan coba lagi", - 'pleaseAcceptPrivacyPolicy': 'Harap baca dan setujui Kebijakan Privasi dan Perjanjian Pengguna terlebih dahulu', + 'pleaseAcceptPrivacyPolicy': + 'Harap baca dan setujui Kebijakan Privasi dan Perjanjian Pengguna terlebih dahulu', "enterVerificationCode": "Masukkan Kode Verifikasi", "verificationCodeSentTo": "Kode verifikasi telah dikirim ke", "resendVerificationCode": "Kirim ulang kode verifikasi", @@ -99,7 +101,8 @@ const Map idID = { // 隐私政策弹窗 "loginDeclaration": "Deklarasi Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Selamat datang di Voitrans, silakan baca dengan seksama", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Selamat datang di Voitrans, silakan baca dengan seksama", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,17 +118,21 @@ const Map idID = { "signal": "Sinyal", "deviceId": "ID Perangkat", "firmwareVersion": "Versi Firmware", - "disconnectedDevice": "Tidak ada perangkat yang terhubung, klik tombol di bawah untuk menyambungkan", + "disconnectedDevice": + "Tidak ada perangkat yang terhubung, klik tombol di bawah untuk menyambungkan", "connectDevice": "Sambungkan Perangkat", "topAiExperiences": "Pengalaman AI Teratas", "aiAssistant": "Asisten AI Serba Guna", - "aiAssistantInfo": "Konsultan eksklusif 24/7, menjawab pertanyaan, memberikan saran", + "aiAssistantInfo": + "Konsultan eksklusif 24/7, menjawab pertanyaan, memberikan saran", "interpretation": "Interpretasi Simultan", - "simultaneousInterpretationInfo": "Terjemahan waktu nyata untuk 80+ bahasa, perjalanan ke luar negeri tanpa khawatir", + "simultaneousInterpretationInfo": + "Terjemahan waktu nyata untuk 80+ bahasa, perjalanan ke luar negeri tanpa khawatir", "aiCompanion": "Teman Keluarga", "aiCompanionInfo": "Memahami Anda, teman yang hangat", "homeSlogan": "Menghubungkan dunia, melampaui suara", - "turnEarphones": "Silakan buka casing pengisi daya earphone dan masukkan earphone ke telinga Anda", + "turnEarphones": + "Silakan buka casing pengisi daya earphone dan masukkan earphone ke telinga Anda", "currentlyConnected": "Saat ini terhubung:", "unsystemSetup": "Buka pengaturan sistem", "talkLater": "Nanti", @@ -175,7 +182,8 @@ const Map idID = { "healthConsultant": "Obrolan AI Multifungsi", "healthConsultantInfo": "Menyediakan lebih banyak fitur obrolan AI", "conferenceAssistant": "Asisten Rapat Bisnis", - "conferenceAssistantInfo": "Catatan rapat waktu nyata, terjemahan multibahasa", + "conferenceAssistantInfo": + "Catatan rapat waktu nyata, terjemahan multibahasa", "usageStats": "Statistik Penggunaan", "usageStatsInfo": "Lihat statistik penggunaan aplikasi", "scene": "Skenario", @@ -218,7 +226,8 @@ const Map idID = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +283,10 @@ const Map idID = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +295,35 @@ const Map idID = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +332,10 @@ const Map idID = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +350,8 @@ const Map idID = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Lewati", @@ -355,7 +377,8 @@ const Map idID = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +428,8 @@ const Map idID = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +484,54 @@ const Map idID = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +543,8 @@ const Map idID = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +564,8 @@ const Map idID = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +614,8 @@ const Map idID = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +640,8 @@ const Map idID = { "cloudSync": "Pembayaran Sinkronisasi awan", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Perangkat terhubung:", "accountId": "ID Akun:", "systemSetting": "Pengaturan Sistem", @@ -621,9 +663,11 @@ const Map idID = { "voiceServiceInfo": "Pilih layanan pengenalan dan sintesis suara", "selectVoiceService": "Pilih Layanan Suara", "azureVoiceService": "Layanan Suara Azure", - "azureVoiceServiceInfo": "Layanan suara cloud Microsoft, mendukung sintesis dan pengenalan suara berkualitas tinggi", + "azureVoiceServiceInfo": + "Layanan suara cloud Microsoft, mendukung sintesis dan pengenalan suara berkualitas tinggi", "flutterVoiceService": "Layanan Suara Lokal Flutter", - "flutterVoiceServiceInfo": "Layanan suara lokal perangkat, dapat digunakan tanpa koneksi internet", + "flutterVoiceServiceInfo": + "Layanan suara lokal perangkat, dapat digunakan tanpa koneksi internet", 'timbreService': 'Layanan Timbre', 'timbreServiceInfo': 'Pilih layanan sintesis suara timbre', 'defaultTimbre': 'Timbre Standar', @@ -652,7 +696,8 @@ const Map idID = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Obrolan Suara Waktu Nyata", - "realtimeVoiceChatInfo": "Rasakan fungsi interaksi suara cerdas (pratinjau fitur)", + "realtimeVoiceChatInfo": + "Rasakan fungsi interaksi suara cerdas (pratinjau fitur)", "loading": "Memuat...", //设备管理页面 @@ -667,7 +712,8 @@ const Map idID = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -678,7 +724,8 @@ const Map idID = { "inputMessage": "Masukkan pesan...", "imListening": "Mendengarkan...", "canStartTalking": "Anda bisa mulai berbicara", - "addQuestionAboutImage": "Tambahkan pertanyaan atau deskripsi tentang gambar...", + "addQuestionAboutImage": + "Tambahkan pertanyaan atau deskripsi tentang gambar...", "summarizeImageContent": "Ringkas konten gambar", "extractImageText": "Ekstrak teks gambar", "translateImageText": "Terjemahkan teks gambar", @@ -721,10 +768,14 @@ const Map idID = { '• Mengontrol fungsi earphone\n\n' 'Apa yang bisa saya bantu?', 'microphonePermission': 'Mikrofon', - 'voiceRecognitionPermissionText': 'Pengenalan suara memerlukan akses mikrofon.', - 'voiceTranslationPermissionText': 'Pengenalan dan terjemahan suara memerlukan akses mikrofon.', - 'phoneCallPermissionText': 'Melakukan panggilan memerlukan akses mikrofon untuk panggilan suara.', - 'permissionDeniedText': 'Anda telah menolak izin mikrofon secara permanen, silakan buka pengaturan sistem untuk mengaktifkannya.', + 'voiceRecognitionPermissionText': + 'Pengenalan suara memerlukan akses mikrofon.', + 'voiceTranslationPermissionText': + 'Pengenalan dan terjemahan suara memerlukan akses mikrofon.', + 'phoneCallPermissionText': + 'Melakukan panggilan memerlukan akses mikrofon untuk panggilan suara.', + 'permissionDeniedText': + 'Anda telah menolak izin mikrofon secara permanen, silakan buka pengaturan sistem untuk mengaktifkannya.', 'startVoiceInput': 'Mulai input suara', 'startPhoneCallMode': 'Mulai mode panggilan telepon, mulai input suara', @@ -738,7 +789,8 @@ const Map idID = { 'report': 'Lapor', 'submitSuccess': 'Berhasil dikirim', 'submitFailed': 'Gagal dikirim', - 'reportSubmitted': 'Laporan telah dikirim, kami akan memprosesnya sesegera mungkin', + 'reportSubmitted': + 'Laporan telah dikirim, kami akan memprosesnya sesegera mungkin', //'networkError': '网络错误,请稍后重试', 'harmfulUnsafe': 'Berbahaya/Tidak Aman', 'pornographicVulgar': 'Pornografi/Vulgär', @@ -747,7 +799,8 @@ const Map idID = { 'privacyRelated': 'Terkait Privasi', 'copyrightViolation': 'Melanggar hak cipta, nama baik saya, dll.', 'other': 'Lainnya', - 'reportDescriptionHint': 'Kami ingin tahu alasan Anda melaporkan, Anda dapat menjelaskan masalah yang Anda hadapi.', + 'reportDescriptionHint': + 'Kami ingin tahu alasan Anda melaporkan, Anda dapat menjelaskan masalah yang Anda hadapi.', //'submit': '提交', //Message_bubble @@ -778,15 +831,24 @@ const Map idID = { 'highest': 'Tertinggi', 'lowest': 'Terendah', 'futureForecast': 'Prakiraan Masa Depan', - 'hotWeatherTip': 'Hari ini panas, harap berhati-hati terhadap sengatan panas dan minum banyak air', - 'coldWeatherTip': 'Suhu hari ini rendah, harap kenakan pakaian hangat saat keluar untuk menghindari pilek', - 'rainyWeatherTip': 'Hari ini hujan, harap bawa payung saat keluar dan berhati-hati saat bepergian', - 'snowyWeatherTip': 'Hari ini salju, jalan licin harap berhati-hati, ambil tindakan pencegahan agar tetap hangat', - 'foggyWeatherTip': 'Hari ini berkabut, jarak pandang rendah, harap pakai masker saat keluar', - 'windyWeatherTip': 'Hari ini berangin, harap berhati-hati saat keluar, pastikan barang-barang Anda aman', - 'sunnyWeatherTip': 'Hari ini cerah dengan sinar UV yang kuat, harap gunakan tabir surya saat keluar', - 'temperatureDifferenceTip': 'Ada perbedaan suhu yang besar antara siang dan malam hari ini, harap sesuaikan pakaian Anda', - 'comfortableWeatherTip': 'Cuaca hari ini menyenangkan, waktu yang tepat untuk aktivitas di luar ruangan', + 'hotWeatherTip': + 'Hari ini panas, harap berhati-hati terhadap sengatan panas dan minum banyak air', + 'coldWeatherTip': + 'Suhu hari ini rendah, harap kenakan pakaian hangat saat keluar untuk menghindari pilek', + 'rainyWeatherTip': + 'Hari ini hujan, harap bawa payung saat keluar dan berhati-hati saat bepergian', + 'snowyWeatherTip': + 'Hari ini salju, jalan licin harap berhati-hati, ambil tindakan pencegahan agar tetap hangat', + 'foggyWeatherTip': + 'Hari ini berkabut, jarak pandang rendah, harap pakai masker saat keluar', + 'windyWeatherTip': + 'Hari ini berangin, harap berhati-hati saat keluar, pastikan barang-barang Anda aman', + 'sunnyWeatherTip': + 'Hari ini cerah dengan sinar UV yang kuat, harap gunakan tabir surya saat keluar', + 'temperatureDifferenceTip': + 'Ada perbedaan suhu yang besar antara siang dan malam hari ini, harap sesuaikan pakaian Anda', + 'comfortableWeatherTip': + 'Cuaca hari ini menyenangkan, waktu yang tepat untuk aktivitas di luar ruangan', "monday": "Senin", "tuesday": "Selasa", "wednesday": "Rabu", @@ -838,22 +900,29 @@ const Map idID = { "logout": "Keluar", "logoutTips": "Apakah Anda yakin ingin keluar dari akun saat ini?", 'deleteAccount': 'Hapus Akun', - 'deleteAccountTips': 'Apakah Anda yakin ingin menghapus akun Anda secara permanen? Tindakan ini tidak dapat dibatalkan', + 'deleteAccountTips': + 'Apakah Anda yakin ingin menghapus akun Anda secara permanen? Tindakan ini tidak dapat dibatalkan', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Koneksi jaringan gagal, silakan periksa pengaturan jaringan Anda dan coba lagi', - 'serverTemporarilyUnavailable': 'Server tidak tersedia untuk sementara, silakan coba lagi nanti', + 'networkConnectionFailed': + 'Koneksi jaringan gagal, silakan periksa pengaturan jaringan Anda dan coba lagi', + 'serverTemporarilyUnavailable': + 'Server tidak tersedia untuk sementara, silakan coba lagi nanti', 'loginExpiredPleaseRelogin': 'Sesi Anda telah berakhir, silakan masuk lagi', - 'noPermissionForThisOperation': 'Anda tidak memiliki izin untuk melakukan operasi ini', + 'noPermissionForThisOperation': + 'Anda tidak memiliki izin untuk melakukan operasi ini', 'requestedResourceNotFound': 'Sumber daya yang diminta tidak ditemukan', - 'imageProcessingFailedPleaseReselect': 'Pemrosesan gambar gagal, silakan pilih gambar lain', + 'imageProcessingFailedPleaseReselect': + 'Pemrosesan gambar gagal, silakan pilih gambar lain', 'operationFailedPleaseRetry': 'Operasi gagal, silakan coba lagi', 'serverReturnedError': 'Server mengembalikan kesalahan', 'serverError': 'Kesalahan Server', - 'networkConnectionFailedCheckSettings': 'Koneksi jaringan gagal, silakan periksa pengaturan jaringan Anda', - 'serverInternalErrorRetryLater': 'Kesalahan internal server, silakan coba lagi nanti', + 'networkConnectionFailedCheckSettings': + 'Koneksi jaringan gagal, silakan periksa pengaturan jaringan Anda', + 'serverInternalErrorRetryLater': + 'Kesalahan internal server, silakan coba lagi nanti', // Profile 用户交互 //'error': '错误', @@ -875,10 +944,13 @@ const Map idID = { 'thirdPartyLogoutSuccess': 'Berhasil keluar dari pihak ketiga', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Gagal keluar dari pihak ketiga', // 第三方登录退出失败 'signOutProcessError': 'Terjadi kesalahan saat proses keluar', // 登出过程发生错误 - 'deleteAccountProcessError': 'Terjadi kesalahan saat proses penghapusan akun', // 删除账号过程发生错误 + 'deleteAccountProcessError': + 'Terjadi kesalahan saat proses penghapusan akun', // 删除账号过程发生错误 'userDataClearSuccess': 'Data pengguna berhasil dihapus', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Semua data pengguna berhasil dihapus', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Layanan Akun telah diinisialisasi', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Semua data pengguna berhasil dihapus', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Layanan Akun telah diinisialisasi', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Gagal mendapatkan status izin', @@ -901,10 +973,14 @@ const Map idID = { 'locationInfo': 'Informasi Lokasi', 'phonePermissionDesc': 'Digunakan untuk fungsi melakukan panggilan', 'smsPermissionDesc': 'Digunakan untuk fungsi mengirim SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Digunakan untuk membuat acara kalender dan pengingat', - 'calendarFullAccessPermissionDesc': 'Digunakan untuk membaca dan mengelola acara kalender dan pengingat', - 'locationPermissionDesc': 'Digunakan untuk mendapatkan informasi lokasi saat ini', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Digunakan untuk membuat acara kalender dan pengingat', + 'calendarFullAccessPermissionDesc': + 'Digunakan untuk membaca dan mengelola acara kalender dan pengingat', + 'locationPermissionDesc': + 'Digunakan untuk mendapatkan informasi lokasi saat ini', 'appFunctionNeeds': 'Fungsi aplikasi membutuhkan', 'authorized': 'Diizinkan', 'unauthorized': 'Tidak Diizinkan', @@ -915,43 +991,67 @@ const Map idID = { 'permissionRequestError': 'Kesalahan saat meminta izin', 'phonePermissionDetailDesc': 'Fungsi panggilan memerlukan izin telepon', 'smsPermissionDetailDesc': 'Fungsi mengirim SMS memerlukan izin SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Membuat acara kalender memerlukan izin menulis kalender', - 'calendarFullAccessPermissionDetailDesc': 'Mengelola acara kalender memerlukan izin penuh kalender', - 'locationPermissionDetailDesc': 'Mendapatkan informasi lokasi memerlukan izin lokasi', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Membuat acara kalender memerlukan izin menulis kalender', + 'calendarFullAccessPermissionDetailDesc': + 'Mengelola acara kalender memerlukan izin penuh kalender', + 'locationPermissionDetailDesc': + 'Mendapatkan informasi lokasi memerlukan izin lokasi', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Aplikasi memerlukan izin ini untuk fungsionalitas penuh', - 'permanentDenialText': 'Anda telah menolak izin {permission} secara permanen, silakan buka pengaturan aplikasi untuk mengaktifkannya', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Aplikasi memerlukan izin ini untuk fungsionalitas penuh', + 'permanentDenialText': + 'Anda telah menolak izin {permission} secara permanen, silakan buka pengaturan aplikasi untuk mengaktifkannya', 'goToSettings': 'Buka Pengaturan', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1061,8 @@ const Map idID = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1071,10 @@ const Map idID = { 'updateNow': 'Perbarui Sekarang', // 立即更新按钮 'checkUpdate': 'Periksa Pembaruan', // 检查更新按钮 'updateFailed': 'Pembaruan Gagal', // 更新失败提示 - 'cannotOpenAppStore': 'Tidak dapat membuka toko aplikasi, silakan buka toko aplikasi secara manual untuk memperbarui', // 无法打开应用商店提示 - 'updateErrorRetry': 'Terjadi kesalahan saat pembaruan, silakan coba lagi nanti', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Tidak dapat membuka toko aplikasi, silakan buka toko aplikasi secara manual untuk memperbarui', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Terjadi kesalahan saat pembaruan, silakan coba lagi nanti', // 更新错误重试提示 //国家列表 "邮箱": "Email", @@ -1107,7 +1210,8 @@ const Map idID = { "selectTargetLanguage": "Pilih bahasa target", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1227,12 @@ const Map idID = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Hapus Riwayat", - "clearHistoryConfirm": "Apakah Anda yakin ingin menghapus semua riwayat terjemahan? Tindakan ini tidak dapat dibatalkan.", + "clearHistoryConfirm": + "Apakah Anda yakin ingin menghapus semua riwayat terjemahan? Tindakan ini tidak dapat dibatalkan.", "unknownLanguage": "Bahasa Tidak Dikenal", "deleteSessionRecord": "Hapus Rekaman Sesi", - "deleteSessionConfirm": "Apakah Anda yakin ingin menghapus semua rekaman terjemahan untuk sesi ini? Tindakan ini tidak dapat dibatalkan.", + "deleteSessionConfirm": + "Apakah Anda yakin ingin menghapus semua rekaman terjemahan untuk sesi ini? Tindakan ini tidak dapat dibatalkan.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1264,20 @@ const Map idID = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1197,9 +1308,11 @@ const Map idID = { "summaryGenerated": "Ringkasan telah dibuat", "generating": "Membuat...", "regenerate": "Buat Ulang", - "summaryTimeoutMessage": "Permintaan pembuatan ringkasan habis waktu, mungkin karena masalah jaringan atau server sibuk.", + "summaryTimeoutMessage": + "Permintaan pembuatan ringkasan habis waktu, mungkin karena masalah jaringan atau server sibuk.", "deleteTranslationRecord": "Hapus Rekaman Terjemahan", - "deleteTranslationConfirm": "Apakah Anda yakin ingin menghapus rekaman terjemahan ini? Tindakan ini tidak dapat dibatalkan.", + "deleteTranslationConfirm": + "Apakah Anda yakin ingin menghapus rekaman terjemahan ini? Tindakan ini tidak dapat dibatalkan.", "originalText": "Teks Asli", "translatedText": "Teks Terjemahan", "sessionSummary": "Ringkasan Sesi", @@ -1227,19 +1340,25 @@ const Map idID = { // 配对状态文本 "readyToPair": "Siap untuk dipasangkan", "preparingPairingEnvironment": "Mempersiapkan lingkungan pemasangan...", - "connectDeepSoundViaSystemBluetooth": "Harap hubungkan ke perangkat Voitrans melalui Bluetooth sistem terlebih dahulu", + "connectDeepSoundViaSystemBluetooth": + "Harap hubungkan ke perangkat Voitrans melalui Bluetooth sistem terlebih dahulu", "deviceBindingConfirm": "Konfirmasi pengikatan perangkat...", "establishingDeviceAssociation": "Membangun asosiasi perangkat...", "waitingCompletePairing": "Harap tunggu, pemasangan sedang diselesaikan...", - "pairingSuccessRedirecting": "Pemasangan berhasil! Mengalihkan ke halaman utama...", + "pairingSuccessRedirecting": + "Pemasangan berhasil! Mengalihkan ke halaman utama...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Harap pastikan Anda terhubung ke perangkat Voitrans", - "deviceAlreadyBoundToOtherAccount": "Perangkat ini sudah terikat ke akun lain", + "ensureConnectedDeepSoundDevice": + "Harap pastikan Anda terhubung ke perangkat Voitrans", + "deviceAlreadyBoundToOtherAccount": + "Perangkat ini sudah terikat ke akun lain", "deviceAssociationFailed": "Asosiasi perangkat gagal, silakan coba lagi", - "scanTimeoutEnsureDeviceNearby": "Waktu pemindaian habis, harap pastikan perangkat berada di dekat", + "scanTimeoutEnsureDeviceNearby": + "Waktu pemindaian habis, harap pastikan perangkat berada di dekat", "networkError": "Kesalahan Jaringan", - "authorizationFailedCheckCode": "Otorisasi gagal, harap periksa apakah kode otorisasi benar", + "authorizationFailedCheckCode": + "Otorisasi gagal, harap periksa apakah kode otorisasi benar", "pairingFailedRetry": "Pemasangan gagal, silakan coba lagi", // 配对控制器相关 @@ -1248,7 +1367,8 @@ const Map idID = { 'deviceDisconnected': 'Perangkat terputus', 'readyToStartPairing': 'Siap untuk memulai pemasangan', 'checkingEnvironment': 'Memeriksa lingkungan...', - 'ensureHeadsetOnAndPairingMode': 'Harap pastikan headset dihidupkan dan dalam mode pemasangan', + 'ensureHeadsetOnAndPairingMode': + 'Harap pastikan headset dihidupkan dan dalam mode pemasangan', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1270,31 +1390,39 @@ const Map idID = { 'bleConnectionTimeoutRetry': 'Waktu koneksi BLE habis, silakan coba lagi', 'blePairingStartupFailed': 'Gagal memulai pemasangan BLE', 'bleConnectionFailed': 'Koneksi BLE gagal', - 'deviceAuthorizationFailedCheckCode': 'Otorisasi perangkat gagal, harap periksa kode otorisasi', + 'deviceAuthorizationFailedCheckCode': + 'Otorisasi perangkat gagal, harap periksa kode otorisasi', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Umpan Balik Pengguna", 'feedbackInfo': 'Berikan umpan balik atau saran', - 'feedbackDescription': 'Harap jelaskan masalah yang Anda hadapi atau saran Anda', + 'feedbackDescription': + 'Harap jelaskan masalah yang Anda hadapi atau saran Anda', 'feedbackHint': 'Silakan masukkan umpan balik Anda...', 'feedbackRequired': 'Harap masukkan konten umpan balik', 'contactInfo': 'Informasi Kontak', 'contactHint': 'Email/Telepon, agar kami dapat menghubungi Anda', 'submit': 'Kirim', - 'feedbackSubmitSuccess': 'Umpan balik berhasil dikirim, terima kasih atas umpan balik Anda!', + 'feedbackSubmitSuccess': + 'Umpan balik berhasil dikirim, terima kasih atas umpan balik Anda!', 'feedbackSubmitFailed': 'Gagal mengirim umpan balik, silakan coba lagi nanti', // OTA升级模块 - "upgradeExitConfirm": "Pembaruan sedang berlangsung, keluar akan mengganggu proses, apakah Anda yakin ingin keluar?", + "upgradeExitConfirm": + "Pembaruan sedang berlangsung, keluar akan mengganggu proses, apakah Anda yakin ingin keluar?", "deviceModel": "Model Perangkat", "unknownDevice": "Perangkat Tidak Dikenal", "currentFirmwareVersion": "Versi Firmware Saat Ini", @@ -1307,14 +1435,19 @@ const Map idID = { "retryConnection": "Coba Sambungkan Kembali", "ota_updateNow": "Perbarui Sekarang", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Jaga agar perangkat tetap terhubung, jangan tutup aplikasi", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Jaga agar perangkat tetap terhubung, jangan tutup aplikasi", "doNotDisconnect": "Jangan putuskan sambungan", "charging": "Mengisi daya", "updateContent": "Konten Pembaruan", - "removeEarbudsEnsureBattery": "Keluarkan kedua earbud, dan pastikan baterai keduanya di atas 20%", + "removeEarbudsEnsureBattery": + "Keluarkan kedua earbud, dan pastikan baterai keduanya di atas 20%", // 音乐列表页面 "noMusic": "Tidak Ada Musik", // 暂无音乐 @@ -1376,8 +1509,10 @@ const Map idID = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/is_is.dart b/lib/core/translations/language/is_is.dart index 58aeea02b..dee55b3ae 100644 --- a/lib/core/translations/language/is_is.dart +++ b/lib/core/translations/language/is_is.dart @@ -33,6 +33,7 @@ const Map isIS = { "spanish": "Spænska", "portuguese": "Portúgalska", "traditionalChinese": "Hefðbundin kínverska", + "traditionalChineseHK": "Hefðbundin kínverska (Hong Kong)", "japanese": "Japanska", "korean": "Kóreska", "french": "Franska", @@ -90,7 +91,8 @@ const Map isIS = { "tip": "Ábending", "pleaseEnterCompleteCode": "Vinsamlegast sláðu inn allan staðfestingarkóðann", "loginFailed": "Innskráning mistókst, vinsamlegast reyndu aftur", - 'pleaseAcceptPrivacyPolicy': 'Vinsamlegast lestu og samþykktu persónuverndarstefnuna og notendasamninginn fyrst', + 'pleaseAcceptPrivacyPolicy': + 'Vinsamlegast lestu og samþykktu persónuverndarstefnuna og notendasamninginn fyrst', "enterVerificationCode": "Sláðu inn staðfestingarkóða", "verificationCodeSentTo": "Staðfestingarkóði sendur til", "resendVerificationCode": "Senda staðfestingarkóða aftur", @@ -99,7 +101,8 @@ const Map isIS = { // 隐私政策弹窗 "loginDeclaration": "Yfirlýsing Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Velkomin(n) í Voitrans, vinsamlegast lestu vandlega", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Velkomin(n) í Voitrans, vinsamlegast lestu vandlega", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +118,29 @@ const Map isIS = { "signal": "Merki", "deviceId": "Auðkenni tækis", "firmwareVersion": "Fastbúnaðarútgáfa", - "disconnectedDevice": "Ekkert tæki tengt, smelltu á hnappinn hér að neðan til að tengjast", + "disconnectedDevice": + "Ekkert tæki tengt, smelltu á hnappinn hér að neðan til að tengjast", "connectDevice": "Tengja tæki", "topAiExperiences": "Helstu gervigreindarupplifanir", "aiAssistant": "Alhliða gervigreindar-aðstoðarmaður", - "aiAssistantInfo": "Einkaþjónusta allan sólarhringinn, svarar spurningum, gefur tillögur", + "aiAssistantInfo": + "Einkaþjónusta allan sólarhringinn, svarar spurningum, gefur tillögur", "interpretation": "Samtímatúlkun", - "simultaneousInterpretationInfo": "Rauntímaþýðing fyrir yfir 80 tungumál, áhyggjulausar utanlandsferðir", + "simultaneousInterpretationInfo": + "Rauntímaþýðing fyrir yfir 80 tungumál, áhyggjulausar utanlandsferðir", "aiCompanion": "Fjölskyldufélagi", "aiCompanionInfo": "Skilur þig, hlýlegur félagsskapur", "homeSlogan": "Að tengja heiminn, umfram hljóð", - "turnEarphones": "Vinsamlegast opnaðu hleðsluhulstrið á heyrnartólunum og settu þau í eyrun", + "turnEarphones": + "Vinsamlegast opnaðu hleðsluhulstrið á heyrnartólunum og settu þau í eyrun", "currentlyConnected": "Nú tengt:", "unsystemSetup": "Fara í kerfisstillingar", "talkLater": "Seinna", "initializing": "Frumstilli...", "bluetoothInitializationFailure": "Frumstilling Bluetooth-þjónustu mistókst", "checkingPermissions": "Athuga heimildir...", - "lackPermissions": "Skortir Bluetooth-heimildir og lokatæknið er þó ekki tilgengilegt", + "lackPermissions": + "Skortir Bluetooth-heimildir og lokatæknið er þó ekki tilgengilegt", "searchingDevice": "Leita að tækjum...", "findConnectedDevice": "Fann tengt tæki", "notFound": "Ekkert tengt Bluetooth-tæki fannst", @@ -147,7 +155,8 @@ const Map isIS = { "fine": "Mjög gott", "excellent": "Framúrskarandi", "unknown": "Óþekkt", - 'bluetoothTurnedOff': 'Slökkt er á Bluetooth, vinsamlegast kveiktu á Bluetooth', + 'bluetoothTurnedOff': + 'Slökkt er á Bluetooth, vinsamlegast kveiktu á Bluetooth', 'bluetoothOff': 'Slökkt á Bluetooth', 'leftEar': 'Vinstra eyra', 'rightEar': 'Hægra eyra', @@ -218,7 +227,8 @@ const Map isIS = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +284,10 @@ const Map isIS = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +296,35 @@ const Map isIS = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +333,10 @@ const Map isIS = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +351,8 @@ const Map isIS = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Sleppa", @@ -355,7 +378,8 @@ const Map isIS = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +429,8 @@ const Map isIS = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +485,54 @@ const Map isIS = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +544,8 @@ const Map isIS = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +565,8 @@ const Map isIS = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +615,8 @@ const Map isIS = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +641,8 @@ const Map isIS = { "cloudSync": "Synchronisering með skýjaraddþjónustu", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Tengt tæki:", "accountId": "Auðkenni reiknings:", "systemSetting": "Kerfisstillingar", @@ -612,7 +655,8 @@ const Map isIS = { "privacySettings": "Persónuverndarstillingar", "privacySettingsInfo": "Stjórna gagnaöflun og heimildum", "permissionManagement": "Heimildastjórnun", // 权限管理 - "permissionManagementInfo": "Stjórna heimildastillingum forritsins", // 管理应用权限设置 + "permissionManagementInfo": + "Stjórna heimildastillingum forritsins", // 管理应用权限设置 "aboutApplication": "Um forritið", "versions": "Útgáfa", "checkUpdates": "Athuga með uppfærslur", @@ -621,9 +665,11 @@ const Map isIS = { "voiceServiceInfo": "Veldu raddgreiningar- og myndunarþjónustu", "selectVoiceService": "Veldu raddþjónustu", "azureVoiceService": "Azure raddþjónusta", - "azureVoiceServiceInfo": "Microsoft skýjaraddþjónusta, styður hágæða raddmyndun og -greiningu", + "azureVoiceServiceInfo": + "Microsoft skýjaraddþjónusta, styður hágæða raddmyndun og -greiningu", "flutterVoiceService": "Flutter staðbundin raddþjónusta", - "flutterVoiceServiceInfo": "Staðbundin raddþjónusta tækisins, hægt að nota án nettengingar", + "flutterVoiceServiceInfo": + "Staðbundin raddþjónusta tækisins, hægt að nota án nettengingar", 'timbreService': 'Raddblæþjónusta', 'timbreServiceInfo': 'Veldu raddblæmyndunarþjónustu', 'defaultTimbre': 'Sjálfgefinn raddblær', @@ -652,7 +698,8 @@ const Map isIS = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Rauntíma raddspjall", - "realtimeVoiceChatInfo": "Upplifðu greinda raddsamskiptaaðgerð (forskoðun aðgerðar)", + "realtimeVoiceChatInfo": + "Upplifðu greinda raddsamskiptaaðgerð (forskoðun aðgerðar)", "loading": "Hleður...", //设备管理页面 @@ -667,7 +714,8 @@ const Map isIS = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -722,9 +770,12 @@ const Map isIS = { 'Hvernig get ég aðstoðað þig?', 'microphonePermission': 'Hljóðnemi', 'voiceRecognitionPermissionText': 'Raddgreining krefst aðgangs að hljóðnema.', - 'voiceTranslationPermissionText': 'Raddgreining og þýðing krefjast aðgangs að hljóðnema.', - 'phoneCallPermissionText': 'Að hringja krefst aðgangs að hljóðnema fyrir raddsamtöl.', - 'permissionDeniedText': 'Þú hefur varanlega hafnað heimild fyrir hljóðnema, vinsamlegast farðu í kerfisstillingar til að virkja heimildina.', + 'voiceTranslationPermissionText': + 'Raddgreining og þýðing krefjast aðgangs að hljóðnema.', + 'phoneCallPermissionText': + 'Að hringja krefst aðgangs að hljóðnema fyrir raddsamtöl.', + 'permissionDeniedText': + 'Þú hefur varanlega hafnað heimild fyrir hljóðnema, vinsamlegast farðu í kerfisstillingar til að virkja heimildina.', 'startVoiceInput': 'Hefja raddinnslátt', 'startPhoneCallMode': 'Hefja símtalsham, hefja raddinnslátt', @@ -738,7 +789,8 @@ const Map isIS = { 'report': 'Tilkynna', 'submitSuccess': 'Sent', 'submitFailed': 'Sending mistókst', - 'reportSubmitted': 'Tilkynning send, við munum afgreiða hana eins fljótt og auðið er', + 'reportSubmitted': + 'Tilkynning send, við munum afgreiða hana eins fljótt og auðið er', //'networkError': '网络错误,请稍后重试', 'harmfulUnsafe': 'Skaðlegt/Óöruggt', 'pornographicVulgar': 'Klámfengið/Gróft', @@ -747,7 +799,8 @@ const Map isIS = { 'privacyRelated': 'Tengt persónuvernd', 'copyrightViolation': 'Brot á höfundarrétti mínum, mannorði o.s.frv.', 'other': 'Annað', - 'reportDescriptionHint': 'Við viljum vita hvers vegna þú ert að tilkynna, þú getur lýst vandamálinu sem þú lendir í.', + 'reportDescriptionHint': + 'Við viljum vita hvers vegna þú ert að tilkynna, þú getur lýst vandamálinu sem þú lendir í.', //'submit': '提交', //Message_bubble @@ -778,15 +831,24 @@ const Map isIS = { 'highest': 'Hæst', 'lowest': 'Lægst', 'futureForecast': 'Framtíðarspá', - 'hotWeatherTip': 'Í dag er heitt, gætið að hitaslagi og drekkið mikið af vatni', - 'coldWeatherTip': 'Í dag er lágt hitastig, klæðið ykkur vel þegar þið farið út til að forðast kvef', - 'rainyWeatherTip': 'Í dag rignir, takið með ykkur regnhlíf þegar þið farið út og farið varlega', - 'snowyWeatherTip': 'Í dag snjóar, vegurinn er háll, farið varlega og klæðið ykkur vel', - 'foggyWeatherTip': 'Í dag er þoka, skyggni er slæmt, notið grímu þegar þið farið út', - 'windyWeatherTip': 'Í dag er mikill vindur, farið varlega þegar þið farið út og festið eigur ykkar', - 'sunnyWeatherTip': 'Í dag er sólskin og sterk UV-geislun, notið sólarvörn þegar þið farið út', - 'temperatureDifferenceTip': 'Í dag er mikill hitamunur á degi og nóttu, klæðið ykkur í samræmi við það', - 'comfortableWeatherTip': 'Í dag er veðrið notalegt, frábær tími fyrir útivist', + 'hotWeatherTip': + 'Í dag er heitt, gætið að hitaslagi og drekkið mikið af vatni', + 'coldWeatherTip': + 'Í dag er lágt hitastig, klæðið ykkur vel þegar þið farið út til að forðast kvef', + 'rainyWeatherTip': + 'Í dag rignir, takið með ykkur regnhlíf þegar þið farið út og farið varlega', + 'snowyWeatherTip': + 'Í dag snjóar, vegurinn er háll, farið varlega og klæðið ykkur vel', + 'foggyWeatherTip': + 'Í dag er þoka, skyggni er slæmt, notið grímu þegar þið farið út', + 'windyWeatherTip': + 'Í dag er mikill vindur, farið varlega þegar þið farið út og festið eigur ykkar', + 'sunnyWeatherTip': + 'Í dag er sólskin og sterk UV-geislun, notið sólarvörn þegar þið farið út', + 'temperatureDifferenceTip': + 'Í dag er mikill hitamunur á degi og nóttu, klæðið ykkur í samræmi við það', + 'comfortableWeatherTip': + 'Í dag er veðrið notalegt, frábær tími fyrir útivist', "monday": "Mán", "tuesday": "Þri", "wednesday": "Mið", @@ -838,22 +900,30 @@ const Map isIS = { "logout": "Útskráning", "logoutTips": "Ertu viss um að þú viljir skrá þig út af núverandi reikningi?", 'deleteAccount': 'Eyða reikningi', - 'deleteAccountTips': 'Ertu viss um að þú viljir eyða reikningnum þínum varanlega? Ekki er hægt að afturkalla þessa aðgerð.', + 'deleteAccountTips': + 'Ertu viss um að þú viljir eyða reikningnum þínum varanlega? Ekki er hægt að afturkalla þessa aðgerð.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Netkerfistenging mistókst, vinsamlegast athugaðu netkerfisstillingar og reyndu aftur', - 'serverTemporarilyUnavailable': 'Netþjónn er tímabundið ófáanlegur, vinsamlegast reyndu aftur síðar', - 'loginExpiredPleaseRelogin': 'Innskráningin þín er útrunnin, vinsamlegast skráðu þig inn aftur', - 'noPermissionForThisOperation': 'Þú hefur ekki heimild til að framkvæma þessa aðgerð', + 'networkConnectionFailed': + 'Netkerfistenging mistókst, vinsamlegast athugaðu netkerfisstillingar og reyndu aftur', + 'serverTemporarilyUnavailable': + 'Netþjónn er tímabundið ófáanlegur, vinsamlegast reyndu aftur síðar', + 'loginExpiredPleaseRelogin': + 'Innskráningin þín er útrunnin, vinsamlegast skráðu þig inn aftur', + 'noPermissionForThisOperation': + 'Þú hefur ekki heimild til að framkvæma þessa aðgerð', 'requestedResourceNotFound': 'Umbeðin auðlind fannst ekki', - 'imageProcessingFailedPleaseReselect': 'Myndvinnsla mistókst, vinsamlegast veldu aðra mynd', + 'imageProcessingFailedPleaseReselect': + 'Myndvinnsla mistókst, vinsamlegast veldu aðra mynd', 'operationFailedPleaseRetry': 'Aðgerð mistókst, vinsamlegast reyndu aftur', 'serverReturnedError': 'Netþjónn skilaði villu', 'serverError': 'Netþjónsvilla', - 'networkConnectionFailedCheckSettings': 'Netkerfistenging mistókst, vinsamlegast athugaðu netkerfisstillingar', - 'serverInternalErrorRetryLater': 'Innri netþjónsvilla, vinsamlegast reyndu aftur síðar', + 'networkConnectionFailedCheckSettings': + 'Netkerfistenging mistókst, vinsamlegast athugaðu netkerfisstillingar', + 'serverInternalErrorRetryLater': + 'Innri netþjónsvilla, vinsamlegast reyndu aftur síðar', // Profile 用户交互 //'error': '错误', @@ -867,7 +937,8 @@ const Map isIS = { 'loggedOut': 'Útskráð(ur)', 'logoutFailedRetry': 'Útskráning mistókst, vinsamlegast reyndu aftur', 'accountPermanentlyDeleted': 'Reikningi hefur verið eytt varanlega', - 'deleteAccountFailedRetry': 'Eyðing reiknings mistókst, vinsamlegast reyndu aftur', + 'deleteAccountFailedRetry': + 'Eyðing reiknings mistókst, vinsamlegast reyndu aftur', // 账号服务相关 'clearUserDataFailed': 'Ekki tókst að hreinsa notandagögn', // 清理用户数据失败 @@ -875,10 +946,12 @@ const Map isIS = { 'thirdPartyLogoutSuccess': 'Útskráning þriðja aðila tókst', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Útskráning þriðja aðila mistókst', // 第三方登录退出失败 'signOutProcessError': 'Villa kom upp við útskráningu', // 登出过程发生错误 - 'deleteAccountProcessError': 'Villa kom upp við eyðingu reiknings', // 删除账号过程发生错误 + 'deleteAccountProcessError': + 'Villa kom upp við eyðingu reiknings', // 删除账号过程发生错误 'userDataClearSuccess': 'Notandagögnum var eytt', // 用户数据清理成功 'allUserDataClearSuccess': 'Öllum notandagögnum var eytt', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Reikningsþjónusta frumstillt', // AccountService 已初始化 + 'accountServiceInitialized': + 'Reikningsþjónusta frumstillt', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Ekki tókst að fá stöðu heimilda', @@ -901,10 +974,14 @@ const Map isIS = { 'locationInfo': 'Staðsetningarupplýsingar', 'phonePermissionDesc': 'Notað fyrir símtalsaðgerð', 'smsPermissionDesc': 'Notað fyrir SMS sendingaraðgerð', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Notað til að búa til dagbókarviðburði og áminningar', - 'calendarFullAccessPermissionDesc': 'Notað til að lesa og stjórna dagbókarviðburðum og áminningum', - 'locationPermissionDesc': 'Notað til að fá upplýsingar um núverandi staðsetningu', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Notað til að búa til dagbókarviðburði og áminningar', + 'calendarFullAccessPermissionDesc': + 'Notað til að lesa og stjórna dagbókarviðburðum og áminningum', + 'locationPermissionDesc': + 'Notað til að fá upplýsingar um núverandi staðsetningu', 'appFunctionNeeds': 'Forritsaðgerð þarf', 'authorized': 'Heimilað', 'unauthorized': 'Óheimilað', @@ -915,43 +992,67 @@ const Map isIS = { 'permissionRequestError': 'Villa við beiðni um heimild', 'phonePermissionDetailDesc': 'Símtalsaðgerð krefst símaheimildar', 'smsPermissionDetailDesc': 'SMS sendingaraðgerð krefst SMS heimildar', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Að búa til dagbókarviðburði krefst skrifheimildar í dagbók', - 'calendarFullAccessPermissionDetailDesc': 'Að stjórna dagbókarviðburðum krefst fullrar dagbókarheimildar', - 'locationPermissionDetailDesc': 'Að fá staðsetningarupplýsingar krefst staðsetningarheimildar', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Að búa til dagbókarviðburði krefst skrifheimildar í dagbók', + 'calendarFullAccessPermissionDetailDesc': + 'Að stjórna dagbókarviðburðum krefst fullrar dagbókarheimildar', + 'locationPermissionDetailDesc': + 'Að fá staðsetningarupplýsingar krefst staðsetningarheimildar', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Forritið þarf þessa heimild til að veita fulla virkni', - 'permanentDenialText': 'Þú hefur varanlega hafnað {permission}-heimild, vinsamlegast farðu í forritastillingar til að virkja hana', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Forritið þarf þessa heimild til að veita fulla virkni', + 'permanentDenialText': + 'Þú hefur varanlega hafnað {permission}-heimild, vinsamlegast farðu í forritastillingar til að virkja hana', 'goToSettings': 'Fara í stillingar', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1062,8 @@ const Map isIS = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1072,10 @@ const Map isIS = { 'updateNow': 'Uppfæra núna', // 立即更新按钮 'checkUpdate': 'Athuga með uppfærslu', // 检查更新按钮 'updateFailed': 'Uppfærsla mistókst', // 更新失败提示 - 'cannotOpenAppStore': 'Ekki hægt að opna forritaverslun, vinsamlegast farðu handvirkt í forritaverslun til að uppfæra', // 无法打开应用商店提示 - 'updateErrorRetry': 'Villa kom upp við uppfærslu, vinsamlegast reyndu aftur síðar', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Ekki hægt að opna forritaverslun, vinsamlegast farðu handvirkt í forritaverslun til að uppfæra', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Villa kom upp við uppfærslu, vinsamlegast reyndu aftur síðar', // 更新错误重试提示 //国家列表 "邮箱": "Tölvupóstur", @@ -1107,7 +1211,8 @@ const Map isIS = { "selectTargetLanguage": "Veldu markmál", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1228,12 @@ const Map isIS = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Hreinsa sögu", - "clearHistoryConfirm": "Ertu viss um að þú viljir hreinsa alla þýðingasögu? Ekki er hægt að afturkalla þessa aðgerð.", + "clearHistoryConfirm": + "Ertu viss um að þú viljir hreinsa alla þýðingasögu? Ekki er hægt að afturkalla þessa aðgerð.", "unknownLanguage": "Óþekkt tungumál", "deleteSessionRecord": "Eyða lotuupptöku", - "deleteSessionConfirm": "Ertu viss um að þú viljir eyða öllum þýðingarupptökum fyrir þessa lotu? Ekki er hægt að afturkalla þessa aðgerð.", + "deleteSessionConfirm": + "Ertu viss um að þú viljir eyða öllum þýðingarupptökum fyrir þessa lotu? Ekki er hægt að afturkalla þessa aðgerð.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1265,20 @@ const Map isIS = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1301,8 @@ const Map isIS = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Upprunaleg upptaka", "recordSummary": "Samantekt upptöku", - "clickToGenerateSummary": "Smelltu á hnappinn hér að neðan til að búa til samantekt lotu", + "clickToGenerateSummary": + "Smelltu á hnappinn hér að neðan til að búa til samantekt lotu", "summaryContent": "Innihald samantektar", "copied": "Afritað", "summaryCopiledToClipboard": "Samantekt afrituð á klippiborð", @@ -1197,9 +1310,11 @@ const Map isIS = { "summaryGenerated": "Samantekt búin til", "generating": "Býr til...", "regenerate": "Búa til aftur", - "summaryTimeoutMessage": "Tími beiðni um samantektargenerun rann út, gæti verið vegna netvandamála eða upptekins netþjóns.", + "summaryTimeoutMessage": + "Tími beiðni um samantektargenerun rann út, gæti verið vegna netvandamála eða upptekins netþjóns.", "deleteTranslationRecord": "Eyða þýðingarupptöku", - "deleteTranslationConfirm": "Ertu viss um að þú viljir eyða þessari þýðingarupptöku? Ekki er hægt að afturkalla þessa aðgerð.", + "deleteTranslationConfirm": + "Ertu viss um að þú viljir eyða þessari þýðingarupptöku? Ekki er hægt að afturkalla þessa aðgerð.", "originalText": "Upprunalegur texti", "translatedText": "Þýddur texti", "sessionSummary": "Samantekt lotu", @@ -1227,19 +1342,24 @@ const Map isIS = { // 配对状态文本 "readyToPair": "Tilbúið til pörunar", "preparingPairingEnvironment": "Undirbýr pörunarumhverfi...", - "connectDeepSoundViaSystemBluetooth": "Tengstu fyrst við Voitrans tækið í gegnum kerfis-Bluetooth", + "connectDeepSoundViaSystemBluetooth": + "Tengstu fyrst við Voitrans tækið í gegnum kerfis-Bluetooth", "deviceBindingConfirm": "Staðfesting á tækisbindingu...", "establishingDeviceAssociation": "Stofna tækjasamband...", "waitingCompletePairing": "Vinsamlegast bíddu, lýkur pörun...", "pairingSuccessRedirecting": "Pörun tókst! Vísar á aðalsíðu...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Gakktu úr skugga um að þú sért tengd(ur) við Voitrans tæki", - "deviceAlreadyBoundToOtherAccount": "Þetta tæki er þegar bundið við annan reikning", + "ensureConnectedDeepSoundDevice": + "Gakktu úr skugga um að þú sért tengd(ur) við Voitrans tæki", + "deviceAlreadyBoundToOtherAccount": + "Þetta tæki er þegar bundið við annan reikning", "deviceAssociationFailed": "Tækjasamband mistókst, vinsamlegast reyndu aftur", - "scanTimeoutEnsureDeviceNearby": "Tími skönnunar rann út, gakktu úr skugga um að tækið sé nálægt", + "scanTimeoutEnsureDeviceNearby": + "Tími skönnunar rann út, gakktu úr skugga um að tækið sé nálægt", "networkError": "Netvilla", - "authorizationFailedCheckCode": "Heimildun mistókst, athugaðu hvort heimildarkóðinn sé réttur", + "authorizationFailedCheckCode": + "Heimildun mistókst, athugaðu hvort heimildarkóðinn sé réttur", "pairingFailedRetry": "Pörun mistókst, vinsamlegast reyndu aftur", // 配对控制器相关 @@ -1248,37 +1368,47 @@ const Map isIS = { 'deviceDisconnected': 'Tæki aftengt', 'readyToStartPairing': 'Tilbúið til að hefja pörun', 'checkingEnvironment': 'Athuga umhverfi...', - 'ensureHeadsetOnAndPairingMode': 'Gakktu úr skugga um að heyrnartólin séu á og í pörunarham', + 'ensureHeadsetOnAndPairingMode': + 'Gakktu úr skugga um að heyrnartólin séu á og í pörunarham', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Stofna örugga tengingu...', - 'needManualBindingAuthCode': 'Handvirkur bindingarheimildarkóði er nauðsynlegur...', + 'needManualBindingAuthCode': + 'Handvirkur bindingarheimildarkóði er nauðsynlegur...', 'pairingSuccessful': 'Pörun tókst!', 'enableBluetooth': 'Virkja Bluetooth', 'grantPermissions': 'Veita heimildir', 'retryAssociation': 'Reyna samband aftur', 'retryAuthorization': 'Reyna heimildun aftur', - 'pleaseGrantNecessaryPermissions': 'Vinsamlegast veittu nauðsynlegar heimildir', + 'pleaseGrantNecessaryPermissions': + 'Vinsamlegast veittu nauðsynlegar heimildir', 'checkFailedRetry': 'Athugun mistókst, vinsamlegast reyndu aftur', 'pleaseConnectDeepSoundDevice': 'Vinsamlegast tengdu Voitrans tæki', 'verificationFailedRetry': 'Staðfesting mistókst, vinsamlegast reyndu aftur', 'invalidDeviceAddress': 'Ógilt tækisnetfang', 'bleDeviceAssociationFailed': 'BLE tækjasamband mistókst', - 'deviceAssociationFailedRetry': 'Tækjasamband mistókst, vinsamlegast reyndu aftur', - 'bleConnectionTimeoutRetry': 'BLE tengingartími rann út, vinsamlegast reyndu aftur', + 'deviceAssociationFailedRetry': + 'Tækjasamband mistókst, vinsamlegast reyndu aftur', + 'bleConnectionTimeoutRetry': + 'BLE tengingartími rann út, vinsamlegast reyndu aftur', 'blePairingStartupFailed': 'BLE pörunarstart mistókst', 'bleConnectionFailed': 'BLE tenging mistókst', - 'deviceAuthorizationFailedCheckCode': 'Tækisheimildun mistókst, athugaðu heimildarkóðann', + 'deviceAuthorizationFailedCheckCode': + 'Tækisheimildun mistókst, athugaðu heimildarkóðann', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1291,10 +1421,12 @@ const Map isIS = { 'contactHint': 'Tölvupóstur/Sími, svo við getum haft samband við þig', 'submit': 'Senda', 'feedbackSubmitSuccess': 'Endurgjöf send, takk fyrir endurgjöfina!', - 'feedbackSubmitFailed': 'Sending endurgjafar mistókst, vinsamlegast reyndu aftur síðar', + 'feedbackSubmitFailed': + 'Sending endurgjafar mistókst, vinsamlegast reyndu aftur síðar', // OTA升级模块 - "upgradeExitConfirm": "Uppfærsla er í gangi, að hætta mun trufla ferlið, ertu viss um að þú viljir hætta?", + "upgradeExitConfirm": + "Uppfærsla er í gangi, að hætta mun trufla ferlið, ertu viss um að þú viljir hætta?", "deviceModel": "Gerð tækis", "unknownDevice": "Óþekkt tæki", "currentFirmwareVersion": "Núverandi fastbúnaðarútgáfa", @@ -1307,14 +1439,18 @@ const Map isIS = { "retryConnection": "Reyna að tengjast aftur", "ota_updateNow": "Uppfæra núna", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "Haltu tækinu tengdu, ekki loka forritinu", "doNotDisconnect": "Ekki aftengja", "charging": "Hleður", "updateContent": "Innihald uppfærslu", - "removeEarbudsEnsureBattery": "Taktu báðar heyrnartólin úr og gakktu úr skugga um að rafhlaðan á báðum sé yfir 20%", + "removeEarbudsEnsureBattery": + "Taktu báðar heyrnartólin úr og gakktu úr skugga um að rafhlaðan á báðum sé yfir 20%", // 音乐列表页面 "noMusic": "Engin tónlist", // 暂无音乐 @@ -1376,8 +1512,10 @@ const Map isIS = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/it_it.dart b/lib/core/translations/language/it_it.dart index 071384191..69400531d 100644 --- a/lib/core/translations/language/it_it.dart +++ b/lib/core/translations/language/it_it.dart @@ -34,6 +34,7 @@ const Map itIT = { "spanish": "Spagnolo", "portuguese": "Portoghese", "traditionalChinese": "Cinese tradizionale", + "traditionalChineseHK": "Cinese tradizionale (Hong Kong)", "japanese": "Giapponese", "korean": "Coreano", "french": "Francese", @@ -91,7 +92,8 @@ const Map itIT = { "tip": "Suggerimento", "pleaseEnterCompleteCode": "Inserisci il codice di verifica completo", "loginFailed": "Accesso fallito, riprova", - 'pleaseAcceptPrivacyPolicy': 'Per favore, leggi e accetta prima l\'Informativa sulla privacy e il Contratto utente', + 'pleaseAcceptPrivacyPolicy': + 'Per favore, leggi e accetta prima l\'Informativa sulla privacy e il Contratto utente', "enterVerificationCode": "Inserisci codice di verifica", "verificationCodeSentTo": "Codice di verifica inviato a", "resendVerificationCode": "Invia nuovamente il codice di verifica", @@ -100,7 +102,8 @@ const Map itIT = { // 隐私政策弹窗 "loginDeclaration": "Dichiarazione di Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Benvenuto in Voitrans, si prega di leggere attentamente", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Benvenuto in Voitrans, si prega di leggere attentamente", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -116,24 +119,30 @@ const Map itIT = { "signal": "Segnale", "deviceId": "ID dispositivo", "firmwareVersion": "Versione firmware", - "disconnectedDevice": "Nessun dispositivo connesso, clicca il pulsante qui sotto per connettere", + "disconnectedDevice": + "Nessun dispositivo connesso, clicca il pulsante qui sotto per connettere", "connectDevice": "Connetti dispositivo", "topAiExperiences": "Esperienze AI principali", "aiAssistant": "Assistente AI completo", - "aiAssistantInfo": "Consulente esclusivo 24/7, risponde a domande, fornisce suggerimenti", + "aiAssistantInfo": + "Consulente esclusivo 24/7, risponde a domande, fornisce suggerimenti", "interpretation": "Interpretazione simultanea", - "simultaneousInterpretationInfo": "Traduzione in tempo reale in oltre 80 lingue, viaggi all'estero senza preoccupazioni", + "simultaneousInterpretationInfo": + "Traduzione in tempo reale in oltre 80 lingue, viaggi all'estero senza preoccupazioni", "aiCompanion": "Compagno di famiglia", "aiCompanionInfo": "Ti capisce, compagnia calorosa", "homeSlogan": "Connettere il mondo, trascendere il suono", - "turnEarphones": "Apri la custodia di ricarica degli auricolari e inseriscili nelle orecchie", + "turnEarphones": + "Apri la custodia di ricarica degli auricolari e inseriscili nelle orecchie", "currentlyConnected": "Attualmente connesso:", "unsystemSetup": "Vai alle impostazioni di sistema", "talkLater": "Più tardi", "initializing": "Inizializzazione...", - "bluetoothInitializationFailure": "Inizializzazione del servizio Bluetooth fallita", + "bluetoothInitializationFailure": + "Inizializzazione del servizio Bluetooth fallita", "checkingPermissions": "Verifica autorizzazioni...", - "lackPermissions": "Mancano le autorizzazioni Bluetooth e l'accesso alla posizione è necessario", + "lackPermissions": + "Mancano le autorizzazioni Bluetooth e l'accesso alla posizione è necessario", "searchingDevice": "Ricerca dispositivi...", "findConnectedDevice": "Dispositivo connesso trovato", "notFound": "Nessun dispositivo Bluetooth connesso trovato", @@ -141,21 +150,24 @@ const Map itIT = { "connectedDevice": "Connesso al dispositivo:", "failedRefreshDevice": "Aggiornamento del dispositivo fallito", "noDeviceFound": "Nessun dispositivo connesso trovato", - "failedDeviceInformation": "Impossibile ottenere informazioni sul dispositivo", + "failedDeviceInformation": + "Impossibile ottenere informazioni sul dispositivo", "unknownEquipment": "Dispositivo sconosciuto", "zeroSignal": "Nessun segnale", "good": "Buono", "fine": "Ottimo", "excellent": "Eccellente", "unknown": "Sconosciuto", - 'bluetoothTurnedOff': 'Bluetooth disattivato, si prega di attivare il Bluetooth', + 'bluetoothTurnedOff': + 'Bluetooth disattivato, si prega di attivare il Bluetooth', 'bluetoothOff': 'Bluetooth disattivato', 'leftEar': 'Orecchio sinistro', 'rightEar': 'Orecchio destro', 'chargingCase': 'Custodia di ricarica', 'left': 'Sinistra', 'right': 'Destra', - 'checkConnectionStatusFailed': 'Verifica dello stato della connessione fallita', + 'checkConnectionStatusFailed': + 'Verifica dello stato della connessione fallita', // 发现页 "searchAi": "Cerca funzioni AI...", @@ -176,7 +188,8 @@ const Map itIT = { "healthConsultant": "Chat AI multifunzionale", "healthConsultantInfo": "Offre più funzioni di chat AI", "conferenceAssistant": "Assistente per riunioni di lavoro", - "conferenceAssistantInfo": "Registrazione di verbali in tempo reale, traduzione multilingue", + "conferenceAssistantInfo": + "Registrazione di verbali in tempo reale, traduzione multilingue", "usageStats": "Statistiche di utilizzo", "usageStatsInfo": "Visualizza le statistiche di utilizzo dell'applicazione", "scene": "Scenario", @@ -219,7 +232,8 @@ const Map itIT = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -275,8 +289,10 @@ const Map itIT = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -285,27 +301,36 @@ const Map itIT = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Interpretazione simultanea e traduzione di testo in tempo reale, con voce a bassa latenza.', + 'transHeaderDesc1': + 'Interpretazione simultanea e traduzione di testo in tempo reale, con voce a bassa latenza.', 'transHeaderDesc2': 'Adatto a viaggi, affari, discorsi e insegnamento.', 'translateZhEn': 'Traduzione Cinese-Inglese', 'lowLatencyVoiceBroadcast': 'Trasmissione vocale a bassa latenza', 'multiLangTextTranslation': 'Traduzione di testo multilingue', - 'termOptimizationContextPreserve': 'Ottimizzazione della terminologia e mantenimento del contesto', + 'termOptimizationContextPreserve': + 'Ottimizzazione della terminologia e mantenimento del contesto', 'lexiconTourBusinessLife': 'Lessici per viaggio/affari/vita quotidiana', 'personalVocabularyMemory': 'Memoria del vocabolario personale', - 'conversationSubtitleLargeText': 'Sottotitoli conversazione / modalità testo grande', + 'conversationSubtitleLargeText': + 'Sottotitoli conversazione / modalità testo grande', 'colorHighContrast': 'Elevato contrasto dei colori', - 'transDisclaimer': 'Le prestazioni della traduzione dipendono dal microfono, dalla latenza di rete e dal rumore ambientale.', + 'transDisclaimer': + 'Le prestazioni della traduzione dipendono dal microfono, dalla latenza di rete e dal rumore ambientale.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -314,8 +339,10 @@ const Map itIT = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Panoramica dei vantaggi', @@ -330,7 +357,8 @@ const Map itIT = { 'generalPrivileges': 'Privilegi generali', 'earlyAccessNewFeatures': 'Accesso anticipato alle nuove funzionalità', 'crossDeviceSync': 'Sincronizzazione tra dispositivi', - 'vipDisclaimer': 'I benefici effettivi dipendono dai dettagli del pacchetto e possono cambiare con le versioni.', + 'vipDisclaimer': + 'I benefici effettivi dipendono dai dettagli del pacchetto e possono cambiare con le versioni.', // 新手引导 / Onboarding 'skip': "Salta", @@ -356,7 +384,8 @@ const Map itIT = { 'guideNavInput': "Navigate to Shenzhen Airport", 'guideNavSend': "Lily will plan the route", 'guideNavEnd': "Navigation set—try other commands", - 'guideMeetingStart': "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", + 'guideMeetingStart': + "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", 'guideMeetingInput': "Create a meeting reminder for 3pm tomorrow", 'guideMeetingSend': "Lily will create a meeting reminder", 'guideMeetingEnd': "Reminder created—try other commands", @@ -406,7 +435,8 @@ const Map itIT = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -461,40 +491,54 @@ const Map itIT = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -506,7 +550,8 @@ const Map itIT = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -526,7 +571,8 @@ const Map itIT = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -575,7 +621,8 @@ const Map itIT = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -600,7 +647,8 @@ const Map itIT = { "cloudSync": "Recharge sincronizzazione cloud", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Dispositivo connesso:", "accountId": "ID account:", "systemSetting": "Impostazioni di sistema", @@ -608,23 +656,28 @@ const Map itIT = { "darkMode": "Modalità scura", "darkModeInfo": "Passa tra i temi chiaro e scuro dell'app", "backups": "Backup e ripristino", - "backupsInfo": "Backup delle impostazioni e della cronologia delle interazioni AI", + "backupsInfo": + "Backup delle impostazioni e della cronologia delle interazioni AI", "lastBackup": "Ultimo backup:", "privacySettings": "Impostazioni privacy", "privacySettingsInfo": "Gestisci la raccolta dei dati e le autorizzazioni", "permissionManagement": "Gestione autorizzazioni", // 权限管理 - "permissionManagementInfo": "Gestisci le impostazioni delle autorizzazioni dell'app", // 管理应用权限设置 + "permissionManagementInfo": + "Gestisci le impostazioni delle autorizzazioni dell'app", // 管理应用权限设置 "aboutApplication": "Informazioni sull'app", "versions": "Versione", "checkUpdates": "Controlla aggiornamenti", "selectLanguage": "Seleziona lingua", "voiceService": "Servizio vocale", - "voiceServiceInfo": "Seleziona il servizio di riconoscimento e sintesi vocale", + "voiceServiceInfo": + "Seleziona il servizio di riconoscimento e sintesi vocale", "selectVoiceService": "Seleziona servizio vocale", "azureVoiceService": "Servizio vocale Azure", - "azureVoiceServiceInfo": "Servizio vocale cloud di Microsoft, supporta sintesi e riconoscimento vocale di alta qualità", + "azureVoiceServiceInfo": + "Servizio vocale cloud di Microsoft, supporta sintesi e riconoscimento vocale di alta qualità", "flutterVoiceService": "Servizio vocale locale Flutter", - "flutterVoiceServiceInfo": "Servizio vocale locale del dispositivo, utilizzabile senza connessione a Internet", + "flutterVoiceServiceInfo": + "Servizio vocale locale del dispositivo, utilizzabile senza connessione a Internet", 'timbreService': 'Servizio timbro', 'timbreServiceInfo': 'Seleziona il servizio di sintesi vocale del timbro', 'defaultTimbre': 'Timbro predefinito', @@ -635,7 +688,8 @@ const Map itIT = { 'pleaseRead': 'Leggi ad alta voce', 'completeRecording': 'Completa la registrazione', "firmwareUpgrade": "Aggiornamento firmware", - "bleHeadsetFirmwareUpgrade": "Aggiornamento della versione del firmware delle cuffie BLE", + "bleHeadsetFirmwareUpgrade": + "Aggiornamento della versione del firmware delle cuffie BLE", "deviceManagement": "Gestione dispositivi", "manageConnectedDevices": "Gestisci i dispositivi Bluetooth associati", @@ -653,7 +707,8 @@ const Map itIT = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Chat vocale in tempo reale", - "realtimeVoiceChatInfo": "Sperimenta la funzione di interazione vocale intelligente (anteprima della funzione)", + "realtimeVoiceChatInfo": + "Sperimenta la funzione di interazione vocale intelligente (anteprima della funzione)", "loading": "Caricamento...", //设备管理页面 @@ -668,7 +723,8 @@ const Map itIT = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -679,7 +735,8 @@ const Map itIT = { "inputMessage": "Inserisci messaggio...", "imListening": "Sto ascoltando...", "canStartTalking": "Puoi iniziare a parlare", - "addQuestionAboutImage": "Aggiungi una domanda o una descrizione sull'immagine...", + "addQuestionAboutImage": + "Aggiungi una domanda o una descrizione sull'immagine...", "summarizeImageContent": "Riassumi il contenuto dell'immagine", "extractImageText": "Estrai il testo dall'immagine", "translateImageText": "Traduci il testo nell'immagine", @@ -722,10 +779,14 @@ const Map itIT = { '• Controllare le funzioni degli auricolari\n\n' 'Come posso aiutarti?', 'microphonePermission': 'Microfono', - 'voiceRecognitionPermissionText': 'Il riconoscimento vocale richiede l\'accesso al microfono.', - 'voiceTranslationPermissionText': 'Il riconoscimento e la traduzione vocale richiedono l\'accesso al microfono.', - 'phoneCallPermissionText': 'Effettuare chiamate richiede l\'accesso al microfono per le chiamate vocali.', - 'permissionDeniedText': 'Hai negato permanentemente l\'autorizzazione al microfono, vai alle impostazioni di sistema per attivarla.', + 'voiceRecognitionPermissionText': + 'Il riconoscimento vocale richiede l\'accesso al microfono.', + 'voiceTranslationPermissionText': + 'Il riconoscimento e la traduzione vocale richiedono l\'accesso al microfono.', + 'phoneCallPermissionText': + 'Effettuare chiamate richiede l\'accesso al microfono per le chiamate vocali.', + 'permissionDeniedText': + 'Hai negato permanentemente l\'autorizzazione al microfono, vai alle impostazioni di sistema per attivarla.', 'startVoiceInput': 'Avvia input vocale', 'startPhoneCallMode': 'Avvia modalità chiamata, avvia input vocale', @@ -746,9 +807,11 @@ const Map itIT = { 'misleadingAttack': 'Fuorviante/Attacco', 'illegalCriminal': 'Illegale/Criminale', 'privacyRelated': 'Relativo alla privacy', - 'copyrightViolation': 'Violazione del mio diritto d\'autore, della mia reputazione, ecc.', + 'copyrightViolation': + 'Violazione del mio diritto d\'autore, della mia reputazione, ecc.', 'other': 'Altro', - 'reportDescriptionHint': 'Vogliamo sapere perché stai segnalando, puoi descrivere il problema che hai riscontrato.', + 'reportDescriptionHint': + 'Vogliamo sapere perché stai segnalando, puoi descrivere il problema che hai riscontrato.', //'submit': '提交', //Message_bubble @@ -779,15 +842,24 @@ const Map itIT = { 'highest': 'Massima', 'lowest': 'Minima', 'futureForecast': 'Previsioni future', - 'hotWeatherTip': 'Oggi fa caldo, fai attenzione al colpo di calore e bevi molta acqua', - 'coldWeatherTip': 'Oggi la temperatura è bassa, vestiti pesante quando esci per non prendere il raffreddore', - 'rainyWeatherTip': 'Oggi piove, porta un ombrello quando esci e fai attenzione', - 'snowyWeatherTip': 'Oggi nevica, la strada è scivolosa, fai attenzione e vestiti pesante', - 'foggyWeatherTip': 'Oggi c\'è nebbia, la visibilità è scarsa, indossa una mascherina quando esci', - 'windyWeatherTip': 'Oggi c\'è molto vento, fai attenzione quando esci e fissa bene le tue cose', - 'sunnyWeatherTip': 'Oggi c\'è il sole e i raggi UV sono forti, usa la protezione solare quando esci', - 'temperatureDifferenceTip': 'Oggi c\'è una grande differenza di temperatura tra il giorno e la notte, adatta i vestiti', - 'comfortableWeatherTip': 'Oggi il tempo è piacevole, un ottimo momento per le attività all\'aperto', + 'hotWeatherTip': + 'Oggi fa caldo, fai attenzione al colpo di calore e bevi molta acqua', + 'coldWeatherTip': + 'Oggi la temperatura è bassa, vestiti pesante quando esci per non prendere il raffreddore', + 'rainyWeatherTip': + 'Oggi piove, porta un ombrello quando esci e fai attenzione', + 'snowyWeatherTip': + 'Oggi nevica, la strada è scivolosa, fai attenzione e vestiti pesante', + 'foggyWeatherTip': + 'Oggi c\'è nebbia, la visibilità è scarsa, indossa una mascherina quando esci', + 'windyWeatherTip': + 'Oggi c\'è molto vento, fai attenzione quando esci e fissa bene le tue cose', + 'sunnyWeatherTip': + 'Oggi c\'è il sole e i raggi UV sono forti, usa la protezione solare quando esci', + 'temperatureDifferenceTip': + 'Oggi c\'è una grande differenza di temperatura tra il giorno e la notte, adatta i vestiti', + 'comfortableWeatherTip': + 'Oggi il tempo è piacevole, un ottimo momento per le attività all\'aperto', "monday": "Lun", "tuesday": "Mar", "wednesday": "Mer", @@ -839,22 +911,30 @@ const Map itIT = { "logout": "Esci", "logoutTips": "Sei sicuro di voler uscire dall'account corrente?", 'deleteAccount': 'Elimina account', - 'deleteAccountTips': 'Sei sicuro di voler eliminare permanentemente il tuo account? Questa azione non può essere annullata.', + 'deleteAccountTips': + 'Sei sicuro di voler eliminare permanentemente il tuo account? Questa azione non può essere annullata.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Connessione di rete fallita, controlla le impostazioni di rete e riprova', - 'serverTemporarilyUnavailable': 'Il server è temporaneamente non disponibile, riprova più tardi', - 'loginExpiredPleaseRelogin': 'La tua sessione è scaduta, effettua nuovamente l\'accesso', - 'noPermissionForThisOperation': 'Non hai il permesso di eseguire questa operazione', + 'networkConnectionFailed': + 'Connessione di rete fallita, controlla le impostazioni di rete e riprova', + 'serverTemporarilyUnavailable': + 'Il server è temporaneamente non disponibile, riprova più tardi', + 'loginExpiredPleaseRelogin': + 'La tua sessione è scaduta, effettua nuovamente l\'accesso', + 'noPermissionForThisOperation': + 'Non hai il permesso di eseguire questa operazione', 'requestedResourceNotFound': 'La risorsa richiesta non è stata trovata', - 'imageProcessingFailedPleaseReselect': 'Elaborazione dell\'immagine fallita, seleziona un\'altra immagine', + 'imageProcessingFailedPleaseReselect': + 'Elaborazione dell\'immagine fallita, seleziona un\'altra immagine', 'operationFailedPleaseRetry': 'Operazione fallita, riprova', 'serverReturnedError': 'Il server ha restituito un errore', 'serverError': 'Errore del server', - 'networkConnectionFailedCheckSettings': 'Connessione di rete fallita, controlla le impostazioni di rete', - 'serverInternalErrorRetryLater': 'Errore interno del server, riprova più tardi', + 'networkConnectionFailedCheckSettings': + 'Connessione di rete fallita, controlla le impostazioni di rete', + 'serverInternalErrorRetryLater': + 'Errore interno del server, riprova più tardi', // Profile 用户交互 //'error': '错误', @@ -873,16 +953,23 @@ const Map itIT = { // 账号服务相关 'clearUserDataFailed': 'Cancellazione dei dati utente fallita', // 清理用户数据失败 'deleteUserDataFailed': 'Eliminazione dei dati utente fallita', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'Disconnessione di terze parti riuscita', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': 'Disconnessione di terze parti fallita', // 第三方登录退出失败 - 'signOutProcessError': 'Si è verificato un errore durante il processo di disconnessione', // 登出过程发生错误 - 'deleteAccountProcessError': 'Si è verificato un errore durante il processo di eliminazione dell\'account', // 删除账号过程发生错误 + 'thirdPartyLogoutSuccess': + 'Disconnessione di terze parti riuscita', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': + 'Disconnessione di terze parti fallita', // 第三方登录退出失败 + 'signOutProcessError': + 'Si è verificato un errore durante il processo di disconnessione', // 登出过程发生错误 + 'deleteAccountProcessError': + 'Si è verificato un errore durante il processo di eliminazione dell\'account', // 删除账号过程发生错误 'userDataClearSuccess': 'Dati utente cancellati con successo', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Tutti i dati utente sono stati cancellati con successo', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Servizio account inizializzato', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Tutti i dati utente sono stati cancellati con successo', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Servizio account inizializzato', // AccountService 已初始化 // 权限管理页面 - 'getPermissionStatusFailed': 'Ottenimento dello stato delle autorizzazioni fallito', + 'getPermissionStatusFailed': + 'Ottenimento dello stato delle autorizzazioni fallito', 'communicationPermissions': 'Autorizzazioni di comunicazione', 'bluetoothPermissions': 'Bluetooth Permissions', 'notificationPermissions': 'Notification Permissions', @@ -902,57 +989,88 @@ const Map itIT = { 'locationInfo': 'Informazioni sulla posizione', 'phonePermissionDesc': 'Utilizzato per la funzione di chiamata', 'smsPermissionDesc': 'Utilizzato per la funzione di invio SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Utilizzato per creare eventi e promemoria nel calendario', - 'calendarFullAccessPermissionDesc': 'Utilizzato per leggere e gestire eventi e promemoria del calendario', - 'locationPermissionDesc': 'Utilizzato per ottenere informazioni sulla posizione corrente', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Utilizzato per creare eventi e promemoria nel calendario', + 'calendarFullAccessPermissionDesc': + 'Utilizzato per leggere e gestire eventi e promemoria del calendario', + 'locationPermissionDesc': + 'Utilizzato per ottenere informazioni sulla posizione corrente', 'appFunctionNeeds': 'La funzione dell\'app necessita di', 'authorized': 'Autorizzato', 'unauthorized': 'Non autorizzato', - 'needOpenInSystemSettings': 'Deve essere attivato nelle impostazioni di sistema', + 'needOpenInSystemSettings': + 'Deve essere attivato nelle impostazioni di sistema', 'partialAuthorization': 'Autorizzazione parziale', 'unknownStatus': 'Stato sconosciuto', 'permissionGranted': 'Autorizzazione concessa', 'permissionRequestError': 'Errore durante la richiesta di autorizzazione', - 'phonePermissionDetailDesc': 'La funzione di chiamata richiede l\'autorizzazione del telefono', - 'smsPermissionDetailDesc': 'La funzione di invio SMS richiede l\'autorizzazione SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'La creazione di eventi nel calendario richiede l\'autorizzazione di scrittura nel calendario', - 'calendarFullAccessPermissionDetailDesc': 'La gestione degli eventi del calendario richiede l\'autorizzazione completa del calendario', - 'locationPermissionDetailDesc': 'L\'ottenimento di informazioni sulla posizione richiede l\'autorizzazione di localizzazione', + 'phonePermissionDetailDesc': + 'La funzione di chiamata richiede l\'autorizzazione del telefono', + 'smsPermissionDetailDesc': + 'La funzione di invio SMS richiede l\'autorizzazione SMS', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'La creazione di eventi nel calendario richiede l\'autorizzazione di scrittura nel calendario', + 'calendarFullAccessPermissionDetailDesc': + 'La gestione degli eventi del calendario richiede l\'autorizzazione completa del calendario', + 'locationPermissionDetailDesc': + 'L\'ottenimento di informazioni sulla posizione richiede l\'autorizzazione di localizzazione', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'L\'app necessita di questa autorizzazione per la piena funzionalità', - 'permanentDenialText': 'Hai negato permanentemente l\'autorizzazione {permission}, vai alle impostazioni dell\'app per attivarla', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'L\'app necessita di questa autorizzazione per la piena funzionalità', + 'permanentDenialText': + 'Hai negato permanentemente l\'autorizzazione {permission}, vai alle impostazioni dell\'app per attivarla', 'goToSettings': 'Vai alle impostazioni', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -962,7 +1080,8 @@ const Map itIT = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -971,8 +1090,10 @@ const Map itIT = { 'updateNow': 'Aggiorna ora', // 立即更新按钮 'checkUpdate': 'Controlla aggiornamenti', // 检查更新按钮 'updateFailed': 'Aggiornamento fallito', // 更新失败提示 - 'cannotOpenAppStore': 'Impossibile aprire l\'app store, vai manualmente all\'app store per aggiornare', // 无法打开应用商店提示 - 'updateErrorRetry': 'Si è verificato un errore durante l\'aggiornamento, riprova più tardi', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Impossibile aprire l\'app store, vai manualmente all\'app store per aggiornare', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Si è verificato un errore durante l\'aggiornamento, riprova più tardi', // 更新错误重试提示 //国家列表 "邮箱": "E-mail", @@ -1108,7 +1229,8 @@ const Map itIT = { "selectTargetLanguage": "Seleziona lingua di destinazione", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1124,10 +1246,12 @@ const Map itIT = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Cancella cronologia", - "clearHistoryConfirm": "Sei sicuro di voler cancellare tutta la cronologia delle traduzioni? Questa azione non può essere annullata.", + "clearHistoryConfirm": + "Sei sicuro di voler cancellare tutta la cronologia delle traduzioni? Questa azione non può essere annullata.", "unknownLanguage": "Lingua sconosciuta", "deleteSessionRecord": "Elimina registrazione sessione", - "deleteSessionConfirm": "Sei sicuro di voler eliminare tutte le registrazioni di traduzione per questa sessione? Questa azione non può essere annullata.", + "deleteSessionConfirm": + "Sei sicuro di voler eliminare tutte le registrazioni di traduzione per questa sessione? Questa azione non può essere annullata.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1159,15 +1283,20 @@ const Map itIT = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1190,7 +1319,8 @@ const Map itIT = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Registrazione originale", "recordSummary": "Riepilogo registrazione", - "clickToGenerateSummary": "Clicca il pulsante qui sotto per generare un riepilogo della sessione", + "clickToGenerateSummary": + "Clicca il pulsante qui sotto per generare un riepilogo della sessione", "summaryContent": "Contenuto del riepilogo", "copied": "Copiato", "summaryCopiledToClipboard": "Riepilogo copiato negli appunti", @@ -1198,9 +1328,11 @@ const Map itIT = { "summaryGenerated": "Riepilogo generato", "generating": "Generazione...", "regenerate": "Rigenera", - "summaryTimeoutMessage": "La richiesta di generazione del riepilogo è scaduta, potrebbe essere a causa di problemi di rete o di un server occupato.", + "summaryTimeoutMessage": + "La richiesta di generazione del riepilogo è scaduta, potrebbe essere a causa di problemi di rete o di un server occupato.", "deleteTranslationRecord": "Elimina registrazione traduzione", - "deleteTranslationConfirm": "Sei sicuro di voler eliminare questa registrazione di traduzione? Questa azione non può essere annullata.", + "deleteTranslationConfirm": + "Sei sicuro di voler eliminare questa registrazione di traduzione? Questa azione non può essere annullata.", "originalText": "Testo originale", "translatedText": "Testo tradotto", "sessionSummary": "Riepilogo sessione", @@ -1227,20 +1359,28 @@ const Map itIT = { // 配对状态文本 "readyToPair": "Pronto per l'associazione", - "preparingPairingEnvironment": "Preparazione dell'ambiente di associazione...", - "connectDeepSoundViaSystemBluetooth": "Connettiti prima al dispositivo Voitrans tramite il Bluetooth di sistema", + "preparingPairingEnvironment": + "Preparazione dell'ambiente di associazione...", + "connectDeepSoundViaSystemBluetooth": + "Connettiti prima al dispositivo Voitrans tramite il Bluetooth di sistema", "deviceBindingConfirm": "Conferma associazione dispositivo...", - "establishingDeviceAssociation": "Creazione dell'associazione del dispositivo...", + "establishingDeviceAssociation": + "Creazione dell'associazione del dispositivo...", "waitingCompletePairing": "Attendi, completamento dell'associazione...", - "pairingSuccessRedirecting": "Associazione riuscita! Reindirizzamento alla pagina principale...", + "pairingSuccessRedirecting": + "Associazione riuscita! Reindirizzamento alla pagina principale...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Assicurati di essere connesso a un dispositivo Voitrans", - "deviceAlreadyBoundToOtherAccount": "Questo dispositivo è già associato a un altro account", + "ensureConnectedDeepSoundDevice": + "Assicurati di essere connesso a un dispositivo Voitrans", + "deviceAlreadyBoundToOtherAccount": + "Questo dispositivo è già associato a un altro account", "deviceAssociationFailed": "Associazione del dispositivo fallita, riprova", - "scanTimeoutEnsureDeviceNearby": "Timeout della scansione, assicurati che il dispositivo sia nelle vicinanze", + "scanTimeoutEnsureDeviceNearby": + "Timeout della scansione, assicurati che il dispositivo sia nelle vicinanze", "networkError": "Errore di rete", - "authorizationFailedCheckCode": "Autorizzazione fallita, controlla che il codice di autorizzazione sia corretto", + "authorizationFailedCheckCode": + "Autorizzazione fallita, controlla che il codice di autorizzazione sia corretto", "pairingFailedRetry": "Associazione fallita, riprova", // 配对控制器相关 @@ -1249,13 +1389,15 @@ const Map itIT = { 'deviceDisconnected': 'Dispositivo disconnesso', 'readyToStartPairing': 'Pronto per iniziare l associazione', 'checkingEnvironment': 'Controllo dell ambiente...', - 'ensureHeadsetOnAndPairingMode': 'Assicurati che le cuffie siano accese e in modalità di associazione', + 'ensureHeadsetOnAndPairingMode': + 'Assicurati che le cuffie siano accese e in modalità di associazione', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Creazione di una connessione sicura...', - 'needManualBindingAuthCode': "È necessario un codice di autorizzazione per l'associazione manuale...", + 'needManualBindingAuthCode': + "È necessario un codice di autorizzazione per l'associazione manuale...", 'pairingSuccessful': 'Associazione riuscita!', 'enableBluetooth': 'Abilita Bluetooth', 'grantPermissions': 'Concedi autorizzazioni', @@ -1267,35 +1409,44 @@ const Map itIT = { 'verificationFailedRetry': 'Verifica fallita, riprova', 'invalidDeviceAddress': 'Indirizzo del dispositivo non valido', 'bleDeviceAssociationFailed': 'Associazione del dispositivo BLE fallita', - 'deviceAssociationFailedRetry': 'Associazione del dispositivo fallita, riprova', + 'deviceAssociationFailedRetry': + 'Associazione del dispositivo fallita, riprova', 'bleConnectionTimeoutRetry': 'Timeout della connessione BLE, riprova', 'blePairingStartupFailed': "Avvio dell'associazione BLE fallito", 'bleConnectionFailed': 'Connessione BLE fallita', - 'deviceAuthorizationFailedCheckCode': 'Autorizzazione del dispositivo fallita, controlla il codice di autorizzazione', + 'deviceAuthorizationFailedCheckCode': + 'Autorizzazione del dispositivo fallita, controlla il codice di autorizzazione', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Feedback utente", 'feedbackInfo': 'Fornisci feedback o suggerimenti', - 'feedbackDescription': 'Descrivi il problema riscontrato o il tuo suggerimento', + 'feedbackDescription': + 'Descrivi il problema riscontrato o il tuo suggerimento', 'feedbackHint': 'Inserisci il tuo feedback...', 'feedbackRequired': 'Inserisci il contenuto del feedback', 'contactInfo': 'Informazioni di contatto', 'contactHint': 'E-mail/Telefono, per poterti contattare', 'submit': 'Invia', - 'feedbackSubmitSuccess': 'Feedback inviato con successo, grazie per il tuo feedback!', + 'feedbackSubmitSuccess': + 'Feedback inviato con successo, grazie per il tuo feedback!', 'feedbackSubmitFailed': 'Invio del feedback fallito, riprova più tardi', // OTA升级模块 - "upgradeExitConfirm": "Aggiornamento in corso, l'uscita interromperà il processo, sei sicuro di voler uscire?", + "upgradeExitConfirm": + "Aggiornamento in corso, l'uscita interromperà il processo, sei sicuro di voler uscire?", "deviceModel": "Modello del dispositivo", "unknownDevice": "Dispositivo sconosciuto", "currentFirmwareVersion": "Versione firmware attuale", @@ -1308,14 +1459,19 @@ const Map itIT = { "retryConnection": "Riprova connessione", "ota_updateNow": "Aggiorna ora", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Mantieni il dispositivo connesso, non chiudere l'app", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Mantieni il dispositivo connesso, non chiudere l'app", "doNotDisconnect": "Non disconnettere", "charging": "In carica", "updateContent": "Contenuto dell'aggiornamento", - "removeEarbudsEnsureBattery": "Rimuovi entrambi gli auricolari e assicurati che la batteria di entrambi sia superiore al 20%", + "removeEarbudsEnsureBattery": + "Rimuovi entrambi gli auricolari e assicurati che la batteria di entrambi sia superiore al 20%", // 音乐列表页面 "noMusic": "Nessuna musica", // 暂无音乐 @@ -1377,8 +1533,10 @@ const Map itIT = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/ja_jp.dart b/lib/core/translations/language/ja_jp.dart index 24b51888b..40a10581c 100644 --- a/lib/core/translations/language/ja_jp.dart +++ b/lib/core/translations/language/ja_jp.dart @@ -33,6 +33,7 @@ const Map jaJP = { "spanish": "スペイン語", "portuguese": "ポルトガル語", "traditionalChinese": "繁体字中国語", + "traditionalChineseHK": "中国語(繁体字・香港)", "japanese": "日本語", "korean": "韓国語", "french": "フランス語", @@ -218,7 +219,8 @@ const Map jaJP = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +276,10 @@ const Map jaJP = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +288,35 @@ const Map jaJP = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +325,10 @@ const Map jaJP = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +343,8 @@ const Map jaJP = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "スキップ", @@ -355,7 +370,8 @@ const Map jaJP = { 'guideNavInput': "Navigate to Shenzhen Airport", 'guideNavSend': "Lily will plan the route", 'guideNavEnd': "Navigation set—try other commands", - 'guideMeetingStart': "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", + 'guideMeetingStart': + "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", 'guideMeetingInput': "Create a meeting reminder for 3pm tomorrow", 'guideMeetingSend': "Lily will create a meeting reminder", 'guideMeetingEnd': "Reminder created—try other commands", @@ -405,7 +421,8 @@ const Map jaJP = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +477,54 @@ const Map jaJP = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +536,8 @@ const Map jaJP = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +557,8 @@ const Map jaJP = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +607,8 @@ const Map jaJP = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +633,8 @@ const Map jaJP = { "cloudSync": "クラウド同期料金", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "接続デバイス:", "accountId": "アカウントID:", "systemSetting": "システム設定", @@ -667,7 +702,8 @@ const Map jaJP = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -901,7 +937,8 @@ const Map jaJP = { 'locationInfo': '位置情報', 'phonePermissionDesc': '通話機能に使用', 'smsPermissionDesc': 'SMS機能に使用', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', 'calendarWritePermissionDesc': 'カレンダーイベントとリマインダーの作成に使用', 'calendarFullAccessPermissionDesc': 'カレンダーイベントとリマインダーの読み取りと管理に使用', 'locationPermissionDesc': '現在の位置情報の取得に使用', @@ -915,20 +952,27 @@ const Map jaJP = { 'permissionRequestError': '権限要求エラー', 'phonePermissionDetailDesc': '通話機能には電話権限が必要', 'smsPermissionDetailDesc': 'SMS機能にはSMS権限が必要', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', 'calendarWritePermissionDetailDesc': 'カレンダーイベントの作成にはカレンダー書き込み権限が必要', 'calendarFullAccessPermissionDetailDesc': 'カレンダーイベントの管理には完全なカレンダー権限が必要', 'locationPermissionDetailDesc': '位置情報の取得には位置情報権限が必要', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', 'appNeedsPermissionForFullFunction': 'アプリは完全な機能のためにこの権限が必要です', 'permanentDenialText': '{permission}権限を永続的に拒否されました。アプリ設定で有効にしてください', 'goToSettings': '設定に移動', @@ -936,22 +980,34 @@ const Map jaJP = { // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1017,8 @@ const Map jaJP = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -1107,7 +1164,8 @@ const Map jaJP = { "selectTargetLanguage": "ターゲット言語を選択", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1158,15 +1216,20 @@ const Map jaJP = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1197,7 +1260,8 @@ const Map jaJP = { "summaryGenerated": "要約が生成されました", "generating": "生成中...", "regenerate": "再生成", - "summaryTimeoutMessage": "要約生成リクエストがタイムアウトしました。ネットワークの問題またはサーバーの過負荷が原因の可能性があります。", + "summaryTimeoutMessage": + "要約生成リクエストがタイムアウトしました。ネットワークの問題またはサーバーの過負荷が原因の可能性があります。", "deleteTranslationRecord": "翻訳記録を削除", "deleteTranslationConfirm": "この翻訳記録を削除してもよろしいですか?この操作は元に戻せません。", "originalText": "元のテキスト", @@ -1227,7 +1291,8 @@ const Map jaJP = { // 配对状态文本 "readyToPair": "ペアリング準備完了", "preparingPairingEnvironment": "ペアリング環境を準備中...", - "connectDeepSoundViaSystemBluetooth": "まずシステムBluetoothでDeepSoundデバイスを接続してください", + "connectDeepSoundViaSystemBluetooth": + "まずシステムBluetoothでDeepSoundデバイスを接続してください", "deviceBindingConfirm": "デバイスバインド確認中...", "establishingDeviceAssociation": "デバイス関連付けを確立中...", "waitingCompletePairing": "お待ちください、ペアリングを完了中...", @@ -1275,10 +1340,14 @@ const Map jaJP = { ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1307,9 +1376,12 @@ const Map jaJP = { "retryConnection": "接続を再試行", "ota_updateNow": "今すぐ更新", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "デバイスを接続したままにし、アプリを閉じないでください", "doNotDisconnect": "切断しないでください", "charging": "充電中", @@ -1376,8 +1448,10 @@ const Map jaJP = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/ko_kr.dart b/lib/core/translations/language/ko_kr.dart index d22bb1acf..6a1f3efaa 100644 --- a/lib/core/translations/language/ko_kr.dart +++ b/lib/core/translations/language/ko_kr.dart @@ -33,6 +33,7 @@ const Map koKR = { "spanish": "스페인어", "portuguese": "포르투갈어", "traditionalChinese": "중국어 번체", + "traditionalChineseHK": "중국어(번체, 홍콩)", "japanese": "일본어", "korean": "한국어", "french": "프랑스어", @@ -218,7 +219,8 @@ const Map koKR = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +276,10 @@ const Map koKR = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,7 +288,8 @@ const Map koKR = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 'transHeaderDesc1': '실시간 동시통역과 텍스트 번역, 저지연 음성 방송.', @@ -300,11 +305,15 @@ const Map koKR = { 'transDisclaimer': '번역 품질은 마이크, 네트워크 지연 및 주변 소음에 따라 달라집니다.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +322,10 @@ const Map koKR = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': '혜택 개요', @@ -355,7 +366,8 @@ const Map koKR = { 'guideNavInput': "Navigate to Shenzhen Airport", 'guideNavSend': "Lily will plan the route", 'guideNavEnd': "Navigation set—try other commands", - 'guideMeetingStart': "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", + 'guideMeetingStart': + "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", 'guideMeetingInput': "Create a meeting reminder for 3pm tomorrow", 'guideMeetingSend': "Lily will create a meeting reminder", 'guideMeetingEnd': "Reminder created—try other commands", @@ -405,7 +417,8 @@ const Map koKR = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +473,54 @@ const Map koKR = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +532,8 @@ const Map koKR = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +553,8 @@ const Map koKR = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +603,8 @@ const Map koKR = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +629,8 @@ const Map koKR = { "cloudSync": "클라우드 동기화료", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "연결된 기기:", "accountId": "계정 ID:", "systemSetting": "시스템 설정", @@ -667,7 +698,8 @@ const Map koKR = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -901,7 +933,8 @@ const Map koKR = { 'locationInfo': '위치 정보', 'phonePermissionDesc': '전화 걸기 기능에 사용됩니다', 'smsPermissionDesc': '문자 보내기 기능에 사용됩니다', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', 'calendarWritePermissionDesc': '캘린더 이벤트 및 알림 생성에 사용됩니다', 'calendarFullAccessPermissionDesc': '캘린더 이벤트 및 알림 읽기 및 관리에 사용됩니다', 'locationPermissionDesc': '현재 위치 정보 가져오기에 사용됩니다', @@ -915,20 +948,27 @@ const Map koKR = { 'permissionRequestError': '권한 요청 중 오류 발생', 'phonePermissionDetailDesc': '전화 걸기 기능에는 전화 권한이 필요합니다', 'smsPermissionDetailDesc': '문자 보내기 기능에는 문자 권한이 필요합니다', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', 'calendarWritePermissionDetailDesc': '캘린더 이벤트 생성에는 캘린더 쓰기 권한이 필요합니다', 'calendarFullAccessPermissionDetailDesc': '캘린더 이벤트 관리에는 전체 캘린더 권한이 필요합니다', 'locationPermissionDetailDesc': '위치 정보 가져오기에는 위치 권한이 필요합니다', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', 'appNeedsPermissionForFullFunction': '앱이 전체 기능을 제공하려면 이 권한이 필요합니다', 'permanentDenialText': '{permission} 권한을 영구적으로 거부하셨습니다. 앱 설정에서 활성화해주세요', 'goToSettings': '설정으로 이동', @@ -936,22 +976,34 @@ const Map koKR = { // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1013,8 @@ const Map koKR = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,7 +1023,8 @@ const Map koKR = { 'updateNow': '지금 업데이트', // 立即更新按钮 'checkUpdate': '업데이트 확인', // 检查更新按钮 'updateFailed': '업데이트 실패', // 更新失败提示 - 'cannotOpenAppStore': '앱 스토어를 열 수 없습니다. 수동으로 앱 스토어로 이동하여 업데이트하세요', // 无法打开应用商店提示 + 'cannotOpenAppStore': + '앱 스토어를 열 수 없습니다. 수동으로 앱 스토어로 이동하여 업데이트하세요', // 无法打开应用商店提示 'updateErrorRetry': '업데이트 중 오류가 발생했습니다. 잠시 후 다시 시도하세요', // 更新错误重试提示 //国家列表 @@ -1107,7 +1161,8 @@ const Map koKR = { "selectTargetLanguage": "대상 언어 선택", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1158,15 +1213,20 @@ const Map koKR = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1275,10 +1335,14 @@ const Map koKR = { ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1307,9 +1371,12 @@ const Map koKR = { "retryConnection": "연결 재시도", "ota_updateNow": "지금 업데이트", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "기기를 연결된 상태로 유지하고 앱을 닫지 마세요", "doNotDisconnect": "연결을 끊지 마세요", "charging": "충전 중", @@ -1376,8 +1443,10 @@ const Map koKR = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/lt_lt.dart b/lib/core/translations/language/lt_lt.dart index 6406a54ed..c31f48ef0 100644 --- a/lib/core/translations/language/lt_lt.dart +++ b/lib/core/translations/language/lt_lt.dart @@ -34,6 +34,7 @@ const Map ltLT = { "spanish": "Ispanų", "portuguese": "Portugalų", "traditionalChinese": "Tradicinė kinų", + "traditionalChineseHK": "Tradicinė kinų (Honkongas)", "japanese": "Japonų", "korean": "Korėjiečių", "french": "Prancūzų", @@ -72,7 +73,8 @@ const Map ltLT = { // 登录页 "welcome": "Sveiki atvykę", - "loginTips": "Prisijunkite arba užsiregistruokite naudodami savo telefono numerį arba el. paštą", + "loginTips": + "Prisijunkite arba užsiregistruokite naudodami savo telefono numerį arba el. paštą", "accountNumber": "Telefono numeris arba el. paštas", "verificationCode": "Patvirtinimo kodas", "getCode": "Gauti kodą", @@ -91,7 +93,8 @@ const Map ltLT = { "tip": "Patarimas", "pleaseEnterCompleteCode": "Įveskite visą patvirtinimo kodą", "loginFailed": "Prisijungimas nepavyko, bandykite dar kartą", - 'pleaseAcceptPrivacyPolicy': 'Pirmiausia perskaitykite ir sutikite su Privatumo politika ir Vartotojo sutartimi', + 'pleaseAcceptPrivacyPolicy': + 'Pirmiausia perskaitykite ir sutikite su Privatumo politika ir Vartotojo sutartimi', "enterVerificationCode": "Įveskite patvirtinimo kodą", "verificationCodeSentTo": "Patvirtinimo kodas išsiųstas į", "resendVerificationCode": "Išsiųsti patvirtinimo kodą iš naujo", @@ -100,7 +103,8 @@ const Map ltLT = { // 隐私政策弹窗 "loginDeclaration": "Voitrans deklaracija", // Voitrans 声明 - "welcomeToThisApp": "Sveiki atvykę į Voitrans, prašome atidžiai perskaityti", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Sveiki atvykę į Voitrans, prašome atidžiai perskaityti", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -116,24 +120,29 @@ const Map ltLT = { "signal": "Signalas", "deviceId": "Įrenginio ID", "firmwareVersion": "Programinės įrangos versija", - "disconnectedDevice": "Nėra prijungto įrenginio, spustelėkite mygtuką žemiau, kad prisijungtumėte", + "disconnectedDevice": + "Nėra prijungto įrenginio, spustelėkite mygtuką žemiau, kad prisijungtumėte", "connectDevice": "Prijungti įrenginį", "topAiExperiences": "Populiariausios AI patirtys", "aiAssistant": "Visapusiškas AI asistentas", - "aiAssistantInfo": "Išskirtinis 24/7 konsultantas, atsako į klausimus, teikia pasiūlymus", + "aiAssistantInfo": + "Išskirtinis 24/7 konsultantas, atsako į klausimus, teikia pasiūlymus", "interpretation": "Sinchroninis vertimas", - "simultaneousInterpretationInfo": "Vertimas realiuoju laiku į daugiau nei 80 kalbų, nerūpestingos kelionės į užsienį", + "simultaneousInterpretationInfo": + "Vertimas realiuoju laiku į daugiau nei 80 kalbų, nerūpestingos kelionės į užsienį", "aiCompanion": "Šeimos draugas", "aiCompanionInfo": "Supranta jus, šilta draugija", "homeSlogan": "Jungiantis pasaulį, pranokstantis garsą", - "turnEarphones": "Atidarykite ausinių įkrovimo dėklą ir įsidėkite ausines į ausis", + "turnEarphones": + "Atidarykite ausinių įkrovimo dėklą ir įsidėkite ausines į ausis", "currentlyConnected": "Šiuo metu prijungta:", "unsystemSetup": "Eiti į sistemos nustatymus", "talkLater": "Vėliau", "initializing": "Inicijuojama...", "bluetoothInitializationFailure": "Bluetooth paslaugos inicijavimas nepavyko", "checkingPermissions": "Tikrinami leidimai...", - "lackPermissions": "Trūksta Bluetooth leidimų ir yra reikalinga lokacijos prieiga", + "lackPermissions": + "Trūksta Bluetooth leidimų ir yra reikalinga lokacijos prieiga", "searchingDevice": "Ieškoma įrenginių...", "findConnectedDevice": "Rastas prijungtas įrenginys", "notFound": "Nerasta prijungto Bluetooth įrenginio", @@ -170,13 +179,15 @@ const Map ltLT = { "faceToFaceTranslation": "Vertimas akis į akį", 'audioVideoTranslation': 'Garso ir vaizdo vertimas', 'callTranslation': 'Skambučių vertimas', - "simultaneousTranslationInfo": "Vertimas realiuoju laiku į daugiau nei 80 kalbų", + "simultaneousTranslationInfo": + "Vertimas realiuoju laiku į daugiau nei 80 kalbų", "aiGirlfriend": "AI mergina", "aiGirlfriendInfo": "Intelektualus draugas, bendraukite bet kada", "healthConsultant": "Daugiafunkcis AI pokalbis", "healthConsultantInfo": "Siūlo daugiau AI pokalbių funkcijų", "conferenceAssistant": "Verslo susitikimų asistentas", - "conferenceAssistantInfo": "Susitikimų protokolo įrašymas realiuoju laiku, daugiakalbis vertimas", + "conferenceAssistantInfo": + "Susitikimų protokolo įrašymas realiuoju laiku, daugiakalbis vertimas", "usageStats": "Naudojimo statistika", "usageStatsInfo": "Peržiūrėkite jūsų naudojimo statistiką", "scene": "Scenarijus", @@ -219,7 +230,8 @@ const Map ltLT = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -275,8 +287,10 @@ const Map ltLT = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -285,27 +299,35 @@ const Map ltLT = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -314,8 +336,10 @@ const Map ltLT = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -330,7 +354,8 @@ const Map ltLT = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Praleisti", @@ -356,7 +381,8 @@ const Map ltLT = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -406,7 +432,8 @@ const Map ltLT = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -461,40 +488,54 @@ const Map ltLT = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -506,7 +547,8 @@ const Map ltLT = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -526,7 +568,8 @@ const Map ltLT = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -575,7 +618,8 @@ const Map ltLT = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -600,7 +644,8 @@ const Map ltLT = { "cloudSync": "Synchronizacijos užsipirkimas", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Prijungtas įrenginys:", "accountId": "Paskyros ID:", "systemSetting": "Sistemos nustatymas", @@ -613,7 +658,8 @@ const Map ltLT = { "privacySettings": "Privatumo nustatymai", "privacySettingsInfo": "Valdyti duomenų rinkimą ir leidimus", "permissionManagement": "Leidimų valdymas", // 权限管理 - "permissionManagementInfo": "Valdyti programos leidimų nustatymus", // 管理应用权限设置 + "permissionManagementInfo": + "Valdyti programos leidimų nustatymus", // 管理应用权限设置 "aboutApplication": "Apie programą", "versions": "Versija", "checkUpdates": "Patikrinti atnaujinimus", @@ -622,9 +668,11 @@ const Map ltLT = { "voiceServiceInfo": "Pasirinkti kalbos atpažinimo ir sintezės paslaugą", "selectVoiceService": "Pasirinkti balso paslaugą", "azureVoiceService": "Azure balso paslauga", - "azureVoiceServiceInfo": "Microsoft debesies balso paslauga, palaiko aukštos kokybės balso sintezę ir atpažinimą", + "azureVoiceServiceInfo": + "Microsoft debesies balso paslauga, palaiko aukštos kokybės balso sintezę ir atpažinimą", "flutterVoiceService": "Flutter vietinė balso paslauga", - "flutterVoiceServiceInfo": "Įrenginio vietinė balso paslauga, galima naudoti be interneto ryšio", + "flutterVoiceServiceInfo": + "Įrenginio vietinė balso paslauga, galima naudoti be interneto ryšio", 'timbreService': 'Tembro paslauga', 'timbreServiceInfo': 'Pasirinkite tembro balso sintezės paslaugą', 'defaultTimbre': 'Numatytasis tembras', @@ -635,7 +683,8 @@ const Map ltLT = { 'pleaseRead': 'Perskaitykite garsiai', 'completeRecording': 'Užbaigti įrašymą', "firmwareUpgrade": "Programinės įrangos atnaujinimas", - "bleHeadsetFirmwareUpgrade": "BLE ausinių programinės įrangos versijos atnaujinimas", + "bleHeadsetFirmwareUpgrade": + "BLE ausinių programinės įrangos versijos atnaujinimas", "deviceManagement": "Įrenginių valdymas", "manageConnectedDevices": "Valdyti prijungtus Bluetooth įrenginius", @@ -653,7 +702,8 @@ const Map ltLT = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Balso pokalbis realiuoju laiku", - "realtimeVoiceChatInfo": "Išbandykite išmaniosios balso sąveikos funkciją (funkcijos peržiūra)", + "realtimeVoiceChatInfo": + "Išbandykite išmaniosios balso sąveikos funkciją (funkcijos peržiūra)", "loading": "Įkeliama...", //设备管理页面 @@ -668,7 +718,8 @@ const Map ltLT = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -696,7 +747,8 @@ const Map ltLT = { "listeningToYou": "Klausausi jūsų...", "processing": "Apdorojama...", "loadMoreMessages": "Įkelti daugiau žinučių...", - "loadFailedClickRetry": "Įkėlimas nepavyko, spustelėkite, kad bandytumėte dar kartą", + "loadFailedClickRetry": + "Įkėlimas nepavyko, spustelėkite, kad bandytumėte dar kartą", "swipeUpForMore": "Braukite aukštyn, kad pamatytumėte daugiau", "callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等! "voice_interrupt": "Interrupt", // 语音打断 @@ -722,10 +774,14 @@ const Map ltLT = { '• Valdyti ausinių funkcijas\n\n' 'Kuo galiu jums padėti?', 'microphonePermission': 'Mikrofonas', - 'voiceRecognitionPermissionText': 'Balso atpažinimo funkcijai reikalingas priėjimas prie mikrofono.', - 'voiceTranslationPermissionText': 'Balso atpažinimo ir vertimo funkcijai reikalingas priėjimas prie mikrofono.', - 'phoneCallPermissionText': 'Skambinimo funkcijai reikalingas priėjimas prie mikrofono balso skambučiams.', - 'permissionDeniedText': 'Jūs visam laikui atmetėte mikrofono leidimą, eikite į sistemos nustatymus, kad jį įjungtumėte.', + 'voiceRecognitionPermissionText': + 'Balso atpažinimo funkcijai reikalingas priėjimas prie mikrofono.', + 'voiceTranslationPermissionText': + 'Balso atpažinimo ir vertimo funkcijai reikalingas priėjimas prie mikrofono.', + 'phoneCallPermissionText': + 'Skambinimo funkcijai reikalingas priėjimas prie mikrofono balso skambučiams.', + 'permissionDeniedText': + 'Jūs visam laikui atmetėte mikrofono leidimą, eikite į sistemos nustatymus, kad jį įjungtumėte.', 'startVoiceInput': 'Pradėti balso įvestį', 'startPhoneCallMode': 'Pradėti skambinimo režimą, pradėti balso įvestį', @@ -748,7 +804,8 @@ const Map ltLT = { 'privacyRelated': 'Susijęs su privatumu', 'copyrightViolation': 'Pažeidžia mano autorių teises, reputaciją ir pan.', 'other': 'Kita', - 'reportDescriptionHint': 'Norėtume sužinoti, kodėl pranešate, galite aprašyti problemą, su kuria susidūrėte.', + 'reportDescriptionHint': + 'Norėtume sužinoti, kodėl pranešate, galite aprašyti problemą, su kuria susidūrėte.', //'submit': '提交', //Message_bubble @@ -779,15 +836,24 @@ const Map ltLT = { 'highest': 'Aukščiausia', 'lowest': 'Žemiausia', 'futureForecast': 'Ateities prognozė', - 'hotWeatherTip': 'Šiandien karšta, saugokitės karščio smūgio ir gerkite daug vandens', - 'coldWeatherTip': 'Šiandien temperatūra žema, šiltai apsirenkite eidami į lauką, kad neperšaltumėte', - 'rainyWeatherTip': 'Šiandien lietus, pasiimkite skėtį eidami į lauką ir būkite atsargūs', - 'snowyWeatherTip': 'Šiandien sninga, kelias slidus, būkite atsargūs ir šiltai apsirenkite', - 'foggyWeatherTip': 'Šiandien rūkas, matomumas prastas, dėvėkite kaukę eidami į lauką', - 'windyWeatherTip': 'Šiandien vėjuota, būkite atsargūs eidami į lauką ir pritvirtinkite savo daiktus', - 'sunnyWeatherTip': 'Šiandien saulėta ir stiprūs UV spinduliai, naudokite apsaugos nuo saulės kremą eidami į lauką', - 'temperatureDifferenceTip': 'Šiandien didelis temperatūros skirtumas tarp dienos ir nakties, pritaikykite drabužius', - 'comfortableWeatherTip': 'Šiandien oras malonus, puikus laikas lauko veikloms', + 'hotWeatherTip': + 'Šiandien karšta, saugokitės karščio smūgio ir gerkite daug vandens', + 'coldWeatherTip': + 'Šiandien temperatūra žema, šiltai apsirenkite eidami į lauką, kad neperšaltumėte', + 'rainyWeatherTip': + 'Šiandien lietus, pasiimkite skėtį eidami į lauką ir būkite atsargūs', + 'snowyWeatherTip': + 'Šiandien sninga, kelias slidus, būkite atsargūs ir šiltai apsirenkite', + 'foggyWeatherTip': + 'Šiandien rūkas, matomumas prastas, dėvėkite kaukę eidami į lauką', + 'windyWeatherTip': + 'Šiandien vėjuota, būkite atsargūs eidami į lauką ir pritvirtinkite savo daiktus', + 'sunnyWeatherTip': + 'Šiandien saulėta ir stiprūs UV spinduliai, naudokite apsaugos nuo saulės kremą eidami į lauką', + 'temperatureDifferenceTip': + 'Šiandien didelis temperatūros skirtumas tarp dienos ir nakties, pritaikykite drabužius', + 'comfortableWeatherTip': + 'Šiandien oras malonus, puikus laikas lauko veikloms', "monday": "Pirm", "tuesday": "Antr", "wednesday": "Treč", @@ -839,22 +905,29 @@ const Map ltLT = { "logout": "Atsijungti", "logoutTips": "Ar tikrai norite atsijungti nuo dabartinės paskyros?", 'deleteAccount': 'Ištrinti paskyrą', - 'deleteAccountTips': 'Ar tikrai norite visam laikui ištrinti savo paskyrą? Šio veiksmo negalima atšaukti.', + 'deleteAccountTips': + 'Ar tikrai norite visam laikui ištrinti savo paskyrą? Šio veiksmo negalima atšaukti.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Tinklo ryšio klaida, patikrinkite tinklo nustatymus ir bandykite dar kartą', - 'serverTemporarilyUnavailable': 'Serveris laikinai nepasiekiamas, bandykite dar kartą vėliau', + 'networkConnectionFailed': + 'Tinklo ryšio klaida, patikrinkite tinklo nustatymus ir bandykite dar kartą', + 'serverTemporarilyUnavailable': + 'Serveris laikinai nepasiekiamas, bandykite dar kartą vėliau', 'loginExpiredPleaseRelogin': 'Jūsų sesija baigėsi, prisijunkite iš naujo', - 'noPermissionForThisOperation': 'Jūs neturite leidimo atlikti šios operacijos', + 'noPermissionForThisOperation': + 'Jūs neturite leidimo atlikti šios operacijos', 'requestedResourceNotFound': 'Prašomas resursas nerastas', - 'imageProcessingFailedPleaseReselect': 'Vaizdo apdorojimas nepavyko, pasirinkite kitą vaizdą', + 'imageProcessingFailedPleaseReselect': + 'Vaizdo apdorojimas nepavyko, pasirinkite kitą vaizdą', 'operationFailedPleaseRetry': 'Operacija nepavyko, bandykite dar kartą', 'serverReturnedError': 'Serveris grąžino klaidą', 'serverError': 'Serverio klaida', - 'networkConnectionFailedCheckSettings': 'Tinklo ryšio klaida, patikrinkite tinklo nustatymus', - 'serverInternalErrorRetryLater': 'Vidinė serverio klaida, bandykite dar kartą vėliau', + 'networkConnectionFailedCheckSettings': + 'Tinklo ryšio klaida, patikrinkite tinklo nustatymus', + 'serverInternalErrorRetryLater': + 'Vidinė serverio klaida, bandykite dar kartą vėliau', // Profile 用户交互 //'error': '错误', @@ -868,18 +941,24 @@ const Map ltLT = { 'loggedOut': 'Sėkmingai atsijungta', 'logoutFailedRetry': 'Atsijungimas nepavyko, bandykite dar kartą', 'accountPermanentlyDeleted': 'Paskyra visam laikui ištrinta', - 'deleteAccountFailedRetry': 'Paskyros ištrynimas nepavyko, bandykite dar kartą', + 'deleteAccountFailedRetry': + 'Paskyros ištrynimas nepavyko, bandykite dar kartą', // 账号服务相关 'clearUserDataFailed': 'Nepavyko išvalyti vartotojo duomenų', // 清理用户数据失败 'deleteUserDataFailed': 'Nepavyko ištrinti vartotojo duomenų', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'Trečiosios šalies atsijungimas sėkmingas', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': 'Trečiosios šalies atsijungimas nepavyko', // 第三方登录退出失败 + 'thirdPartyLogoutSuccess': + 'Trečiosios šalies atsijungimas sėkmingas', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': + 'Trečiosios šalies atsijungimas nepavyko', // 第三方登录退出失败 'signOutProcessError': 'Atsijungimo proceso metu įvyko klaida', // 登出过程发生错误 - 'deleteAccountProcessError': 'Paskyros ištrynimo proceso metu įvyko klaida', // 删除账号过程发生错误 + 'deleteAccountProcessError': + 'Paskyros ištrynimo proceso metu įvyko klaida', // 删除账号过程发生错误 'userDataClearSuccess': 'Vartotojo duomenys sėkmingai išvalyti', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Visi vartotojo duomenys sėkmingai išvalyti', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Paskyros paslauga inicijuota', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Visi vartotojo duomenys sėkmingai išvalyti', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Paskyros paslauga inicijuota', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Nepavyko gauti leidimo būsenos', @@ -902,9 +981,12 @@ const Map ltLT = { 'locationInfo': 'Vietovės informacija', 'phonePermissionDesc': 'Naudojama skambinimo funkcijai', 'smsPermissionDesc': 'Naudojama SMS siuntimo funkcijai', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Naudojama kuriant kalendoriaus įvykius ir priminimus', - 'calendarFullAccessPermissionDesc': 'Naudojama skaitant ir valdant kalendoriaus įvykius ir priminimus', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Naudojama kuriant kalendoriaus įvykius ir priminimus', + 'calendarFullAccessPermissionDesc': + 'Naudojama skaitant ir valdant kalendoriaus įvykius ir priminimus', 'locationPermissionDesc': 'Naudojama gaunant dabartinės vietovės informaciją', 'appFunctionNeeds': 'Programos funkcijai reikia', 'authorized': 'Leista', @@ -914,45 +996,70 @@ const Map ltLT = { 'unknownStatus': 'Nežinoma būsena', 'permissionGranted': 'Leidimas suteiktas', 'permissionRequestError': 'Klaida prašant leidimo', - 'phonePermissionDetailDesc': 'Skambinimo funkcijai reikalingas telefono leidimas', + 'phonePermissionDetailDesc': + 'Skambinimo funkcijai reikalingas telefono leidimas', 'smsPermissionDetailDesc': 'SMS siuntimo funkcijai reikalingas SMS leidimas', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Kalendoriaus įvykių kūrimui reikalingas rašymo į kalendorių leidimas', - 'calendarFullAccessPermissionDetailDesc': 'Kalendoriaus įvykių valdymui reikalingas visiškas kalendoriaus leidimas', - 'locationPermissionDetailDesc': 'Vietovės informacijos gavimui reikalingas vietovės leidimas', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Kalendoriaus įvykių kūrimui reikalingas rašymo į kalendorių leidimas', + 'calendarFullAccessPermissionDetailDesc': + 'Kalendoriaus įvykių valdymui reikalingas visiškas kalendoriaus leidimas', + 'locationPermissionDetailDesc': + 'Vietovės informacijos gavimui reikalingas vietovės leidimas', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Programai reikalingas šis leidimas, kad veiktų visa funkcionalumas', - 'permanentDenialText': 'Jūs visam laikui atmetėte {permission} leidimą, eikite į programos nustatymus, kad jį įjungtumėte', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Programai reikalingas šis leidimas, kad veiktų visa funkcionalumas', + 'permanentDenialText': + 'Jūs visam laikui atmetėte {permission} leidimą, eikite į programos nustatymus, kad jį įjungtumėte', 'goToSettings': 'Eiti į nustatymus', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -962,7 +1069,8 @@ const Map ltLT = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -971,8 +1079,10 @@ const Map ltLT = { 'updateNow': 'Atnaujinti dabar', // 立即更新按钮 'checkUpdate': 'Patikrinti atnaujinimą', // 检查更新按钮 'updateFailed': 'Atnaujinimas nepavyko', // 更新失败提示 - 'cannotOpenAppStore': 'Negalima atidaryti programų parduotuvės, eikite į parduotuvę rankiniu būdu, kad atnaujintumėte', // 无法打开应用商店提示 - 'updateErrorRetry': 'Atnaujinimo metu įvyko klaida, bandykite dar kartą vėliau', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Negalima atidaryti programų parduotuvės, eikite į parduotuvę rankiniu būdu, kad atnaujintumėte', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Atnaujinimo metu įvyko klaida, bandykite dar kartą vėliau', // 更新错误重试提示 //国家列表 "邮箱": "El. paštas", @@ -1108,7 +1218,8 @@ const Map ltLT = { "selectTargetLanguage": "Pasirinkite tikslo kalbą", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1124,10 +1235,12 @@ const Map ltLT = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Išvalyti istoriją", - "clearHistoryConfirm": "Ar tikrai norite išvalyti visą vertimų istoriją? Šio veiksmo negalima atšaukti.", + "clearHistoryConfirm": + "Ar tikrai norite išvalyti visą vertimų istoriją? Šio veiksmo negalima atšaukti.", "unknownLanguage": "Nežinoma kalba", "deleteSessionRecord": "Ištrinti sesijos įrašą", - "deleteSessionConfirm": "Ar tikrai norite ištrinti visus šios sesijos vertimų įrašus? Šio veiksmo negalima atšaukti.", + "deleteSessionConfirm": + "Ar tikrai norite ištrinti visus šios sesijos vertimų įrašus? Šio veiksmo negalima atšaukti.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1159,15 +1272,20 @@ const Map ltLT = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1190,7 +1308,8 @@ const Map ltLT = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Originalus įrašas", "recordSummary": "Įrašo santrauka", - "clickToGenerateSummary": "Spustelėkite mygtuką žemiau, kad sugeneruotumėte sesijos santrauką", + "clickToGenerateSummary": + "Spustelėkite mygtuką žemiau, kad sugeneruotumėte sesijos santrauką", "summaryContent": "Santraukos turinys", "copied": "Nukopijuota", "summaryCopiledToClipboard": "Santrauka nukopijuota į iškarpinę", @@ -1198,9 +1317,11 @@ const Map ltLT = { "summaryGenerated": "Santrauka sugeneruota", "generating": "Generuojama...", "regenerate": "Generuoti iš naujo", - "summaryTimeoutMessage": "Santraukos generavimo užklausa baigėsi, galbūt dėl tinklo problemų ar užimto serverio.", + "summaryTimeoutMessage": + "Santraukos generavimo užklausa baigėsi, galbūt dėl tinklo problemų ar užimto serverio.", "deleteTranslationRecord": "Ištrinti vertimo įrašą", - "deleteTranslationConfirm": "Ar tikrai norite ištrinti šį vertimo įrašą? Šio veiksmo negalima atšaukti.", + "deleteTranslationConfirm": + "Ar tikrai norite ištrinti šį vertimo įrašą? Šio veiksmo negalima atšaukti.", "originalText": "Originalus tekstas", "translatedText": "Išverstas tekstas", "sessionSummary": "Sesijos santrauka", @@ -1228,19 +1349,26 @@ const Map ltLT = { // 配对状态文本 "readyToPair": "Pasiruošta susiejimui", "preparingPairingEnvironment": "Ruošiama susiejimo aplinka...", - "connectDeepSoundViaSystemBluetooth": "Pirmiausia prisijunkite prie Voitrans įrenginio per sistemos Bluetooth", + "connectDeepSoundViaSystemBluetooth": + "Pirmiausia prisijunkite prie Voitrans įrenginio per sistemos Bluetooth", "deviceBindingConfirm": "Įrenginio susiejimo patvirtinimas...", "establishingDeviceAssociation": "Kuriama įrenginio asociacija...", "waitingCompletePairing": "Prašome palaukti, baigiamas susiejimas...", - "pairingSuccessRedirecting": "Susiejimas sėkmingas! Nukreipiama į pagrindinį puslapį...", + "pairingSuccessRedirecting": + "Susiejimas sėkmingas! Nukreipiama į pagrindinį puslapį...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Įsitikinkite, kad esate prisijungę prie Voitrans įrenginio", - "deviceAlreadyBoundToOtherAccount": "Šis įrenginys jau susietas su kita paskyra", - "deviceAssociationFailed": "Įrenginio asociacija nepavyko, bandykite dar kartą", - "scanTimeoutEnsureDeviceNearby": "Skenavimo laikas baigėsi, įsitikinkite, kad įrenginys yra netoliese", + "ensureConnectedDeepSoundDevice": + "Įsitikinkite, kad esate prisijungę prie Voitrans įrenginio", + "deviceAlreadyBoundToOtherAccount": + "Šis įrenginys jau susietas su kita paskyra", + "deviceAssociationFailed": + "Įrenginio asociacija nepavyko, bandykite dar kartą", + "scanTimeoutEnsureDeviceNearby": + "Skenavimo laikas baigėsi, įsitikinkite, kad įrenginys yra netoliese", "networkError": "Tinklo klaida", - "authorizationFailedCheckCode": "Autorizacija nepavyko, patikrinkite, ar autorizacijos kodas yra teisingas", + "authorizationFailedCheckCode": + "Autorizacija nepavyko, patikrinkite, ar autorizacijos kodas yra teisingas", "pairingFailedRetry": "Susiejimas nepavyko, bandykite dar kartą", // 配对控制器相关 @@ -1249,13 +1377,15 @@ const Map ltLT = { 'deviceDisconnected': 'Įrenginys atjungtas', 'readyToStartPairing': 'Pasiruošta pradėti susiejimą', 'checkingEnvironment': 'Tikrinama aplinka...', - 'ensureHeadsetOnAndPairingMode': 'Įsitikinkite, kad ausinės įjungtos ir yra susiejimo režime', + 'ensureHeadsetOnAndPairingMode': + 'Įsitikinkite, kad ausinės įjungtos ir yra susiejimo režime', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Kuriama saugi jungtis...', - 'needManualBindingAuthCode': 'Reikalingas rankinio susiejimo autorizacijos kodas...', + 'needManualBindingAuthCode': + 'Reikalingas rankinio susiejimo autorizacijos kodas...', 'pairingSuccessful': 'Susiejimas sėkmingas!', 'enableBluetooth': 'Įjungti Bluetooth', 'grantPermissions': 'Suteikti leidimus', @@ -1267,35 +1397,45 @@ const Map ltLT = { 'verificationFailedRetry': 'Patvirtinimas nepavyko, bandykite dar kartą', 'invalidDeviceAddress': 'Neteisingas įrenginio adresas', 'bleDeviceAssociationFailed': 'BLE įrenginio asociacija nepavyko', - 'deviceAssociationFailedRetry': 'Įrenginio asociacija nepavyko, bandykite dar kartą', + 'deviceAssociationFailedRetry': + 'Įrenginio asociacija nepavyko, bandykite dar kartą', 'bleConnectionTimeoutRetry': 'BLE ryšio laikas baigėsi, bandykite dar kartą', 'blePairingStartupFailed': 'BLE susiejimo paleidimas nepavyko', 'bleConnectionFailed': 'BLE ryšys nepavyko', - 'deviceAuthorizationFailedCheckCode': 'Įrenginio autorizacija nepavyko, patikrinkite autorizacijos kodą', + 'deviceAuthorizationFailedCheckCode': + 'Įrenginio autorizacija nepavyko, patikrinkite autorizacijos kodą', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Vartotojų atsiliepimai", 'feedbackInfo': 'Pateikite atsiliepimą ar pasiūlymą', - 'feedbackDescription': 'Aprašykite problemą, su kuria susidūrėte, arba savo pasiūlymą', + 'feedbackDescription': + 'Aprašykite problemą, su kuria susidūrėte, arba savo pasiūlymą', 'feedbackHint': 'Įveskite savo atsiliepimą...', 'feedbackRequired': 'Įveskite atsiliepimo turinį', 'contactInfo': 'Kontaktinė informacija', 'contactHint': 'El. paštas/Telefonas, kad galėtume su jumis susisiekti', 'submit': 'Pateikti', - 'feedbackSubmitSuccess': 'Atsiliepimas sėkmingai pateiktas, dėkojame už jūsų atsiliepimą!', - 'feedbackSubmitFailed': 'Atsiliepimo pateikimas nepavyko, bandykite dar kartą vėliau', + 'feedbackSubmitSuccess': + 'Atsiliepimas sėkmingai pateiktas, dėkojame už jūsų atsiliepimą!', + 'feedbackSubmitFailed': + 'Atsiliepimo pateikimas nepavyko, bandykite dar kartą vėliau', // OTA升级模块 - "upgradeExitConfirm": "Vyksta atnaujinimas, išėjus procesas bus nutrauktas, ar tikrai norite išeiti?", + "upgradeExitConfirm": + "Vyksta atnaujinimas, išėjus procesas bus nutrauktas, ar tikrai norite išeiti?", "deviceModel": "Įrenginio modelis", "unknownDevice": "Nežinomas įrenginys", "currentFirmwareVersion": "Dabartinė programinės įrangos versija", @@ -1308,14 +1448,19 @@ const Map ltLT = { "retryConnection": "Bandyti prisijungti dar kartą", "ota_updateNow": "Atnaujinti dabar", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Laikykite įrenginį prijungtą, neuždarykite programos", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Laikykite įrenginį prijungtą, neuždarykite programos", "doNotDisconnect": "Neatjunkite", "charging": "Kraunama", "updateContent": "Atnaujinimo turinys", - "removeEarbudsEnsureBattery": "Išimkite abi ausines ir įsitikinkite, kad abiejų baterijos lygis yra didesnis nei 20%", + "removeEarbudsEnsureBattery": + "Išimkite abi ausines ir įsitikinkite, kad abiejų baterijos lygis yra didesnis nei 20%", // 音乐列表页面 "noMusic": "Nėra muzikos", // 暂无音乐 @@ -1377,8 +1522,10 @@ const Map ltLT = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/lv_lv.dart b/lib/core/translations/language/lv_lv.dart index e0d6e12c3..cd2a604ec 100644 --- a/lib/core/translations/language/lv_lv.dart +++ b/lib/core/translations/language/lv_lv.dart @@ -33,6 +33,7 @@ const Map lvLV = { "spanish": "Spāņu", "portuguese": "Portugāļu", "traditionalChinese": "Tradicionālā ķīniešu", + "traditionalChineseHK": "Tradicionālā ķīniešu (Honkonga)", "japanese": "Japāņu", "korean": "Korejiešu", "french": "Franču", @@ -71,7 +72,8 @@ const Map lvLV = { // 登录页 "welcome": "Laipni lūdzam", - "loginTips": "Piesakieties vai reģistrējieties ar savu tālruņa numuru vai e-pastu", + "loginTips": + "Piesakieties vai reģistrējieties ar savu tālruņa numuru vai e-pastu", "accountNumber": "Tālruņa numurs vai e-pasts", "verificationCode": "Verifikācijas kods", "getCode": "Saņemt kodu", @@ -90,7 +92,8 @@ const Map lvLV = { "tip": "Padoms", "pleaseEnterCompleteCode": "Lūdzu, ievadiet pilnu verifikācijas kodu", "loginFailed": "Pieteikšanās neizdevās, lūdzu, mēģiniet vēlreiz", - 'pleaseAcceptPrivacyPolicy': 'Lūdzu, vispirms izlasiet un piekrītiet Privātuma politikai un Lietotāja līgumam', + 'pleaseAcceptPrivacyPolicy': + 'Lūdzu, vispirms izlasiet un piekrītiet Privātuma politikai un Lietotāja līgumam', "enterVerificationCode": "Ievadiet verifikācijas kodu", "verificationCodeSentTo": "Verifikācijas kods nosūtīts uz", "resendVerificationCode": "Nosūtīt verifikācijas kodu vēlreiz", @@ -99,7 +102,8 @@ const Map lvLV = { // 隐私政策弹窗 "loginDeclaration": "Voitrans deklarācija", // Voitrans 声明 - "welcomeToThisApp": "Laipni lūdzam Voitrans, lūdzu, uzmanīgi izlasiet", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Laipni lūdzam Voitrans, lūdzu, uzmanīgi izlasiet", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +119,30 @@ const Map lvLV = { "signal": "Signāls", "deviceId": "Ierīces ID", "firmwareVersion": "Programmaparatūras versija", - "disconnectedDevice": "Neviena ierīce nav savienota, noklikšķiniet uz pogas zemāk, lai savienotu", + "disconnectedDevice": + "Neviena ierīce nav savienota, noklikšķiniet uz pogas zemāk, lai savienotu", "connectDevice": "Savienot ierīci", "topAiExperiences": "Populārākās AI pieredzes", "aiAssistant": "Visaptverošs AI palīgs", - "aiAssistantInfo": "Ekskluzīvs konsultants 24/7, atbild uz jautājumiem, sniedz ieteikumus", + "aiAssistantInfo": + "Ekskluzīvs konsultants 24/7, atbild uz jautājumiem, sniedz ieteikumus", "interpretation": "Sinhronā tulkošana", - "simultaneousInterpretationInfo": "Reāllaika tulkošana vairāk nekā 80 valodās, bezrūpīgi ceļojumi uz ārzemēm", + "simultaneousInterpretationInfo": + "Reāllaika tulkošana vairāk nekā 80 valodās, bezrūpīgi ceļojumi uz ārzemēm", "aiCompanion": "Ģimenes pavadonis", "aiCompanionInfo": "Saprot jūs, silta sabiedrība", "homeSlogan": "Pasaules savienošana, pārsniedzot skaņu", - "turnEarphones": "Lūdzu, atveriet austiņu uzlādes futrāli un ievietojiet austiņas ausīs", + "turnEarphones": + "Lūdzu, atveriet austiņu uzlādes futrāli un ievietojiet austiņas ausīs", "currentlyConnected": "Pašlaik savienots:", "unsystemSetup": "Doties uz sistēmas iestatījumiem", "talkLater": "Vēlāk", "initializing": "Inicializē...", - "bluetoothInitializationFailure": "Bluetooth pakalpojuma inicializācija neizdevās", + "bluetoothInitializationFailure": + "Bluetooth pakalpojuma inicializācija neizdevās", "checkingPermissions": "Pārbauda atļaujas...", - "lackPermissions": "Trūkst Bluetooth atļauju un ir nepieciešams piekļūt lokācijai", + "lackPermissions": + "Trūkst Bluetooth atļauju un ir nepieciešams piekļūt lokācijai", "searchingDevice": "Meklē ierīces...", "findConnectedDevice": "Atrasta savienota ierīce", "notFound": "Neviena savienota Bluetooth ierīce nav atrasta", @@ -175,7 +185,8 @@ const Map lvLV = { "healthConsultant": "Daudzfunkcionāls AI čats", "healthConsultantInfo": "Piedāvā vairāk AI čata funkciju", "conferenceAssistant": "Biznesa sanāksmju palīgs", - "conferenceAssistantInfo": "Reāllaika protokolu ierakstīšana, daudzvalodu tulkošana", + "conferenceAssistantInfo": + "Reāllaika protokolu ierakstīšana, daudzvalodu tulkošana", "usageStats": "Pārskatījumu statistika", "usageStatsInfo": "Pārskatiet jūsu lietotāja pārskatījumu statistiku", "scene": "Scenārijs", @@ -218,7 +229,8 @@ const Map lvLV = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +286,10 @@ const Map lvLV = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +298,35 @@ const Map lvLV = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +335,10 @@ const Map lvLV = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +353,8 @@ const Map lvLV = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Izlaist", @@ -355,7 +380,8 @@ const Map lvLV = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +431,8 @@ const Map lvLV = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +487,54 @@ const Map lvLV = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +546,8 @@ const Map lvLV = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +567,8 @@ const Map lvLV = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +617,8 @@ const Map lvLV = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +643,8 @@ const Map lvLV = { "cloudSync": "Tīkla sincronizācijas pārrakstīšana", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Savienotā ierīce:", "accountId": "Konta ID:", "systemSetting": "Sistēmas iestatījumi", @@ -612,7 +657,8 @@ const Map lvLV = { "privacySettings": "Privātuma iestatījumi", "privacySettingsInfo": "Pārvaldīt datu vākšanu un atļaujas", "permissionManagement": "Atļauju pārvaldība", // 权限管理 - "permissionManagementInfo": "Pārvaldīt lietotnes atļauju iestatījumus", // 管理应用权限设置 + "permissionManagementInfo": + "Pārvaldīt lietotnes atļauju iestatījumus", // 管理应用权限设置 "aboutApplication": "Par lietotni", "versions": "Versija", "checkUpdates": "Pārbaudīt atjauninājumus", @@ -621,9 +667,11 @@ const Map lvLV = { "voiceServiceInfo": "Izvēlieties balss atpazīšanas un sintēzes pakalpojumu", "selectVoiceService": "Izvēlēties balss pakalpojumu", "azureVoiceService": "Azure balss pakalpojums", - "azureVoiceServiceInfo": "Microsoft mākoņa balss pakalpojums, atbalsta augstas kvalitātes balss sintēzi un atpazīšanu", + "azureVoiceServiceInfo": + "Microsoft mākoņa balss pakalpojums, atbalsta augstas kvalitātes balss sintēzi un atpazīšanu", "flutterVoiceService": "Flutter lokālais balss pakalpojums", - "flutterVoiceServiceInfo": "Ierīces lokālais balss pakalpojums, var izmantot bez interneta savienojuma", + "flutterVoiceServiceInfo": + "Ierīces lokālais balss pakalpojums, var izmantot bez interneta savienojuma", 'timbreService': 'Tembru pakalpojums', 'timbreServiceInfo': 'Izvēlieties tembru balss sintēzes pakalpojumu', 'defaultTimbre': 'Noklusējuma tembrs', @@ -634,7 +682,8 @@ const Map lvLV = { 'pleaseRead': 'Lūdzu, lasiet skaļi', 'completeRecording': 'Pabeigt ierakstīšanu', "firmwareUpgrade": "Programmaparatūras jaunināšana", - "bleHeadsetFirmwareUpgrade": "BLE austiņu programmaparatūras versijas jaunināšana", + "bleHeadsetFirmwareUpgrade": + "BLE austiņu programmaparatūras versijas jaunināšana", "deviceManagement": "Ierīču pārvaldība", "manageConnectedDevices": "Pārvaldīt savienotās Bluetooth ierīces", @@ -652,7 +701,8 @@ const Map lvLV = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Reāllaika balss tērzēšana", - "realtimeVoiceChatInfo": "Izbaudiet inteliģentās balss mijiedarbības funkciju (funkcijas priekšskatījums)", + "realtimeVoiceChatInfo": + "Izbaudiet inteliģentās balss mijiedarbības funkciju (funkcijas priekšskatījums)", "loading": "Ielādē...", //设备管理页面 @@ -667,7 +717,8 @@ const Map lvLV = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -695,7 +746,8 @@ const Map lvLV = { "listeningToYou": "Klausos jūs...", "processing": "Apstrādā...", "loadMoreMessages": "Ielādēt vairāk ziņu...", - "loadFailedClickRetry": "Ielāde neizdevās, noklikšķiniet, lai mēģinātu vēlreiz", + "loadFailedClickRetry": + "Ielāde neizdevās, noklikšķiniet, lai mēģinātu vēlreiz", "swipeUpForMore": "Velciet uz augšu, lai redzētu vairāk", "callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等! "voice_interrupt": "Interrupt", // 语音打断 @@ -721,10 +773,14 @@ const Map lvLV = { '• Kontrolēt austiņu funkcijas\n\n' 'Kā es varu jums palīdzēt?', 'microphonePermission': 'Mikrofons', - 'voiceRecognitionPermissionText': 'Balss atpazīšanas funkcijai nepieciešama piekļuve mikrofonam.', - 'voiceTranslationPermissionText': 'Balss atpazīšanas un tulkošanas funkcijai nepieciešama piekļuve mikrofonam.', - 'phoneCallPermissionText': 'Zvanīšanas funkcijai nepieciešama piekļuve mikrofonam balss zvaniem.', - 'permissionDeniedText': 'Jūs esat neatgriezeniski atteicis mikrofona atļauju, lūdzu, dodieties uz sistēmas iestatījumiem, lai to iespējotu.', + 'voiceRecognitionPermissionText': + 'Balss atpazīšanas funkcijai nepieciešama piekļuve mikrofonam.', + 'voiceTranslationPermissionText': + 'Balss atpazīšanas un tulkošanas funkcijai nepieciešama piekļuve mikrofonam.', + 'phoneCallPermissionText': + 'Zvanīšanas funkcijai nepieciešama piekļuve mikrofonam balss zvaniem.', + 'permissionDeniedText': + 'Jūs esat neatgriezeniski atteicis mikrofona atļauju, lūdzu, dodieties uz sistēmas iestatījumiem, lai to iespējotu.', 'startVoiceInput': 'Sākt balss ievadi', 'startPhoneCallMode': 'Sākt zvanīšanas režīmu, sākt balss ievadi', @@ -738,7 +794,8 @@ const Map lvLV = { 'report': 'Ziņot', 'submitSuccess': 'Veiksmīgi iesniegts', 'submitFailed': 'Iesniegšana neizdevās', - 'reportSubmitted': 'Ziņojums iesniegts, mēs to apstrādāsim pēc iespējas ātrāk', + 'reportSubmitted': + 'Ziņojums iesniegts, mēs to apstrādāsim pēc iespējas ātrāk', //'networkError': '网络错误,请稍后重试', 'harmfulUnsafe': 'Kaitīgs/Nedrošs', 'pornographicVulgar': 'Pornogrāfisks/Vulgārs', @@ -747,7 +804,8 @@ const Map lvLV = { 'privacyRelated': 'Saistīts ar privātumu', 'copyrightViolation': 'Pārkāpj manas autortiesības, reputāciju utt.', 'other': 'Cits', - 'reportDescriptionHint': 'Mēs vēlamies zināt, kāpēc jūs ziņojat, jūs varat aprakstīt problēmu, ar kuru saskārāties.', + 'reportDescriptionHint': + 'Mēs vēlamies zināt, kāpēc jūs ziņojat, jūs varat aprakstīt problēmu, ar kuru saskārāties.', //'submit': '提交', //Message_bubble @@ -778,15 +836,24 @@ const Map lvLV = { 'highest': 'Augstākā', 'lowest': 'Zemākā', 'futureForecast': 'Nākotnes prognoze', - 'hotWeatherTip': 'Šodien ir karsts, lūdzu, uzmanieties no karstuma dūriena un dzeriet daudz ūdens', - 'coldWeatherTip': 'Šodien temperatūra ir zema, lūdzu, silti ģērbieties, ejot ārā, lai nesaaukstētos', - 'rainyWeatherTip': 'Šodien līst, lūdzu, ņemiet līdzi lietussargu, ejot ārā, un esiet uzmanīgi', - 'snowyWeatherTip': 'Šodien snieg, ceļš ir slidens, lūdzu, esiet uzmanīgi un silti ģērbieties', - 'foggyWeatherTip': 'Šodien ir migla, redzamība ir slikta, lūdzu, nēsājiet masku, ejot ārā', - 'windyWeatherTip': 'Šodien ir stiprs vējš, lūdzu, esiet uzmanīgi, ejot ārā, un nostipriniet savas mantas', - 'sunnyWeatherTip': 'Šodien ir saulains un spēcīgs UV starojums, lūdzu, lietojiet saules aizsargkrēmu, ejot ārā', - 'temperatureDifferenceTip': 'Šodien ir liela temperatūras atšķirība starp dienu un nakti, lūdzu, pielāgojiet apģērbu', - 'comfortableWeatherTip': 'Šodien ir patīkams laiks, lielisks laiks āra aktivitātēm', + 'hotWeatherTip': + 'Šodien ir karsts, lūdzu, uzmanieties no karstuma dūriena un dzeriet daudz ūdens', + 'coldWeatherTip': + 'Šodien temperatūra ir zema, lūdzu, silti ģērbieties, ejot ārā, lai nesaaukstētos', + 'rainyWeatherTip': + 'Šodien līst, lūdzu, ņemiet līdzi lietussargu, ejot ārā, un esiet uzmanīgi', + 'snowyWeatherTip': + 'Šodien snieg, ceļš ir slidens, lūdzu, esiet uzmanīgi un silti ģērbieties', + 'foggyWeatherTip': + 'Šodien ir migla, redzamība ir slikta, lūdzu, nēsājiet masku, ejot ārā', + 'windyWeatherTip': + 'Šodien ir stiprs vējš, lūdzu, esiet uzmanīgi, ejot ārā, un nostipriniet savas mantas', + 'sunnyWeatherTip': + 'Šodien ir saulains un spēcīgs UV starojums, lūdzu, lietojiet saules aizsargkrēmu, ejot ārā', + 'temperatureDifferenceTip': + 'Šodien ir liela temperatūras atšķirība starp dienu un nakti, lūdzu, pielāgojiet apģērbu', + 'comfortableWeatherTip': + 'Šodien ir patīkams laiks, lielisks laiks āra aktivitātēm', "monday": "Pirm.", "tuesday": "Otr.", "wednesday": "Treš.", @@ -836,24 +903,32 @@ const Map lvLV = { "notSet": "Nav iestatīts", "accountSetting": "Konta iestatījumi", "logout": "Izrakstīties", - "logoutTips": "Vai esat pārliecināts, ka vēlaties izrakstīties no pašreizējā konta?", + "logoutTips": + "Vai esat pārliecināts, ka vēlaties izrakstīties no pašreizējā konta?", 'deleteAccount': 'Dzēst kontu', - 'deleteAccountTips': 'Vai esat pārliecināts, ka vēlaties neatgriezeniski dzēst savu kontu? Šī darbība nav atgriezeniska.', + 'deleteAccountTips': + 'Vai esat pārliecināts, ka vēlaties neatgriezeniski dzēst savu kontu? Šī darbība nav atgriezeniska.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Tīkla savienojuma kļūda, lūdzu, pārbaudiet tīkla iestatījumus un mēģiniet vēlreiz', - 'serverTemporarilyUnavailable': 'Serveris uz laiku nav pieejams, lūdzu, mēģiniet vēlreiz vēlāk', - 'loginExpiredPleaseRelogin': 'Jūsu sesija ir beigusies, lūdzu, piesakieties vēlreiz', + 'networkConnectionFailed': + 'Tīkla savienojuma kļūda, lūdzu, pārbaudiet tīkla iestatījumus un mēģiniet vēlreiz', + 'serverTemporarilyUnavailable': + 'Serveris uz laiku nav pieejams, lūdzu, mēģiniet vēlreiz vēlāk', + 'loginExpiredPleaseRelogin': + 'Jūsu sesija ir beigusies, lūdzu, piesakieties vēlreiz', 'noPermissionForThisOperation': 'Jums nav atļaujas veikt šo darbību', 'requestedResourceNotFound': 'Pieprasītais resurss nav atrasts', - 'imageProcessingFailedPleaseReselect': 'Attēla apstrāde neizdevās, lūdzu, izvēlieties citu attēlu', + 'imageProcessingFailedPleaseReselect': + 'Attēla apstrāde neizdevās, lūdzu, izvēlieties citu attēlu', 'operationFailedPleaseRetry': 'Darbība neizdevās, lūdzu, mēģiniet vēlreiz', 'serverReturnedError': 'Serveris atgrieza kļūdu', 'serverError': 'Servera kļūda', - 'networkConnectionFailedCheckSettings': 'Tīkla savienojuma kļūda, lūdzu, pārbaudiet tīkla iestatījumus', - 'serverInternalErrorRetryLater': 'Iekšēja servera kļūda, lūdzu, mēģiniet vēlreiz vēlāk', + 'networkConnectionFailedCheckSettings': + 'Tīkla savienojuma kļūda, lūdzu, pārbaudiet tīkla iestatījumus', + 'serverInternalErrorRetryLater': + 'Iekšēja servera kļūda, lūdzu, mēģiniet vēlreiz vēlāk', // Profile 用户交互 //'error': '错误', @@ -867,18 +942,23 @@ const Map lvLV = { 'loggedOut': 'Veiksmīgi izrakstījāties', 'logoutFailedRetry': 'Izrakstīšanās neizdevās, lūdzu, mēģiniet vēlreiz', 'accountPermanentlyDeleted': 'Konts ir neatgriezeniski dzēsts', - 'deleteAccountFailedRetry': 'Konta dzēšana neizdevās, lūdzu, mēģiniet vēlreiz', + 'deleteAccountFailedRetry': + 'Konta dzēšana neizdevās, lūdzu, mēģiniet vēlreiz', // 账号服务相关 'clearUserDataFailed': 'Neizdevās notīrīt lietotāja datus', // 清理用户数据失败 'deleteUserDataFailed': 'Neizdevās dzēst lietotāja datus', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'Trešās puses izrakstīšanās veiksmīga', // 第三方登录退出成功 + 'thirdPartyLogoutSuccess': + 'Trešās puses izrakstīšanās veiksmīga', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Trešās puses izrakstīšanās neizdevās', // 第三方登录退出失败 'signOutProcessError': 'Izrakstīšanās procesā radās kļūda', // 登出过程发生错误 - 'deleteAccountProcessError': 'Konta dzēšanas procesā radās kļūda', // 删除账号过程发生错误 + 'deleteAccountProcessError': + 'Konta dzēšanas procesā radās kļūda', // 删除账号过程发生错误 'userDataClearSuccess': 'Lietotāja dati veiksmīgi notīrīti', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Visi lietotāja dati veiksmīgi notīrīti', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Konta pakalpojums ir inicializēts', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Visi lietotāja dati veiksmīgi notīrīti', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Konta pakalpojums ir inicializēts', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Neizdevās iegūt atļaujas statusu', @@ -901,10 +981,14 @@ const Map lvLV = { 'locationInfo': 'Atrašanās vietas informācija', 'phonePermissionDesc': 'Izmanto zvanīšanas funkcijai', 'smsPermissionDesc': 'Izmanto SMS sūtīšanas funkcijai', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Izmanto kalendāra notikumu un atgādinājumu izveidei', - 'calendarFullAccessPermissionDesc': 'Izmanto kalendāra notikumu un atgādinājumu lasīšanai un pārvaldībai', - 'locationPermissionDesc': 'Izmanto pašreizējās atrašanās vietas informācijas iegūšanai', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Izmanto kalendāra notikumu un atgādinājumu izveidei', + 'calendarFullAccessPermissionDesc': + 'Izmanto kalendāra notikumu un atgādinājumu lasīšanai un pārvaldībai', + 'locationPermissionDesc': + 'Izmanto pašreizējās atrašanās vietas informācijas iegūšanai', 'appFunctionNeeds': 'Lietotnes funkcijai nepieciešams', 'authorized': 'Autorizēts', 'unauthorized': 'Neautorizēts', @@ -913,45 +997,70 @@ const Map lvLV = { 'unknownStatus': 'Nezināms statuss', 'permissionGranted': 'Atļauja piešķirta', 'permissionRequestError': 'Kļūda, pieprasot atļauju', - 'phonePermissionDetailDesc': 'Zvanīšanas funkcijai nepieciešama tālruņa atļauja', + 'phonePermissionDetailDesc': + 'Zvanīšanas funkcijai nepieciešama tālruņa atļauja', 'smsPermissionDetailDesc': 'SMS sūtīšanas funkcijai nepieciešama SMS atļauja', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Kalendāra notikumu izveidei nepieciešama kalendāra rakstīšanas atļauja', - 'calendarFullAccessPermissionDetailDesc': 'Kalendāra notikumu pārvaldībai nepieciešama pilna kalendāra atļauja', - 'locationPermissionDetailDesc': 'Atrašanās vietas informācijas iegūšanai nepieciešama atrašanās vietas atļauja', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Kalendāra notikumu izveidei nepieciešama kalendāra rakstīšanas atļauja', + 'calendarFullAccessPermissionDetailDesc': + 'Kalendāra notikumu pārvaldībai nepieciešama pilna kalendāra atļauja', + 'locationPermissionDetailDesc': + 'Atrašanās vietas informācijas iegūšanai nepieciešama atrašanās vietas atļauja', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Lietotnei ir nepieciešama šī atļauja pilnai funkcionalitātei', - 'permanentDenialText': 'Jūs esat neatgriezeniski atteicis {permission} atļauju, lūdzu, dodieties uz lietotnes iestatījumiem, lai to iespējotu', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Lietotnei ir nepieciešama šī atļauja pilnai funkcionalitātei', + 'permanentDenialText': + 'Jūs esat neatgriezeniski atteicis {permission} atļauju, lūdzu, dodieties uz lietotnes iestatījumiem, lai to iespējotu', 'goToSettings': 'Doties uz iestatījumiem', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1070,8 @@ const Map lvLV = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1080,10 @@ const Map lvLV = { 'updateNow': 'Atjaunināt tagad', // 立即更新按钮 'checkUpdate': 'Pārbaudīt atjauninājumu', // 检查更新按钮 'updateFailed': 'Atjaunināšana neizdevās', // 更新失败提示 - 'cannotOpenAppStore': 'Nevar atvērt lietotņu veikalu, lūdzu, dodieties uz lietotņu veikalu manuāli, lai atjauninātu', // 无法打开应用商店提示 - 'updateErrorRetry': 'Atjaunināšanas laikā radās kļūda, lūdzu, mēģiniet vēlreiz vēlāk', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Nevar atvērt lietotņu veikalu, lūdzu, dodieties uz lietotņu veikalu manuāli, lai atjauninātu', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Atjaunināšanas laikā radās kļūda, lūdzu, mēģiniet vēlreiz vēlāk', // 更新错误重试提示 //国家列表 "邮箱": "E-pasts", @@ -1107,7 +1219,8 @@ const Map lvLV = { "selectTargetLanguage": "Izvēlēties mērķa valodu", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1236,12 @@ const Map lvLV = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Notīrīt vēsturi", - "clearHistoryConfirm": "Vai esat pārliecināts, ka vēlaties notīrīt visu tulkošanas vēsturi? Šī darbība nav atgriezeniska.", + "clearHistoryConfirm": + "Vai esat pārliecināts, ka vēlaties notīrīt visu tulkošanas vēsturi? Šī darbība nav atgriezeniska.", "unknownLanguage": "Nezināma valoda", "deleteSessionRecord": "Dzēst sesijas ierakstu", - "deleteSessionConfirm": "Vai esat pārliecināts, ka vēlaties dzēst visus šīs sesijas tulkošanas ierakstus? Šī darbība nav atgriezeniska.", + "deleteSessionConfirm": + "Vai esat pārliecināts, ka vēlaties dzēst visus šīs sesijas tulkošanas ierakstus? Šī darbība nav atgriezeniska.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1273,20 @@ const Map lvLV = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1309,8 @@ const Map lvLV = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Oriģinālais ieraksts", "recordSummary": "Ieraksta kopsavilkums", - "clickToGenerateSummary": "Noklikšķiniet uz pogas zemāk, lai ģenerētu sesijas kopsavilkumu", + "clickToGenerateSummary": + "Noklikšķiniet uz pogas zemāk, lai ģenerētu sesijas kopsavilkumu", "summaryContent": "Kopsavilkuma saturs", "copied": "Nokopēts", "summaryCopiledToClipboard": "Kopsavilkums nokopēts starpliktuvē", @@ -1197,9 +1318,11 @@ const Map lvLV = { "summaryGenerated": "Kopsavilkums ģenerēts", "generating": "Ģenerē...", "regenerate": "Ģenerēt no jauna", - "summaryTimeoutMessage": "Kopsavilkuma ģenerēšanas pieprasījums ir beidzies, iespējams, tīkla problēmu vai aizņemta servera dēļ.", + "summaryTimeoutMessage": + "Kopsavilkuma ģenerēšanas pieprasījums ir beidzies, iespējams, tīkla problēmu vai aizņemta servera dēļ.", "deleteTranslationRecord": "Dzēst tulkošanas ierakstu", - "deleteTranslationConfirm": "Vai esat pārliecināts, ka vēlaties dzēst šo tulkošanas ierakstu? Šī darbība nav atgriezeniska.", + "deleteTranslationConfirm": + "Vai esat pārliecināts, ka vēlaties dzēst šo tulkošanas ierakstu? Šī darbība nav atgriezeniska.", "originalText": "Oriģinālais teksts", "translatedText": "Tulkotais teksts", "sessionSummary": "Sesijas kopsavilkums", @@ -1227,19 +1350,25 @@ const Map lvLV = { // 配对状态文本 "readyToPair": "Gatavs savienošanai pārī", "preparingPairingEnvironment": "Sagatavo vidi savienošanai pārī...", - "connectDeepSoundViaSystemBluetooth": "Lūdzu, vispirms izveidojiet savienojumu ar Voitrans ierīci, izmantojot sistēmas Bluetooth", + "connectDeepSoundViaSystemBluetooth": + "Lūdzu, vispirms izveidojiet savienojumu ar Voitrans ierīci, izmantojot sistēmas Bluetooth", "deviceBindingConfirm": "Ierīces saistīšanas apstiprinājums...", "establishingDeviceAssociation": "Izveido ierīces asociāciju...", "waitingCompletePairing": "Lūdzu, uzgaidiet, pabeidz savienošanu pārī...", - "pairingSuccessRedirecting": "Savienošana pārī veiksmīga! Pāradresē uz sākumlapu...", + "pairingSuccessRedirecting": + "Savienošana pārī veiksmīga! Pāradresē uz sākumlapu...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Lūdzu, pārliecinieties, ka esat savienots ar Voitrans ierīci", + "ensureConnectedDeepSoundDevice": + "Lūdzu, pārliecinieties, ka esat savienots ar Voitrans ierīci", "deviceAlreadyBoundToOtherAccount": "Šī ierīce jau ir saistīta ar citu kontu", - "deviceAssociationFailed": "Ierīces asociācija neizdevās, lūdzu, mēģiniet vēlreiz", - "scanTimeoutEnsureDeviceNearby": "Skenēšanas taimauts, lūdzu, pārliecinieties, ka ierīce ir tuvumā", + "deviceAssociationFailed": + "Ierīces asociācija neizdevās, lūdzu, mēģiniet vēlreiz", + "scanTimeoutEnsureDeviceNearby": + "Skenēšanas taimauts, lūdzu, pārliecinieties, ka ierīce ir tuvumā", "networkError": "Tīkla kļūda", - "authorizationFailedCheckCode": "Autorizācija neizdevās, lūdzu, pārbaudiet, vai autorizācijas kods ir pareizs", + "authorizationFailedCheckCode": + "Autorizācija neizdevās, lūdzu, pārbaudiet, vai autorizācijas kods ir pareizs", "pairingFailedRetry": "Savienošana pārī neizdevās, lūdzu, mēģiniet vēlreiz", // 配对控制器相关 @@ -1248,13 +1377,15 @@ const Map lvLV = { 'deviceDisconnected': 'Ierīce atvienota', 'readyToStartPairing': 'Gatavs sākt savienošanu pārī', 'checkingEnvironment': 'Pārbauda vidi...', - 'ensureHeadsetOnAndPairingMode': 'Lūdzu, pārliecinieties, ka austiņas ir ieslēgtas un savienošanas pārī režīmā', + 'ensureHeadsetOnAndPairingMode': + 'Lūdzu, pārliecinieties, ka austiņas ir ieslēgtas un savienošanas pārī režīmā', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Izveido drošu savienojumu...', - 'needManualBindingAuthCode': 'Nepieciešams manuālas saistīšanas autorizācijas kods...', + 'needManualBindingAuthCode': + 'Nepieciešams manuālas saistīšanas autorizācijas kods...', 'pairingSuccessful': 'Savienošana pārī veiksmīga!', 'enableBluetooth': 'Iespējot Bluetooth', 'grantPermissions': 'Piešķirt atļaujas', @@ -1266,35 +1397,46 @@ const Map lvLV = { 'verificationFailedRetry': 'Verifikācija neizdevās, lūdzu, mēģiniet vēlreiz', 'invalidDeviceAddress': 'Nederīga ierīces adrese', 'bleDeviceAssociationFailed': 'BLE ierīces asociācija neizdevās', - 'deviceAssociationFailedRetry': 'Ierīces asociācija neizdevās, lūdzu, mēģiniet vēlreiz', - 'bleConnectionTimeoutRetry': 'BLE savienojuma taimauts, lūdzu, mēģiniet vēlreiz', + 'deviceAssociationFailedRetry': + 'Ierīces asociācija neizdevās, lūdzu, mēģiniet vēlreiz', + 'bleConnectionTimeoutRetry': + 'BLE savienojuma taimauts, lūdzu, mēģiniet vēlreiz', 'blePairingStartupFailed': 'BLE savienošanas pārī sākšana neizdevās', 'bleConnectionFailed': 'BLE savienojums neizdevās', - 'deviceAuthorizationFailedCheckCode': 'Ierīces autorizācija neizdevās, lūdzu, pārbaudiet autorizācijas kodu', + 'deviceAuthorizationFailedCheckCode': + 'Ierīces autorizācija neizdevās, lūdzu, pārbaudiet autorizācijas kodu', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Lietotāju atsauksmes", 'feedbackInfo': 'Sniedziet atsauksmes vai ieteikumus', - 'feedbackDescription': 'Lūdzu, aprakstiet problēmu, ar kuru saskārāties, vai savu ieteikumu', + 'feedbackDescription': + 'Lūdzu, aprakstiet problēmu, ar kuru saskārāties, vai savu ieteikumu', 'feedbackHint': 'Lūdzu, ievadiet savas atsauksmes...', 'feedbackRequired': 'Lūdzu, ievadiet atsauksmju saturu', 'contactInfo': 'Kontaktinformācija', 'contactHint': 'E-pasts/Tālrunis, lai mēs varētu ar jums sazināties', 'submit': 'Iesniegt', - 'feedbackSubmitSuccess': 'Atsauksmes veiksmīgi iesniegtas, paldies par jūsu atsauksmēm!', - 'feedbackSubmitFailed': 'Atsauksmju iesniegšana neizdevās, lūdzu, mēģiniet vēlreiz vēlāk', + 'feedbackSubmitSuccess': + 'Atsauksmes veiksmīgi iesniegtas, paldies par jūsu atsauksmēm!', + 'feedbackSubmitFailed': + 'Atsauksmju iesniegšana neizdevās, lūdzu, mēģiniet vēlreiz vēlāk', // OTA升级模块 - "upgradeExitConfirm": "Notiek jaunināšana, izejot process tiks pārtraukts, vai esat pārliecināts, ka vēlaties iziet?", + "upgradeExitConfirm": + "Notiek jaunināšana, izejot process tiks pārtraukts, vai esat pārliecināts, ka vēlaties iziet?", "deviceModel": "Ierīces modelis", "unknownDevice": "Nezināma ierīce", "currentFirmwareVersion": "Pašreizējā programmaparatūras versija", @@ -1307,14 +1449,18 @@ const Map lvLV = { "retryConnection": "Mēģināt savienot vēlreiz", "ota_updateNow": "Atjaunināt tagad", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "Turiet ierīci savienotu, neaizveriet lietotni", "doNotDisconnect": "Neatvienojiet", "charging": "Uzlādējas", "updateContent": "Atjauninājuma saturs", - "removeEarbudsEnsureBattery": "Izņemiet abas austiņas un pārliecinieties, ka abu baterijas līmenis ir virs 20%", + "removeEarbudsEnsureBattery": + "Izņemiet abas austiņas un pārliecinieties, ka abu baterijas līmenis ir virs 20%", // 音乐列表页面 "noMusic": "Nav mūzikas", // 暂无音乐 @@ -1376,8 +1522,10 @@ const Map lvLV = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/ms_my.dart b/lib/core/translations/language/ms_my.dart index 1260cf3a3..8ec840b47 100644 --- a/lib/core/translations/language/ms_my.dart +++ b/lib/core/translations/language/ms_my.dart @@ -33,6 +33,7 @@ const Map msMY = { "spanish": "Bahasa Sepanyol", "portuguese": "Bahasa Portugis", "traditionalChinese": "Bahasa Cina Tradisional", + "traditionalChineseHK": "Cina Tradisional (Hong Kong)", "japanese": "Bahasa Jepun", "korean": "Bahasa Korea", "french": "Bahasa Perancis", @@ -71,7 +72,8 @@ const Map msMY = { // 登录页 "welcome": "Selamat Datang", - "loginTips": "Sila log masuk atau daftar dengan nombor telefon atau e-mel anda", + "loginTips": + "Sila log masuk atau daftar dengan nombor telefon atau e-mel anda", "accountNumber": "Nombor Telefon atau E-mel", "verificationCode": "Kod Pengesahan", "getCode": "Dapatkan Kod", @@ -90,7 +92,8 @@ const Map msMY = { "tip": "Petua", "pleaseEnterCompleteCode": "Sila masukkan kod pengesahan yang lengkap", "loginFailed": "Log masuk gagal, sila cuba lagi", - 'pleaseAcceptPrivacyPolicy': 'Sila baca dan setujui Dasar Privasi dan Perjanjian Pengguna terlebih dahulu', + 'pleaseAcceptPrivacyPolicy': + 'Sila baca dan setujui Dasar Privasi dan Perjanjian Pengguna terlebih dahulu', "enterVerificationCode": "Masukkan Kod Pengesahan", "verificationCodeSentTo": "Kod pengesahan telah dihantar ke", "resendVerificationCode": "Hantar semula kod pengesahan", @@ -99,7 +102,8 @@ const Map msMY = { // 隐私政策弹窗 "loginDeclaration": "Pengisytiharan Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Selamat datang ke Voitrans, sila baca dengan teliti", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Selamat datang ke Voitrans, sila baca dengan teliti", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +119,29 @@ const Map msMY = { "signal": "Isyarat", "deviceId": "ID Peranti", "firmwareVersion": "Versi Firmware", - "disconnectedDevice": "Tiada peranti disambungkan, klik butang di bawah untuk menyambung", + "disconnectedDevice": + "Tiada peranti disambungkan, klik butang di bawah untuk menyambung", "connectDevice": "Sambungkan Peranti", "topAiExperiences": "Pengalaman AI Teratas", "aiAssistant": "Pembantu AI Serba Boleh", - "aiAssistantInfo": "Perunding eksklusif 24/7, menjawab soalan, memberi cadangan", + "aiAssistantInfo": + "Perunding eksklusif 24/7, menjawab soalan, memberi cadangan", "interpretation": "Penterjemahan Serentak", - "simultaneousInterpretationInfo": "Terjemahan masa nyata untuk 80+ bahasa, perjalanan ke luar negara tanpa bimbang", + "simultaneousInterpretationInfo": + "Terjemahan masa nyata untuk 80+ bahasa, perjalanan ke luar negara tanpa bimbang", "aiCompanion": "Teman Keluarga", "aiCompanionInfo": "Memahami anda, teman yang mesra", "homeSlogan": "Menghubungkan dunia, melangkaui suara", - "turnEarphones": "Sila buka bekas pengecas fon telinga dan letakkan fon telinga di telinga anda", + "turnEarphones": + "Sila buka bekas pengecas fon telinga dan letakkan fon telinga di telinga anda", "currentlyConnected": "Sedang bersambung:", "unsystemSetup": "Pergi ke tetapan sistem", "talkLater": "Nanti", "initializing": "Memulakan...", "bluetoothInitializationFailure": "Inisialisasi perkhidmatan Bluetooth gagal", "checkingPermissions": "Menyemak kebenaran...", - "lackPermissions": "Kebenaran Bluetooth tiada dan perlu mengaktifkan lokasi peranti", + "lackPermissions": + "Kebenaran Bluetooth tiada dan perlu mengaktifkan lokasi peranti", "searchingDevice": "Mencari peranti...", "findConnectedDevice": "Peranti yang disambungkan ditemui", "notFound": "Tiada peranti Bluetooth yang disambungkan ditemui", @@ -175,7 +184,8 @@ const Map msMY = { "healthConsultant": "Sembang AI Pelbagai Fungsi", "healthConsultantInfo": "Menyediakan lebih banyak fungsi sembang AI", "conferenceAssistant": "Pembantu Mesyuarat Perniagaan", - "conferenceAssistantInfo": "Minit mesyuarat masa nyata, terjemahan pelbagai bahasa", + "conferenceAssistantInfo": + "Minit mesyuarat masa nyata, terjemahan pelbagai bahasa", "usageStats": "Statistik Penggunaan", "usageStatsInfo": "Lihat statistik penggunaan aplikasi", "scene": "Senario", @@ -218,7 +228,8 @@ const Map msMY = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +285,10 @@ const Map msMY = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +297,35 @@ const Map msMY = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +334,10 @@ const Map msMY = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +352,8 @@ const Map msMY = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Langkau", @@ -355,7 +379,8 @@ const Map msMY = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +430,8 @@ const Map msMY = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +486,54 @@ const Map msMY = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +545,8 @@ const Map msMY = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +566,8 @@ const Map msMY = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +616,8 @@ const Map msMY = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +642,8 @@ const Map msMY = { "cloudSync": "Pembayaran Sinkronisasi awan", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Peranti disambungkan:", "accountId": "ID Akaun:", "systemSetting": "Tetapan Sistem", @@ -621,9 +665,11 @@ const Map msMY = { "voiceServiceInfo": "Pilih perkhidmatan pengecaman dan sintesis suara", "selectVoiceService": "Pilih Perkhidmatan Suara", "azureVoiceService": "Perkhidmatan Suara Azure", - "azureVoiceServiceInfo": "Perkhidmatan suara awan Microsoft, menyokong sintesis dan pengecaman suara berkualiti tinggi", + "azureVoiceServiceInfo": + "Perkhidmatan suara awan Microsoft, menyokong sintesis dan pengecaman suara berkualiti tinggi", "flutterVoiceService": "Perkhidmatan Suara Tempatan Flutter", - "flutterVoiceServiceInfo": "Perkhidmatan suara tempatan peranti, boleh digunakan tanpa sambungan internet", + "flutterVoiceServiceInfo": + "Perkhidmatan suara tempatan peranti, boleh digunakan tanpa sambungan internet", 'timbreService': 'Perkhidmatan Timbre', 'timbreServiceInfo': 'Pilih perkhidmatan sintesis suara timbre', 'defaultTimbre': 'Timbre Lalai', @@ -652,7 +698,8 @@ const Map msMY = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Sembang Suara Masa Nyata", - "realtimeVoiceChatInfo": "Alami fungsi interaksi suara pintar (pratonton fungsi)", + "realtimeVoiceChatInfo": + "Alami fungsi interaksi suara pintar (pratonton fungsi)", "loading": "Memuatkan...", //设备管理页面 @@ -667,7 +714,8 @@ const Map msMY = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -721,10 +769,14 @@ const Map msMY = { '• Kawal fungsi fon telinga\n\n' 'Apa yang boleh saya bantu?', 'microphonePermission': 'Mikrofon', - 'voiceRecognitionPermissionText': 'Pengecaman suara memerlukan akses mikrofon.', - 'voiceTranslationPermissionText': 'Pengecaman dan terjemahan suara memerlukan akses mikrofon.', - 'phoneCallPermissionText': 'Membuat panggilan memerlukan akses mikrofon untuk panggilan suara.', - 'permissionDeniedText': 'Anda telah menafikan kebenaran mikrofon secara kekal, sila pergi ke tetapan sistem untuk mendayakannya.', + 'voiceRecognitionPermissionText': + 'Pengecaman suara memerlukan akses mikrofon.', + 'voiceTranslationPermissionText': + 'Pengecaman dan terjemahan suara memerlukan akses mikrofon.', + 'phoneCallPermissionText': + 'Membuat panggilan memerlukan akses mikrofon untuk panggilan suara.', + 'permissionDeniedText': + 'Anda telah menafikan kebenaran mikrofon secara kekal, sila pergi ke tetapan sistem untuk mendayakannya.', 'startVoiceInput': 'Mula input suara', 'startPhoneCallMode': 'Mula mod panggilan telefon, mula input suara', @@ -738,7 +790,8 @@ const Map msMY = { 'report': 'Lapor', 'submitSuccess': 'Berjaya dihantar', 'submitFailed': 'Gagal dihantar', - 'reportSubmitted': 'Laporan telah dihantar, kami akan memprosesnya secepat mungkin', + 'reportSubmitted': + 'Laporan telah dihantar, kami akan memprosesnya secepat mungkin', //'networkError': '网络错误,请稍后重试', 'harmfulUnsafe': 'Berbahaya/Tidak Selamat', 'pornographicVulgar': 'Pornografi/Lucah', @@ -747,7 +800,8 @@ const Map msMY = { 'privacyRelated': 'Berkaitan Privasi', 'copyrightViolation': 'Melanggar hak cipta, nama baik saya, dsb.', 'other': 'Lain-lain', - 'reportDescriptionHint': 'Kami ingin tahu sebab anda melaporkan, anda boleh menerangkan masalah yang anda hadapi.', + 'reportDescriptionHint': + 'Kami ingin tahu sebab anda melaporkan, anda boleh menerangkan masalah yang anda hadapi.', //'submit': '提交', //Message_bubble @@ -778,15 +832,24 @@ const Map msMY = { 'highest': 'Tertinggi', 'lowest': 'Terendah', 'futureForecast': 'Ramalan Masa Depan', - 'hotWeatherTip': 'Hari ini panas, sila berhati-hati dengan strok haba dan minum banyak air', - 'coldWeatherTip': 'Suhu hari ini rendah, sila pakai pakaian hangat apabila keluar untuk mengelakkan selesema', - 'rainyWeatherTip': 'Hari ini hujan, sila bawa payung apabila keluar dan berhati-hati semasa perjalanan', - 'snowyWeatherTip': 'Hari ini salji, jalan licin sila berhati-hati, ambil langkah berjaga-jaga untuk kekal hangat', - 'foggyWeatherTip': 'Hari ini berkabus, penglihatan rendah, sila pakai topeng apabila keluar', - 'windyWeatherTip': 'Hari ini berangin, sila berhati-hati apabila keluar, pastikan barang-barang anda selamat', - 'sunnyWeatherTip': 'Hari ini cerah dengan sinaran UV yang kuat, sila gunakan pelindung matahari apabila keluar', - 'temperatureDifferenceTip': 'Terdapat perbezaan suhu yang besar antara siang dan malam hari ini, sila laraskan pakaian anda', - 'comfortableWeatherTip': 'Cuaca hari ini menyenangkan, masa yang sesuai untuk aktiviti luar', + 'hotWeatherTip': + 'Hari ini panas, sila berhati-hati dengan strok haba dan minum banyak air', + 'coldWeatherTip': + 'Suhu hari ini rendah, sila pakai pakaian hangat apabila keluar untuk mengelakkan selesema', + 'rainyWeatherTip': + 'Hari ini hujan, sila bawa payung apabila keluar dan berhati-hati semasa perjalanan', + 'snowyWeatherTip': + 'Hari ini salji, jalan licin sila berhati-hati, ambil langkah berjaga-jaga untuk kekal hangat', + 'foggyWeatherTip': + 'Hari ini berkabus, penglihatan rendah, sila pakai topeng apabila keluar', + 'windyWeatherTip': + 'Hari ini berangin, sila berhati-hati apabila keluar, pastikan barang-barang anda selamat', + 'sunnyWeatherTip': + 'Hari ini cerah dengan sinaran UV yang kuat, sila gunakan pelindung matahari apabila keluar', + 'temperatureDifferenceTip': + 'Terdapat perbezaan suhu yang besar antara siang dan malam hari ini, sila laraskan pakaian anda', + 'comfortableWeatherTip': + 'Cuaca hari ini menyenangkan, masa yang sesuai untuk aktiviti luar', "monday": "Isnin", "tuesday": "Selasa", "wednesday": "Rabu", @@ -838,22 +901,30 @@ const Map msMY = { "logout": "Log Keluar", "logoutTips": "Adakah anda pasti mahu log keluar dari akaun semasa?", 'deleteAccount': 'Padam Akaun', - 'deleteAccountTips': 'Adakah anda pasti mahu memadam akaun anda secara kekal? Tindakan ini tidak boleh dibatalkan', + 'deleteAccountTips': + 'Adakah anda pasti mahu memadam akaun anda secara kekal? Tindakan ini tidak boleh dibatalkan', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Sambungan rangkaian gagal, sila semak tetapan rangkaian anda dan cuba lagi', - 'serverTemporarilyUnavailable': 'Pelayan tidak tersedia buat sementara waktu, sila cuba lagi nanti', - 'loginExpiredPleaseRelogin': 'Sesi anda telah tamat tempoh, sila log masuk semula', - 'noPermissionForThisOperation': 'Anda tidak mempunyai kebenaran untuk melakukan operasi ini', + 'networkConnectionFailed': + 'Sambungan rangkaian gagal, sila semak tetapan rangkaian anda dan cuba lagi', + 'serverTemporarilyUnavailable': + 'Pelayan tidak tersedia buat sementara waktu, sila cuba lagi nanti', + 'loginExpiredPleaseRelogin': + 'Sesi anda telah tamat tempoh, sila log masuk semula', + 'noPermissionForThisOperation': + 'Anda tidak mempunyai kebenaran untuk melakukan operasi ini', 'requestedResourceNotFound': 'Sumber yang diminta tidak ditemui', - 'imageProcessingFailedPleaseReselect': 'Pemprosesan imej gagal, sila pilih imej lain', + 'imageProcessingFailedPleaseReselect': + 'Pemprosesan imej gagal, sila pilih imej lain', 'operationFailedPleaseRetry': 'Operasi gagal, sila cuba lagi', 'serverReturnedError': 'Pelayan mengembalikan ralat', 'serverError': 'Ralat Pelayan', - 'networkConnectionFailedCheckSettings': 'Sambungan rangkaian gagal, sila semak tetapan rangkaian anda', - 'serverInternalErrorRetryLater': 'Ralat dalaman pelayan, sila cuba lagi nanti', + 'networkConnectionFailedCheckSettings': + 'Sambungan rangkaian gagal, sila semak tetapan rangkaian anda', + 'serverInternalErrorRetryLater': + 'Ralat dalaman pelayan, sila cuba lagi nanti', // Profile 用户交互 //'error': '错误', @@ -875,10 +946,13 @@ const Map msMY = { 'thirdPartyLogoutSuccess': 'Log keluar pihak ketiga berjaya', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Log keluar pihak ketiga gagal', // 第三方登录退出失败 'signOutProcessError': 'Berlaku ralat semasa proses log keluar', // 登出过程发生错误 - 'deleteAccountProcessError': 'Berlaku ralat semasa proses pemadaman akaun', // 删除账号过程发生错误 + 'deleteAccountProcessError': + 'Berlaku ralat semasa proses pemadaman akaun', // 删除账号过程发生错误 'userDataClearSuccess': 'Data pengguna berjaya dikosongkan', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Semua data pengguna berjaya dikosongkan', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Perkhidmatan Akaun telah dimulakan', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Semua data pengguna berjaya dikosongkan', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Perkhidmatan Akaun telah dimulakan', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Gagal mendapatkan status kebenaran', @@ -901,10 +975,14 @@ const Map msMY = { 'locationInfo': 'Maklumat Lokasi', 'phonePermissionDesc': 'Digunakan untuk fungsi membuat panggilan', 'smsPermissionDesc': 'Digunakan untuk fungsi menghantar SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Digunakan untuk membuat acara kalendar dan peringatan', - 'calendarFullAccessPermissionDesc': 'Digunakan untuk membaca dan mengurus acara kalendar dan peringatan', - 'locationPermissionDesc': 'Digunakan untuk mendapatkan maklumat lokasi semasa', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Digunakan untuk membuat acara kalendar dan peringatan', + 'calendarFullAccessPermissionDesc': + 'Digunakan untuk membaca dan mengurus acara kalendar dan peringatan', + 'locationPermissionDesc': + 'Digunakan untuk mendapatkan maklumat lokasi semasa', 'appFunctionNeeds': 'Fungsi aplikasi memerlukan', 'authorized': 'Dibenarkan', 'unauthorized': 'Tidak Dibenarkan', @@ -915,43 +993,67 @@ const Map msMY = { 'permissionRequestError': 'Ralat semasa meminta kebenaran', 'phonePermissionDetailDesc': 'Fungsi panggilan memerlukan kebenaran telefon', 'smsPermissionDetailDesc': 'Fungsi menghantar SMS memerlukan kebenaran SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Membuat acara kalendar memerlukan kebenaran menulis kalendar', - 'calendarFullAccessPermissionDetailDesc': 'Mengurus acara kalendar memerlukan kebenaran penuh kalendar', - 'locationPermissionDetailDesc': 'Mendapatkan maklumat lokasi memerlukan kebenaran lokasi', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Membuat acara kalendar memerlukan kebenaran menulis kalendar', + 'calendarFullAccessPermissionDetailDesc': + 'Mengurus acara kalendar memerlukan kebenaran penuh kalendar', + 'locationPermissionDetailDesc': + 'Mendapatkan maklumat lokasi memerlukan kebenaran lokasi', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Aplikasi memerlukan kebenaran ini untuk fungsi penuh', - 'permanentDenialText': 'Anda telah menafikan kebenaran {permission} secara kekal, sila pergi ke tetapan aplikasi untuk mendayakannya', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Aplikasi memerlukan kebenaran ini untuk fungsi penuh', + 'permanentDenialText': + 'Anda telah menafikan kebenaran {permission} secara kekal, sila pergi ke tetapan aplikasi untuk mendayakannya', 'goToSettings': 'Pergi ke Tetapan', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1063,8 @@ const Map msMY = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1073,10 @@ const Map msMY = { 'updateNow': 'Kemas Kini Sekarang', // 立即更新按钮 'checkUpdate': 'Semak Kemas Kini', // 检查更新按钮 'updateFailed': 'Kemas Kini Gagal', // 更新失败提示 - 'cannotOpenAppStore': 'Tidak dapat membuka gedung aplikasi, sila pergi ke gedung aplikasi secara manual untuk mengemas kini', // 无法打开应用商店提示 - 'updateErrorRetry': 'Berlaku ralat semasa kemas kini, sila cuba lagi nanti', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Tidak dapat membuka gedung aplikasi, sila pergi ke gedung aplikasi secara manual untuk mengemas kini', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Berlaku ralat semasa kemas kini, sila cuba lagi nanti', // 更新错误重试提示 //国家列表 "邮箱": "E-mel", @@ -1107,7 +1212,8 @@ const Map msMY = { "selectTargetLanguage": "Pilih bahasa sasaran", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1229,12 @@ const Map msMY = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Kosongkan Sejarah", - "clearHistoryConfirm": "Adakah anda pasti mahu mengosongkan semua sejarah terjemahan? Tindakan ini tidak boleh dibatalkan.", + "clearHistoryConfirm": + "Adakah anda pasti mahu mengosongkan semua sejarah terjemahan? Tindakan ini tidak boleh dibatalkan.", "unknownLanguage": "Bahasa Tidak Diketahui", "deleteSessionRecord": "Padam Rekod Sesi", - "deleteSessionConfirm": "Adakah anda pasti mahu memadam semua rekod terjemahan untuk sesi ini? Tindakan ini tidak boleh dibatalkan.", + "deleteSessionConfirm": + "Adakah anda pasti mahu memadam semua rekod terjemahan untuk sesi ini? Tindakan ini tidak boleh dibatalkan.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1266,20 @@ const Map msMY = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1197,9 +1310,11 @@ const Map msMY = { "summaryGenerated": "Ringkasan telah dijana", "generating": "Menjana...", "regenerate": "Jana semula", - "summaryTimeoutMessage": "Permintaan menjana ringkasan telah tamat masa, mungkin disebabkan oleh masalah rangkaian atau pelayan sibuk.", + "summaryTimeoutMessage": + "Permintaan menjana ringkasan telah tamat masa, mungkin disebabkan oleh masalah rangkaian atau pelayan sibuk.", "deleteTranslationRecord": "Padam Rekod Terjemahan", - "deleteTranslationConfirm": "Adakah anda pasti mahu memadam rekod terjemahan ini? Tindakan ini tidak boleh dibatalkan.", + "deleteTranslationConfirm": + "Adakah anda pasti mahu memadam rekod terjemahan ini? Tindakan ini tidak boleh dibatalkan.", "originalText": "Teks Asal", "translatedText": "Teks Terjemahan", "sessionSummary": "Ringkasan Sesi", @@ -1227,19 +1342,25 @@ const Map msMY = { // 配对状态文本 "readyToPair": "Sedia untuk dipasangkan", "preparingPairingEnvironment": "Menyediakan persekitaran pemasangan...", - "connectDeepSoundViaSystemBluetooth": "Sila sambung ke peranti Voitrans melalui Bluetooth sistem terlebih dahulu", + "connectDeepSoundViaSystemBluetooth": + "Sila sambung ke peranti Voitrans melalui Bluetooth sistem terlebih dahulu", "deviceBindingConfirm": "Pengesahan pengikatan peranti...", "establishingDeviceAssociation": "Mewujudkan perkaitan peranti...", "waitingCompletePairing": "Sila tunggu, melengkapkan pemasangan...", - "pairingSuccessRedirecting": "Pemasangan berjaya! Mengalihkan ke halaman utama...", + "pairingSuccessRedirecting": + "Pemasangan berjaya! Mengalihkan ke halaman utama...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Sila pastikan anda disambungkan ke peranti Voitrans", - "deviceAlreadyBoundToOtherAccount": "Peranti ini telah diikat pada akaun lain", + "ensureConnectedDeepSoundDevice": + "Sila pastikan anda disambungkan ke peranti Voitrans", + "deviceAlreadyBoundToOtherAccount": + "Peranti ini telah diikat pada akaun lain", "deviceAssociationFailed": "Perkaitan peranti gagal, sila cuba lagi", - "scanTimeoutEnsureDeviceNearby": "Imbasan tamat masa, sila pastikan peranti berada berdekatan", + "scanTimeoutEnsureDeviceNearby": + "Imbasan tamat masa, sila pastikan peranti berada berdekatan", "networkError": "Ralat Rangkaian", - "authorizationFailedCheckCode": "Kebenaran gagal, sila semak sama ada kod kebenaran betul", + "authorizationFailedCheckCode": + "Kebenaran gagal, sila semak sama ada kod kebenaran betul", "pairingFailedRetry": "Pemasangan gagal, sila cuba lagi", // 配对控制器相关 @@ -1248,7 +1369,8 @@ const Map msMY = { 'deviceDisconnected': 'Peranti diputuskan sambungan', 'readyToStartPairing': 'Sedia untuk memulakan pemasangan', 'checkingEnvironment': 'Menyemak persekitaran...', - 'ensureHeadsetOnAndPairingMode': 'Sila pastikan fon kepala dihidupkan dan dalam mod pemasangan', + 'ensureHeadsetOnAndPairingMode': + 'Sila pastikan fon kepala dihidupkan dan dalam mod pemasangan', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1270,31 +1392,39 @@ const Map msMY = { 'bleConnectionTimeoutRetry': 'Tamat masa sambungan BLE, sila cuba lagi', 'blePairingStartupFailed': 'Permulaan pemasangan BLE gagal', 'bleConnectionFailed': 'Sambungan BLE gagal', - 'deviceAuthorizationFailedCheckCode': 'Kebenaran peranti gagal, sila semak kod kebenaran', + 'deviceAuthorizationFailedCheckCode': + 'Kebenaran peranti gagal, sila semak kod kebenaran', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Maklum Balas Pengguna", 'feedbackInfo': 'Berikan maklum balas atau cadangan', - 'feedbackDescription': 'Sila terangkan masalah yang anda hadapi atau cadangan anda', + 'feedbackDescription': + 'Sila terangkan masalah yang anda hadapi atau cadangan anda', 'feedbackHint': 'Sila masukkan maklum balas anda...', 'feedbackRequired': 'Sila masukkan kandungan maklum balas', 'contactInfo': 'Maklumat Hubungan', 'contactHint': 'E-mel/Telefon, supaya kami boleh menghubungi anda', 'submit': 'Hantar', - 'feedbackSubmitSuccess': 'Maklum balas berjaya dihantar, terima kasih atas maklum balas anda!', + 'feedbackSubmitSuccess': + 'Maklum balas berjaya dihantar, terima kasih atas maklum balas anda!', 'feedbackSubmitFailed': 'Gagal menghantar maklum balas, sila cuba lagi nanti', // OTA升级模块 - "upgradeExitConfirm": "Naik taraf sedang berjalan, keluar akan mengganggu proses, adakah anda pasti mahu keluar?", + "upgradeExitConfirm": + "Naik taraf sedang berjalan, keluar akan mengganggu proses, adakah anda pasti mahu keluar?", "deviceModel": "Model Peranti", "unknownDevice": "Peranti Tidak Diketahui", "currentFirmwareVersion": "Versi Firmware Semasa", @@ -1307,14 +1437,19 @@ const Map msMY = { "retryConnection": "Cuba Sambung Semula", "ota_updateNow": "Kemas Kini Sekarang", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Pastikan peranti sentiasa bersambung, jangan tutup aplikasi", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Pastikan peranti sentiasa bersambung, jangan tutup aplikasi", "doNotDisconnect": "Jangan putuskan sambungan", "charging": "Mengecas", "updateContent": "Kandungan Kemas Kini", - "removeEarbudsEnsureBattery": "Keluarkan kedua-dua fon telinga, dan pastikan bateri kedua-duanya melebihi 20%", + "removeEarbudsEnsureBattery": + "Keluarkan kedua-dua fon telinga, dan pastikan bateri kedua-duanya melebihi 20%", // 音乐列表页面 "noMusic": "Tiada Muzik", // 暂无音乐 @@ -1376,8 +1511,10 @@ const Map msMY = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/nb_no.dart b/lib/core/translations/language/nb_no.dart index dc6d148ff..b83d3bdd0 100644 --- a/lib/core/translations/language/nb_no.dart +++ b/lib/core/translations/language/nb_no.dart @@ -33,6 +33,7 @@ const Map nbNO = { "spanish": "Spansk", "portuguese": "Portugisisk", "traditionalChinese": "Tradisjonell kinesisk", + "traditionalChineseHK": "Tradisjonell kinesisk (Hongkong)", "japanese": "Japansk", "korean": "Koreansk", "french": "Fransk", @@ -90,7 +91,8 @@ const Map nbNO = { "tip": "Tips", "pleaseEnterCompleteCode": "Vennligst skriv inn hele verifiseringskoden", "loginFailed": "Innlogging mislyktes, prøv igjen", - 'pleaseAcceptPrivacyPolicy': 'Vennligst les og godta personvernerklæringen og brukeravtalen først', + 'pleaseAcceptPrivacyPolicy': + 'Vennligst les og godta personvernerklæringen og brukeravtalen først', "enterVerificationCode": "Skriv inn verifiseringskode", "verificationCodeSentTo": "Verifiseringskode sendt til", "resendVerificationCode": "Send verifiseringskode på nytt", @@ -99,7 +101,8 @@ const Map nbNO = { // 隐私政策弹窗 "loginDeclaration": "Voitrans-erklæring", // Voitrans 声明 - "welcomeToThisApp": "Velkommen til Voitrans, vennligst les nøye", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Velkommen til Voitrans, vennligst les nøye", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +118,30 @@ const Map nbNO = { "signal": "Signal", "deviceId": "Enhets-ID", "firmwareVersion": "Firmware-versjon", - "disconnectedDevice": "Ingen enhet tilkoblet, klikk på knappen nedenfor for å koble til", + "disconnectedDevice": + "Ingen enhet tilkoblet, klikk på knappen nedenfor for å koble til", "connectDevice": "Koble til enhet", "topAiExperiences": "Topp AI-opplevelser", "aiAssistant": "Allsidig AI-assistent", - "aiAssistantInfo": "Eksklusiv 24/7-konsulent, svarer på spørsmål, gir forslag", + "aiAssistantInfo": + "Eksklusiv 24/7-konsulent, svarer på spørsmål, gir forslag", "interpretation": "Simultantolking", - "simultaneousInterpretationInfo": "Sanntidsoversettelse for over 80 språk, bekymringsfrie utenlandsreiser", + "simultaneousInterpretationInfo": + "Sanntidsoversettelse for over 80 språk, bekymringsfrie utenlandsreiser", "aiCompanion": "Familievenn", "aiCompanionInfo": "Forstår deg, varmt selskap", "homeSlogan": "Kobler sammen verden, overgår lyden", - "turnEarphones": "Åpne ladeetuiet til øreproppene og sett øreproppene i ørene", + "turnEarphones": + "Åpne ladeetuiet til øreproppene og sett øreproppene i ørene", "currentlyConnected": "For øyeblikket tilkoblet:", "unsystemSetup": "Gå til systeminnstillinger", "talkLater": "Senere", "initializing": "Initialiserer...", - "bluetoothInitializationFailure": "Initialisering av Bluetooth-tjenesten mislyktes", + "bluetoothInitializationFailure": + "Initialisering av Bluetooth-tjenesten mislyktes", "checkingPermissions": "Sjekker tillatelser...", - "lackPermissions": "Mangler Bluetooth-tillatelser og er nødvendig å aktivere lokasjons-tillatelser", + "lackPermissions": + "Mangler Bluetooth-tillatelser og er nødvendig å aktivere lokasjons-tillatelser", "searchingDevice": "Søker etter enheter...", "findConnectedDevice": "Fant tilkoblet enhet", "notFound": "Ingen tilkoblet Bluetooth-enhet funnet", @@ -175,7 +184,8 @@ const Map nbNO = { "healthConsultant": "Multifunksjonell AI-chat", "healthConsultantInfo": "Tilbyr flere AI-chatfunksjoner", "conferenceAssistant": "Assistent for forretningsmøter", - "conferenceAssistantInfo": "Sanntids protokollføring, flerspråklig oversettelse", + "conferenceAssistantInfo": + "Sanntids protokollføring, flerspråklig oversettelse", "usageStats": "Brukstatistikk", "usageStatsInfo": "Vis brukstatistikk for din app", "scene": "Scenario", @@ -218,7 +228,8 @@ const Map nbNO = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +285,10 @@ const Map nbNO = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +297,35 @@ const Map nbNO = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +334,10 @@ const Map nbNO = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +352,8 @@ const Map nbNO = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Hopp over", @@ -355,7 +379,8 @@ const Map nbNO = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +430,8 @@ const Map nbNO = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +486,54 @@ const Map nbNO = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +545,8 @@ const Map nbNO = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +566,8 @@ const Map nbNO = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +616,8 @@ const Map nbNO = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +642,8 @@ const Map nbNO = { "cloudSync": "Cloud-synchroniseringspenger", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Tilkoblet enhet:", "accountId": "Konto-ID:", "systemSetting": "Systeminnstillinger", @@ -612,7 +656,8 @@ const Map nbNO = { "privacySettings": "Personverninnstillinger", "privacySettingsInfo": "Administrer datainnsamling og tillatelser", "permissionManagement": "Tillatelsesadministrasjon", // 权限管理 - "permissionManagementInfo": "Administrer innstillinger for app-tillatelser", // 管理应用权限设置 + "permissionManagementInfo": + "Administrer innstillinger for app-tillatelser", // 管理应用权限设置 "aboutApplication": "Om appen", "versions": "Versjon", "checkUpdates": "Se etter oppdateringer", @@ -621,9 +666,11 @@ const Map nbNO = { "voiceServiceInfo": "Velg tjeneste for talegjenkjenning og syntese", "selectVoiceService": "Velg stemmetjeneste", "azureVoiceService": "Azure stemmetjeneste", - "azureVoiceServiceInfo": "Microsofts skybaserte stemmetjeneste, støtter høykvalitets talesyntese og gjenkjenning", + "azureVoiceServiceInfo": + "Microsofts skybaserte stemmetjeneste, støtter høykvalitets talesyntese og gjenkjenning", "flutterVoiceService": "Flutter lokal stemmetjeneste", - "flutterVoiceServiceInfo": "Lokal stemmetjeneste på enheten, kan brukes uten internettforbindelse", + "flutterVoiceServiceInfo": + "Lokal stemmetjeneste på enheten, kan brukes uten internettforbindelse", 'timbreService': 'Timbre-tjeneste', 'timbreServiceInfo': 'Velg tjeneste for talesyntese med timbre', 'defaultTimbre': 'Standard timbre', @@ -634,7 +681,8 @@ const Map nbNO = { 'pleaseRead': 'Vennligst les høyt', 'completeRecording': 'Fullfør opptak', "firmwareUpgrade": "Firmware-oppgradering", - "bleHeadsetFirmwareUpgrade": "Oppgradering av firmware-versjon for BLE-hodesett", + "bleHeadsetFirmwareUpgrade": + "Oppgradering av firmware-versjon for BLE-hodesett", "deviceManagement": "Enhetsadministrasjon", "manageConnectedDevices": "Administrer tilkoblede Bluetooth-enheter", @@ -652,7 +700,8 @@ const Map nbNO = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Sanntids talechat", - "realtimeVoiceChatInfo": "Opplev intelligent taleinteraksjonsfunksjon (funksjonsforhåndsvisning)", + "realtimeVoiceChatInfo": + "Opplev intelligent taleinteraksjonsfunksjon (funksjonsforhåndsvisning)", "loading": "Laster inn...", //设备管理页面 @@ -667,7 +716,8 @@ const Map nbNO = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -678,7 +728,8 @@ const Map nbNO = { "inputMessage": "Skriv melding...", "imListening": "Lytter...", "canStartTalking": "Du kan begynne å snakke", - "addQuestionAboutImage": "Legg til et spørsmål eller en beskrivelse av bildet...", + "addQuestionAboutImage": + "Legg til et spørsmål eller en beskrivelse av bildet...", "summarizeImageContent": "Oppsummer bildets innhold", "extractImageText": "Trekk ut tekst fra bildet", "translateImageText": "Oversett tekst i bildet", @@ -721,10 +772,14 @@ const Map nbNO = { '• Å kontrollere øreproppfunksjoner\n\n' 'Hvordan kan jeg hjelpe deg?', 'microphonePermission': 'Mikrofon', - 'voiceRecognitionPermissionText': 'Talegjenkjenning krever tilgang til mikrofon.', - 'voiceTranslationPermissionText': 'Talegjenkjenning og oversettelse krever tilgang til mikrofon.', - 'phoneCallPermissionText': 'Å ringe krever tilgang til mikrofon for taleanrop.', - 'permissionDeniedText': 'Du har permanent nektet mikrofontillatelse, gå til systeminnstillingene for å aktivere den.', + 'voiceRecognitionPermissionText': + 'Talegjenkjenning krever tilgang til mikrofon.', + 'voiceTranslationPermissionText': + 'Talegjenkjenning og oversettelse krever tilgang til mikrofon.', + 'phoneCallPermissionText': + 'Å ringe krever tilgang til mikrofon for taleanrop.', + 'permissionDeniedText': + 'Du har permanent nektet mikrofontillatelse, gå til systeminnstillingene for å aktivere den.', 'startVoiceInput': 'Start taleinndata', 'startPhoneCallMode': 'Start anropsmodus, start taleinndata', @@ -747,7 +802,8 @@ const Map nbNO = { 'privacyRelated': 'Personvernrelatert', 'copyrightViolation': 'Krenkelse av min opphavsrett, omdømme, etc.', 'other': 'Annet', - 'reportDescriptionHint': 'Vi vil gjerne vite hvorfor du rapporterer, du kan beskrive problemet du opplevde.', + 'reportDescriptionHint': + 'Vi vil gjerne vite hvorfor du rapporterer, du kan beskrive problemet du opplevde.', //'submit': '提交', //Message_bubble @@ -778,15 +834,24 @@ const Map nbNO = { 'highest': 'Høyeste', 'lowest': 'Laveste', 'futureForecast': 'Fremtidig varsel', - 'hotWeatherTip': 'I dag er det varmt, vær forsiktig med heteslag og drikk rikelig med vann', - 'coldWeatherTip': 'I dag er temperaturen lav, kle deg varmt når du går ut for å unngå forkjølelse', - 'rainyWeatherTip': 'I dag regner det, ta med en paraply når du går ut og vær forsiktig', - 'snowyWeatherTip': 'I dag snør det, veien er glatt, vær forsiktig og kle deg varmt', - 'foggyWeatherTip': 'I dag er det tåke, sikten er dårlig, bruk en maske når du går ut', - 'windyWeatherTip': 'I dag er det mye vind, vær forsiktig når du går ut og sikre eiendelene dine', - 'sunnyWeatherTip': 'I dag er det sol og sterk UV-stråling, bruk solkrem når du går ut', - 'temperatureDifferenceTip': 'I dag er det stor temperaturforskjell mellom dag og natt, tilpass klærne', - 'comfortableWeatherTip': 'I dag er været behagelig, en flott tid for utendørsaktiviteter', + 'hotWeatherTip': + 'I dag er det varmt, vær forsiktig med heteslag og drikk rikelig med vann', + 'coldWeatherTip': + 'I dag er temperaturen lav, kle deg varmt når du går ut for å unngå forkjølelse', + 'rainyWeatherTip': + 'I dag regner det, ta med en paraply når du går ut og vær forsiktig', + 'snowyWeatherTip': + 'I dag snør det, veien er glatt, vær forsiktig og kle deg varmt', + 'foggyWeatherTip': + 'I dag er det tåke, sikten er dårlig, bruk en maske når du går ut', + 'windyWeatherTip': + 'I dag er det mye vind, vær forsiktig når du går ut og sikre eiendelene dine', + 'sunnyWeatherTip': + 'I dag er det sol og sterk UV-stråling, bruk solkrem når du går ut', + 'temperatureDifferenceTip': + 'I dag er det stor temperaturforskjell mellom dag og natt, tilpass klærne', + 'comfortableWeatherTip': + 'I dag er været behagelig, en flott tid for utendørsaktiviteter', "monday": "Man", "tuesday": "Tir", "wednesday": "Ons", @@ -838,21 +903,28 @@ const Map nbNO = { "logout": "Logg ut", "logoutTips": "Er du sikker på at du vil logge ut av den nåværende kontoen?", 'deleteAccount': 'Slett konto', - 'deleteAccountTips': 'Er du sikker på at du vil slette kontoen din permanent? Denne handlingen kan ikke angres.', + 'deleteAccountTips': + 'Er du sikker på at du vil slette kontoen din permanent? Denne handlingen kan ikke angres.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Nettverkstilkobling mislyktes, sjekk nettverksinnstillingene og prøv igjen', - 'serverTemporarilyUnavailable': 'Serveren er midlertidig utilgjengelig, prøv igjen senere', - 'loginExpiredPleaseRelogin': 'Sesjonen din er utløpt, vennligst logg inn på nytt', - 'noPermissionForThisOperation': 'Du har ikke tillatelse til å utføre denne operasjonen', + 'networkConnectionFailed': + 'Nettverkstilkobling mislyktes, sjekk nettverksinnstillingene og prøv igjen', + 'serverTemporarilyUnavailable': + 'Serveren er midlertidig utilgjengelig, prøv igjen senere', + 'loginExpiredPleaseRelogin': + 'Sesjonen din er utløpt, vennligst logg inn på nytt', + 'noPermissionForThisOperation': + 'Du har ikke tillatelse til å utføre denne operasjonen', 'requestedResourceNotFound': 'Den forespurte ressursen ble ikke funnet', - 'imageProcessingFailedPleaseReselect': 'Bildebehandling mislyktes, velg et annet bilde', + 'imageProcessingFailedPleaseReselect': + 'Bildebehandling mislyktes, velg et annet bilde', 'operationFailedPleaseRetry': 'Operasjonen mislyktes, prøv igjen', 'serverReturnedError': 'Serveren returnerte en feil', 'serverError': 'Serverfeil', - 'networkConnectionFailedCheckSettings': 'Nettverkstilkobling mislyktes, sjekk nettverksinnstillingene', + 'networkConnectionFailedCheckSettings': + 'Nettverkstilkobling mislyktes, sjekk nettverksinnstillingene', 'serverInternalErrorRetryLater': 'Intern serverfeil, prøv igjen senere', // Profile 用户交互 @@ -875,10 +947,12 @@ const Map nbNO = { 'thirdPartyLogoutSuccess': 'Utlogging fra tredjepart vellykket', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Utlogging fra tredjepart mislyktes', // 第三方登录退出失败 'signOutProcessError': 'Det oppstod en feil under utloggingen', // 登出过程发生错误 - 'deleteAccountProcessError': 'Det oppstod en feil under sletting av kontoen', // 删除账号过程发生错误 + 'deleteAccountProcessError': + 'Det oppstod en feil under sletting av kontoen', // 删除账号过程发生错误 'userDataClearSuccess': 'Brukerdata fjernet', // 用户数据清理成功 'allUserDataClearSuccess': 'Alle brukerdata fjernet', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Kontotjenesten er initialisert', // AccountService 已初始化 + 'accountServiceInitialized': + 'Kontotjenesten er initialisert', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Henting av tillatelsesstatus mislyktes', @@ -901,9 +975,12 @@ const Map nbNO = { 'locationInfo': 'Posisjonsinformasjon', 'phonePermissionDesc': 'Brukes for å ringe', 'smsPermissionDesc': 'Brukes for å sende SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Brukes for å opprette kalenderhendelser og påminnelser', - 'calendarFullAccessPermissionDesc': 'Brukes for å lese og administrere kalenderhendelser og påminnelser', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Brukes for å opprette kalenderhendelser og påminnelser', + 'calendarFullAccessPermissionDesc': + 'Brukes for å lese og administrere kalenderhendelser og påminnelser', 'locationPermissionDesc': 'Brukes for å hente nåværende posisjonsinformasjon', 'appFunctionNeeds': 'Appfunksjonen trenger', 'authorized': 'Autorisert', @@ -915,43 +992,67 @@ const Map nbNO = { 'permissionRequestError': 'Feil ved forespørsel om tillatelse', 'phonePermissionDetailDesc': 'Ringefunksjonen krever telefontillatelse', 'smsPermissionDetailDesc': 'Send SMS-funksjonen krever SMS-tillatelse', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Å opprette kalenderhendelser krever skrivetilgang til kalenderen', - 'calendarFullAccessPermissionDetailDesc': 'Å administrere kalenderhendelser krever full tilgang til kalenderen', - 'locationPermissionDetailDesc': 'Å hente posisjonsinformasjon krever posisjonstillatelse', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Å opprette kalenderhendelser krever skrivetilgang til kalenderen', + 'calendarFullAccessPermissionDetailDesc': + 'Å administrere kalenderhendelser krever full tilgang til kalenderen', + 'locationPermissionDetailDesc': + 'Å hente posisjonsinformasjon krever posisjonstillatelse', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Appen trenger denne tillatelsen for full funksjonalitet', - 'permanentDenialText': 'Du har permanent nektet {permission}-tillatelse, gå til appinnstillingene for å aktivere den', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Appen trenger denne tillatelsen for full funksjonalitet', + 'permanentDenialText': + 'Du har permanent nektet {permission}-tillatelse, gå til appinnstillingene for å aktivere den', 'goToSettings': 'Gå til innstillinger', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1062,8 @@ const Map nbNO = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1072,10 @@ const Map nbNO = { 'updateNow': 'Oppdater nå', // 立即更新按钮 'checkUpdate': 'Se etter oppdatering', // 检查更新按钮 'updateFailed': 'Oppdatering mislyktes', // 更新失败提示 - 'cannotOpenAppStore': 'Kan ikke åpne appbutikken, gå til appbutikken manuelt for å oppdatere', // 无法打开应用商店提示 - 'updateErrorRetry': 'Det oppstod en feil under oppdateringen, prøv igjen senere', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Kan ikke åpne appbutikken, gå til appbutikken manuelt for å oppdatere', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Det oppstod en feil under oppdateringen, prøv igjen senere', // 更新错误重试提示 //国家列表 "邮箱": "E-post", @@ -1107,7 +1211,8 @@ const Map nbNO = { "selectTargetLanguage": "Velg målspråk", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1228,12 @@ const Map nbNO = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Tøm historikk", - "clearHistoryConfirm": "Er du sikker på at du vil tømme all oversettelseshistorikk? Denne handlingen kan ikke angres.", + "clearHistoryConfirm": + "Er du sikker på at du vil tømme all oversettelseshistorikk? Denne handlingen kan ikke angres.", "unknownLanguage": "Ukjent språk", "deleteSessionRecord": "Slett sesjonsopptak", - "deleteSessionConfirm": "Er du sikker på at du vil slette alle oversettelsesopptak for denne sesjonen? Denne handlingen kan ikke angres.", + "deleteSessionConfirm": + "Er du sikker på at du vil slette alle oversettelsesopptak for denne sesjonen? Denne handlingen kan ikke angres.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1265,20 @@ const Map nbNO = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1301,8 @@ const Map nbNO = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Originalt opptak", "recordSummary": "Opptakssammendrag", - "clickToGenerateSummary": "Klikk på knappen nedenfor for å generere et sesjonssammendrag", + "clickToGenerateSummary": + "Klikk på knappen nedenfor for å generere et sesjonssammendrag", "summaryContent": "Sammendragsinnhold", "copied": "Kopiert", "summaryCopiledToClipboard": "Sammendraget er kopiert til utklippstavlen", @@ -1197,9 +1310,11 @@ const Map nbNO = { "summaryGenerated": "Sammendrag generert", "generating": "Genererer...", "regenerate": "Generer på nytt", - "summaryTimeoutMessage": "Forespørselen om å generere sammendrag utløp, muligens på grunn av nettverksproblemer eller travel server.", + "summaryTimeoutMessage": + "Forespørselen om å generere sammendrag utløp, muligens på grunn av nettverksproblemer eller travel server.", "deleteTranslationRecord": "Slett oversettelsesopptak", - "deleteTranslationConfirm": "Er du sikker på at du vil slette dette oversettelsesopptaket? Denne handlingen kan ikke angres.", + "deleteTranslationConfirm": + "Er du sikker på at du vil slette dette oversettelsesopptaket? Denne handlingen kan ikke angres.", "originalText": "Originaltekst", "translatedText": "Oversatt tekst", "sessionSummary": "Sesjonssammendrag", @@ -1227,19 +1342,25 @@ const Map nbNO = { // 配对状态文本 "readyToPair": "Klar til å pare", "preparingPairingEnvironment": "Forbereder paringsmiljø...", - "connectDeepSoundViaSystemBluetooth": "Koble først til Voitrans-enheten via systemets Bluetooth", + "connectDeepSoundViaSystemBluetooth": + "Koble først til Voitrans-enheten via systemets Bluetooth", "deviceBindingConfirm": "Bekreftelse av enhetsbinding...", "establishingDeviceAssociation": "Oppretter enhetsassosiasjon...", "waitingCompletePairing": "Vennligst vent, fullfører paring...", - "pairingSuccessRedirecting": "Paring vellykket! Omdirigerer til startsiden...", + "pairingSuccessRedirecting": + "Paring vellykket! Omdirigerer til startsiden...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Sørg for at du er koblet til en Voitrans-enhet", - "deviceAlreadyBoundToOtherAccount": "Denne enheten er allerede bundet til en annen konto", + "ensureConnectedDeepSoundDevice": + "Sørg for at du er koblet til en Voitrans-enhet", + "deviceAlreadyBoundToOtherAccount": + "Denne enheten er allerede bundet til en annen konto", "deviceAssociationFailed": "Enhetsassosiasjon mislyktes, prøv igjen", - "scanTimeoutEnsureDeviceNearby": "Skanne-tidsavbrudd, sørg for at enheten er i nærheten", + "scanTimeoutEnsureDeviceNearby": + "Skanne-tidsavbrudd, sørg for at enheten er i nærheten", "networkError": "Nettverksfeil", - "authorizationFailedCheckCode": "Autorisasjon mislyktes, sjekk om autorisasjonskoden er riktig", + "authorizationFailedCheckCode": + "Autorisasjon mislyktes, sjekk om autorisasjonskoden er riktig", "pairingFailedRetry": "Paring mislyktes, prøv igjen", // 配对控制器相关 @@ -1248,7 +1369,8 @@ const Map nbNO = { 'deviceDisconnected': 'Enheten er frakoblet', 'readyToStartPairing': 'Klar til å starte paring', 'checkingEnvironment': 'Sjekker miljø...', - 'ensureHeadsetOnAndPairingMode': 'Sørg for at hodesettet er på og i paringsmodus', + 'ensureHeadsetOnAndPairingMode': + 'Sørg for at hodesettet er på og i paringsmodus', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1270,15 +1392,20 @@ const Map nbNO = { 'bleConnectionTimeoutRetry': 'BLE-tilkoblingstidsavbrudd, prøv igjen', 'blePairingStartupFailed': 'Start av BLE-paring mislyktes', 'bleConnectionFailed': 'BLE-tilkobling mislyktes', - 'deviceAuthorizationFailedCheckCode': 'Enhetsautorisasjon mislyktes, sjekk autorisasjonskoden', + 'deviceAuthorizationFailedCheckCode': + 'Enhetsautorisasjon mislyktes, sjekk autorisasjonskoden', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1291,10 +1418,12 @@ const Map nbNO = { 'contactHint': 'E-post/telefon, slik at vi kan kontakte deg', 'submit': 'Send inn', 'feedbackSubmitSuccess': 'Tilbakemelding sendt, takk for din tilbakemelding!', - 'feedbackSubmitFailed': 'Innsending av tilbakemelding mislyktes, prøv igjen senere', + 'feedbackSubmitFailed': + 'Innsending av tilbakemelding mislyktes, prøv igjen senere', // OTA升级模块 - "upgradeExitConfirm": "Oppgradering pågår, å avslutte vil avbryte prosessen, er du sikker på at du vil avslutte?", + "upgradeExitConfirm": + "Oppgradering pågår, å avslutte vil avbryte prosessen, er du sikker på at du vil avslutte?", "deviceModel": "Enhetsmodell", "unknownDevice": "Ukjent enhet", "currentFirmwareVersion": "Nåværende firmware-versjon", @@ -1307,14 +1436,18 @@ const Map nbNO = { "retryConnection": "Prøv å koble til på nytt", "ota_updateNow": "Oppdater nå", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "Hold enheten tilkoblet, ikke lukk appen", "doNotDisconnect": "Ikke koble fra", "charging": "Lader", "updateContent": "Oppdateringsinnhold", - "removeEarbudsEnsureBattery": "Ta ut begge øreproppene og sørg for at batterinivået på begge er over 20 %", + "removeEarbudsEnsureBattery": + "Ta ut begge øreproppene og sørg for at batterinivået på begge er over 20 %", // 音乐列表页面 "noMusic": "Ingen musikk", // 暂无音乐 @@ -1376,8 +1509,10 @@ const Map nbNO = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/nl_nl.dart b/lib/core/translations/language/nl_nl.dart index 9f077e584..0f3297e05 100644 --- a/lib/core/translations/language/nl_nl.dart +++ b/lib/core/translations/language/nl_nl.dart @@ -33,6 +33,7 @@ const Map nlNL = { "spanish": "Spaans", "portuguese": "Portugees", "traditionalChinese": "Traditioneel Chinees", + "traditionalChineseHK": "Traditioneel Chinees (Hongkong)", "japanese": "Japans", "korean": "Koreaans", "french": "Frans", @@ -90,7 +91,8 @@ const Map nlNL = { "tip": "Tip", "pleaseEnterCompleteCode": "Voer de volledige verificatiecode in", "loginFailed": "Inloggen mislukt, probeer het opnieuw", - 'pleaseAcceptPrivacyPolicy': 'Lees en accepteer eerst het Privacybeleid en de Gebruikersovereenkomst', + 'pleaseAcceptPrivacyPolicy': + 'Lees en accepteer eerst het Privacybeleid en de Gebruikersovereenkomst', "enterVerificationCode": "Voer verificatiecode in", "verificationCodeSentTo": "Verificatiecode verzonden naar", "resendVerificationCode": "Verificatiecode opnieuw verzenden", @@ -99,7 +101,8 @@ const Map nlNL = { // 隐私政策弹窗 "loginDeclaration": "Voitrans Verklaring", // Voitrans 声明 - "welcomeToThisApp": "Welkom bij Voitrans, lees aandachtig door", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Welkom bij Voitrans, lees aandachtig door", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +118,30 @@ const Map nlNL = { "signal": "Signaal", "deviceId": "Apparaat-ID", "firmwareVersion": "Firmwareversie", - "disconnectedDevice": "Geen apparaat verbonden, klik op de onderstaande knop om te verbinden", + "disconnectedDevice": + "Geen apparaat verbonden, klik op de onderstaande knop om te verbinden", "connectDevice": "Apparaat verbinden", "topAiExperiences": "Top AI-ervaringen", "aiAssistant": "Alles-in-één AI-assistent", - "aiAssistantInfo": "Exclusieve 24/7 consultant, beantwoordt vragen, geeft suggesties", + "aiAssistantInfo": + "Exclusieve 24/7 consultant, beantwoordt vragen, geeft suggesties", "interpretation": "Simultaanvertolking", - "simultaneousInterpretationInfo": "Realtime vertaling in meer dan 80 talen, zorgeloos reizen naar het buitenland", + "simultaneousInterpretationInfo": + "Realtime vertaling in meer dan 80 talen, zorgeloos reizen naar het buitenland", "aiCompanion": "Familiebegeleider", "aiCompanionInfo": "Begrijpt u, warm gezelschap", "homeSlogan": "De wereld verbinden, het geluid overstijgen", - "turnEarphones": "Open de oplaadcase van de oortjes en plaats de oortjes in uw oren", + "turnEarphones": + "Open de oplaadcase van de oortjes en plaats de oortjes in uw oren", "currentlyConnected": "Momenteel verbonden:", "unsystemSetup": "Ga naar systeeminstellingen", "talkLater": "Later", "initializing": "Initialiseren...", - "bluetoothInitializationFailure": "Initialisatie van Bluetooth-service mislukt", + "bluetoothInitializationFailure": + "Initialisatie van Bluetooth-service mislukt", "checkingPermissions": "Toestemmingen controleren...", - "lackPermissions": "Bluetooth-toestemmingen ontbreken en zijn nodig om locatie toegang te krijgen", + "lackPermissions": + "Bluetooth-toestemmingen ontbreken en zijn nodig om locatie toegang te krijgen", "searchingDevice": "Apparaten zoeken...", "findConnectedDevice": "Verbonden apparaat gevonden", "notFound": "Geen verbonden Bluetooth-apparaat gevonden", @@ -164,7 +173,8 @@ const Map nlNL = { "exploreAi": "Ontdek de AI-functies die door Voitrans worden aangeboden", "aiFunction": "AI-functies", "allRoundAssistant": "Alles-in-één assistent", - "allRoundAssistantInfo": "Helpt u bij het oplossen van verschillende problemen", + "allRoundAssistantInfo": + "Helpt u bij het oplossen van verschillende problemen", "simultaneousTranslation": "Simultaanvertolking", "faceToFaceTranslation": "Face-to-face vertaling", 'audioVideoTranslation': 'Audio- en videovertaling', @@ -175,7 +185,8 @@ const Map nlNL = { "healthConsultant": "Multifunctionele AI-chat", "healthConsultantInfo": "Biedt meer AI-chatfuncties", "conferenceAssistant": "Assistent voor zakelijke bijeenkomsten", - "conferenceAssistantInfo": "Realtime notuleren van vergaderingen, meertalige vertaling", + "conferenceAssistantInfo": + "Realtime notuleren van vergaderingen, meertalige vertaling", "usageStats": "Gebruikstatistieken", "usageStatsInfo": " Bekijk de gebruikstatistieken van uw applicatie", "scene": "Scenario", @@ -218,7 +229,8 @@ const Map nlNL = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +286,10 @@ const Map nlNL = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +298,35 @@ const Map nlNL = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +335,10 @@ const Map nlNL = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +353,8 @@ const Map nlNL = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Overslaan", @@ -355,7 +380,8 @@ const Map nlNL = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +431,8 @@ const Map nlNL = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +487,54 @@ const Map nlNL = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +546,8 @@ const Map nlNL = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +567,8 @@ const Map nlNL = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +617,8 @@ const Map nlNL = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +643,8 @@ const Map nlNL = { "cloudSync": "Cloud-synchronisatiepayering", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Verbonden apparaat:", "accountId": "Account-ID:", "systemSetting": "Systeeminstellingen", @@ -621,9 +666,11 @@ const Map nlNL = { "voiceServiceInfo": "Selecteer spraakherkenning- en synthese-service", "selectVoiceService": "Selecteer stemdienst", "azureVoiceService": "Azure Stemdienst", - "azureVoiceServiceInfo": "Microsoft's cloud-stemdienst, ondersteunt hoogwaardige spraaksynthese en -herkenning", + "azureVoiceServiceInfo": + "Microsoft's cloud-stemdienst, ondersteunt hoogwaardige spraaksynthese en -herkenning", "flutterVoiceService": "Flutter Lokale Stemdienst", - "flutterVoiceServiceInfo": "Lokale stemdienst van het apparaat, kan zonder internetverbinding worden gebruikt", + "flutterVoiceServiceInfo": + "Lokale stemdienst van het apparaat, kan zonder internetverbinding worden gebruikt", 'timbreService': 'Timbre-dienst', 'timbreServiceInfo': 'Selecteer timbre-spraak-synthese-service', 'defaultTimbre': 'Standaard Timbre', @@ -652,7 +699,8 @@ const Map nlNL = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Realtime spraakchat", - "realtimeVoiceChatInfo": "Ervaar de intelligente spraakinteractiefunctie (functievoorbeeld)", + "realtimeVoiceChatInfo": + "Ervaar de intelligente spraakinteractiefunctie (functievoorbeeld)", "loading": "Laden...", //设备管理页面 @@ -667,7 +715,8 @@ const Map nlNL = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -678,7 +727,8 @@ const Map nlNL = { "inputMessage": "Voer bericht in...", "imListening": "Ik luister...", "canStartTalking": "U kunt beginnen met praten", - "addQuestionAboutImage": "Voeg een vraag of beschrijving over de afbeelding toe...", + "addQuestionAboutImage": + "Voeg een vraag of beschrijving over de afbeelding toe...", "summarizeImageContent": "Vat de inhoud van de afbeelding samen", "extractImageText": "Extraheer tekst uit de afbeelding", "translateImageText": "Vertaal tekst in de afbeelding", @@ -721,10 +771,14 @@ const Map nlNL = { '• Oortjesfuncties bedienen\n\n' 'Hoe kan ik u helpen?', 'microphonePermission': 'Microfoon', - 'voiceRecognitionPermissionText': 'Spraakherkenning vereist microfoontoegang.', - 'voiceTranslationPermissionText': 'Spraakherkenning en -vertaling vereisen microfoontoegang.', - 'phoneCallPermissionText': 'Bellen vereist microfoontoegang voor spraakoproepen.', - 'permissionDeniedText': 'U hebt de microfoontoestemming permanent geweigerd, ga naar de systeeminstellingen om deze in te schakelen.', + 'voiceRecognitionPermissionText': + 'Spraakherkenning vereist microfoontoegang.', + 'voiceTranslationPermissionText': + 'Spraakherkenning en -vertaling vereisen microfoontoegang.', + 'phoneCallPermissionText': + 'Bellen vereist microfoontoegang voor spraakoproepen.', + 'permissionDeniedText': + 'U hebt de microfoontoestemming permanent geweigerd, ga naar de systeeminstellingen om deze in te schakelen.', 'startVoiceInput': 'Start spraakinvoer', 'startPhoneCallMode': 'Start belmodus, start spraakinvoer', @@ -738,7 +792,8 @@ const Map nlNL = { 'report': 'Rapporteren', 'submitSuccess': 'Succesvol ingediend', 'submitFailed': 'Indienen mislukt', - 'reportSubmitted': 'Rapport ingediend, we zullen het zo snel mogelijk verwerken', + 'reportSubmitted': + 'Rapport ingediend, we zullen het zo snel mogelijk verwerken', //'networkError': '网络错误,请稍后重试', 'harmfulUnsafe': 'Schadelijk/Onveilig', 'pornographicVulgar': 'Pornografisch/Vulgair', @@ -747,7 +802,8 @@ const Map nlNL = { 'privacyRelated': 'Privacygerelateerd', 'copyrightViolation': 'Schendt mijn auteursrecht, reputatie, enz.', 'other': 'Overig', - 'reportDescriptionHint': 'We willen weten waarom u rapporteert, u kunt het probleem dat u tegenkwam beschrijven.', + 'reportDescriptionHint': + 'We willen weten waarom u rapporteert, u kunt het probleem dat u tegenkwam beschrijven.', //'submit': '提交', //Message_bubble @@ -779,14 +835,22 @@ const Map nlNL = { 'lowest': 'Laagste', 'futureForecast': 'Toekomstige voorspelling', 'hotWeatherTip': 'Vandaag is het heet, let op zonnesteek en drink veel water', - 'coldWeatherTip': 'Vandaag is de temperatuur laag, kleed u warm aan als u naar buiten gaat om verkoudheid te voorkomen', - 'rainyWeatherTip': 'Vandaag regent het, neem een paraplu mee als u naar buiten gaat en wees voorzichtig', - 'snowyWeatherTip': 'Vandaag sneeuwt het, de weg is glad, wees voorzichtig en kleed u warm aan', - 'foggyWeatherTip': 'Vandaag is het mistig, het zicht is slecht, draag een masker als u naar buiten gaat', - 'windyWeatherTip': 'Vandaag is het winderig, wees voorzichtig als u naar buiten gaat en zet uw spullen vast', - 'sunnyWeatherTip': 'Vandaag is het zonnig en de UV-straling is sterk, gebruik zonnebrandcrème als u naar buiten gaat', - 'temperatureDifferenceTip': 'Vandaag is er een groot temperatuurverschil tussen dag en nacht, pas uw kleding aan', - 'comfortableWeatherTip': 'Vandaag is het aangenaam weer, een goede tijd voor buitenactiviteiten', + 'coldWeatherTip': + 'Vandaag is de temperatuur laag, kleed u warm aan als u naar buiten gaat om verkoudheid te voorkomen', + 'rainyWeatherTip': + 'Vandaag regent het, neem een paraplu mee als u naar buiten gaat en wees voorzichtig', + 'snowyWeatherTip': + 'Vandaag sneeuwt het, de weg is glad, wees voorzichtig en kleed u warm aan', + 'foggyWeatherTip': + 'Vandaag is het mistig, het zicht is slecht, draag een masker als u naar buiten gaat', + 'windyWeatherTip': + 'Vandaag is het winderig, wees voorzichtig als u naar buiten gaat en zet uw spullen vast', + 'sunnyWeatherTip': + 'Vandaag is het zonnig en de UV-straling is sterk, gebruik zonnebrandcrème als u naar buiten gaat', + 'temperatureDifferenceTip': + 'Vandaag is er een groot temperatuurverschil tussen dag en nacht, pas uw kleding aan', + 'comfortableWeatherTip': + 'Vandaag is het aangenaam weer, een goede tijd voor buitenactiviteiten', "monday": "Ma", "tuesday": "Di", "wednesday": "Wo", @@ -838,22 +902,29 @@ const Map nlNL = { "logout": "Uitloggen", "logoutTips": "Weet u zeker dat u wilt uitloggen bij het huidige account?", 'deleteAccount': 'Account verwijderen', - 'deleteAccountTips': 'Weet u zeker dat u uw account permanent wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.', + 'deleteAccountTips': + 'Weet u zeker dat u uw account permanent wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Netwerkverbinding mislukt, controleer uw netwerkinstellingen en probeer het opnieuw', - 'serverTemporarilyUnavailable': 'De server is tijdelijk niet beschikbaar, probeer het later opnieuw', + 'networkConnectionFailed': + 'Netwerkverbinding mislukt, controleer uw netwerkinstellingen en probeer het opnieuw', + 'serverTemporarilyUnavailable': + 'De server is tijdelijk niet beschikbaar, probeer het later opnieuw', 'loginExpiredPleaseRelogin': 'Uw sessie is verlopen, log opnieuw in', - 'noPermissionForThisOperation': 'U hebt geen toestemming om deze bewerking uit te voeren', + 'noPermissionForThisOperation': + 'U hebt geen toestemming om deze bewerking uit te voeren', 'requestedResourceNotFound': 'De gevraagde bron is niet gevonden', - 'imageProcessingFailedPleaseReselect': 'Beeldverwerking mislukt, selecteer een andere afbeelding', + 'imageProcessingFailedPleaseReselect': + 'Beeldverwerking mislukt, selecteer een andere afbeelding', 'operationFailedPleaseRetry': 'Bewerking mislukt, probeer het opnieuw', 'serverReturnedError': 'De server heeft een fout geretourneerd', 'serverError': 'Serverfout', - 'networkConnectionFailedCheckSettings': 'Netwerkverbinding mislukt, controleer uw netwerkinstellingen', - 'serverInternalErrorRetryLater': 'Interne serverfout, probeer het later opnieuw', + 'networkConnectionFailedCheckSettings': + 'Netwerkverbinding mislukt, controleer uw netwerkinstellingen', + 'serverInternalErrorRetryLater': + 'Interne serverfout, probeer het later opnieuw', // Profile 用户交互 //'error': '错误', @@ -867,18 +938,25 @@ const Map nlNL = { 'loggedOut': 'Succesvol uitgelogd', 'logoutFailedRetry': 'Uitloggen mislukt, probeer het opnieuw', 'accountPermanentlyDeleted': 'Account is permanent verwijderd', - 'deleteAccountFailedRetry': 'Verwijderen van account mislukt, probeer het opnieuw', + 'deleteAccountFailedRetry': + 'Verwijderen van account mislukt, probeer het opnieuw', // 账号服务相关 'clearUserDataFailed': 'Wissen van gebruikersgegevens mislukt', // 清理用户数据失败 - 'deleteUserDataFailed': 'Verwijderen van gebruikersgegevens mislukt', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'Uitloggen bij derde partij succesvol', // 第三方登录退出成功 + 'deleteUserDataFailed': + 'Verwijderen van gebruikersgegevens mislukt', // 删除用户数据失败 + 'thirdPartyLogoutSuccess': + 'Uitloggen bij derde partij succesvol', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Uitloggen bij derde partij mislukt', // 第三方登录退出失败 - 'signOutProcessError': 'Er is een fout opgetreden tijdens het uitloggen', // 登出过程发生错误 - 'deleteAccountProcessError': 'Er is een fout opgetreden tijdens het verwijderen van het account', // 删除账号过程发生错误 + 'signOutProcessError': + 'Er is een fout opgetreden tijdens het uitloggen', // 登出过程发生错误 + 'deleteAccountProcessError': + 'Er is een fout opgetreden tijdens het verwijderen van het account', // 删除账号过程发生错误 'userDataClearSuccess': 'Gebruikersgegevens succesvol gewist', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Alle gebruikersgegevens succesvol gewist', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Accountservice is geïnitialiseerd', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Alle gebruikersgegevens succesvol gewist', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Accountservice is geïnitialiseerd', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Ophalen van toestemmingsstatus mislukt', @@ -900,58 +978,89 @@ const Map nlNL = { 'calendarFullAccess': 'Volledige kalendertoegang', 'locationInfo': 'Locatie-informatie', 'phonePermissionDesc': 'Gebruikt voor de belfunctie', - 'smsPermissionDesc': 'Gebruikt voor de functie voor het verzenden van sms-berichten', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Gebruikt voor het maken van kalenderafspraken en herinneringen', - 'calendarFullAccessPermissionDesc': 'Gebruikt voor het lezen en beheren van kalenderafspraken en herinneringen', - 'locationPermissionDesc': 'Gebruikt voor het ophalen van de huidige locatie-informatie', + 'smsPermissionDesc': + 'Gebruikt voor de functie voor het verzenden van sms-berichten', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Gebruikt voor het maken van kalenderafspraken en herinneringen', + 'calendarFullAccessPermissionDesc': + 'Gebruikt voor het lezen en beheren van kalenderafspraken en herinneringen', + 'locationPermissionDesc': + 'Gebruikt voor het ophalen van de huidige locatie-informatie', 'appFunctionNeeds': 'App-functie vereist', 'authorized': 'Geautoriseerd', 'unauthorized': 'Niet geautoriseerd', - 'needOpenInSystemSettings': 'Moet worden ingeschakeld in de systeeminstellingen', + 'needOpenInSystemSettings': + 'Moet worden ingeschakeld in de systeeminstellingen', 'partialAuthorization': 'Gedeeltelijke autorisatie', 'unknownStatus': 'Onbekende status', 'permissionGranted': 'Toestemming verleend', 'permissionRequestError': 'Fout bij het aanvragen van toestemming', 'phonePermissionDetailDesc': 'De belfunctie vereist telefoontoestemming', - 'smsPermissionDetailDesc': 'De functie voor het verzenden van sms-berichten vereist sms-toestemming', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Het maken van kalenderafspraken vereist schrijftoestemming voor de kalender', - 'calendarFullAccessPermissionDetailDesc': 'Het beheren van kalenderafspraken vereist volledige kalendertoegang', - 'locationPermissionDetailDesc': 'Het ophalen van locatie-informatie vereist locatietoestemming', + 'smsPermissionDetailDesc': + 'De functie voor het verzenden van sms-berichten vereist sms-toestemming', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Het maken van kalenderafspraken vereist schrijftoestemming voor de kalender', + 'calendarFullAccessPermissionDetailDesc': + 'Het beheren van kalenderafspraken vereist volledige kalendertoegang', + 'locationPermissionDetailDesc': + 'Het ophalen van locatie-informatie vereist locatietoestemming', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'De app heeft deze toestemming nodig voor volledige functionaliteit', - 'permanentDenialText': 'U hebt de toestemming {permission} permanent geweigerd, ga naar de app-instellingen om deze in te schakelen', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'De app heeft deze toestemming nodig voor volledige functionaliteit', + 'permanentDenialText': + 'U hebt de toestemming {permission} permanent geweigerd, ga naar de app-instellingen om deze in te schakelen', 'goToSettings': 'Ga naar instellingen', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1070,8 @@ const Map nlNL = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1080,10 @@ const Map nlNL = { 'updateNow': 'Nu bijwerken', // 立即更新按钮 'checkUpdate': 'Controleren op update', // 检查更新按钮 'updateFailed': 'Update mislukt', // 更新失败提示 - 'cannotOpenAppStore': 'Kan de app store niet openen, ga handmatig naar de app store om bij te werken', // 无法打开应用商店提示 - 'updateErrorRetry': 'Er is een fout opgetreden tijdens het bijwerken, probeer het later opnieuw', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Kan de app store niet openen, ga handmatig naar de app store om bij te werken', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Er is een fout opgetreden tijdens het bijwerken, probeer het later opnieuw', // 更新错误重试提示 //国家列表 "邮箱": "E-mail", @@ -1107,7 +1219,8 @@ const Map nlNL = { "selectTargetLanguage": "Selecteer doeltaal", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1236,12 @@ const Map nlNL = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Geschiedenis wissen", - "clearHistoryConfirm": "Weet u zeker dat u alle vertaalgeschiedenis wilt wissen? Deze actie kan niet ongedaan worden gemaakt.", + "clearHistoryConfirm": + "Weet u zeker dat u alle vertaalgeschiedenis wilt wissen? Deze actie kan niet ongedaan worden gemaakt.", "unknownLanguage": "Onbekende taal", "deleteSessionRecord": "Sessie-opname verwijderen", - "deleteSessionConfirm": "Weet u zeker dat u alle vertaalopnamen voor deze sessie wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.", + "deleteSessionConfirm": + "Weet u zeker dat u alle vertaalopnamen voor deze sessie wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1273,20 @@ const Map nlNL = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1309,8 @@ const Map nlNL = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Originele opname", "recordSummary": "Opnamesamenvatting", - "clickToGenerateSummary": "Klik op de onderstaande knop om een sessiesamenvatting te genereren", + "clickToGenerateSummary": + "Klik op de onderstaande knop om een sessiesamenvatting te genereren", "summaryContent": "Samenvattingsinhoud", "copied": "Gekopieerd", "summaryCopiledToClipboard": "Samenvatting gekopieerd naar klembord", @@ -1197,9 +1318,11 @@ const Map nlNL = { "summaryGenerated": "Samenvatting gegenereerd", "generating": "Genereren...", "regenerate": "Opnieuw genereren", - "summaryTimeoutMessage": "Het genereren van de samenvatting is verlopen, mogelijk vanwege netwerkproblemen of een drukke server.", + "summaryTimeoutMessage": + "Het genereren van de samenvatting is verlopen, mogelijk vanwege netwerkproblemen of een drukke server.", "deleteTranslationRecord": "Vertaalopname verwijderen", - "deleteTranslationConfirm": "Weet u zeker dat u deze vertaalopname wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.", + "deleteTranslationConfirm": + "Weet u zeker dat u deze vertaalopname wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.", "originalText": "Originele tekst", "translatedText": "Vertaalde tekst", "sessionSummary": "Sessiesamenvatting", @@ -1227,19 +1350,25 @@ const Map nlNL = { // 配对状态文本 "readyToPair": "Klaar om te koppelen", "preparingPairingEnvironment": "Koppelingsomgeving voorbereiden...", - "connectDeepSoundViaSystemBluetooth": "Verbind eerst met het Voitrans-apparaat via systeem-Bluetooth", + "connectDeepSoundViaSystemBluetooth": + "Verbind eerst met het Voitrans-apparaat via systeem-Bluetooth", "deviceBindingConfirm": "Bevestiging apparaatkoppeling...", "establishingDeviceAssociation": "Apparaatassociatie tot stand brengen...", "waitingCompletePairing": "Even geduld, koppeling wordt voltooid...", - "pairingSuccessRedirecting": "Koppelen geslaagd! Wordt doorgestuurd naar de startpagina...", + "pairingSuccessRedirecting": + "Koppelen geslaagd! Wordt doorgestuurd naar de startpagina...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Zorg ervoor dat u bent verbonden met een Voitrans-apparaat", - "deviceAlreadyBoundToOtherAccount": "Dit apparaat is al gekoppeld aan een ander account", + "ensureConnectedDeepSoundDevice": + "Zorg ervoor dat u bent verbonden met een Voitrans-apparaat", + "deviceAlreadyBoundToOtherAccount": + "Dit apparaat is al gekoppeld aan een ander account", "deviceAssociationFailed": "Apparaatassociatie mislukt, probeer het opnieuw", - "scanTimeoutEnsureDeviceNearby": "Scannen is verlopen, zorg ervoor dat het apparaat in de buurt is", + "scanTimeoutEnsureDeviceNearby": + "Scannen is verlopen, zorg ervoor dat het apparaat in de buurt is", "networkError": "Netwerkfout", - "authorizationFailedCheckCode": "Autorisatie mislukt, controleer of de autorisatiecode correct is", + "authorizationFailedCheckCode": + "Autorisatie mislukt, controleer of de autorisatiecode correct is", "pairingFailedRetry": "Koppelen mislukt, probeer het opnieuw", // 配对控制器相关 @@ -1248,13 +1377,15 @@ const Map nlNL = { 'deviceDisconnected': 'Apparaat losgekoppeld', 'readyToStartPairing': 'Klaar om te beginnen met koppelen', 'checkingEnvironment': 'Omgeving controleren...', - 'ensureHeadsetOnAndPairingMode': 'Zorg ervoor dat de headset is ingeschakeld en in de koppelingsmodus staat', + 'ensureHeadsetOnAndPairingMode': + 'Zorg ervoor dat de headset is ingeschakeld en in de koppelingsmodus staat', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Beveiligde verbinding tot stand brengen...', - 'needManualBindingAuthCode': 'Handmatige koppelingsautorisatiecode vereist...', + 'needManualBindingAuthCode': + 'Handmatige koppelingsautorisatiecode vereist...', 'pairingSuccessful': 'Koppelen geslaagd!', 'enableBluetooth': 'Bluetooth inschakelen', 'grantPermissions': 'Toestemmingen verlenen', @@ -1266,35 +1397,45 @@ const Map nlNL = { 'verificationFailedRetry': 'Verificatie mislukt, probeer het opnieuw', 'invalidDeviceAddress': 'Ongeldig apparaatadres', 'bleDeviceAssociationFailed': 'Associatie van BLE-apparaat mislukt', - 'deviceAssociationFailedRetry': 'Apparaatassociatie mislukt, probeer het opnieuw', + 'deviceAssociationFailedRetry': + 'Apparaatassociatie mislukt, probeer het opnieuw', 'bleConnectionTimeoutRetry': 'BLE-verbindingstime-out, probeer het opnieuw', 'blePairingStartupFailed': 'Starten van BLE-koppeling mislukt', 'bleConnectionFailed': 'BLE-verbinding mislukt', - 'deviceAuthorizationFailedCheckCode': 'Apparaatautorisatie mislukt, controleer de autorisatiecode', + 'deviceAuthorizationFailedCheckCode': + 'Apparaatautorisatie mislukt, controleer de autorisatiecode', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Gebruikersfeedback", 'feedbackInfo': 'Geef feedback of suggesties', - 'feedbackDescription': 'Beschrijf het probleem dat u tegenkwam of uw suggestie', + 'feedbackDescription': + 'Beschrijf het probleem dat u tegenkwam of uw suggestie', 'feedbackHint': 'Voer uw feedback in...', 'feedbackRequired': 'Voer de inhoud van de feedback in', 'contactInfo': 'Contactgegevens', 'contactHint': 'E-mail/telefoon, zodat we contact met u kunnen opnemen', 'submit': 'Indienen', - 'feedbackSubmitSuccess': 'Feedback succesvol ingediend, bedankt voor uw feedback!', - 'feedbackSubmitFailed': 'Indienen van feedback mislukt, probeer het later opnieuw', + 'feedbackSubmitSuccess': + 'Feedback succesvol ingediend, bedankt voor uw feedback!', + 'feedbackSubmitFailed': + 'Indienen van feedback mislukt, probeer het later opnieuw', // OTA升级模块 - "upgradeExitConfirm": "Upgrade wordt uitgevoerd, afsluiten zal het proces onderbreken, weet u zeker dat u wilt afsluiten?", + "upgradeExitConfirm": + "Upgrade wordt uitgevoerd, afsluiten zal het proces onderbreken, weet u zeker dat u wilt afsluiten?", "deviceModel": "Apparaatmodel", "unknownDevice": "Onbekend apparaat", "currentFirmwareVersion": "Huidige firmwareversie", @@ -1307,14 +1448,18 @@ const Map nlNL = { "retryConnection": "Verbinding opnieuw proberen", "ota_updateNow": "Nu bijwerken", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "Houd het apparaat verbonden, sluit de app niet", "doNotDisconnect": "Verbreek de verbinding niet", "charging": "Opladen", "updateContent": "Update-inhoud", - "removeEarbudsEnsureBattery": "Haal beide oortjes eruit en zorg ervoor dat de batterij van beide meer dan 20% is", + "removeEarbudsEnsureBattery": + "Haal beide oortjes eruit en zorg ervoor dat de batterij van beide meer dan 20% is", // 音乐列表页面 "noMusic": "Geen muziek", // 暂无音乐 @@ -1376,8 +1521,10 @@ const Map nlNL = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/pl_pl.dart b/lib/core/translations/language/pl_pl.dart index c7b2d4768..f28194e01 100644 --- a/lib/core/translations/language/pl_pl.dart +++ b/lib/core/translations/language/pl_pl.dart @@ -33,6 +33,7 @@ const Map plPL = { "spanish": "Hiszpański", "portuguese": "Portugalski", "traditionalChinese": "Chiński tradycyjny", + "traditionalChineseHK": "Chiński tradycyjny (Hongkong)", "japanese": "Japoński", "korean": "Koreański", "french": "Francuski", @@ -71,7 +72,8 @@ const Map plPL = { // 登录页 "welcome": "Witaj", - "loginTips": "Zaloguj się lub zarejestruj za pomocą numeru telefonu lub adresu e-mail", + "loginTips": + "Zaloguj się lub zarejestruj za pomocą numeru telefonu lub adresu e-mail", "accountNumber": "Numer telefonu lub e-mail", "verificationCode": "Kod weryfikacyjny", "getCode": "Pobierz kod", @@ -90,7 +92,8 @@ const Map plPL = { "tip": "Wskazówka", "pleaseEnterCompleteCode": "Wprowadź pełny kod weryfikacyjny", "loginFailed": "Logowanie nie powiodło się, spróbuj ponownie", - 'pleaseAcceptPrivacyPolicy': 'Najpierw przeczytaj i zaakceptuj Politykę prywatności oraz Umowę użytkownika', + 'pleaseAcceptPrivacyPolicy': + 'Najpierw przeczytaj i zaakceptuj Politykę prywatności oraz Umowę użytkownika', "enterVerificationCode": "Wprowadź kod weryfikacyjny", "verificationCodeSentTo": "Kod weryfikacyjny został wysłany na", "resendVerificationCode": "Wyślij kod weryfikacyjny ponownie", @@ -99,7 +102,8 @@ const Map plPL = { // 隐私政策弹窗 "loginDeclaration": "Oświadczenie Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Witaj w Voitrans, prosimy o uważne przeczytanie", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Witaj w Voitrans, prosimy o uważne przeczytanie", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,13 +119,16 @@ const Map plPL = { "signal": "Sygnał", "deviceId": "ID urządzenia", "firmwareVersion": "Wersja oprogramowania układowego", - "disconnectedDevice": "Brak podłączonego urządzenia, kliknij przycisk poniżej, aby połączyć", + "disconnectedDevice": + "Brak podłączonego urządzenia, kliknij przycisk poniżej, aby połączyć", "connectDevice": "Połącz urządzenie", "topAiExperiences": "Najlepsze doświadczenia z AI", "aiAssistant": "Wszechstronny asystent AI", - "aiAssistantInfo": "Ekskluzywny konsultant 24/7, odpowiada na pytania, udziela sugestii", + "aiAssistantInfo": + "Ekskluzywny konsultant 24/7, odpowiada na pytania, udziela sugestii", "interpretation": "Tłumaczenie symultaniczne", - "simultaneousInterpretationInfo": "Tłumaczenie w czasie rzeczywistym na ponad 80 języków, bezproblemowe podróże zagraniczne", + "simultaneousInterpretationInfo": + "Tłumaczenie w czasie rzeczywistym na ponad 80 języków, bezproblemowe podróże zagraniczne", "aiCompanion": "Towarzysz rodzinny", "aiCompanionInfo": "Rozumie Cię, ciepłe towarzystwo", "homeSlogan": "Łącząc świat, przekraczając dźwięk", @@ -130,9 +137,11 @@ const Map plPL = { "unsystemSetup": "Przejdź do ustawień systemowych", "talkLater": "Później", "initializing": "Inicjalizacja...", - "bluetoothInitializationFailure": "Inicjalizacja usługi Bluetooth nie powiodła się", + "bluetoothInitializationFailure": + "Inicjalizacja usługi Bluetooth nie powiodła się", "checkingPermissions": "Sprawdzanie uprawnień...", - "lackPermissions": "Brak uprawnień Bluetooth i jest wymagana prawo dostępu do lokalizacji", + "lackPermissions": + "Brak uprawnień Bluetooth i jest wymagana prawo dostępu do lokalizacji", "searchingDevice": "Wyszukiwanie urządzeń...", "findConnectedDevice": "Znaleziono podłączone urządzenie", "notFound": "Nie znaleziono podłączonego urządzenia Bluetooth", @@ -154,7 +163,8 @@ const Map plPL = { 'chargingCase': 'Etui ładujące', 'left': 'Lewo', 'right': 'Prawo', - 'checkConnectionStatusFailed': 'Sprawdzenie stanu połączenia nie powiodło się', + 'checkConnectionStatusFailed': + 'Sprawdzenie stanu połączenia nie powiodło się', // 发现页 "searchAi": "Szukaj funkcji AI...", @@ -169,13 +179,15 @@ const Map plPL = { "faceToFaceTranslation": "Tłumaczenie twarzą w twarz", 'audioVideoTranslation': 'Tłumaczenie audio i wideo', 'callTranslation': 'Tłumaczenie rozmów', - "simultaneousTranslationInfo": "Tłumaczenie w czasie rzeczywistym na ponad 80 języków", + "simultaneousTranslationInfo": + "Tłumaczenie w czasie rzeczywistym na ponad 80 języków", "aiGirlfriend": "Dziewczyna AI", "aiGirlfriendInfo": "Inteligentny towarzysz, rozmawiaj w dowolnym momencie", "healthConsultant": "Wielofunkcyjny czat AI", "healthConsultantInfo": "Oferuje więcej funkcji czatu AI", "conferenceAssistant": "Asystent spotkań biznesowych", - "conferenceAssistantInfo": "Zapisywanie protokołów w czasie rzeczywistym, tłumaczenie wielojęzyczne", + "conferenceAssistantInfo": + "Zapisywanie protokołów w czasie rzeczywistym, tłumaczenie wielojęzyczne", "usageStats": "Statystyki użycia", "usageStatsInfo": "Przeglądaj statystyki użycia aplikacji", "scene": "Scenariusz", @@ -218,7 +230,8 @@ const Map plPL = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +287,10 @@ const Map plPL = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +299,35 @@ const Map plPL = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +336,10 @@ const Map plPL = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +354,8 @@ const Map plPL = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Pomiń", @@ -355,7 +381,8 @@ const Map plPL = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +432,8 @@ const Map plPL = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +488,54 @@ const Map plPL = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +547,8 @@ const Map plPL = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +568,8 @@ const Map plPL = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +618,8 @@ const Map plPL = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +644,8 @@ const Map plPL = { "cloudSync": "Płatność synchronizacji w chmurze", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Podłączone urządzenie:", "accountId": "ID konta:", "systemSetting": "Ustawienia systemowe", @@ -612,7 +658,8 @@ const Map plPL = { "privacySettings": "Ustawienia prywatności", "privacySettingsInfo": "Zarządzaj zbieraniem danych i uprawnieniami", "permissionManagement": "Zarządzanie uprawnieniami", // 权限管理 - "permissionManagementInfo": "Zarządzaj ustawieniami uprawnień aplikacji", // 管理应用权限设置 + "permissionManagementInfo": + "Zarządzaj ustawieniami uprawnień aplikacji", // 管理应用权限设置 "aboutApplication": "O aplikacji", "versions": "Wersja", "checkUpdates": "Sprawdź aktualizacje", @@ -621,9 +668,11 @@ const Map plPL = { "voiceServiceInfo": "Wybierz usługę rozpoznawania i syntezy mowy", "selectVoiceService": "Wybierz usługę głosową", "azureVoiceService": "Usługa głosowa Azure", - "azureVoiceServiceInfo": "Usługa głosowa w chmurze Microsoftu, obsługuje wysokiej jakości syntezę i rozpoznawanie mowy", + "azureVoiceServiceInfo": + "Usługa głosowa w chmurze Microsoftu, obsługuje wysokiej jakości syntezę i rozpoznawanie mowy", "flutterVoiceService": "Lokalna usługa głosowa Flutter", - "flutterVoiceServiceInfo": "Lokalna usługa głosowa urządzenia, można używać bez połączenia z internetem", + "flutterVoiceServiceInfo": + "Lokalna usługa głosowa urządzenia, można używać bez połączenia z internetem", 'timbreService': 'Usługa barwy głosu', 'timbreServiceInfo': 'Wybierz usługę syntezy mowy z barwą głosu', 'defaultTimbre': 'Domyślna barwa głosu', @@ -634,7 +683,8 @@ const Map plPL = { 'pleaseRead': 'Przeczytaj na głos', 'completeRecording': 'Zakończ nagrywanie', "firmwareUpgrade": "Aktualizacja oprogramowania układowego", - "bleHeadsetFirmwareUpgrade": "Aktualizacja wersji oprogramowania układowego słuchawek BLE", + "bleHeadsetFirmwareUpgrade": + "Aktualizacja wersji oprogramowania układowego słuchawek BLE", "deviceManagement": "Zarządzanie urządzeniami", "manageConnectedDevices": "Zarządzaj sparowanymi urządzeniami Bluetooth", @@ -652,7 +702,8 @@ const Map plPL = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Czat głosowy w czasie rzeczywistym", - "realtimeVoiceChatInfo": "Doświadcz funkcji inteligentnej interakcji głosowej (podgląd funkcji)", + "realtimeVoiceChatInfo": + "Doświadcz funkcji inteligentnej interakcji głosowej (podgląd funkcji)", "loading": "Ładowanie...", //设备管理页面 @@ -667,7 +718,8 @@ const Map plPL = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -695,7 +747,8 @@ const Map plPL = { "listeningToYou": "Słucham Cię...", "processing": "Przetwarzanie...", "loadMoreMessages": "Załaduj więcej wiadomości...", - "loadFailedClickRetry": "Ładowanie nie powiodło się, kliknij, aby spróbować ponownie", + "loadFailedClickRetry": + "Ładowanie nie powiodło się, kliknij, aby spróbować ponownie", "swipeUpForMore": "Przesuń w górę, aby zobaczyć więcej", "callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等! "voice_interrupt": "Interrupt", // 语音打断 @@ -721,12 +774,17 @@ const Map plPL = { '• Sterować funkcjami słuchawek\n\n' 'W czym mogę Ci pomóc?', 'microphonePermission': 'Mikrofon', - 'voiceRecognitionPermissionText': 'Funkcja rozpoznawania mowy wymaga dostępu do mikrofonu.', - 'voiceTranslationPermissionText': 'Funkcja rozpoznawania i tłumaczenia mowy wymaga dostępu do mikrofonu.', - 'phoneCallPermissionText': 'Funkcja dzwonienia wymaga dostępu do mikrofonu do rozmów głosowych.', - 'permissionDeniedText': 'Trwale odmówiłeś dostępu do mikrofonu, przejdź do ustawień systemowych, aby go włączyć.', + 'voiceRecognitionPermissionText': + 'Funkcja rozpoznawania mowy wymaga dostępu do mikrofonu.', + 'voiceTranslationPermissionText': + 'Funkcja rozpoznawania i tłumaczenia mowy wymaga dostępu do mikrofonu.', + 'phoneCallPermissionText': + 'Funkcja dzwonienia wymaga dostępu do mikrofonu do rozmów głosowych.', + 'permissionDeniedText': + 'Trwale odmówiłeś dostępu do mikrofonu, przejdź do ustawień systemowych, aby go włączyć.', 'startVoiceInput': 'Rozpocznij wprowadzanie głosowe', - 'startPhoneCallMode': 'Rozpocznij tryb dzwonienia, rozpocznij wprowadzanie głosowe', + 'startPhoneCallMode': + 'Rozpocznij tryb dzwonienia, rozpocznij wprowadzanie głosowe', // Agent 全屏编辑器 'fullScreenEditorHint': 'Wpisz swoją wiadomość tutaj...', // 全屏编辑器输入提示 @@ -738,16 +796,19 @@ const Map plPL = { 'report': 'Zgłoś', 'submitSuccess': 'Przesłano pomyślnie', 'submitFailed': 'Przesyłanie nie powiodło się', - 'reportSubmitted': 'Zgłoszenie zostało przesłane, zajmiemy się nim jak najszybciej', + 'reportSubmitted': + 'Zgłoszenie zostało przesłane, zajmiemy się nim jak najszybciej', //'networkError': '网络错误,请稍后重试', 'harmfulUnsafe': 'Szkodliwe/Niebezpieczne', 'pornographicVulgar': 'Pornograficzne/Wulgarne', 'misleadingAttack': 'Wprowadzające w błąd/Atak', 'illegalCriminal': 'Niezgodne z prawem/Przestępcze', 'privacyRelated': 'Związane z prywatnością', - 'copyrightViolation': 'Naruszenie moich praw autorskich, dobrego imienia itp.', + 'copyrightViolation': + 'Naruszenie moich praw autorskich, dobrego imienia itp.', 'other': 'Inne', - 'reportDescriptionHint': 'Chcielibyśmy wiedzieć, dlaczego zgłaszasz, możesz opisać problem, z którym się spotkałeś.', + 'reportDescriptionHint': + 'Chcielibyśmy wiedzieć, dlaczego zgłaszasz, możesz opisać problem, z którym się spotkałeś.', //'submit': '提交', //Message_bubble @@ -778,15 +839,24 @@ const Map plPL = { 'highest': 'Najwyższa', 'lowest': 'Najniższa', 'futureForecast': 'Prognoza na przyszłość', - 'hotWeatherTip': 'Dzisiaj jest gorąco, uważaj na udar cieplny i pij dużo wody', - 'coldWeatherTip': 'Dzisiaj jest niska temperatura, ubierz się ciepło, wychodząc, aby się nie przeziębić', - 'rainyWeatherTip': 'Dzisiaj pada deszcz, weź ze sobą parasol, wychodząc, i uważaj na drodze', - 'snowyWeatherTip': 'Dzisiaj pada śnieg, droga jest śliska, uważaj i ubierz się ciepło', - 'foggyWeatherTip': 'Dzisiaj jest mgła, widoczność jest ograniczona, noś maseczkę, wychodząc', - 'windyWeatherTip': 'Dzisiaj wieje silny wiatr, uważaj, wychodząc, i zabezpiecz swoje rzeczy', - 'sunnyWeatherTip': 'Dzisiaj jest słonecznie i silne promieniowanie UV, używaj kremu z filtrem, wychodząc', - 'temperatureDifferenceTip': 'Dzisiaj jest duża różnica temperatur między dniem a nocą, dostosuj ubranie', - 'comfortableWeatherTip': 'Dzisiaj jest przyjemna pogoda, świetny czas na aktywności na świeżym powietrzu', + 'hotWeatherTip': + 'Dzisiaj jest gorąco, uważaj na udar cieplny i pij dużo wody', + 'coldWeatherTip': + 'Dzisiaj jest niska temperatura, ubierz się ciepło, wychodząc, aby się nie przeziębić', + 'rainyWeatherTip': + 'Dzisiaj pada deszcz, weź ze sobą parasol, wychodząc, i uważaj na drodze', + 'snowyWeatherTip': + 'Dzisiaj pada śnieg, droga jest śliska, uważaj i ubierz się ciepło', + 'foggyWeatherTip': + 'Dzisiaj jest mgła, widoczność jest ograniczona, noś maseczkę, wychodząc', + 'windyWeatherTip': + 'Dzisiaj wieje silny wiatr, uważaj, wychodząc, i zabezpiecz swoje rzeczy', + 'sunnyWeatherTip': + 'Dzisiaj jest słonecznie i silne promieniowanie UV, używaj kremu z filtrem, wychodząc', + 'temperatureDifferenceTip': + 'Dzisiaj jest duża różnica temperatur między dniem a nocą, dostosuj ubranie', + 'comfortableWeatherTip': + 'Dzisiaj jest przyjemna pogoda, świetny czas na aktywności na świeżym powietrzu', "monday": "Pon", "tuesday": "Wt", "wednesday": "Śr", @@ -838,22 +908,29 @@ const Map plPL = { "logout": "Wyloguj się", "logoutTips": "Czy na pewno chcesz wylogować się z obecnego konta?", 'deleteAccount': 'Usuń konto', - 'deleteAccountTips': 'Czy na pewno chcesz trwale usunąć swoje konto? Tej operacji nie można cofnąć.', + 'deleteAccountTips': + 'Czy na pewno chcesz trwale usunąć swoje konto? Tej operacji nie można cofnąć.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Błąd połączenia sieciowego, sprawdź ustawienia sieci i spróbuj ponownie', - 'serverTemporarilyUnavailable': 'Serwer jest tymczasowo niedostępny, spróbuj ponownie później', + 'networkConnectionFailed': + 'Błąd połączenia sieciowego, sprawdź ustawienia sieci i spróbuj ponownie', + 'serverTemporarilyUnavailable': + 'Serwer jest tymczasowo niedostępny, spróbuj ponownie później', 'loginExpiredPleaseRelogin': 'Twoja sesja wygasła, zaloguj się ponownie', - 'noPermissionForThisOperation': 'Nie masz uprawnień do wykonania tej operacji', + 'noPermissionForThisOperation': + 'Nie masz uprawnień do wykonania tej operacji', 'requestedResourceNotFound': 'Żądany zasób nie został znaleziony', - 'imageProcessingFailedPleaseReselect': 'Przetwarzanie obrazu nie powiodło się, wybierz inny obraz', + 'imageProcessingFailedPleaseReselect': + 'Przetwarzanie obrazu nie powiodło się, wybierz inny obraz', 'operationFailedPleaseRetry': 'Operacja nie powiodła się, spróbuj ponownie', 'serverReturnedError': 'Serwer zwrócił błąd', 'serverError': 'Błąd serwera', - 'networkConnectionFailedCheckSettings': 'Błąd połączenia sieciowego, sprawdź ustawienia sieci', - 'serverInternalErrorRetryLater': 'Wewnętrzny błąd serwera, spróbuj ponownie później', + 'networkConnectionFailedCheckSettings': + 'Błąd połączenia sieciowego, sprawdź ustawienia sieci', + 'serverInternalErrorRetryLater': + 'Wewnętrzny błąd serwera, spróbuj ponownie później', // Profile 用户交互 //'error': '错误', @@ -867,18 +944,27 @@ const Map plPL = { 'loggedOut': 'Wylogowano', 'logoutFailedRetry': 'Wylogowanie nie powiodło się, spróbuj ponownie', 'accountPermanentlyDeleted': 'Konto zostało trwale usunięte', - 'deleteAccountFailedRetry': 'Usuwanie konta nie powiodło się, spróbuj ponownie', + 'deleteAccountFailedRetry': + 'Usuwanie konta nie powiodło się, spróbuj ponownie', // 账号服务相关 - 'clearUserDataFailed': 'Wyczyszczenie danych użytkownika nie powiodło się', // 清理用户数据失败 - 'deleteUserDataFailed': 'Usunięcie danych użytkownika nie powiodło się', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'Wylogowanie z usługi zewnętrznej powiodło się', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': 'Wylogowanie z usługi zewnętrznej nie powiodło się', // 第三方登录退出失败 + 'clearUserDataFailed': + 'Wyczyszczenie danych użytkownika nie powiodło się', // 清理用户数据失败 + 'deleteUserDataFailed': + 'Usunięcie danych użytkownika nie powiodło się', // 删除用户数据失败 + 'thirdPartyLogoutSuccess': + 'Wylogowanie z usługi zewnętrznej powiodło się', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': + 'Wylogowanie z usługi zewnętrznej nie powiodło się', // 第三方登录退出失败 'signOutProcessError': 'Wystąpił błąd podczas wylogowywania', // 登出过程发生错误 - 'deleteAccountProcessError': 'Wystąpił błąd podczas usuwania konta', // 删除账号过程发生错误 - 'userDataClearSuccess': 'Dane użytkownika zostały pomyślnie wyczyszczone', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Wszystkie dane użytkownika zostały pomyślnie wyczyszczone', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Usługa konta została zainicjowana', // AccountService 已初始化 + 'deleteAccountProcessError': + 'Wystąpił błąd podczas usuwania konta', // 删除账号过程发生错误 + 'userDataClearSuccess': + 'Dane użytkownika zostały pomyślnie wyczyszczone', // 用户数据清理成功 + 'allUserDataClearSuccess': + 'Wszystkie dane użytkownika zostały pomyślnie wyczyszczone', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Usługa konta została zainicjowana', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Pobranie stanu uprawnień nie powiodło się', @@ -901,10 +987,14 @@ const Map plPL = { 'locationInfo': 'Informacje o lokalizacji', 'phonePermissionDesc': 'Używane do funkcji dzwonienia', 'smsPermissionDesc': 'Używane do funkcji wysyłania SMS-ów', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Używane do tworzenia wydarzeń i przypomnień w kalendarzu', - 'calendarFullAccessPermissionDesc': 'Używane do odczytu i zarządzania wydarzeniami i przypomnieniami w kalendarzu', - 'locationPermissionDesc': 'Używane do uzyskiwania informacji o bieżącej lokalizacji', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Używane do tworzenia wydarzeń i przypomnień w kalendarzu', + 'calendarFullAccessPermissionDesc': + 'Używane do odczytu i zarządzania wydarzeniami i przypomnieniami w kalendarzu', + 'locationPermissionDesc': + 'Używane do uzyskiwania informacji o bieżącej lokalizacji', 'appFunctionNeeds': 'Funkcja aplikacji wymaga', 'authorized': 'Autoryzowano', 'unauthorized': 'Nieautoryzowano', @@ -913,45 +1003,70 @@ const Map plPL = { 'unknownStatus': 'Nieznany stan', 'permissionGranted': 'Uprawnienie przyznane', 'permissionRequestError': 'Błąd podczas żądania uprawnienia', - 'phonePermissionDetailDesc': 'Funkcja dzwonienia wymaga uprawnień telefonicznych', + 'phonePermissionDetailDesc': + 'Funkcja dzwonienia wymaga uprawnień telefonicznych', 'smsPermissionDetailDesc': 'Funkcja wysyłania SMS-ów wymaga uprawnień SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Tworzenie wydarzeń w kalendarzu wymaga uprawnień do zapisu w kalendarzu', - 'calendarFullAccessPermissionDetailDesc': 'Zarządzanie wydarzeniami w kalendarzu wymaga pełnych uprawnień do kalendarza', - 'locationPermissionDetailDesc': 'Uzyskiwanie informacji o lokalizacji wymaga uprawnień lokalizacyjnych', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Tworzenie wydarzeń w kalendarzu wymaga uprawnień do zapisu w kalendarzu', + 'calendarFullAccessPermissionDetailDesc': + 'Zarządzanie wydarzeniami w kalendarzu wymaga pełnych uprawnień do kalendarza', + 'locationPermissionDetailDesc': + 'Uzyskiwanie informacji o lokalizacji wymaga uprawnień lokalizacyjnych', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Aplikacja wymaga tego uprawnienia do pełnej funkcjonalności', - 'permanentDenialText': 'Trwale odmówiłeś uprawnienia {permission}, przejdź do ustawień aplikacji, aby je włączyć', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Aplikacja wymaga tego uprawnienia do pełnej funkcjonalności', + 'permanentDenialText': + 'Trwale odmówiłeś uprawnienia {permission}, przejdź do ustawień aplikacji, aby je włączyć', 'goToSettings': 'Przejdź do ustawień', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1076,8 @@ const Map plPL = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1086,10 @@ const Map plPL = { 'updateNow': 'Zaktualizuj teraz', // 立即更新按钮 'checkUpdate': 'Sprawdź aktualizację', // 检查更新按钮 'updateFailed': 'Aktualizacja nie powiodła się', // 更新失败提示 - 'cannotOpenAppStore': 'Nie można otworzyć sklepu z aplikacjami, przejdź do sklepu ręcznie, aby zaktualizować', // 无法打开应用商店提示 - 'updateErrorRetry': 'Wystąpił błąd podczas aktualizacji, spróbuj ponownie później', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Nie można otworzyć sklepu z aplikacjami, przejdź do sklepu ręcznie, aby zaktualizować', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Wystąpił błąd podczas aktualizacji, spróbuj ponownie później', // 更新错误重试提示 //国家列表 "邮箱": "E-mail", @@ -1107,7 +1225,8 @@ const Map plPL = { "selectTargetLanguage": "Wybierz język docelowy", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1242,12 @@ const Map plPL = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Wyczyść historię", - "clearHistoryConfirm": "Czy na pewno chcesz wyczyścić całą historię tłumaczeń? Tej operacji nie można cofnąć.", + "clearHistoryConfirm": + "Czy na pewno chcesz wyczyścić całą historię tłumaczeń? Tej operacji nie można cofnąć.", "unknownLanguage": "Nieznany język", "deleteSessionRecord": "Usuń zapis sesji", - "deleteSessionConfirm": "Czy na pewno chcesz usunąć wszystkie zapisy tłumaczeń dla tej sesji? Tej operacji nie można cofnąć.", + "deleteSessionConfirm": + "Czy na pewno chcesz usunąć wszystkie zapisy tłumaczeń dla tej sesji? Tej operacji nie można cofnąć.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1279,20 @@ const Map plPL = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1315,8 @@ const Map plPL = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Oryginalny zapis", "recordSummary": "Podsumowanie zapisu", - "clickToGenerateSummary": "Kliknij przycisk poniżej, aby wygenerować podsumowanie sesji", + "clickToGenerateSummary": + "Kliknij przycisk poniżej, aby wygenerować podsumowanie sesji", "summaryContent": "Treść podsumowania", "copied": "Skopiowano", "summaryCopiledToClipboard": "Podsumowanie skopiowano do schowka", @@ -1197,9 +1324,11 @@ const Map plPL = { "summaryGenerated": "Wygenerowano podsumowanie", "generating": "Generowanie...", "regenerate": "Wygeneruj ponownie", - "summaryTimeoutMessage": "Przekroczono czas oczekiwania na żądanie wygenerowania podsumowania, może to być spowodowane problemami z siecią lub zajętym serwerem.", + "summaryTimeoutMessage": + "Przekroczono czas oczekiwania na żądanie wygenerowania podsumowania, może to być spowodowane problemami z siecią lub zajętym serwerem.", "deleteTranslationRecord": "Usuń zapis tłumaczenia", - "deleteTranslationConfirm": "Czy na pewno chcesz usunąć ten zapis tłumaczenia? Tej operacji nie można cofnąć.", + "deleteTranslationConfirm": + "Czy na pewno chcesz usunąć ten zapis tłumaczenia? Tej operacji nie można cofnąć.", "originalText": "Tekst oryginalny", "translatedText": "Tekst przetłumaczony", "sessionSummary": "Podsumowanie sesji", @@ -1227,19 +1356,26 @@ const Map plPL = { // 配对状态文本 "readyToPair": "Gotowy do parowania", "preparingPairingEnvironment": "Przygotowywanie środowiska do parowania...", - "connectDeepSoundViaSystemBluetooth": "Najpierw połącz się z urządzeniem Voitrans przez systemowy Bluetooth", + "connectDeepSoundViaSystemBluetooth": + "Najpierw połącz się z urządzeniem Voitrans przez systemowy Bluetooth", "deviceBindingConfirm": "Potwierdzenie powiązania urządzenia...", "establishingDeviceAssociation": "Ustanawianie skojarzenia urządzenia...", "waitingCompletePairing": "Poczekaj, kończenie parowania...", - "pairingSuccessRedirecting": "Parowanie zakończone sukcesem! Przekierowywanie na stronę główną...", + "pairingSuccessRedirecting": + "Parowanie zakończone sukcesem! Przekierowywanie na stronę główną...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Upewnij się, że jesteś połączony z urządzeniem Voitrans", - "deviceAlreadyBoundToOtherAccount": "To urządzenie jest już powiązane z innym kontem", - "deviceAssociationFailed": "Skojarzenie urządzenia nie powiodło się, spróbuj ponownie", - "scanTimeoutEnsureDeviceNearby": "Przekroczono czas skanowania, upewnij się, że urządzenie jest w pobliżu", + "ensureConnectedDeepSoundDevice": + "Upewnij się, że jesteś połączony z urządzeniem Voitrans", + "deviceAlreadyBoundToOtherAccount": + "To urządzenie jest już powiązane z innym kontem", + "deviceAssociationFailed": + "Skojarzenie urządzenia nie powiodło się, spróbuj ponownie", + "scanTimeoutEnsureDeviceNearby": + "Przekroczono czas skanowania, upewnij się, że urządzenie jest w pobliżu", "networkError": "Błąd sieci", - "authorizationFailedCheckCode": "Autoryzacja nie powiodła się, sprawdź, czy kod autoryzacji jest poprawny", + "authorizationFailedCheckCode": + "Autoryzacja nie powiodła się, sprawdź, czy kod autoryzacji jest poprawny", "pairingFailedRetry": "Parowanie nie powiodło się, spróbuj ponownie", // 配对控制器相关 @@ -1248,13 +1384,15 @@ const Map plPL = { 'deviceDisconnected': 'Urządzenie odłączone', 'readyToStartPairing': 'Gotowy do rozpoczęcia parowania', 'checkingEnvironment': 'Sprawdzanie środowiska...', - 'ensureHeadsetOnAndPairingMode': 'Upewnij się, że słuchawki są włączone i w trybie parowania', + 'ensureHeadsetOnAndPairingMode': + 'Upewnij się, że słuchawki są włączone i w trybie parowania', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Ustanawianie bezpiecznego połączenia...', - 'needManualBindingAuthCode': 'Wymagany jest kod autoryzacji do ręcznego powiązania...', + 'needManualBindingAuthCode': + 'Wymagany jest kod autoryzacji do ręcznego powiązania...', 'pairingSuccessful': 'Parowanie zakończone sukcesem!', 'enableBluetooth': 'Włącz Bluetooth', 'grantPermissions': 'Udziel uprawnień', @@ -1266,19 +1404,26 @@ const Map plPL = { 'verificationFailedRetry': 'Weryfikacja nie powiodła się, spróbuj ponownie', 'invalidDeviceAddress': 'Nieprawidłowy adres urządzenia', 'bleDeviceAssociationFailed': 'Skojarzenie urządzenia BLE nie powiodło się', - 'deviceAssociationFailedRetry': 'Skojarzenie urządzenia nie powiodło się, spróbuj ponownie', - 'bleConnectionTimeoutRetry': 'Przekroczono czas oczekiwania na połączenie BLE, spróbuj ponownie', + 'deviceAssociationFailedRetry': + 'Skojarzenie urządzenia nie powiodło się, spróbuj ponownie', + 'bleConnectionTimeoutRetry': + 'Przekroczono czas oczekiwania na połączenie BLE, spróbuj ponownie', 'blePairingStartupFailed': 'Uruchomienie parowania BLE nie powiodło się', 'bleConnectionFailed': 'Połączenie BLE nie powiodło się', - 'deviceAuthorizationFailedCheckCode': 'Autoryzacja urządzenia nie powiodła się, sprawdź kod autoryzacji', + 'deviceAuthorizationFailedCheckCode': + 'Autoryzacja urządzenia nie powiodła się, sprawdź kod autoryzacji', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1290,11 +1435,14 @@ const Map plPL = { 'contactInfo': 'Dane kontaktowe', 'contactHint': 'E-mail/Telefon, abyśmy mogli się z Tobą skontaktować', 'submit': 'Prześlij', - 'feedbackSubmitSuccess': 'Opinia przesłana pomyślnie, dziękujemy za Twoją opinię!', - 'feedbackSubmitFailed': 'Przesyłanie opinii nie powiodło się, spróbuj ponownie później', + 'feedbackSubmitSuccess': + 'Opinia przesłana pomyślnie, dziękujemy za Twoją opinię!', + 'feedbackSubmitFailed': + 'Przesyłanie opinii nie powiodło się, spróbuj ponownie później', // OTA升级模块 - "upgradeExitConfirm": "Trwa aktualizacja, wyjście przerwie proces, czy na pewno chcesz wyjść?", + "upgradeExitConfirm": + "Trwa aktualizacja, wyjście przerwie proces, czy na pewno chcesz wyjść?", "deviceModel": "Model urządzenia", "unknownDevice": "Nieznane urządzenie", "currentFirmwareVersion": "Bieżąca wersja oprogramowania układowego", @@ -1307,14 +1455,19 @@ const Map plPL = { "retryConnection": "Spróbuj połączyć ponownie", "ota_updateNow": "Zaktualizuj teraz", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Utrzymuj urządzenie w stanie połączenia, nie zamykaj aplikacji", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Utrzymuj urządzenie w stanie połączenia, nie zamykaj aplikacji", "doNotDisconnect": "Nie odłączaj", "charging": "Ładowanie", "updateContent": "Treść aktualizacji", - "removeEarbudsEnsureBattery": "Wyjmij obie słuchawki i upewnij się, że poziom naładowania baterii obu wynosi ponad 20%", + "removeEarbudsEnsureBattery": + "Wyjmij obie słuchawki i upewnij się, że poziom naładowania baterii obu wynosi ponad 20%", // 音乐列表页面 "noMusic": "Brak muzyki", // 暂无音乐 @@ -1376,8 +1529,10 @@ const Map plPL = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/pt_pt.dart b/lib/core/translations/language/pt_pt.dart index 7a70308cc..9d37853d9 100644 --- a/lib/core/translations/language/pt_pt.dart +++ b/lib/core/translations/language/pt_pt.dart @@ -33,6 +33,7 @@ const Map ptPT = { "spanish": "Espanhol", "portuguese": "Português", "traditionalChinese": "Chinês Tradicional", + "traditionalChineseHK": "Chinês tradicional (Hong Kong)", "japanese": "Japonês", "korean": "Coreano", "french": "Francês", @@ -71,7 +72,8 @@ const Map ptPT = { // 登录页 "welcome": "Bem-vindo", - "loginTips": "Faça login ou registe-se com o seu número de telemóvel ou e-mail", + "loginTips": + "Faça login ou registe-se com o seu número de telemóvel ou e-mail", "accountNumber": "Número de Telemóvel ou E-mail", "verificationCode": "Código de Verificação", "getCode": "Obter Código", @@ -90,7 +92,8 @@ const Map ptPT = { "tip": "Dica", "pleaseEnterCompleteCode": "Introduza o código de verificação completo", "loginFailed": "Falha no login, tente novamente", - 'pleaseAcceptPrivacyPolicy': 'Por favor, leia e aceite primeiro a Política de Privacidade e o Contrato do Utilizador', + 'pleaseAcceptPrivacyPolicy': + 'Por favor, leia e aceite primeiro a Política de Privacidade e o Contrato do Utilizador', "enterVerificationCode": "Introduza o Código de Verificação", "verificationCodeSentTo": "Código de verificação enviado para", "resendVerificationCode": "Reenviar código de verificação", @@ -99,7 +102,8 @@ const Map ptPT = { // 隐私政策弹窗 "loginDeclaration": "Declaração Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Bem-vindo à Voitrans, por favor, leia atentamente", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Bem-vindo à Voitrans, por favor, leia atentamente", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +119,30 @@ const Map ptPT = { "signal": "Sinal", "deviceId": "ID do Dispositivo", "firmwareVersion": "Versão do Firmware", - "disconnectedDevice": "Nenhum dispositivo conectado, clique no botão abaixo para conectar", + "disconnectedDevice": + "Nenhum dispositivo conectado, clique no botão abaixo para conectar", "connectDevice": "Conectar Dispositivo", "topAiExperiences": "Melhores Experiências de IA", "aiAssistant": "Assistente IA Completo", - "aiAssistantInfo": "Consultor exclusivo 24/7, responde a perguntas, dá sugestões", + "aiAssistantInfo": + "Consultor exclusivo 24/7, responde a perguntas, dá sugestões", "interpretation": "Interpretação Simultânea", - "simultaneousInterpretationInfo": "Tradução em tempo real para mais de 80 idiomas, viagens ao estrangeiro sem preocupações", + "simultaneousInterpretationInfo": + "Tradução em tempo real para mais de 80 idiomas, viagens ao estrangeiro sem preocupações", "aiCompanion": "Companheiro Familiar", "aiCompanionInfo": "Entende-o, companhia calorosa", "homeSlogan": "Conectando o mundo, transcendendo o som", - "turnEarphones": "Por favor, abra a caixa de carregamento dos auriculares e coloque os auriculares nos seus ouvidos", + "turnEarphones": + "Por favor, abra a caixa de carregamento dos auriculares e coloque os auriculares nos seus ouvidos", "currentlyConnected": "Atualmente conectado:", "unsystemSetup": "Ir para as definições do sistema", "talkLater": "Mais Tarde", "initializing": "A inicializar...", - "bluetoothInitializationFailure": "Falha na inicialização do serviço Bluetooth", + "bluetoothInitializationFailure": + "Falha na inicialização do serviço Bluetooth", "checkingPermissions": "A verificar permissões...", - "lackPermissions": "Faltam permissões de Bluetooth e é necessário permitir o acesso à localização", + "lackPermissions": + "Faltam permissões de Bluetooth e é necessário permitir o acesso à localização", "searchingDevice": "A procurar dispositivos...", "findConnectedDevice": "Dispositivo conectado encontrado", "notFound": "Nenhum dispositivo Bluetooth conectado encontrado", @@ -140,14 +150,16 @@ const Map ptPT = { "connectedDevice": "Conectado ao dispositivo:", "failedRefreshDevice": "Falha ao atualizar o dispositivo", "noDeviceFound": "Nenhum dispositivo conectado encontrado", - "failedDeviceInformation": "Não foi possível obter informações do dispositivo", + "failedDeviceInformation": + "Não foi possível obter informações do dispositivo", "unknownEquipment": "Equipamento Desconhecido", "zeroSignal": "Sem Sinal", "good": "Bom", "fine": "Muito Bom", "excellent": "Excelente", "unknown": "Desconhecido", - 'bluetoothTurnedOff': 'O Bluetooth está desligado, por favor, ligue o Bluetooth', + 'bluetoothTurnedOff': + 'O Bluetooth está desligado, por favor, ligue o Bluetooth', 'bluetoothOff': 'Bluetooth Desligado', 'leftEar': 'Auricular Esquerdo', 'rightEar': 'Auricular Direito', @@ -169,13 +181,15 @@ const Map ptPT = { "faceToFaceTranslation": "Tradução Cara a Cara", 'audioVideoTranslation': 'Tradução de Áudio e Vídeo', 'callTranslation': 'Tradução de Chamadas', - "simultaneousTranslationInfo": "Tradução em tempo real para mais de 80 idiomas", + "simultaneousTranslationInfo": + "Tradução em tempo real para mais de 80 idiomas", "aiGirlfriend": "Namorada IA", "aiGirlfriendInfo": "Companhia inteligente, converse a qualquer momento", "healthConsultant": "Chat IA Multifuncional", "healthConsultantInfo": "Oferece mais funções de chat IA", "conferenceAssistant": "Assistente de Reunião de Negócios", - "conferenceAssistantInfo": "Gravação de atas em tempo real, tradução multilingue", + "conferenceAssistantInfo": + "Gravação de atas em tempo real, tradução multilingue", "usageStats": "Estatísticas de Uso", "usageStatsInfo": "Visualize as estatísticas de uso da sua aplicação", "scene": "Cenário", @@ -218,7 +232,8 @@ const Map ptPT = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +289,10 @@ const Map ptPT = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +301,36 @@ const Map ptPT = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Interpretação simultânea e tradução de texto em tempo real, com voz de baixa latência.', + 'transHeaderDesc1': + '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.', 'translateZhEn': 'Tradução Chinês-Inglês', 'lowLatencyVoiceBroadcast': 'Transmissão de voz de baixa latência', 'multiLangTextTranslation': 'Tradução de texto multilingue', - 'termOptimizationContextPreserve': 'Otimização de terminologia e preservação de contexto', + 'termOptimizationContextPreserve': + 'Otimização de terminologia e preservação de contexto', 'lexiconTourBusinessLife': 'Léxicos de viagem/negócios/vida', 'personalVocabularyMemory': 'Memória de vocabulário pessoal', - 'conversationSubtitleLargeText': 'Legendagem de conversas / modo de texto grande', + 'conversationSubtitleLargeText': + 'Legendagem de conversas / modo de texto grande', 'colorHighContrast': 'Alto contraste de cor', - 'transDisclaimer': 'O desempenho da tradução depende do microfone, da latência da rede e do ruído ambiente.', + 'transDisclaimer': + 'O desempenho da tradução depende do microfone, da latência da rede e do ruído ambiente.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +339,10 @@ const Map ptPT = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Visão geral de benefícios', @@ -329,7 +357,8 @@ const Map ptPT = { 'generalPrivileges': 'Privilégios gerais', 'earlyAccessNewFeatures': 'Acesso antecipado a novas funcionalidades', 'crossDeviceSync': 'Sincronização entre dispositivos', - 'vipDisclaimer': 'Os benefícios reais dependem dos detalhes do pacote e podem mudar entre versões.', + 'vipDisclaimer': + 'Os benefícios reais dependem dos detalhes do pacote e podem mudar entre versões.', // 新手引导 / Onboarding 'skip': "Saltar", @@ -355,7 +384,8 @@ const Map ptPT = { 'guideNavInput': "Navigate to Shenzhen Airport", 'guideNavSend': "Lily will plan the route", 'guideNavEnd': "Navigation set—try other commands", - 'guideMeetingStart': "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", + 'guideMeetingStart': + "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", 'guideMeetingInput': "Create a meeting reminder for 3pm tomorrow", 'guideMeetingSend': "Lily will create a meeting reminder", 'guideMeetingEnd': "Reminder created—try other commands", @@ -405,7 +435,8 @@ const Map ptPT = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +491,54 @@ const Map ptPT = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +550,8 @@ const Map ptPT = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +571,8 @@ const Map ptPT = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +621,8 @@ const Map ptPT = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +647,8 @@ const Map ptPT = { "cloudSync": "Recarga de Sincronização em Nuvem", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Dispositivo conectado:", "accountId": "ID da Conta:", "systemSetting": "Definição do Sistema", @@ -607,12 +656,14 @@ const Map ptPT = { "darkMode": "Modo Escuro", "darkModeInfo": "Alternar entre os temas claro e escuro da aplicação", "backups": "Cópia de Segurança e Restauro", - "backupsInfo": "Cópia de segurança das definições e histórico de interação com IA", + "backupsInfo": + "Cópia de segurança das definições e histórico de interação com IA", "lastBackup": "Última cópia de segurança:", "privacySettings": "Definições de Privacidade", "privacySettingsInfo": "Gerir a recolha de dados e permissões", "permissionManagement": "Gestão de Permissões", // 权限管理 - "permissionManagementInfo": "Gerir as definições de permissão da aplicação", // 管理应用权限设置 + "permissionManagementInfo": + "Gerir as definições de permissão da aplicação", // 管理应用权限设置 "aboutApplication": "Sobre a Aplicação", "versions": "Versão", "checkUpdates": "Verificar Atualizações", @@ -621,9 +672,11 @@ const Map ptPT = { "voiceServiceInfo": "Selecionar serviço de reconhecimento e síntese de voz", "selectVoiceService": "Selecionar Serviço de Voz", "azureVoiceService": "Serviço de Voz Azure", - "azureVoiceServiceInfo": "Serviço de voz na nuvem da Microsoft, suporta síntese e reconhecimento de voz de alta qualidade", + "azureVoiceServiceInfo": + "Serviço de voz na nuvem da Microsoft, suporta síntese e reconhecimento de voz de alta qualidade", "flutterVoiceService": "Serviço de Voz Local Flutter", - "flutterVoiceServiceInfo": "Serviço de voz local do dispositivo, pode ser usado sem ligação à internet", + "flutterVoiceServiceInfo": + "Serviço de voz local do dispositivo, pode ser usado sem ligação à internet", 'timbreService': 'Serviço de Timbre', 'timbreServiceInfo': 'Selecionar serviço de síntese de voz com timbre', 'defaultTimbre': 'Timbre Padrão', @@ -634,7 +687,8 @@ const Map ptPT = { 'pleaseRead': 'Leia em voz alta', 'completeRecording': 'Concluir Gravação', "firmwareUpgrade": "Atualização de Firmware", - "bleHeadsetFirmwareUpgrade": "Atualização da Versão do Firmware dos Auriculares BLE", + "bleHeadsetFirmwareUpgrade": + "Atualização da Versão do Firmware dos Auriculares BLE", "deviceManagement": "Gestão de Dispositivos", "manageConnectedDevices": "Gerir dispositivos Bluetooth emparelhados", @@ -652,7 +706,8 @@ const Map ptPT = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Chat de Voz em Tempo Real", - "realtimeVoiceChatInfo": "Experimente a função de interação de voz inteligente (pré-visualização da função)", + "realtimeVoiceChatInfo": + "Experimente a função de interação de voz inteligente (pré-visualização da função)", "loading": "A carregar...", //设备管理页面 @@ -667,7 +722,8 @@ const Map ptPT = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -678,7 +734,8 @@ const Map ptPT = { "inputMessage": "Introduzir mensagem...", "imListening": "A ouvir...", "canStartTalking": "Pode começar a falar", - "addQuestionAboutImage": "Adicione uma pergunta ou descrição sobre a imagem...", + "addQuestionAboutImage": + "Adicione uma pergunta ou descrição sobre a imagem...", "summarizeImageContent": "Resumir conteúdo da imagem", "extractImageText": "Extrair texto da imagem", "translateImageText": "Traduzir texto na imagem", @@ -721,10 +778,14 @@ const Map ptPT = { '• Controlar as funções dos auriculares\n\n' 'Em que posso ajudá-lo(a)?', 'microphonePermission': 'Microfone', - 'voiceRecognitionPermissionText': 'O reconhecimento de voz requer acesso ao microfone.', - 'voiceTranslationPermissionText': 'O reconhecimento e tradução de voz requerem acesso ao microfone.', - 'phoneCallPermissionText': 'Fazer chamadas requer acesso ao microfone para chamadas de voz.', - 'permissionDeniedText': 'Negou permanentemente a permissão do microfone, por favor, vá às definições do sistema para a ativar.', + 'voiceRecognitionPermissionText': + 'O reconhecimento de voz requer acesso ao microfone.', + 'voiceTranslationPermissionText': + 'O reconhecimento e tradução de voz requerem acesso ao microfone.', + 'phoneCallPermissionText': + 'Fazer chamadas requer acesso ao microfone para chamadas de voz.', + 'permissionDeniedText': + 'Negou permanentemente a permissão do microfone, por favor, vá às definições do sistema para a ativar.', 'startVoiceInput': 'Iniciar entrada de voz', 'startPhoneCallMode': 'Iniciar modo de chamada, iniciar entrada de voz', @@ -747,7 +808,8 @@ const Map ptPT = { 'privacyRelated': 'Relacionado com a Privacidade', 'copyrightViolation': 'Violação dos meus direitos de autor, reputação, etc.', 'other': 'Outro', - 'reportDescriptionHint': 'Gostaríamos de saber o motivo da sua denúncia, pode descrever o problema que encontrou.', + 'reportDescriptionHint': + 'Gostaríamos de saber o motivo da sua denúncia, pode descrever o problema que encontrou.', //'submit': '提交', //Message_bubble @@ -778,15 +840,24 @@ const Map ptPT = { 'highest': 'Máxima', 'lowest': 'Mínima', 'futureForecast': 'Previsão Futura', - 'hotWeatherTip': 'Hoje está calor, por favor, tenha cuidado com o golpe de calor e beba muita água', - 'coldWeatherTip': 'Hoje a temperatura está baixa, por favor, agasalhe-se bem ao sair para evitar constipações', - 'rainyWeatherTip': 'Hoje vai chover, por favor, leve um guarda-chuva ao sair e tenha cuidado', - 'snowyWeatherTip': 'Hoje vai nevar, o piso está escorregadio, por favor, tenha cuidado e agasalhe-se bem', - 'foggyWeatherTip': 'Hoje há nevoeiro, a visibilidade é reduzida, por favor, use uma máscara ao sair', - 'windyWeatherTip': 'Hoje o vento está forte, por favor, tenha cuidado ao sair e prenda bem os seus pertences', - 'sunnyWeatherTip': 'Hoje o sol está forte e os raios UV são intensos, por favor, use protetor solar ao sair', - 'temperatureDifferenceTip': 'Hoje há uma grande diferença de temperatura entre o dia e a noite, por favor, ajuste a sua roupa', - 'comfortableWeatherTip': 'Hoje o tempo está agradável, é uma ótima altura para atividades ao ar livre', + 'hotWeatherTip': + 'Hoje está calor, por favor, tenha cuidado com o golpe de calor e beba muita água', + 'coldWeatherTip': + 'Hoje a temperatura está baixa, por favor, agasalhe-se bem ao sair para evitar constipações', + 'rainyWeatherTip': + 'Hoje vai chover, por favor, leve um guarda-chuva ao sair e tenha cuidado', + 'snowyWeatherTip': + 'Hoje vai nevar, o piso está escorregadio, por favor, tenha cuidado e agasalhe-se bem', + 'foggyWeatherTip': + 'Hoje há nevoeiro, a visibilidade é reduzida, por favor, use uma máscara ao sair', + 'windyWeatherTip': + 'Hoje o vento está forte, por favor, tenha cuidado ao sair e prenda bem os seus pertences', + 'sunnyWeatherTip': + 'Hoje o sol está forte e os raios UV são intensos, por favor, use protetor solar ao sair', + 'temperatureDifferenceTip': + 'Hoje há uma grande diferença de temperatura entre o dia e a noite, por favor, ajuste a sua roupa', + 'comfortableWeatherTip': + 'Hoje o tempo está agradável, é uma ótima altura para atividades ao ar livre', "monday": "Seg", "tuesday": "Ter", "wednesday": "Qua", @@ -838,22 +909,30 @@ const Map ptPT = { "logout": "Terminar Sessão", "logoutTips": "Tem a certeza que quer terminar a sessão da conta atual?", 'deleteAccount': 'Eliminar Conta', - 'deleteAccountTips': 'Tem a certeza que quer eliminar permanentemente a sua conta? Esta ação não pode ser revertida.', + 'deleteAccountTips': + 'Tem a certeza que quer eliminar permanentemente a sua conta? Esta ação não pode ser revertida.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Falha na ligação à rede, verifique as definições de rede e tente novamente', - 'serverTemporarilyUnavailable': 'O servidor está temporariamente indisponível, tente novamente mais tarde', - 'loginExpiredPleaseRelogin': 'A sua sessão expirou, por favor, inicie sessão novamente', - 'noPermissionForThisOperation': 'Não tem permissão para realizar esta operação', + 'networkConnectionFailed': + 'Falha na ligação à rede, verifique as definições de rede e tente novamente', + 'serverTemporarilyUnavailable': + 'O servidor está temporariamente indisponível, tente novamente mais tarde', + 'loginExpiredPleaseRelogin': + 'A sua sessão expirou, por favor, inicie sessão novamente', + 'noPermissionForThisOperation': + 'Não tem permissão para realizar esta operação', 'requestedResourceNotFound': 'O recurso solicitado não foi encontrado', - 'imageProcessingFailedPleaseReselect': 'Falha no processamento da imagem, por favor, selecione outra imagem', + 'imageProcessingFailedPleaseReselect': + 'Falha no processamento da imagem, por favor, selecione outra imagem', 'operationFailedPleaseRetry': 'Operação falhou, tente novamente', 'serverReturnedError': 'O servidor retornou um erro', 'serverError': 'Erro do Servidor', - 'networkConnectionFailedCheckSettings': 'Falha na ligação à rede, verifique as definições de rede', - 'serverInternalErrorRetryLater': 'Erro interno do servidor, tente novamente mais tarde', + 'networkConnectionFailedCheckSettings': + 'Falha na ligação à rede, verifique as definições de rede', + 'serverInternalErrorRetryLater': + 'Erro interno do servidor, tente novamente mais tarde', // Profile 用户交互 //'error': '错误', @@ -871,14 +950,21 @@ const Map ptPT = { // 账号服务相关 'clearUserDataFailed': 'Falha ao limpar os dados do utilizador', // 清理用户数据失败 - 'deleteUserDataFailed': 'Falha ao eliminar os dados do utilizador', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'Sessão de terceiros terminada com sucesso', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': 'Falha ao terminar a sessão de terceiros', // 第三方登录退出失败 - 'signOutProcessError': 'Ocorreu um erro durante o processo de terminar a sessão', // 登出过程发生错误 - 'deleteAccountProcessError': 'Ocorreu um erro durante o processo de eliminação da conta', // 删除账号过程发生错误 + 'deleteUserDataFailed': + 'Falha ao eliminar os dados do utilizador', // 删除用户数据失败 + 'thirdPartyLogoutSuccess': + 'Sessão de terceiros terminada com sucesso', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': + 'Falha ao terminar a sessão de terceiros', // 第三方登录退出失败 + 'signOutProcessError': + 'Ocorreu um erro durante o processo de terminar a sessão', // 登出过程发生错误 + 'deleteAccountProcessError': + 'Ocorreu um erro durante o processo de eliminação da conta', // 删除账号过程发生错误 'userDataClearSuccess': 'Dados do utilizador limpos com sucesso', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Todos os dados do utilizador foram limpos com sucesso', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Serviço de Conta inicializado', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Todos os dados do utilizador foram limpos com sucesso', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Serviço de Conta inicializado', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Falha ao obter o estado da permissão', @@ -901,57 +987,86 @@ const Map ptPT = { 'locationInfo': 'Informações de Localização', 'phonePermissionDesc': 'Usado para a função de fazer chamadas', 'smsPermissionDesc': 'Usado para a função de enviar SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Usado para criar eventos e lembretes no calendário', - 'calendarFullAccessPermissionDesc': 'Usado para ler e gerir eventos e lembretes do calendário', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Usado para criar eventos e lembretes no calendário', + 'calendarFullAccessPermissionDesc': + 'Usado para ler e gerir eventos e lembretes do calendário', 'locationPermissionDesc': 'Usado para obter informações da localização atual', 'appFunctionNeeds': 'A função da aplicação precisa', 'authorized': 'Autorizado', 'unauthorized': 'Não Autorizado', - 'needOpenInSystemSettings': 'Precisa de ser ativado nas definições do sistema', + 'needOpenInSystemSettings': + 'Precisa de ser ativado nas definições do sistema', 'partialAuthorization': 'Autorização Parcial', 'unknownStatus': 'Estado Desconhecido', 'permissionGranted': 'Permissão concedida', 'permissionRequestError': 'Erro ao solicitar permissão', - 'phonePermissionDetailDesc': 'A função de chamada requer permissão de telefone', + 'phonePermissionDetailDesc': + 'A função de chamada requer permissão de telefone', 'smsPermissionDetailDesc': 'A função de envio de SMS requer permissão de SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'A criação de eventos no calendário requer permissão de escrita no calendário', - 'calendarFullAccessPermissionDetailDesc': 'A gestão de eventos no calendário requer permissão total de calendário', - 'locationPermissionDetailDesc': 'A obtenção de informações de localização requer permissão de localização', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'A criação de eventos no calendário requer permissão de escrita no calendário', + 'calendarFullAccessPermissionDetailDesc': + 'A gestão de eventos no calendário requer permissão total de calendário', + 'locationPermissionDetailDesc': + 'A obtenção de informações de localização requer permissão de localização', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'A aplicação precisa desta permissão para fornecer funcionalidade completa', - 'permanentDenialText': 'Negou permanentemente a permissão de {permission}, por favor, vá às definições da aplicação para a ativar', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'A aplicação precisa desta permissão para fornecer funcionalidade completa', + 'permanentDenialText': + 'Negou permanentemente a permissão de {permission}, por favor, vá às definições da aplicação para a ativar', 'goToSettings': 'Ir para Definições', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1076,8 @@ const Map ptPT = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1086,10 @@ const Map ptPT = { 'updateNow': 'Atualizar Agora', // 立即更新按钮 'checkUpdate': 'Verificar Atualização', // 检查更新按钮 'updateFailed': 'Atualização Falhou', // 更新失败提示 - 'cannotOpenAppStore': 'Não é possível abrir a loja de aplicações, por favor, vá manualmente à loja de aplicações para atualizar', // 无法打开应用商店提示 - 'updateErrorRetry': 'Ocorreu um erro durante a atualização, por favor, tente novamente mais tarde', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Não é possível abrir a loja de aplicações, por favor, vá manualmente à loja de aplicações para atualizar', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Ocorreu um erro durante a atualização, por favor, tente novamente mais tarde', // 更新错误重试提示 //国家列表 "邮箱": "E-mail", @@ -1107,7 +1225,8 @@ const Map ptPT = { "selectTargetLanguage": "Selecionar idioma de destino", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1242,12 @@ const Map ptPT = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Limpar Histórico", - "clearHistoryConfirm": "Tem a certeza que quer limpar todo o histórico de traduções? Esta ação não pode ser revertida.", + "clearHistoryConfirm": + "Tem a certeza que quer limpar todo o histórico de traduções? Esta ação não pode ser revertida.", "unknownLanguage": "Idioma Desconhecido", "deleteSessionRecord": "Eliminar Registo da Sessão", - "deleteSessionConfirm": "Tem a certeza que quer eliminar todos os registos de tradução desta sessão? Esta ação não pode ser revertida.", + "deleteSessionConfirm": + "Tem a certeza que quer eliminar todos os registos de tradução desta sessão? Esta ação não pode ser revertida.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1279,20 @@ const Map ptPT = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1315,8 @@ const Map ptPT = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Registo Original", "recordSummary": "Resumo do Registo", - "clickToGenerateSummary": "Clique no botão abaixo para gerar um resumo da sessão", + "clickToGenerateSummary": + "Clique no botão abaixo para gerar um resumo da sessão", "summaryContent": "Conteúdo do Resumo", "copied": "Copiado", "summaryCopiledToClipboard": "Resumo copiado para a área de transferência", @@ -1197,9 +1324,11 @@ const Map ptPT = { "summaryGenerated": "Resumo gerado", "generating": "A gerar...", "regenerate": "Regenerar", - "summaryTimeoutMessage": "O pedido de geração de resumo expirou, pode ser devido a problemas de rede ou servidor ocupado.", + "summaryTimeoutMessage": + "O pedido de geração de resumo expirou, pode ser devido a problemas de rede ou servidor ocupado.", "deleteTranslationRecord": "Eliminar Registo de Tradução", - "deleteTranslationConfirm": "Tem a certeza que quer eliminar este registo de tradução? Esta ação não pode ser revertida.", + "deleteTranslationConfirm": + "Tem a certeza que quer eliminar este registo de tradução? Esta ação não pode ser revertida.", "originalText": "Texto Original", "translatedText": "Texto Traduzido", "sessionSummary": "Resumo da Sessão", @@ -1227,19 +1356,26 @@ const Map ptPT = { // 配对状态文本 "readyToPair": "Pronto para emparelhar", "preparingPairingEnvironment": "A preparar ambiente de emparelhamento...", - "connectDeepSoundViaSystemBluetooth": "Por favor, conecte-se primeiro ao dispositivo Voitrans através do Bluetooth do sistema", + "connectDeepSoundViaSystemBluetooth": + "Por favor, conecte-se primeiro ao dispositivo Voitrans através do Bluetooth do sistema", "deviceBindingConfirm": "Confirmação de vinculação do dispositivo...", "establishingDeviceAssociation": "A estabelecer associação do dispositivo...", "waitingCompletePairing": "Aguarde, a concluir o emparelhamento...", - "pairingSuccessRedirecting": "Emparelhamento bem-sucedido! A redirecionar para a página inicial...", + "pairingSuccessRedirecting": + "Emparelhamento bem-sucedido! A redirecionar para a página inicial...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Certifique-se de que está conectado a um dispositivo Voitrans", - "deviceAlreadyBoundToOtherAccount": "Este dispositivo já está vinculado a outra conta", - "deviceAssociationFailed": "Falha na associação do dispositivo, tente novamente", - "scanTimeoutEnsureDeviceNearby": "Tempo de digitalização esgotado, certifique-se de que o dispositivo está por perto", + "ensureConnectedDeepSoundDevice": + "Certifique-se de que está conectado a um dispositivo Voitrans", + "deviceAlreadyBoundToOtherAccount": + "Este dispositivo já está vinculado a outra conta", + "deviceAssociationFailed": + "Falha na associação do dispositivo, tente novamente", + "scanTimeoutEnsureDeviceNearby": + "Tempo de digitalização esgotado, certifique-se de que o dispositivo está por perto", "networkError": "Erro de Rede", - "authorizationFailedCheckCode": "Falha na autorização, verifique se o código de autorização está correto", + "authorizationFailedCheckCode": + "Falha na autorização, verifique se o código de autorização está correto", "pairingFailedRetry": "Falha no emparelhamento, tente novamente", // 配对控制器相关 @@ -1248,37 +1384,46 @@ const Map ptPT = { 'deviceDisconnected': 'Dispositivo desconectado', 'readyToStartPairing': 'Pronto para iniciar o emparelhamento', 'checkingEnvironment': 'A verificar ambiente...', - 'ensureHeadsetOnAndPairingMode': 'Certifique-se de que os auriculares estão ligados e em modo de emparelhamento', + 'ensureHeadsetOnAndPairingMode': + 'Certifique-se de que os auriculares estão ligados e em modo de emparelhamento', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'A estabelecer conexão segura...', - 'needManualBindingAuthCode': 'É necessário um código de autorização de vinculação manual...', + 'needManualBindingAuthCode': + 'É necessário um código de autorização de vinculação manual...', 'pairingSuccessful': 'Emparelhamento bem-sucedido!', 'enableBluetooth': 'Ativar Bluetooth', 'grantPermissions': 'Conceder Permissões', 'retryAssociation': 'Tentar Associação Novamente', 'retryAuthorization': 'Tentar Autorização Novamente', - 'pleaseGrantNecessaryPermissions': 'Por favor, conceda as permissões necessárias', + 'pleaseGrantNecessaryPermissions': + 'Por favor, conceda as permissões necessárias', 'checkFailedRetry': 'Verificação falhou, tente novamente', 'pleaseConnectDeepSoundDevice': 'Por favor, conecte um dispositivo Voitrans', 'verificationFailedRetry': 'Verificação falhou, tente novamente', 'invalidDeviceAddress': 'Endereço de dispositivo inválido', 'bleDeviceAssociationFailed': 'Falha na associação do dispositivo BLE', - 'deviceAssociationFailedRetry': 'Falha na associação do dispositivo, tente novamente', + 'deviceAssociationFailedRetry': + 'Falha na associação do dispositivo, tente novamente', 'bleConnectionTimeoutRetry': 'Tempo de conexão BLE esgotado, tente novamente', 'blePairingStartupFailed': 'Falha no início do emparelhamento BLE', 'bleConnectionFailed': 'Falha na conexão BLE', - 'deviceAuthorizationFailedCheckCode': 'Falha na autorização do dispositivo, verifique o código de autorização', + 'deviceAuthorizationFailedCheckCode': + 'Falha na autorização do dispositivo, verifique o código de autorização', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1290,11 +1435,14 @@ const Map ptPT = { 'contactInfo': 'Informações de Contacto', 'contactHint': 'E-mail/Telemóvel, para que o possamos contactar', 'submit': 'Enviar', - 'feedbackSubmitSuccess': 'Feedback enviado com sucesso, obrigado pelo seu feedback!', - 'feedbackSubmitFailed': 'Falha ao enviar o feedback, tente novamente mais tarde', + 'feedbackSubmitSuccess': + 'Feedback enviado com sucesso, obrigado pelo seu feedback!', + 'feedbackSubmitFailed': + 'Falha ao enviar o feedback, tente novamente mais tarde', // OTA升级模块 - "upgradeExitConfirm": "Atualização em andamento, sair irá interromper o processo, tem a certeza que quer sair?", + "upgradeExitConfirm": + "Atualização em andamento, sair irá interromper o processo, tem a certeza que quer sair?", "deviceModel": "Modelo do Dispositivo", "unknownDevice": "Dispositivo Desconhecido", "currentFirmwareVersion": "Versão Atual do Firmware", @@ -1307,14 +1455,19 @@ const Map ptPT = { "retryConnection": "Tentar Conectar Novamente", "ota_updateNow": "Atualizar Agora", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Mantenha o dispositivo conectado, não feche a aplicação", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Mantenha o dispositivo conectado, não feche a aplicação", "doNotDisconnect": "Não desconecte", "charging": "A carregar", "updateContent": "Conteúdo da Atualização", - "removeEarbudsEnsureBattery": "Retire ambos os auriculares e certifique-se de que a bateria de ambos está acima de 20%", + "removeEarbudsEnsureBattery": + "Retire ambos os auriculares e certifique-se de que a bateria de ambos está acima de 20%", // 音乐列表页面 "noMusic": "Sem Música", // 暂无音乐 @@ -1376,8 +1529,10 @@ const Map ptPT = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/ro_ro.dart b/lib/core/translations/language/ro_ro.dart index 458244596..9969fe884 100644 --- a/lib/core/translations/language/ro_ro.dart +++ b/lib/core/translations/language/ro_ro.dart @@ -33,6 +33,7 @@ const Map roRO = { "spanish": "Spaniolă", "portuguese": "Portugheză", "traditionalChinese": "Chineză tradițională", + "traditionalChineseHK": "Chineză tradițională (Hong Kong)", "japanese": "Japoneză", "korean": "Coreeană", "french": "Franceză", @@ -71,7 +72,8 @@ const Map roRO = { // 登录页 "welcome": "Bun venit", - "loginTips": "Autentificați-vă sau înregistrați-vă cu numărul de telefon sau e-mail", + "loginTips": + "Autentificați-vă sau înregistrați-vă cu numărul de telefon sau e-mail", "accountNumber": "Număr de telefon sau e-mail", "verificationCode": "Cod de verificare", "getCode": "Obține codul", @@ -90,7 +92,8 @@ const Map roRO = { "tip": "Sfat", "pleaseEnterCompleteCode": "Introduceți codul de verificare complet", "loginFailed": "Autentificare eșuată, reîncercați", - 'pleaseAcceptPrivacyPolicy': 'Citiți și acceptați mai întâi Politica de confidențialitate și Acordul de utilizare', + 'pleaseAcceptPrivacyPolicy': + 'Citiți și acceptați mai întâi Politica de confidențialitate și Acordul de utilizare', "enterVerificationCode": "Introduceți codul de verificare", "verificationCodeSentTo": "Codul de verificare a fost trimis la", "resendVerificationCode": "Retrimite codul de verificare", @@ -99,7 +102,8 @@ const Map roRO = { // 隐私政策弹窗 "loginDeclaration": "Declarația Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Bun venit la Voitrans, vă rugăm să citiți cu atenție", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Bun venit la Voitrans, vă rugăm să citiți cu atenție", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +119,30 @@ const Map roRO = { "signal": "Semnal", "deviceId": "ID dispozitiv", "firmwareVersion": "Versiune firmware", - "disconnectedDevice": "Niciun dispozitiv conectat, faceți clic pe butonul de mai jos pentru a conecta", + "disconnectedDevice": + "Niciun dispozitiv conectat, faceți clic pe butonul de mai jos pentru a conecta", "connectDevice": "Conectare dispozitiv", "topAiExperiences": "Experiențe de top cu AI", "aiAssistant": "Asistent AI multifuncțional", - "aiAssistantInfo": "Consultant exclusiv 24/7, răspunde la întrebări, oferă sugestii", + "aiAssistantInfo": + "Consultant exclusiv 24/7, răspunde la întrebări, oferă sugestii", "interpretation": "Interpretare simultană", - "simultaneousInterpretationInfo": "Traducere în timp real în peste 80 de limbi, călătorii fără griji în străinătate", + "simultaneousInterpretationInfo": + "Traducere în timp real în peste 80 de limbi, călătorii fără griji în străinătate", "aiCompanion": "Companion de familie", "aiCompanionInfo": "Vă înțelege, companie caldă", "homeSlogan": "Conectând lumea, dincolo de sunet", - "turnEarphones": "Deschideți carcasa de încărcare a căștilor și introduceți căștile în urechi", + "turnEarphones": + "Deschideți carcasa de încărcare a căștilor și introduceți căștile în urechi", "currentlyConnected": "Conectat în prezent:", "unsystemSetup": "Mergeți la setările de sistem", "talkLater": "Mai târziu", "initializing": "Se inițializează...", - "bluetoothInitializationFailure": "Inițializarea serviciului Bluetooth a eșuat", + "bluetoothInitializationFailure": + "Inițializarea serviciului Bluetooth a eșuat", "checkingPermissions": "Se verifică permisiunile...", - "lackPermissions": "Lipsesc permisiunile Bluetooth și este necesar să permiteți accesul la localizare", + "lackPermissions": + "Lipsesc permisiunile Bluetooth și este necesar să permiteți accesul la localizare", "searchingDevice": "Se caută dispozitive...", "findConnectedDevice": "Dispozitiv conectat găsit", "notFound": "Niciun dispozitiv Bluetooth conectat nu a fost găsit", @@ -140,14 +150,16 @@ const Map roRO = { "connectedDevice": "Conectat la dispozitiv:", "failedRefreshDevice": "Reîmprospătarea dispozitivului a eșuat", "noDeviceFound": "Niciun dispozitiv conectat nu a fost găsit", - "failedDeviceInformation": "Nu s-au putut obține informații despre dispozitiv", + "failedDeviceInformation": + "Nu s-au putut obține informații despre dispozitiv", "unknownEquipment": "Echipament necunoscut", "zeroSignal": "Fără semnal", "good": "Bun", "fine": "Foarte bun", "excellent": "Excelent", "unknown": "Necunoscut", - 'bluetoothTurnedOff': 'Bluetooth este dezactivat, vă rugăm să activați Bluetooth', + 'bluetoothTurnedOff': + 'Bluetooth este dezactivat, vă rugăm să activați Bluetooth', 'bluetoothOff': 'Bluetooth dezactivat', 'leftEar': 'Urechea stângă', 'rightEar': 'Urechea dreaptă', @@ -175,7 +187,8 @@ const Map roRO = { "healthConsultant": "Chat AI multifuncțional", "healthConsultantInfo": "Oferă mai multe funcții de chat AI", "conferenceAssistant": "Asistent pentru ședințe de afaceri", - "conferenceAssistantInfo": "Înregistrare în timp real a proceselor-verbale, traducere multilingvă", + "conferenceAssistantInfo": + "Înregistrare în timp real a proceselor-verbale, traducere multilingvă", "usageStats": "Statistici de utilizare", "usageStatsInfo": "Vizualizați istoricul utilizării aplicației", "scene": "Scenariu", @@ -218,7 +231,8 @@ const Map roRO = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +288,10 @@ const Map roRO = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +300,35 @@ const Map roRO = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +337,10 @@ const Map roRO = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +355,8 @@ const Map roRO = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Omite", @@ -355,7 +382,8 @@ const Map roRO = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +433,8 @@ const Map roRO = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +489,54 @@ const Map roRO = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +548,8 @@ const Map roRO = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +569,8 @@ const Map roRO = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +619,8 @@ const Map roRO = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +645,8 @@ const Map roRO = { "cloudSync": "Recarga de sincronizare în cloud", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Dispozitiv conectat:", "accountId": "ID cont:", "systemSetting": "Setări de sistem", @@ -612,7 +659,8 @@ const Map roRO = { "privacySettings": "Setări de confidențialitate", "privacySettingsInfo": "Gestionați colectarea datelor și permisiunile", "permissionManagement": "Gestionarea permisiunilor", // 权限管理 - "permissionManagementInfo": "Gestionați setările de permisiuni ale aplicației", // 管理应用权限设置 + "permissionManagementInfo": + "Gestionați setările de permisiuni ale aplicației", // 管理应用权限设置 "aboutApplication": "Despre aplicație", "versions": "Versiune", "checkUpdates": "Verifică actualizări", @@ -621,9 +669,11 @@ const Map roRO = { "voiceServiceInfo": "Selectați serviciul de recunoaștere și sinteză vocală", "selectVoiceService": "Selectează serviciu vocal", "azureVoiceService": "Serviciu vocal Azure", - "azureVoiceServiceInfo": "Serviciu vocal în cloud Microsoft, suportă sinteză și recunoaștere vocală de înaltă calitate", + "azureVoiceServiceInfo": + "Serviciu vocal în cloud Microsoft, suportă sinteză și recunoaștere vocală de înaltă calitate", "flutterVoiceService": "Serviciu vocal local Flutter", - "flutterVoiceServiceInfo": "Serviciu vocal local al dispozitivului, poate fi utilizat fără conexiune la internet", + "flutterVoiceServiceInfo": + "Serviciu vocal local al dispozitivului, poate fi utilizat fără conexiune la internet", 'timbreService': 'Serviciu timbru', 'timbreServiceInfo': 'Selectați serviciul de sinteză vocală a timbrului', 'defaultTimbre': 'Timbru implicit', @@ -652,7 +702,8 @@ const Map roRO = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Chat vocal în timp real", - "realtimeVoiceChatInfo": "Experimentați funcția de interacțiune vocală inteligentă (previzualizare funcție)", + "realtimeVoiceChatInfo": + "Experimentați funcția de interacțiune vocală inteligentă (previzualizare funcție)", "loading": "Se încarcă...", //设备管理页面 @@ -667,7 +718,8 @@ const Map roRO = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -678,7 +730,8 @@ const Map roRO = { "inputMessage": "Introduceți mesaj...", "imListening": "Ascult...", "canStartTalking": "Puteți începe să vorbiți", - "addQuestionAboutImage": "Adăugați o întrebare sau o descriere despre imagine...", + "addQuestionAboutImage": + "Adăugați o întrebare sau o descriere despre imagine...", "summarizeImageContent": "Rezumați conținutul imaginii", "extractImageText": "Extrageți text din imagine", "translateImageText": "Traduceți textul din imagine", @@ -721,10 +774,14 @@ const Map roRO = { '• Controlul funcțiilor căștilor\n\n' 'Cu ce vă pot ajuta?', 'microphonePermission': 'Microfon', - 'voiceRecognitionPermissionText': 'Recunoașterea vocală necesită acces la microfon.', - 'voiceTranslationPermissionText': 'Recunoașterea și traducerea vocală necesită acces la microfon.', - 'phoneCallPermissionText': 'Efectuarea apelurilor necesită acces la microfon pentru apeluri vocale.', - 'permissionDeniedText': 'Ați refuzat permanent permisiunea pentru microfon, vă rugăm să mergeți la setările de sistem pentru a o activa.', + 'voiceRecognitionPermissionText': + 'Recunoașterea vocală necesită acces la microfon.', + 'voiceTranslationPermissionText': + 'Recunoașterea și traducerea vocală necesită acces la microfon.', + 'phoneCallPermissionText': + 'Efectuarea apelurilor necesită acces la microfon pentru apeluri vocale.', + 'permissionDeniedText': + 'Ați refuzat permanent permisiunea pentru microfon, vă rugăm să mergeți la setările de sistem pentru a o activa.', 'startVoiceInput': 'Începe intrarea vocală', 'startPhoneCallMode': 'Începe modul de apel, începe intrarea vocală', @@ -745,9 +802,11 @@ const Map roRO = { 'misleadingAttack': 'Înșelător/Atac', 'illegalCriminal': 'Ilegal/Criminal', 'privacyRelated': 'Legat de confidențialitate', - 'copyrightViolation': 'Încălcarea drepturilor mele de autor, a reputației etc.', + 'copyrightViolation': + 'Încălcarea drepturilor mele de autor, a reputației etc.', 'other': 'Altele', - 'reportDescriptionHint': 'Dorim să știm de ce raportați, puteți descrie problema pe care ați întâmpinat-o.', + 'reportDescriptionHint': + 'Dorim să știm de ce raportați, puteți descrie problema pe care ați întâmpinat-o.', //'submit': '提交', //Message_bubble @@ -778,15 +837,24 @@ const Map roRO = { 'highest': 'Maximă', 'lowest': 'Minimă', 'futureForecast': 'Prognoza viitoare', - 'hotWeatherTip': 'Astăzi este cald, aveți grijă la insolație și beți multă apă', - 'coldWeatherTip': 'Astăzi temperatura este scăzută, îmbrăcați-vă gros când ieșiți pentru a nu răci', - 'rainyWeatherTip': 'Astăzi plouă, luați o umbrelă când ieșiți și aveți grijă la drum', - 'snowyWeatherTip': 'Astăzi ninge, drumul este alunecos, aveți grijă și îmbrăcați-vă gros', - 'foggyWeatherTip': 'Astăzi este ceață, vizibilitatea este redusă, purtați o mască când ieșiți', - 'windyWeatherTip': 'Astăzi vântul este puternic, aveți grijă când ieșiți și asigurați-vă bunurile', - 'sunnyWeatherTip': 'Astăzi este soare și razele UV sunt puternice, folosiți protecție solară când ieșiți', - 'temperatureDifferenceTip': 'Astăzi este o diferență mare de temperatură între zi și noapte, adaptați-vă îmbrăcămintea', - 'comfortableWeatherTip': 'Astăzi vremea este plăcută, un moment bun pentru activități în aer liber', + 'hotWeatherTip': + 'Astăzi este cald, aveți grijă la insolație și beți multă apă', + 'coldWeatherTip': + 'Astăzi temperatura este scăzută, îmbrăcați-vă gros când ieșiți pentru a nu răci', + 'rainyWeatherTip': + 'Astăzi plouă, luați o umbrelă când ieșiți și aveți grijă la drum', + 'snowyWeatherTip': + 'Astăzi ninge, drumul este alunecos, aveți grijă și îmbrăcați-vă gros', + 'foggyWeatherTip': + 'Astăzi este ceață, vizibilitatea este redusă, purtați o mască când ieșiți', + 'windyWeatherTip': + 'Astăzi vântul este puternic, aveți grijă când ieșiți și asigurați-vă bunurile', + 'sunnyWeatherTip': + 'Astăzi este soare și razele UV sunt puternice, folosiți protecție solară când ieșiți', + 'temperatureDifferenceTip': + 'Astăzi este o diferență mare de temperatură între zi și noapte, adaptați-vă îmbrăcămintea', + 'comfortableWeatherTip': + 'Astăzi vremea este plăcută, un moment bun pentru activități în aer liber', "monday": "Lu", "tuesday": "Ma", "wednesday": "Mi", @@ -836,24 +904,33 @@ const Map roRO = { "notSet": "Nesetat", "accountSetting": "Setări cont", "logout": "Deconectare", - "logoutTips": "Sunteți sigur că doriți să vă deconectați de la contul curent?", + "logoutTips": + "Sunteți sigur că doriți să vă deconectați de la contul curent?", 'deleteAccount': 'Șterge contul', - 'deleteAccountTips': 'Sunteți sigur că doriți să ștergeți permanent contul? Această acțiune nu poate fi anulată.', + 'deleteAccountTips': + 'Sunteți sigur că doriți să ștergeți permanent contul? Această acțiune nu poate fi anulată.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Conexiunea la rețea a eșuat, verificați setările de rețea și reîncercați', - 'serverTemporarilyUnavailable': 'Serverul este temporar indisponibil, reîncercați mai târziu', - 'loginExpiredPleaseRelogin': 'Sesiunea dvs. a expirat, vă rugăm să vă autentificați din nou', - 'noPermissionForThisOperation': 'Nu aveți permisiunea de a efectua această operație', + 'networkConnectionFailed': + 'Conexiunea la rețea a eșuat, verificați setările de rețea și reîncercați', + 'serverTemporarilyUnavailable': + 'Serverul este temporar indisponibil, reîncercați mai târziu', + 'loginExpiredPleaseRelogin': + 'Sesiunea dvs. a expirat, vă rugăm să vă autentificați din nou', + 'noPermissionForThisOperation': + 'Nu aveți permisiunea de a efectua această operație', 'requestedResourceNotFound': 'Resursa solicitată nu a fost găsită', - 'imageProcessingFailedPleaseReselect': 'Procesarea imaginii a eșuat, vă rugăm să selectați o altă imagine', + 'imageProcessingFailedPleaseReselect': + 'Procesarea imaginii a eșuat, vă rugăm să selectați o altă imagine', 'operationFailedPleaseRetry': 'Operațiunea a eșuat, reîncercați', 'serverReturnedError': 'Serverul a returnat o eroare', 'serverError': 'Eroare de server', - 'networkConnectionFailedCheckSettings': 'Conexiunea la rețea a eșuat, verificați setările de rețea', - 'serverInternalErrorRetryLater': 'Eroare internă de server, reîncercați mai târziu', + 'networkConnectionFailedCheckSettings': + 'Conexiunea la rețea a eșuat, verificați setările de rețea', + 'serverInternalErrorRetryLater': + 'Eroare internă de server, reîncercați mai târziu', // Profile 用户交互 //'error': '错误', @@ -874,11 +951,16 @@ const Map roRO = { 'deleteUserDataFailed': 'Ștergerea datelor de utilizator a eșuat', // 删除用户数据失败 'thirdPartyLogoutSuccess': 'Deconectarea terță parte a reușit', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Deconectarea terță parte a eșuat', // 第三方登录退出失败 - 'signOutProcessError': 'A apărut o eroare în timpul procesului de deconectare', // 登出过程发生错误 - 'deleteAccountProcessError': 'A apărut o eroare în timpul procesului de ștergere a contului', // 删除账号过程发生错误 - 'userDataClearSuccess': 'Datele de utilizator au fost șterse cu succes', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Toate datele de utilizator au fost șterse cu succes', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Serviciul de cont a fost inițializat', // AccountService 已初始化 + 'signOutProcessError': + 'A apărut o eroare în timpul procesului de deconectare', // 登出过程发生错误 + 'deleteAccountProcessError': + 'A apărut o eroare în timpul procesului de ștergere a contului', // 删除账号过程发生错误 + 'userDataClearSuccess': + 'Datele de utilizator au fost șterse cu succes', // 用户数据清理成功 + 'allUserDataClearSuccess': + 'Toate datele de utilizator au fost șterse cu succes', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Serviciul de cont a fost inițializat', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Obținerea stării permisiunii a eșuat', @@ -901,10 +983,14 @@ const Map roRO = { 'locationInfo': 'Informații locație', 'phonePermissionDesc': 'Utilizat pentru funcția de apelare', 'smsPermissionDesc': 'Utilizat pentru funcția de trimitere SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Utilizat pentru crearea de evenimente și memento-uri în calendar', - 'calendarFullAccessPermissionDesc': 'Utilizat pentru citirea și gestionarea evenimentelor și mementourilor din calendar', - 'locationPermissionDesc': 'Utilizat pentru obținerea informațiilor despre locația curentă', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Utilizat pentru crearea de evenimente și memento-uri în calendar', + 'calendarFullAccessPermissionDesc': + 'Utilizat pentru citirea și gestionarea evenimentelor și mementourilor din calendar', + 'locationPermissionDesc': + 'Utilizat pentru obținerea informațiilor despre locația curentă', 'appFunctionNeeds': 'Funcția aplicației necesită', 'authorized': 'Autorizat', 'unauthorized': 'Neautorizat', @@ -913,45 +999,71 @@ const Map roRO = { 'unknownStatus': 'Stare necunoscută', 'permissionGranted': 'Permisiune acordată', 'permissionRequestError': 'Eroare la solicitarea permisiunii', - 'phonePermissionDetailDesc': 'Funcția de apelare necesită permisiunea pentru telefon', - 'smsPermissionDetailDesc': 'Funcția de trimitere SMS necesită permisiunea pentru SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Crearea de evenimente în calendar necesită permisiunea de scriere în calendar', - 'calendarFullAccessPermissionDetailDesc': 'Gestionarea evenimentelor din calendar necesită permisiunea completă pentru calendar', - 'locationPermissionDetailDesc': 'Obținerea informațiilor despre locație necesită permisiunea pentru locație', + 'phonePermissionDetailDesc': + 'Funcția de apelare necesită permisiunea pentru telefon', + 'smsPermissionDetailDesc': + 'Funcția de trimitere SMS necesită permisiunea pentru SMS', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Crearea de evenimente în calendar necesită permisiunea de scriere în calendar', + 'calendarFullAccessPermissionDetailDesc': + 'Gestionarea evenimentelor din calendar necesită permisiunea completă pentru calendar', + 'locationPermissionDetailDesc': + 'Obținerea informațiilor despre locație necesită permisiunea pentru locație', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Aplicația necesită această permisiune pentru funcționalitate completă', - 'permanentDenialText': 'Ați refuzat permanent permisiunea {permission}, vă rugăm să mergeți la setările aplicației pentru a o activa', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Aplicația necesită această permisiune pentru funcționalitate completă', + 'permanentDenialText': + 'Ați refuzat permanent permisiunea {permission}, vă rugăm să mergeți la setările aplicației pentru a o activa', 'goToSettings': 'Mergeți la setări', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1073,8 @@ const Map roRO = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1083,10 @@ const Map roRO = { 'updateNow': 'Actualizează acum', // 立即更新按钮 'checkUpdate': 'Verifică actualizări', // 检查更新按钮 'updateFailed': 'Actualizare eșuată', // 更新失败提示 - 'cannotOpenAppStore': 'Nu se poate deschide magazinul de aplicații, mergeți manual la magazin pentru a actualiza', // 无法打开应用商店提示 - 'updateErrorRetry': 'A apărut o eroare în timpul actualizării, reîncercați mai târziu', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Nu se poate deschide magazinul de aplicații, mergeți manual la magazin pentru a actualiza', // 无法打开应用商店提示 + 'updateErrorRetry': + 'A apărut o eroare în timpul actualizării, reîncercați mai târziu', // 更新错误重试提示 //国家列表 "邮箱": "E-mail", @@ -1107,7 +1222,8 @@ const Map roRO = { "selectTargetLanguage": "Selectează limba țintă", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1239,12 @@ const Map roRO = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Șterge istoricul", - "clearHistoryConfirm": "Sunteți sigur că doriți să ștergeți tot istoricul traducerilor? Această acțiune nu poate fi anulată.", + "clearHistoryConfirm": + "Sunteți sigur că doriți să ștergeți tot istoricul traducerilor? Această acțiune nu poate fi anulată.", "unknownLanguage": "Limbă necunoscută", "deleteSessionRecord": "Șterge înregistrarea sesiunii", - "deleteSessionConfirm": "Sunteți sigur că doriți să ștergeți toate înregistrările de traducere pentru această sesiune? Această acțiune nu poate fi anulată.", + "deleteSessionConfirm": + "Sunteți sigur că doriți să ștergeți toate înregistrările de traducere pentru această sesiune? Această acțiune nu poate fi anulată.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1276,20 @@ const Map roRO = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1312,8 @@ const Map roRO = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Înregistrare originală", "recordSummary": "Rezumat înregistrare", - "clickToGenerateSummary": "Faceți clic pe butonul de mai jos pentru a genera un rezumat al sesiunii", + "clickToGenerateSummary": + "Faceți clic pe butonul de mai jos pentru a genera un rezumat al sesiunii", "summaryContent": "Conținut rezumat", "copied": "Copiat", "summaryCopiledToClipboard": "Rezumatul a fost copiat în clipboard", @@ -1197,9 +1321,11 @@ const Map roRO = { "summaryGenerated": "Rezumat generat", "generating": "Se generează...", "regenerate": "Regenerează", - "summaryTimeoutMessage": "Cererea de generare a rezumatului a expirat, posibil din cauza problemelor de rețea sau a unui server ocupat.", + "summaryTimeoutMessage": + "Cererea de generare a rezumatului a expirat, posibil din cauza problemelor de rețea sau a unui server ocupat.", "deleteTranslationRecord": "Șterge înregistrarea traducerii", - "deleteTranslationConfirm": "Sunteți sigur că doriți să ștergeți această înregistrare de traducere? Această acțiune nu poate fi anulată.", + "deleteTranslationConfirm": + "Sunteți sigur că doriți să ștergeți această înregistrare de traducere? Această acțiune nu poate fi anulată.", "originalText": "Text original", "translatedText": "Text tradus", "sessionSummary": "Rezumat sesiune", @@ -1227,19 +1353,25 @@ const Map roRO = { // 配对状态文本 "readyToPair": "Gata de asociere", "preparingPairingEnvironment": "Se pregătește mediul de asociere...", - "connectDeepSoundViaSystemBluetooth": "Conectați-vă mai întâi la dispozitivul Voitrans prin Bluetooth-ul de sistem", + "connectDeepSoundViaSystemBluetooth": + "Conectați-vă mai întâi la dispozitivul Voitrans prin Bluetooth-ul de sistem", "deviceBindingConfirm": "Confirmare legare dispozitiv...", "establishingDeviceAssociation": "Se stabilește asocierea dispozitivului...", "waitingCompletePairing": "Vă rugăm așteptați, se finalizează asocierea...", - "pairingSuccessRedirecting": "Asociere reușită! Se redirecționează către pagina principală...", + "pairingSuccessRedirecting": + "Asociere reușită! Se redirecționează către pagina principală...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Asigurați-vă că sunteți conectat la un dispozitiv Voitrans", - "deviceAlreadyBoundToOtherAccount": "Acest dispozitiv este deja legat de un alt cont", + "ensureConnectedDeepSoundDevice": + "Asigurați-vă că sunteți conectat la un dispozitiv Voitrans", + "deviceAlreadyBoundToOtherAccount": + "Acest dispozitiv este deja legat de un alt cont", "deviceAssociationFailed": "Asocierea dispozitivului a eșuat, reîncercați", - "scanTimeoutEnsureDeviceNearby": "Scanarea a expirat, asigurați-vă că dispozitivul este în apropiere", + "scanTimeoutEnsureDeviceNearby": + "Scanarea a expirat, asigurați-vă că dispozitivul este în apropiere", "networkError": "Eroare de rețea", - "authorizationFailedCheckCode": "Autorizare eșuată, verificați dacă codul de autorizare este corect", + "authorizationFailedCheckCode": + "Autorizare eșuată, verificați dacă codul de autorizare este corect", "pairingFailedRetry": "Asociere eșuată, reîncercați", // 配对控制器相关 @@ -1248,13 +1380,15 @@ const Map roRO = { 'deviceDisconnected': 'Dispozitiv deconectat', 'readyToStartPairing': 'Gata pentru a începe asocierea', 'checkingEnvironment': 'Se verifică mediul...', - 'ensureHeadsetOnAndPairingMode': 'Asigurați-vă că căștile sunt pornite și în modul de asociere', + 'ensureHeadsetOnAndPairingMode': + 'Asigurați-vă că căștile sunt pornite și în modul de asociere', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Se stabilește o conexiune sigură...', - 'needManualBindingAuthCode': 'Este necesar un cod de autorizare pentru legarea manuală...', + 'needManualBindingAuthCode': + 'Este necesar un cod de autorizare pentru legarea manuală...', 'pairingSuccessful': 'Asociere reușită!', 'enableBluetooth': 'Activează Bluetooth', 'grantPermissions': 'Acordă permisiuni', @@ -1266,35 +1400,45 @@ const Map roRO = { 'verificationFailedRetry': 'Verificare eșuată, reîncercați', 'invalidDeviceAddress': 'Adresă de dispozitiv invalidă', 'bleDeviceAssociationFailed': 'Asocierea dispozitivului BLE a eșuat', - 'deviceAssociationFailedRetry': 'Asocierea dispozitivului a eșuat, reîncercați', + 'deviceAssociationFailedRetry': + 'Asocierea dispozitivului a eșuat, reîncercați', 'bleConnectionTimeoutRetry': 'Conexiunea BLE a expirat, reîncercați', 'blePairingStartupFailed': 'Pornirea asocierii BLE a eșuat', 'bleConnectionFailed': 'Conexiunea BLE a eșuat', - 'deviceAuthorizationFailedCheckCode': 'Autorizarea dispozitivului a eșuat, verificați codul de autorizare', + 'deviceAuthorizationFailedCheckCode': + 'Autorizarea dispozitivului a eșuat, verificați codul de autorizare', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Feedback utilizator", 'feedbackInfo': 'Oferiți feedback sau sugestii', - 'feedbackDescription': 'Vă rugăm să descrieți problema întâmpinată sau sugestia dvs.', + 'feedbackDescription': + 'Vă rugăm să descrieți problema întâmpinată sau sugestia dvs.', 'feedbackHint': 'Introduceți feedback-ul dvs....', 'feedbackRequired': 'Introduceți conținutul feedback-ului', 'contactInfo': 'Informații de contact', 'contactHint': 'E-mail/Telefon, pentru a vă putea contacta', 'submit': 'Trimite', - 'feedbackSubmitSuccess': 'Feedback trimis cu succes, vă mulțumim pentru feedback!', - 'feedbackSubmitFailed': 'Trimiterea feedback-ului a eșuat, reîncercați mai târziu', + 'feedbackSubmitSuccess': + 'Feedback trimis cu succes, vă mulțumim pentru feedback!', + 'feedbackSubmitFailed': + 'Trimiterea feedback-ului a eșuat, reîncercați mai târziu', // OTA升级模块 - "upgradeExitConfirm": "Actualizarea este în curs, ieșirea va întrerupe procesul, sunteți sigur că doriți să ieșiți?", + "upgradeExitConfirm": + "Actualizarea este în curs, ieșirea va întrerupe procesul, sunteți sigur că doriți să ieșiți?", "deviceModel": "Model dispozitiv", "unknownDevice": "Dispozitiv necunoscut", "currentFirmwareVersion": "Versiune firmware curentă", @@ -1307,14 +1451,19 @@ const Map roRO = { "retryConnection": "Reîncearcă conexiunea", "ota_updateNow": "Actualizează acum", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Mențineți dispozitivul conectat, nu închideți aplicația", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Mențineți dispozitivul conectat, nu închideți aplicația", "doNotDisconnect": "Nu deconectați", "charging": "Se încarcă", "updateContent": "Conținut actualizare", - "removeEarbudsEnsureBattery": "Scoateți ambele căști și asigurați-vă că bateria ambelor este peste 20%", + "removeEarbudsEnsureBattery": + "Scoateți ambele căști și asigurați-vă că bateria ambelor este peste 20%", // 音乐列表页面 "noMusic": "Fără muzică", // 暂无音乐 @@ -1376,8 +1525,10 @@ const Map roRO = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/ru_ru.dart b/lib/core/translations/language/ru_ru.dart index e9ffb87e6..ba935ca20 100644 --- a/lib/core/translations/language/ru_ru.dart +++ b/lib/core/translations/language/ru_ru.dart @@ -33,6 +33,7 @@ const Map ruRU = { "spanish": "Испанский", "portuguese": "Португальский", "traditionalChinese": "Традиционный китайский", + "traditionalChineseHK": "Традиционный китайский (Гонконг)", "japanese": "Японский", "korean": "Корейский", "french": "Французский", @@ -71,7 +72,8 @@ const Map ruRU = { // 登录页 "welcome": "Добро пожаловать", - "loginTips": "Войдите или зарегистрируйтесь, используя номер телефона или электронную почту", + "loginTips": + "Войдите или зарегистрируйтесь, используя номер телефона или электронную почту", "accountNumber": "Номер телефона или e-mail", "verificationCode": "Код подтверждения", "getCode": "Получить код", @@ -90,7 +92,8 @@ const Map ruRU = { "tip": "Подсказка", "pleaseEnterCompleteCode": "Пожалуйста, введите полный код подтверждения", "loginFailed": "Ошибка входа, попробуйте еще раз", - 'pleaseAcceptPrivacyPolicy': 'Пожалуйста, сначала прочтите и согласитесь с Политикой конфиденциальности и Пользовательским соглашением', + 'pleaseAcceptPrivacyPolicy': + 'Пожалуйста, сначала прочтите и согласитесь с Политикой конфиденциальности и Пользовательским соглашением', "enterVerificationCode": "Введите код подтверждения", "verificationCodeSentTo": "Код подтверждения отправлен на", "resendVerificationCode": "Отправить код еще раз", @@ -99,7 +102,8 @@ const Map ruRU = { // 隐私政策弹窗 "loginDeclaration": "Заявление Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Добро пожаловать в Voitrans, пожалуйста, внимательно прочтите", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Добро пожаловать в Voitrans, пожалуйста, внимательно прочтите", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +119,29 @@ const Map ruRU = { "signal": "Сигнал", "deviceId": "ID устройства", "firmwareVersion": "Версия прошивки", - "disconnectedDevice": "Устройство не подключено, нажмите кнопку ниже для подключения", + "disconnectedDevice": + "Устройство не подключено, нажмите кнопку ниже для подключения", "connectDevice": "Подключить устройство", "topAiExperiences": "Лучшие AI-впечатления", "aiAssistant": "Всемогущий AI-помощник", - "aiAssistantInfo": "Эксклюзивный консультант 24/7, отвечает на вопросы, дает советы", + "aiAssistantInfo": + "Эксклюзивный консультант 24/7, отвечает на вопросы, дает советы", "interpretation": "Синхронный перевод", - "simultaneousInterpretationInfo": "Перевод в реальном времени на более чем 80 языков, беззаботные поездки за границу", + "simultaneousInterpretationInfo": + "Перевод в реальном времени на более чем 80 языков, беззаботные поездки за границу", "aiCompanion": "Семейный компаньон", "aiCompanionInfo": "Понимает вас, теплое общение", "homeSlogan": "Соединяя мир, превосходя звук", - "turnEarphones": "Откройте зарядный чехол для наушников и вставьте наушники в уши", + "turnEarphones": + "Откройте зарядный чехол для наушников и вставьте наушники в уши", "currentlyConnected": "В настоящее время подключено:", "unsystemSetup": "Перейти в настройки системы", "talkLater": "Позже", "initializing": "Инициализация...", "bluetoothInitializationFailure": "Ошибка инициализации службы Bluetooth", "checkingPermissions": "Проверка разрешений...", - "lackPermissions": "Отсутствуют разрешения Bluetooth и необходимо разрешить доступ к местоположению", + "lackPermissions": + "Отсутствуют разрешения Bluetooth и необходимо разрешить доступ к местоположению", "searchingDevice": "Поиск устройств...", "findConnectedDevice": "Найдено подключенное устройство", "notFound": "Подключенное устройство Bluetooth не найдено", @@ -169,13 +178,15 @@ const Map ruRU = { "faceToFaceTranslation": "Перевод лицом к лицу", 'audioVideoTranslation': 'Перевод аудио и видео', 'callTranslation': 'Перевод звонков', - "simultaneousTranslationInfo": "Перевод в реальном времени на более чем 80 языков", + "simultaneousTranslationInfo": + "Перевод в реальном времени на более чем 80 языков", "aiGirlfriend": "AI-подруга", "aiGirlfriendInfo": "Интеллектуальный компаньон, общайтесь в любое время", "healthConsultant": "Многофункциональный AI-чат", "healthConsultantInfo": "Предлагает больше функций AI-чата", "conferenceAssistant": "Помощник для деловых встреч", - "conferenceAssistantInfo": "Запись протоколов в реальном времени, многоязычный перевод", + "conferenceAssistantInfo": + "Запись протоколов в реальном времени, многоязычный перевод", "usageStats": "Статистика использования", "usageStatsInfo": "Просмотрите статистику использования вашего приложения", "scene": "Сценарий", @@ -218,7 +229,8 @@ const Map ruRU = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +286,10 @@ const Map ruRU = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +298,37 @@ const Map ruRU = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Синхронный перевод и перевод текста в реальном времени с низкой задержкой голосового озвучивания.', - 'transHeaderDesc2': 'Подходит для путешествий, бизнеса, выступлений и обучения.', + 'transHeaderDesc1': + 'Синхронный перевод и перевод текста в реальном времени с низкой задержкой голосового озвучивания.', + 'transHeaderDesc2': + 'Подходит для путешествий, бизнеса, выступлений и обучения.', 'translateZhEn': 'Китайско-английский перевод', 'lowLatencyVoiceBroadcast': 'Голосовое вещание с низкой задержкой', 'multiLangTextTranslation': 'Многоязычный перевод текста', - 'termOptimizationContextPreserve': 'Оптимизация терминологии и сохранение контекста', - 'lexiconTourBusinessLife': 'Лексика для путешествий/бизнеса/повседневной жизни', + 'termOptimizationContextPreserve': + 'Оптимизация терминологии и сохранение контекста', + 'lexiconTourBusinessLife': + 'Лексика для путешествий/бизнеса/повседневной жизни', 'personalVocabularyMemory': 'Память персонального словаря', 'conversationSubtitleLargeText': 'Субтитры беседы / режим крупных шрифтов', 'colorHighContrast': 'Высокая контрастность цветов', - 'transDisclaimer': 'Качество перевода зависит от микрофона, сетевой задержки и фонового шума.', + 'transDisclaimer': + 'Качество перевода зависит от микрофона, сетевой задержки и фонового шума.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +337,10 @@ const Map ruRU = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Обзор преимуществ', @@ -329,7 +355,8 @@ const Map ruRU = { 'generalPrivileges': 'Общие привилегии', 'earlyAccessNewFeatures': 'Ранний доступ к новым функциям', 'crossDeviceSync': 'Синхронизация между устройствами', - 'vipDisclaimer': 'Фактические преимущества зависят от деталей пакета и могут меняться с версиями.', + 'vipDisclaimer': + 'Фактические преимущества зависят от деталей пакета и могут меняться с версиями.', // 新手引导 / Onboarding 'skip': "Пропустить", @@ -355,7 +382,8 @@ const Map ruRU = { 'guideNavInput': "Navigate to Shenzhen Airport", 'guideNavSend': "Lily will plan the route", 'guideNavEnd': "Navigation set—try other commands", - 'guideMeetingStart': "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", + 'guideMeetingStart': + "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", 'guideMeetingInput': "Create a meeting reminder for 3pm tomorrow", 'guideMeetingSend': "Lily will create a meeting reminder", 'guideMeetingEnd': "Reminder created—try other commands", @@ -405,7 +433,8 @@ const Map ruRU = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +489,54 @@ const Map ruRU = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +548,8 @@ const Map ruRU = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +569,8 @@ const Map ruRU = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +619,8 @@ const Map ruRU = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +645,8 @@ const Map ruRU = { "cloudSync": "Пополнение синхронизации в облаке", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Подключенное устройство:", "accountId": "ID аккаунта:", "systemSetting": "Системные настройки", @@ -612,7 +659,8 @@ const Map ruRU = { "privacySettings": "Настройки конфиденциальности", "privacySettingsInfo": "Управление сбором данных и разрешениями", "permissionManagement": "Управление разрешениями", // 权限管理 - "permissionManagementInfo": "Управление настройками разрешений приложения", // 管理应用权限设置 + "permissionManagementInfo": + "Управление настройками разрешений приложения", // 管理应用权限设置 "aboutApplication": "О приложении", "versions": "Версия", "checkUpdates": "Проверить обновления", @@ -621,9 +669,11 @@ const Map ruRU = { "voiceServiceInfo": "Выбор службы распознавания и синтеза речи", "selectVoiceService": "Выберите голосовую службу", "azureVoiceService": "Голосовая служба Azure", - "azureVoiceServiceInfo": "Облачная голосовая служба Microsoft, поддерживающая высококачественный синтез и распознавание речи", + "azureVoiceServiceInfo": + "Облачная голосовая служба Microsoft, поддерживающая высококачественный синтез и распознавание речи", "flutterVoiceService": "Локальная голосовая служба Flutter", - "flutterVoiceServiceInfo": "Локальная голосовая служба устройства, можно использовать без подключения к Интернету", + "flutterVoiceServiceInfo": + "Локальная голосовая служба устройства, можно использовать без подключения к Интернету", 'timbreService': 'Служба тембров', 'timbreServiceInfo': 'Выберите службу синтеза речи с тембрами', 'defaultTimbre': 'Стандартный тембр', @@ -652,7 +702,8 @@ const Map ruRU = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Голосовой чат в реальном времени", - "realtimeVoiceChatInfo": "Испытайте функцию интеллектуального голосового взаимодействия (предварительный просмотр)", + "realtimeVoiceChatInfo": + "Испытайте функцию интеллектуального голосового взаимодействия (предварительный просмотр)", "loading": "Загрузка...", //设备管理页面 @@ -667,7 +718,8 @@ const Map ruRU = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -721,10 +773,14 @@ const Map ruRU = { '• Управлять функциями наушников\n\n' 'Чем я могу вам помочь?', 'microphonePermission': 'Микрофон', - 'voiceRecognitionPermissionText': 'Для распознавания речи требуется доступ к микрофону.', - 'voiceTranslationPermissionText': 'Для распознавания и перевода речи требуется доступ к микрофону.', - 'phoneCallPermissionText': 'Для совершения звонков требуется доступ к микрофону для голосовых вызовов.', - 'permissionDeniedText': 'Вы навсегда отказали в доступе к микрофону, пожалуйста, включите разрешение в настройках системы.', + 'voiceRecognitionPermissionText': + 'Для распознавания речи требуется доступ к микрофону.', + 'voiceTranslationPermissionText': + 'Для распознавания и перевода речи требуется доступ к микрофону.', + 'phoneCallPermissionText': + 'Для совершения звонков требуется доступ к микрофону для голосовых вызовов.', + 'permissionDeniedText': + 'Вы навсегда отказали в доступе к микрофону, пожалуйста, включите разрешение в настройках системы.', 'startVoiceInput': 'Начать голосовой ввод', 'startPhoneCallMode': 'Начать режим звонка, начать голосовой ввод', @@ -747,7 +803,8 @@ const Map ruRU = { 'privacyRelated': "Связано с конфиденциальностью", 'copyrightViolation': "Нарушение моих авторских прав, репутации и т.д.", 'other': 'Другое', - 'reportDescriptionHint': 'Мы хотим знать причину вашей жалобы, вы можете описать проблему, с которой столкнулись.', + 'reportDescriptionHint': + 'Мы хотим знать причину вашей жалобы, вы можете описать проблему, с которой столкнулись.', //'submit': '提交', //Message_bubble @@ -778,15 +835,24 @@ const Map ruRU = { 'highest': 'Макс.', 'lowest': 'Мин.', 'futureForecast': 'Прогноз на будущее', - 'hotWeatherTip': 'Сегодня жарко, пожалуйста, избегайте перегрева и пейте больше воды, чтобы избежать теплового удара', - 'coldWeatherTip': 'Сегодня температура низкая, пожалуйста, тепло одевайтесь, выходя на улицу, чтобы не простудиться', - 'rainyWeatherTip': 'Сегодня дождь, пожалуйста, возьмите с собой зонт и будьте осторожны во время поездок', - 'snowyWeatherTip': 'Сегодня снег, дороги скользкие, будьте осторожны и тепло одевайтесь', - 'foggyWeatherTip': 'Сегодня туман, видимость ограничена, пожалуйста, надевайте маску, выходя на улицу', - 'windyWeatherTip': 'Сегодня сильный ветер, пожалуйста, будьте осторожны и закрепите свои вещи, выходя на улицу', - 'sunnyWeatherTip': 'Сегодня солнечно и сильное ультрафиолетовое излучение, пожалуйста, используйте солнцезащитный крем, выходя на улицу', - 'temperatureDifferenceTip': 'Сегодня большая разница температур между днем и ночью, пожалуйста, одевайтесь соответственно', - 'comfortableWeatherTip': 'Сегодня приятная погода, прекрасное время для активного отдыха на свежем воздухе', + 'hotWeatherTip': + 'Сегодня жарко, пожалуйста, избегайте перегрева и пейте больше воды, чтобы избежать теплового удара', + 'coldWeatherTip': + 'Сегодня температура низкая, пожалуйста, тепло одевайтесь, выходя на улицу, чтобы не простудиться', + 'rainyWeatherTip': + 'Сегодня дождь, пожалуйста, возьмите с собой зонт и будьте осторожны во время поездок', + 'snowyWeatherTip': + 'Сегодня снег, дороги скользкие, будьте осторожны и тепло одевайтесь', + 'foggyWeatherTip': + 'Сегодня туман, видимость ограничена, пожалуйста, надевайте маску, выходя на улицу', + 'windyWeatherTip': + 'Сегодня сильный ветер, пожалуйста, будьте осторожны и закрепите свои вещи, выходя на улицу', + 'sunnyWeatherTip': + 'Сегодня солнечно и сильное ультрафиолетовое излучение, пожалуйста, используйте солнцезащитный крем, выходя на улицу', + 'temperatureDifferenceTip': + 'Сегодня большая разница температур между днем и ночью, пожалуйста, одевайтесь соответственно', + 'comfortableWeatherTip': + 'Сегодня приятная погода, прекрасное время для активного отдыха на свежем воздухе', "monday": "Пн", "tuesday": "Вт", "wednesday": "Ср", @@ -838,22 +904,30 @@ const Map ruRU = { "logout": "Выйти", "logoutTips": "Вы уверены, что хотите выйти из текущего аккаунта?", 'deleteAccount': 'Удалить аккаунт', - 'deleteAccountTips': 'Вы уверены, что хотите навсегда удалить свой аккаунт? Это действие необратимо.', + 'deleteAccountTips': + 'Вы уверены, что хотите навсегда удалить свой аккаунт? Это действие необратимо.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Ошибка сетевого подключения, проверьте настройки сети и попробуйте еще раз', - 'serverTemporarilyUnavailable': 'Сервер временно недоступен, попробуйте еще раз позже', - 'loginExpiredPleaseRelogin': 'Срок действия сессии истек, пожалуйста, войдите снова', - 'noPermissionForThisOperation': 'У вас нет разрешения на выполнение этой операции', + 'networkConnectionFailed': + 'Ошибка сетевого подключения, проверьте настройки сети и попробуйте еще раз', + 'serverTemporarilyUnavailable': + 'Сервер временно недоступен, попробуйте еще раз позже', + 'loginExpiredPleaseRelogin': + 'Срок действия сессии истек, пожалуйста, войдите снова', + 'noPermissionForThisOperation': + 'У вас нет разрешения на выполнение этой операции', 'requestedResourceNotFound': 'Запрошенный ресурс не найден', - 'imageProcessingFailedPleaseReselect': 'Не удалось обработать изображение, пожалуйста, выберите другое изображение', + 'imageProcessingFailedPleaseReselect': + 'Не удалось обработать изображение, пожалуйста, выберите другое изображение', 'operationFailedPleaseRetry': 'Операция не удалась, попробуйте еще раз', 'serverReturnedError': 'Сервер вернул ошибку', 'serverError': 'Ошибка сервера', - 'networkConnectionFailedCheckSettings': 'Ошибка сетевого подключения, проверьте настройки сети', - 'serverInternalErrorRetryLater': 'Внутренняя ошибка сервера, попробуйте еще раз позже', + 'networkConnectionFailedCheckSettings': + 'Ошибка сетевого подключения, проверьте настройки сети', + 'serverInternalErrorRetryLater': + 'Внутренняя ошибка сервера, попробуйте еще раз позже', // Profile 用户交互 //'error': '错误', @@ -873,12 +947,17 @@ const Map ruRU = { 'clearUserDataFailed': 'Не удалось очистить данные пользователя', // 清理用户数据失败 'deleteUserDataFailed': 'Не удалось удалить данные пользователя', // 删除用户数据失败 'thirdPartyLogoutSuccess': 'Выход из стороннего сервиса успешен', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': 'Не удалось выйти из стороннего сервиса', // 第三方登录退出失败 - 'signOutProcessError': 'Произошла ошибка во время выхода из системы', // 登出过程发生错误 - 'deleteAccountProcessError': 'Произошла ошибка во время удаления аккаунта', // 删除账号过程发生错误 + 'thirdPartyLogoutFailed': + 'Не удалось выйти из стороннего сервиса', // 第三方登录退出失败 + 'signOutProcessError': + 'Произошла ошибка во время выхода из системы', // 登出过程发生错误 + 'deleteAccountProcessError': + 'Произошла ошибка во время удаления аккаунта', // 删除账号过程发生错误 'userDataClearSuccess': 'Данные пользователя успешно очищены', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Все данные пользователя успешно очищены', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Служба аккаунтов инициализирована', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Все данные пользователя успешно очищены', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Служба аккаунтов инициализирована', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Не удалось получить статус разрешений', @@ -901,10 +980,14 @@ const Map ruRU = { 'locationInfo': 'Информация о местоположении', 'phonePermissionDesc': 'Используется для совершения звонков', 'smsPermissionDesc': 'Используется для отправки SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Используется для создания событий и напоминаний в календаре', - 'calendarFullAccessPermissionDesc': 'Используется для чтения и управления событиями и напоминаниями в календаре', - 'locationPermissionDesc': 'Используется для получения информации о текущем местоположении', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Используется для создания событий и напоминаний в календаре', + 'calendarFullAccessPermissionDesc': + 'Используется для чтения и управления событиями и напоминаниями в календаре', + 'locationPermissionDesc': + 'Используется для получения информации о текущем местоположении', 'appFunctionNeeds': 'Функции приложения требуют', 'authorized': 'Разрешено', 'unauthorized': 'Не разрешено', @@ -913,45 +996,71 @@ const Map ruRU = { 'unknownStatus': 'Неизвестный статус', 'permissionGranted': 'Разрешение предоставлено', 'permissionRequestError': 'Ошибка при запросе разрешения', - 'phonePermissionDetailDesc': 'Для функции звонков требуется разрешение на доступ к телефону', - 'smsPermissionDetailDesc': 'Для функции отправки SMS требуется разрешение на доступ к SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Для создания событий в календаре требуется разрешение на запись в календарь', - 'calendarFullAccessPermissionDetailDesc': 'Для управления событиями в календаре требуется полный доступ к календарю', - 'locationPermissionDetailDesc': 'Для получения информации о местоположении требуется разрешение на доступ к местоположению', + 'phonePermissionDetailDesc': + 'Для функции звонков требуется разрешение на доступ к телефону', + 'smsPermissionDetailDesc': + 'Для функции отправки SMS требуется разрешение на доступ к SMS', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Для создания событий в календаре требуется разрешение на запись в календарь', + 'calendarFullAccessPermissionDetailDesc': + 'Для управления событиями в календаре требуется полный доступ к календарю', + 'locationPermissionDetailDesc': + 'Для получения информации о местоположении требуется разрешение на доступ к местоположению', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Приложению требуется это разрешение для предоставления полной функциональности', - 'permanentDenialText': 'Вы навсегда отказали в доступе к {permission}, пожалуйста, перейдите в настройки приложения, чтобы включить его', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Приложению требуется это разрешение для предоставления полной функциональности', + 'permanentDenialText': + 'Вы навсегда отказали в доступе к {permission}, пожалуйста, перейдите в настройки приложения, чтобы включить его', 'goToSettings': 'Перейти в настройки', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1070,8 @@ const Map ruRU = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1080,10 @@ const Map ruRU = { 'updateNow': 'Обновить сейчас', // 立即更新按钮 'checkUpdate': 'Проверить обновления', // 检查更新按钮 'updateFailed': 'Не удалось обновить', // 更新失败提示 - 'cannotOpenAppStore': 'Не удается открыть App Store, пожалуйста, перейдите в App Store вручную, чтобы обновить', // 无法打开应用商店提示 - 'updateErrorRetry': 'Произошла ошибка во время обновления, попробуйте еще раз позже', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Не удается открыть App Store, пожалуйста, перейдите в App Store вручную, чтобы обновить', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Произошла ошибка во время обновления, попробуйте еще раз позже', // 更新错误重试提示 //国家列表 "邮箱": "E-mail", @@ -1107,7 +1219,8 @@ const Map ruRU = { "selectTargetLanguage": "Выберите целевой язык", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1236,12 @@ const Map ruRU = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Очистить историю", - "clearHistoryConfirm": "Вы уверены, что хотите очистить всю историю переводов? Это действие необратимо.", + "clearHistoryConfirm": + "Вы уверены, что хотите очистить всю историю переводов? Это действие необратимо.", "unknownLanguage": "Неизвестный язык", "deleteSessionRecord": "Удалить запись сессии", - "deleteSessionConfirm": "Вы уверены, что хотите удалить все записи переводов этой сессии? Это действие необратимо.", + "deleteSessionConfirm": + "Вы уверены, что хотите удалить все записи переводов этой сессии? Это действие необратимо.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1273,20 @@ const Map ruRU = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1309,8 @@ const Map ruRU = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Оригинальная запись", "recordSummary": "Резюме записи", - "clickToGenerateSummary": "Нажмите кнопку ниже, чтобы сгенерировать резюме сессии", + "clickToGenerateSummary": + "Нажмите кнопку ниже, чтобы сгенерировать резюме сессии", "summaryContent": "Содержание резюме", "copied": "Скопировано", "summaryCopiledToClipboard": "Резюме скопировано в буфер обмена", @@ -1197,9 +1318,11 @@ const Map ruRU = { "summaryGenerated": "Резюме сгенерировано", "generating": "Генерация...", "regenerate": "Сгенерировать заново", - "summaryTimeoutMessage": "Тайм-аут запроса на генерацию резюме, возможно, из-за проблем с сетью или загруженности сервера.", + "summaryTimeoutMessage": + "Тайм-аут запроса на генерацию резюме, возможно, из-за проблем с сетью или загруженности сервера.", "deleteTranslationRecord": "Удалить запись перевода", - "deleteTranslationConfirm": "Вы уверены, что хотите удалить эту запись перевода? Это действие необратимо.", + "deleteTranslationConfirm": + "Вы уверены, что хотите удалить эту запись перевода? Это действие необратимо.", "originalText": "Оригинальный текст", "translatedText": "Переведенный текст", "sessionSummary": "Резюме сессии", @@ -1227,19 +1350,26 @@ const Map ruRU = { // 配对状态文本 "readyToPair": "Готово к сопряжению", "preparingPairingEnvironment": "Подготовка среды для сопряжения...", - "connectDeepSoundViaSystemBluetooth": "Пожалуйста, сначала подключитесь к устройству Voitrans через системный Bluetooth", + "connectDeepSoundViaSystemBluetooth": + "Пожалуйста, сначала подключитесь к устройству Voitrans через системный Bluetooth", "deviceBindingConfirm": "Подтверждение привязки устройства...", "establishingDeviceAssociation": "Установление связи с устройством...", "waitingCompletePairing": "Пожалуйста, подождите, завершается сопряжение...", - "pairingSuccessRedirecting": "Сопряжение успешно! Перенаправление на главную страницу...", + "pairingSuccessRedirecting": + "Сопряжение успешно! Перенаправление на главную страницу...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Убедитесь, что вы подключены к устройству Voitrans", - "deviceAlreadyBoundToOtherAccount": "Это устройство уже привязано к другому аккаунту", - "deviceAssociationFailed": "Не удалось связать устройство, попробуйте еще раз", - "scanTimeoutEnsureDeviceNearby": "Тайм-аут сканирования, убедитесь, что устройство находится поблизости", + "ensureConnectedDeepSoundDevice": + "Убедитесь, что вы подключены к устройству Voitrans", + "deviceAlreadyBoundToOtherAccount": + "Это устройство уже привязано к другому аккаунту", + "deviceAssociationFailed": + "Не удалось связать устройство, попробуйте еще раз", + "scanTimeoutEnsureDeviceNearby": + "Тайм-аут сканирования, убедитесь, что устройство находится поблизости", "networkError": "Ошибка сети", - "authorizationFailedCheckCode": "Ошибка авторизации, проверьте правильность кода авторизации", + "authorizationFailedCheckCode": + "Ошибка авторизации, проверьте правильность кода авторизации", "pairingFailedRetry": "Не удалось выполнить сопряжение, попробуйте еще раз", // 配对控制器相关 @@ -1248,53 +1378,65 @@ const Map ruRU = { 'deviceDisconnected': 'Устройство отключено', 'readyToStartPairing': 'Готово к началу сопряжения', 'checkingEnvironment': 'Проверка среды...', - 'ensureHeadsetOnAndPairingMode': 'Убедитесь, что наушники включены и находятся в режиме сопряжения', + 'ensureHeadsetOnAndPairingMode': + 'Убедитесь, что наушники включены и находятся в режиме сопряжения', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Установление безопасного соединения...', - 'needManualBindingAuthCode': 'Требуется код авторизации для ручной привязки...', + 'needManualBindingAuthCode': + 'Требуется код авторизации для ручной привязки...', 'pairingSuccessful': 'Сопряжение успешно!', 'enableBluetooth': 'Включить Bluetooth', 'grantPermissions': 'Предоставить разрешения', 'retryAssociation': 'Повторить связывание', 'retryAuthorization': 'Повторить авторизацию', - 'pleaseGrantNecessaryPermissions': 'Пожалуйста, предоставьте необходимые разрешения', + 'pleaseGrantNecessaryPermissions': + 'Пожалуйста, предоставьте необходимые разрешения', 'checkFailedRetry': 'Проверка не удалась, попробуйте еще раз', 'pleaseConnectDeepSoundDevice': 'Пожалуйста, подключите устройство Voitrans', 'verificationFailedRetry': 'Проверка не удалась, попробуйте еще раз', 'invalidDeviceAddress': 'Неверный адрес устройства', 'bleDeviceAssociationFailed': 'Не удалось связать устройство BLE', - 'deviceAssociationFailedRetry': 'Не удалось связать устройство, попробуйте еще раз', + 'deviceAssociationFailedRetry': + 'Не удалось связать устройство, попробуйте еще раз', 'bleConnectionTimeoutRetry': 'Тайм-аут подключения BLE, попробуйте еще раз', 'blePairingStartupFailed': 'Не удалось запустить сопряжение BLE', 'bleConnectionFailed': 'Не удалось подключиться через BLE', - 'deviceAuthorizationFailedCheckCode': 'Ошибка авторизации устройства, проверьте код авторизации', + 'deviceAuthorizationFailedCheckCode': + 'Ошибка авторизации устройства, проверьте код авторизации', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Отзыв пользователя", 'feedbackInfo': 'Оставить отзыв или предложение', - 'feedbackDescription': 'Пожалуйста, опишите проблему, с которой вы столкнулись, или ваше предложение', + 'feedbackDescription': + 'Пожалуйста, опишите проблему, с которой вы столкнулись, или ваше предложение', 'feedbackHint': 'Пожалуйста, введите ваш отзыв...', 'feedbackRequired': 'Пожалуйста, введите содержание отзыва', 'contactInfo': 'Контактная информация', 'contactHint': 'E-mail/Телефон, чтобы мы могли с вами связаться', 'submit': 'Отправить', 'feedbackSubmitSuccess': 'Отзыв успешно отправлен, спасибо за ваш отзыв!', - 'feedbackSubmitFailed': 'Не удалось отправить отзыв, попробуйте еще раз позже', + 'feedbackSubmitFailed': + 'Не удалось отправить отзыв, попробуйте еще раз позже', // OTA升级模块 - "upgradeExitConfirm": "Идет обновление, выход прервет процесс обновления, вы уверены, что хотите выйти?", + "upgradeExitConfirm": + "Идет обновление, выход прервет процесс обновления, вы уверены, что хотите выйти?", "deviceModel": "Модель устройства", "unknownDevice": "Неизвестное устройство", "currentFirmwareVersion": "Текущая версия прошивки", @@ -1307,14 +1449,19 @@ const Map ruRU = { "retryConnection": "Повторить подключение", "ota_updateNow": "Обновить сейчас", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Пожалуйста, держите устройство подключенным, не закрывайте приложение", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Пожалуйста, держите устройство подключенным, не закрывайте приложение", "doNotDisconnect": "Пожалуйста, не отключайтесь", "charging": "Зарядка", "updateContent": "Содержание обновления", - "removeEarbudsEnsureBattery": "Извлеките оба наушника и убедитесь, что уровень заряда батареи в обоих превышает 20%", + "removeEarbudsEnsureBattery": + "Извлеките оба наушника и убедитесь, что уровень заряда батареи в обоих превышает 20%", // 音乐列表页面 "noMusic": "Нет музыки", // 暂无音乐 @@ -1376,8 +1523,10 @@ const Map ruRU = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/sk_sk.dart b/lib/core/translations/language/sk_sk.dart index 464490f26..80bb2bc57 100644 --- a/lib/core/translations/language/sk_sk.dart +++ b/lib/core/translations/language/sk_sk.dart @@ -33,6 +33,7 @@ const Map skSK = { "spanish": "Španielčina", "portuguese": "Portugalčina", "traditionalChinese": "Tradičná čínština", + "traditionalChineseHK": "Tradičná čínština (Hongkong)", "japanese": "Japončina", "korean": "Kórejčina", "french": "Francúzština", @@ -71,7 +72,8 @@ const Map skSK = { // 登录页 "welcome": "Vitajte", - "loginTips": "Prihláste sa alebo sa zaregistrujte pomocou telefónneho čísla alebo e-mailu", + "loginTips": + "Prihláste sa alebo sa zaregistrujte pomocou telefónneho čísla alebo e-mailu", "accountNumber": "Telefónne číslo alebo e-mail", "verificationCode": "Overovací kód", "getCode": "Získať kód", @@ -90,7 +92,8 @@ const Map skSK = { "tip": "Tip", "pleaseEnterCompleteCode": "Zadajte kompletný overovací kód", "loginFailed": "Prihlásenie zlyhalo, skúste to znova", - 'pleaseAcceptPrivacyPolicy': 'Najprv si prečítajte a súhlaste so Zásadami ochrany osobných údajov a Používateľskou zmluvou', + 'pleaseAcceptPrivacyPolicy': + 'Najprv si prečítajte a súhlaste so Zásadami ochrany osobných údajov a Používateľskou zmluvou', "enterVerificationCode": "Zadajte overovací kód", "verificationCodeSentTo": "Overovací kód bol odoslaný na", "resendVerificationCode": "Znova odoslať overovací kód", @@ -99,7 +102,8 @@ const Map skSK = { // 隐私政策弹窗 "loginDeclaration": "Vyhlásenie Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Vitajte v Voitrans, prečítajte si prosím pozorne", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Vitajte v Voitrans, prečítajte si prosím pozorne", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +119,29 @@ const Map skSK = { "signal": "Signál", "deviceId": "ID zariadenia", "firmwareVersion": "Verzia firmvéru", - "disconnectedDevice": "Žiadne zariadenie nie je pripojené, kliknite na tlačidlo nižšie pre pripojenie", + "disconnectedDevice": + "Žiadne zariadenie nie je pripojené, kliknite na tlačidlo nižšie pre pripojenie", "connectDevice": "Pripojiť zariadenie", "topAiExperiences": "Najlepšie AI zážitky", "aiAssistant": "Všestranný AI asistent", - "aiAssistantInfo": "Exkluzívny konzultant 24/7, odpovedá na otázky, poskytuje návrhy", + "aiAssistantInfo": + "Exkluzívny konzultant 24/7, odpovedá na otázky, poskytuje návrhy", "interpretation": "Simultánne tlmočenie", - "simultaneousInterpretationInfo": "Preklad v reálnom čase vo viac ako 80 jazykoch, bezstarostné cestovanie do zahraničia", + "simultaneousInterpretationInfo": + "Preklad v reálnom čase vo viac ako 80 jazykoch, bezstarostné cestovanie do zahraničia", "aiCompanion": "Rodinný spoločník", "aiCompanionInfo": "Rozumie vám, teplé spoločenstvo", "homeSlogan": "Pripájanie sveta, presahujúce zvuk", - "turnEarphones": "Otvorte nabíjacie puzdro slúchadiel a vložte si slúchadlá do uší", + "turnEarphones": + "Otvorte nabíjacie puzdro slúchadiel a vložte si slúchadlá do uší", "currentlyConnected": "Momentálne pripojené:", "unsystemSetup": "Prejsť do systémových nastavení", "talkLater": "Neskôr", "initializing": "Inicializácia...", "bluetoothInitializationFailure": "Inicializácia služby Bluetooth zlyhala", "checkingPermissions": "Kontrola povolení...", - "lackPermissions": "Chýbajú povolenia Bluetooth a je potrebné povoliť prístup k lokáli", + "lackPermissions": + "Chýbajú povolenia Bluetooth a je potrebné povoliť prístup k lokáli", "searchingDevice": "Vyhľadávanie zariadení...", "findConnectedDevice": "Nájdené pripojené zariadenie", "notFound": "Nenájdené žiadne pripojené Bluetooth zariadenie", @@ -169,13 +178,15 @@ const Map skSK = { "faceToFaceTranslation": "Preklad tvárou v tvár", 'audioVideoTranslation': 'Preklad zvuku a videa', 'callTranslation': 'Preklad hovorov', - "simultaneousTranslationInfo": "Preklad v reálnom čase vo viac ako 80 jazykoch", + "simultaneousTranslationInfo": + "Preklad v reálnom čase vo viac ako 80 jazykoch", "aiGirlfriend": "AI priateľka", "aiGirlfriendInfo": "Inteligentný spoločník, chatujte kedykoľvek", "healthConsultant": "Multifunkčný AI chat", "healthConsultantInfo": "Ponúka viac funkcií AI chatu", "conferenceAssistant": "Asistent pre obchodné stretnutia", - "conferenceAssistantInfo": "Záznam zápisnice v reálnom čase, viacjazyčný preklad", + "conferenceAssistantInfo": + "Záznam zápisnice v reálnom čase, viacjazyčný preklad", "usageStats": "Statistiky využitia", "usageStatsInfo": "Zobrazte vaše využitie aplikácie", "scene": "Scenár", @@ -218,7 +229,8 @@ const Map skSK = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +286,10 @@ const Map skSK = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +298,35 @@ const Map skSK = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +335,10 @@ const Map skSK = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +353,8 @@ const Map skSK = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Preskočiť", @@ -355,7 +380,8 @@ const Map skSK = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +431,8 @@ const Map skSK = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +487,54 @@ const Map skSK = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +546,8 @@ const Map skSK = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +567,8 @@ const Map skSK = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +617,8 @@ const Map skSK = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +643,8 @@ const Map skSK = { "cloudSync": "Nákup synchronizácie v cloude", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Pripojené zariadenie:", "accountId": "ID účtu:", "systemSetting": "Systémové nastavenie", @@ -621,9 +666,11 @@ const Map skSK = { "voiceServiceInfo": "Výber služby rozpoznávania a syntézy reči", "selectVoiceService": "Vyberte hlasovú službu", "azureVoiceService": "Hlasová služba Azure", - "azureVoiceServiceInfo": "Cloudová hlasová služba spoločnosti Microsoft, podporuje vysokokvalitnú syntézu a rozpoznávanie reči", + "azureVoiceServiceInfo": + "Cloudová hlasová služba spoločnosti Microsoft, podporuje vysokokvalitnú syntézu a rozpoznávanie reči", "flutterVoiceService": "Lokálna hlasová služba Flutter", - "flutterVoiceServiceInfo": "Lokálna hlasová služba zariadenia, možno použiť bez pripojenia na internet", + "flutterVoiceServiceInfo": + "Lokálna hlasová služba zariadenia, možno použiť bez pripojenia na internet", 'timbreService': 'Služba zafarbenia hlasu', 'timbreServiceInfo': 'Vyberte službu syntézy reči so zafarbením hlasu', 'defaultTimbre': 'Predvolené zafarbenie hlasu', @@ -652,7 +699,8 @@ const Map skSK = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Hlasový chat v reálnom čase", - "realtimeVoiceChatInfo": "Vyskúšajte funkciu inteligentnej hlasovej interakcie (ukážka funkcie)", + "realtimeVoiceChatInfo": + "Vyskúšajte funkciu inteligentnej hlasovej interakcie (ukážka funkcie)", "loading": "Načítava sa...", //设备管理页面 @@ -667,7 +715,8 @@ const Map skSK = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -721,10 +770,14 @@ const Map skSK = { '• Ovládať funkcie slúchadiel\n\n' 'Ako vám môžem pomôcť?', 'microphonePermission': 'Mikrofón', - 'voiceRecognitionPermissionText': 'Funkcia rozpoznávania reči vyžaduje prístup k mikrofónu.', - 'voiceTranslationPermissionText': 'Funkcia rozpoznávania a prekladu reči vyžaduje prístup k mikrofónu.', - 'phoneCallPermissionText': 'Funkcia volania vyžaduje prístup k mikrofónu pre hlasové hovory.', - 'permissionDeniedText': 'Trvalo ste odmietli povolenie pre mikrofón, prejdite do systémových nastavení, aby ste ho povolili.', + 'voiceRecognitionPermissionText': + 'Funkcia rozpoznávania reči vyžaduje prístup k mikrofónu.', + 'voiceTranslationPermissionText': + 'Funkcia rozpoznávania a prekladu reči vyžaduje prístup k mikrofónu.', + 'phoneCallPermissionText': + 'Funkcia volania vyžaduje prístup k mikrofónu pre hlasové hovory.', + 'permissionDeniedText': + 'Trvalo ste odmietli povolenie pre mikrofón, prejdite do systémových nastavení, aby ste ho povolili.', 'startVoiceInput': 'Začať hlasový vstup', 'startPhoneCallMode': 'Začať režim volania, začať hlasový vstup', @@ -747,7 +800,8 @@ const Map skSK = { 'privacyRelated': 'Súvisiace s ochranou osobných údajov', 'copyrightViolation': 'Porušenie mojich autorských práv, dobrého mena atď.', 'other': 'Iné', - 'reportDescriptionHint': 'Chceme vedieť dôvod vášho hlásenia, môžete opísať problém, s ktorým ste sa stretli.', + 'reportDescriptionHint': + 'Chceme vedieť dôvod vášho hlásenia, môžete opísať problém, s ktorým ste sa stretli.', //'submit': '提交', //Message_bubble @@ -779,14 +833,22 @@ const Map skSK = { 'lowest': 'Najnižšia', 'futureForecast': 'Budúca predpoveď', 'hotWeatherTip': 'Dnes je horúco, dávajte si pozor na úpal a pite veľa vody', - 'coldWeatherTip': 'Dnes je nízka teplota, oblečte sa teplo, keď idete von, aby ste neprechladli', - 'rainyWeatherTip': 'Dnes prší, vezmite si dáždnik, keď idete von, a dávajte si pozor na cestách', - 'snowyWeatherTip': 'Dnes sneží, cesta je klzká, dávajte si pozor a teplo sa oblečte', - 'foggyWeatherTip': 'Dnes je hmla, viditeľnosť je nízka, noste rúško, keď idete von', - 'windyWeatherTip': 'Dnes fúka silný vietor, dávajte si pozor, keď idete von, a zaistite si veci', - 'sunnyWeatherTip': 'Dnes je slnečno a silné UV žiarenie, používajte opaľovací krém, keď idete von', - 'temperatureDifferenceTip': 'Dnes je veľký rozdiel teplôt medzi dňom a nocou, prispôsobte si oblečenie', - 'comfortableWeatherTip': 'Dnes je príjemné počasie, skvelý čas na vonkajšie aktivity', + 'coldWeatherTip': + 'Dnes je nízka teplota, oblečte sa teplo, keď idete von, aby ste neprechladli', + 'rainyWeatherTip': + 'Dnes prší, vezmite si dáždnik, keď idete von, a dávajte si pozor na cestách', + 'snowyWeatherTip': + 'Dnes sneží, cesta je klzká, dávajte si pozor a teplo sa oblečte', + 'foggyWeatherTip': + 'Dnes je hmla, viditeľnosť je nízka, noste rúško, keď idete von', + 'windyWeatherTip': + 'Dnes fúka silný vietor, dávajte si pozor, keď idete von, a zaistite si veci', + 'sunnyWeatherTip': + 'Dnes je slnečno a silné UV žiarenie, používajte opaľovací krém, keď idete von', + 'temperatureDifferenceTip': + 'Dnes je veľký rozdiel teplôt medzi dňom a nocou, prispôsobte si oblečenie', + 'comfortableWeatherTip': + 'Dnes je príjemné počasie, skvelý čas na vonkajšie aktivity', "monday": "Po", "tuesday": "Ut", "wednesday": "St", @@ -838,22 +900,28 @@ const Map skSK = { "logout": "Odhlásiť sa", "logoutTips": "Ste si istí, že sa chcete odhlásiť z aktuálneho účtu?", 'deleteAccount': 'Odstrániť účet', - 'deleteAccountTips': 'Ste si istí, že chcete natrvalo odstrániť svoj účet? Túto akciu nie je možné vrátiť späť.', + 'deleteAccountTips': + 'Ste si istí, že chcete natrvalo odstrániť svoj účet? Túto akciu nie je možné vrátiť späť.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Sieťové pripojenie zlyhalo, skontrolujte nastavenia siete a skúste to znova', - 'serverTemporarilyUnavailable': 'Server je dočasne nedostupný, skúste to znova neskôr', + 'networkConnectionFailed': + 'Sieťové pripojenie zlyhalo, skontrolujte nastavenia siete a skúste to znova', + 'serverTemporarilyUnavailable': + 'Server je dočasne nedostupný, skúste to znova neskôr', 'loginExpiredPleaseRelogin': 'Vaša relácia vypršala, prihláste sa znova', 'noPermissionForThisOperation': 'Nemáte povolenie na túto operáciu', 'requestedResourceNotFound': 'Požadovaný zdroj sa nenašiel', - 'imageProcessingFailedPleaseReselect': 'Spracovanie obrázka zlyhalo, vyberte iný obrázok', + 'imageProcessingFailedPleaseReselect': + 'Spracovanie obrázka zlyhalo, vyberte iný obrázok', 'operationFailedPleaseRetry': 'Operácia zlyhala, skúste to znova', 'serverReturnedError': 'Server vrátil chybu', 'serverError': 'Chyba servera', - 'networkConnectionFailedCheckSettings': 'Sieťové pripojenie zlyhalo, skontrolujte nastavenia siete', - 'serverInternalErrorRetryLater': 'Interná chyba servera, skúste to znova neskôr', + 'networkConnectionFailedCheckSettings': + 'Sieťové pripojenie zlyhalo, skontrolujte nastavenia siete', + 'serverInternalErrorRetryLater': + 'Interná chyba servera, skúste to znova neskôr', // Profile 用户交互 //'error': '错误', @@ -871,14 +939,19 @@ const Map skSK = { // 账号服务相关 'clearUserDataFailed': 'Vymazanie používateľských údajov zlyhalo', // 清理用户数据失败 - 'deleteUserDataFailed': 'Odstránenie používateľských údajov zlyhalo', // 删除用户数据失败 + 'deleteUserDataFailed': + 'Odstránenie používateľských údajov zlyhalo', // 删除用户数据失败 'thirdPartyLogoutSuccess': 'Odhlásenie tretej strany úspešné', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Odhlásenie tretej strany zlyhalo', // 第三方登录退出失败 - 'signOutProcessError': 'Počas procesu odhlásenia sa vyskytla chyba', // 登出过程发生错误 - 'deleteAccountProcessError': 'Počas procesu odstraňovania účtu sa vyskytla chyba', // 删除账号过程发生错误 + 'signOutProcessError': + 'Počas procesu odhlásenia sa vyskytla chyba', // 登出过程发生错误 + 'deleteAccountProcessError': + 'Počas procesu odstraňovania účtu sa vyskytla chyba', // 删除账号过程发生错误 'userDataClearSuccess': 'Používateľské údaje úspešne vymazané', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Všetky používateľské údaje úspešne vymazané', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Služba účtu bola inicializovaná', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Všetky používateľské údaje úspešne vymazané', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Služba účtu bola inicializovaná', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Získanie stavu povolenia zlyhalo', @@ -901,10 +974,14 @@ const Map skSK = { 'locationInfo': 'Informácie o polohe', 'phonePermissionDesc': 'Používa sa pre funkciu volania', 'smsPermissionDesc': 'Používa sa pre funkciu odosielania SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Používa sa na vytváranie udalostí a pripomienok v kalendári', - 'calendarFullAccessPermissionDesc': 'Používa sa na čítanie a správu udalostí a pripomienok v kalendári', - 'locationPermissionDesc': 'Používa sa na získanie informácií o aktuálnej polohe', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Používa sa na vytváranie udalostí a pripomienok v kalendári', + 'calendarFullAccessPermissionDesc': + 'Používa sa na čítanie a správu udalostí a pripomienok v kalendári', + 'locationPermissionDesc': + 'Používa sa na získanie informácií o aktuálnej polohe', 'appFunctionNeeds': 'Funkcia aplikácie vyžaduje', 'authorized': 'Autorizované', 'unauthorized': 'Neautorizované', @@ -914,44 +991,69 @@ const Map skSK = { 'permissionGranted': 'Povolenie udelené', 'permissionRequestError': 'Chyba pri žiadaní o povolenie', 'phonePermissionDetailDesc': 'Funkcia volania vyžaduje povolenie pre telefón', - 'smsPermissionDetailDesc': 'Funkcia odosielania SMS vyžaduje povolenie pre SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Vytváranie udalostí v kalendári vyžaduje povolenie na zápis do kalendára', - 'calendarFullAccessPermissionDetailDesc': 'Správa udalostí v kalendári vyžaduje úplné povolenie pre kalendár', - 'locationPermissionDetailDesc': 'Získanie informácií o polohe vyžaduje povolenie pre polohu', + 'smsPermissionDetailDesc': + 'Funkcia odosielania SMS vyžaduje povolenie pre SMS', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Vytváranie udalostí v kalendári vyžaduje povolenie na zápis do kalendára', + 'calendarFullAccessPermissionDetailDesc': + 'Správa udalostí v kalendári vyžaduje úplné povolenie pre kalendár', + 'locationPermissionDetailDesc': + 'Získanie informácií o polohe vyžaduje povolenie pre polohu', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Aplikácia vyžaduje toto povolenie pre plnú funkčnosť', - 'permanentDenialText': 'Trvalo ste odmietli povolenie {permission}, prejdite do nastavení aplikácie, aby ste ho povolili', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Aplikácia vyžaduje toto povolenie pre plnú funkčnosť', + 'permanentDenialText': + 'Trvalo ste odmietli povolenie {permission}, prejdite do nastavení aplikácie, aby ste ho povolili', 'goToSettings': 'Prejsť do nastavení', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1063,8 @@ const Map skSK = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1073,10 @@ const Map skSK = { 'updateNow': 'Aktualizovať teraz', // 立即更新按钮 'checkUpdate': 'Skontrolovať aktualizácie', // 检查更新按钮 'updateFailed': 'Aktualizácia zlyhala', // 更新失败提示 - 'cannotOpenAppStore': 'Nie je možné otvoriť obchod s aplikáciami, prejdite do obchodu manuálne a aktualizujte', // 无法打开应用商店提示 - 'updateErrorRetry': 'Počas aktualizácie sa vyskytla chyba, skúste to znova neskôr', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Nie je možné otvoriť obchod s aplikáciami, prejdite do obchodu manuálne a aktualizujte', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Počas aktualizácie sa vyskytla chyba, skúste to znova neskôr', // 更新错误重试提示 //国家列表 "邮箱": "E-mail", @@ -1107,7 +1212,8 @@ const Map skSK = { "selectTargetLanguage": "Vyberte cieľový jazyk", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1229,12 @@ const Map skSK = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Vymazať históriu", - "clearHistoryConfirm": "Ste si istí, že chcete vymazať celú históriu prekladov? Túto akciu nie je možné vrátiť späť.", + "clearHistoryConfirm": + "Ste si istí, že chcete vymazať celú históriu prekladov? Túto akciu nie je možné vrátiť späť.", "unknownLanguage": "Neznámy jazyk", "deleteSessionRecord": "Odstrániť záznam relácie", - "deleteSessionConfirm": "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äť.", + "deleteSessionConfirm": + "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äť.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1266,20 @@ const Map skSK = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1302,8 @@ const Map skSK = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Pôvodný záznam", "recordSummary": "Zhrnutie záznamu", - "clickToGenerateSummary": "Kliknite na tlačidlo nižšie pre vygenerovanie zhrnutia relácie", + "clickToGenerateSummary": + "Kliknite na tlačidlo nižšie pre vygenerovanie zhrnutia relácie", "summaryContent": "Obsah zhrnutia", "copied": "Skopírované", "summaryCopiledToClipboard": "Zhrnutie skopírované do schránky", @@ -1197,9 +1311,11 @@ const Map skSK = { "summaryGenerated": "Zhrnutie vygenerované", "generating": "Generuje sa...", "regenerate": "Znova vygenerovať", - "summaryTimeoutMessage": "Požiadavka na generovanie zhrnutia vypršala, môže to byť spôsobené problémami so sieťou alebo zaneprázdneným serverom.", + "summaryTimeoutMessage": + "Požiadavka na generovanie zhrnutia vypršala, môže to byť spôsobené problémami so sieťou alebo zaneprázdneným serverom.", "deleteTranslationRecord": "Odstrániť záznam prekladu", - "deleteTranslationConfirm": "Ste si istí, že chcete odstrániť tento záznam prekladu? Túto akciu nie je možné vrátiť späť.", + "deleteTranslationConfirm": + "Ste si istí, že chcete odstrániť tento záznam prekladu? Túto akciu nie je možné vrátiť späť.", "originalText": "Pôvodný text", "translatedText": "Preložený text", "sessionSummary": "Zhrnutie relácie", @@ -1227,19 +1343,25 @@ const Map skSK = { // 配对状态文本 "readyToPair": "Pripravené na párovanie", "preparingPairingEnvironment": "Príprava prostredia na párovanie...", - "connectDeepSoundViaSystemBluetooth": "Najprv sa pripojte k zariadeniu Voitrans cez systémový Bluetooth", + "connectDeepSoundViaSystemBluetooth": + "Najprv sa pripojte k zariadeniu Voitrans cez systémový Bluetooth", "deviceBindingConfirm": "Potvrdenie prepojenia zariadenia...", "establishingDeviceAssociation": "Vytvára sa priradenie zariadenia...", "waitingCompletePairing": "Počkajte, prosím, párovanie sa dokončuje...", - "pairingSuccessRedirecting": "Párovanie úspešné! Presmerováva sa na domovskú stránku...", + "pairingSuccessRedirecting": + "Párovanie úspešné! Presmerováva sa na domovskú stránku...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Uistite sa, že ste pripojení k zariadeniu Voitrans", - "deviceAlreadyBoundToOtherAccount": "Toto zariadenie je už prepojené s iným účtom", + "ensureConnectedDeepSoundDevice": + "Uistite sa, že ste pripojení k zariadeniu Voitrans", + "deviceAlreadyBoundToOtherAccount": + "Toto zariadenie je už prepojené s iným účtom", "deviceAssociationFailed": "Priradenie zariadenia zlyhalo, skúste to znova", - "scanTimeoutEnsureDeviceNearby": "Skenovanie vypršalo, uistite sa, že je zariadenie v blízkosti", + "scanTimeoutEnsureDeviceNearby": + "Skenovanie vypršalo, uistite sa, že je zariadenie v blízkosti", "networkError": "Chyba siete", - "authorizationFailedCheckCode": "Autorizácia zlyhala, skontrolujte, či je autorizačný kód správny", + "authorizationFailedCheckCode": + "Autorizácia zlyhala, skontrolujte, či je autorizačný kód správny", "pairingFailedRetry": "Párovanie zlyhalo, skúste to znova", // 配对控制器相关 @@ -1248,13 +1370,15 @@ const Map skSK = { 'deviceDisconnected': 'Zariadenie odpojené', 'readyToStartPairing': 'Pripravené na začatie párovania', 'checkingEnvironment': 'Kontrola prostredia...', - 'ensureHeadsetOnAndPairingMode': 'Uistite sa, že sú slúchadlá zapnuté a v režime párovania', + 'ensureHeadsetOnAndPairingMode': + 'Uistite sa, že sú slúchadlá zapnuté a v režime párovania', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Vytvára sa bezpečné pripojenie...', - 'needManualBindingAuthCode': 'Vyžaduje sa kód pre autorizáciu manuálneho prepojenia...', + 'needManualBindingAuthCode': + 'Vyžaduje sa kód pre autorizáciu manuálneho prepojenia...', 'pairingSuccessful': 'Párovanie úspešné!', 'enableBluetooth': 'Zapnúť Bluetooth', 'grantPermissions': 'Udeliť povolenia', @@ -1266,35 +1390,45 @@ const Map skSK = { 'verificationFailedRetry': 'Overenie zlyhalo, skúste to znova', 'invalidDeviceAddress': 'Neplatná adresa zariadenia', 'bleDeviceAssociationFailed': 'Priradenie zariadenia BLE zlyhalo', - 'deviceAssociationFailedRetry': 'Priradenie zariadenia zlyhalo, skúste to znova', + 'deviceAssociationFailedRetry': + 'Priradenie zariadenia zlyhalo, skúste to znova', 'bleConnectionTimeoutRetry': 'Časový limit pripojenia BLE, skúste to znova', 'blePairingStartupFailed': 'Spustenie párovania BLE zlyhalo', 'bleConnectionFailed': 'Pripojenie BLE zlyhalo', - 'deviceAuthorizationFailedCheckCode': 'Autorizácia zariadenia zlyhala, skontrolujte autorizačný kód', + 'deviceAuthorizationFailedCheckCode': + 'Autorizácia zariadenia zlyhala, skontrolujte autorizačný kód', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Spätná väzba používateľa", 'feedbackInfo': 'Poskytnite spätnú väzbu alebo návrhy', - 'feedbackDescription': 'Opíšte problém, s ktorým ste sa stretli, alebo váš návrh', + 'feedbackDescription': + 'Opíšte problém, s ktorým ste sa stretli, alebo váš návrh', 'feedbackHint': 'Zadajte svoju spätnú väzbu...', 'feedbackRequired': 'Zadajte obsah spätnej väzby', 'contactInfo': 'Kontaktné informácie', 'contactHint': 'E-mail/Telefón, aby sme vás mohli kontaktovať', 'submit': 'Odoslať', - 'feedbackSubmitSuccess': 'Spätná väzba úspešne odoslaná, ďakujeme za vašu spätnú väzbu!', - 'feedbackSubmitFailed': 'Odoslanie spätnej väzby zlyhalo, skúste to znova neskôr', + 'feedbackSubmitSuccess': + 'Spätná väzba úspešne odoslaná, ďakujeme za vašu spätnú väzbu!', + 'feedbackSubmitFailed': + 'Odoslanie spätnej väzby zlyhalo, skúste to znova neskôr', // OTA升级模块 - "upgradeExitConfirm": "Prebieha aktualizácia, odchodom sa proces preruší, ste si istí, že chcete odísť?", + "upgradeExitConfirm": + "Prebieha aktualizácia, odchodom sa proces preruší, ste si istí, že chcete odísť?", "deviceModel": "Model zariadenia", "unknownDevice": "Neznáme zariadenie", "currentFirmwareVersion": "Aktuálna verzia firmvéru", @@ -1307,14 +1441,19 @@ const Map skSK = { "retryConnection": "Znova pripojiť", "ota_updateNow": "Aktualizovať teraz", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Udržujte zariadenie pripojené, nezatvárajte aplikáciu", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Udržujte zariadenie pripojené, nezatvárajte aplikáciu", "doNotDisconnect": "Neodpájajte", "charging": "Nabíja sa", "updateContent": "Obsah aktualizácie", - "removeEarbudsEnsureBattery": "Vyberte obe slúchadlá a uistite sa, že batéria oboch je nad 20%", + "removeEarbudsEnsureBattery": + "Vyberte obe slúchadlá a uistite sa, že batéria oboch je nad 20%", // 音乐列表页面 "noMusic": "Žiadna hudba", // 暂无音乐 @@ -1376,8 +1515,10 @@ const Map skSK = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/sl_si.dart b/lib/core/translations/language/sl_si.dart index 740e2950a..bc70cfd3c 100644 --- a/lib/core/translations/language/sl_si.dart +++ b/lib/core/translations/language/sl_si.dart @@ -33,6 +33,7 @@ const Map slSI = { "spanish": "Španščina", "portuguese": "Portugalščina", "traditionalChinese": "Tradicionalna kitajščina", + "traditionalChineseHK": "Tradicionalna kitajščina (Hongkong)", "japanese": "Japonščina", "korean": "Korejščina", "french": "Francoščina", @@ -71,7 +72,8 @@ const Map slSI = { // 登录页 "welcome": "Dobrodošli", - "loginTips": "Prijavite se ali registrirajte s svojo telefonsko številko ali e-pošto", + "loginTips": + "Prijavite se ali registrirajte s svojo telefonsko številko ali e-pošto", "accountNumber": "Telefonska številka ali e-pošta", "verificationCode": "Verifikacijska koda", "getCode": "Pridobi kodo", @@ -90,7 +92,8 @@ const Map slSI = { "tip": "Namig", "pleaseEnterCompleteCode": "Vnesite celotno verifikacijsko kodo", "loginFailed": "Prijava ni uspela, poskusite znova", - 'pleaseAcceptPrivacyPolicy': 'Najprej preberite in se strinjajte s Politiko zasebnosti in Uporabniškim sporazumom', + 'pleaseAcceptPrivacyPolicy': + 'Najprej preberite in se strinjajte s Politiko zasebnosti in Uporabniškim sporazumom', "enterVerificationCode": "Vnesite verifikacijsko kodo", "verificationCodeSentTo": "Verifikacijska koda je bila poslana na", "resendVerificationCode": "Ponovno pošlji verifikacijsko kodo", @@ -99,7 +102,8 @@ const Map slSI = { // 隐私政策弹窗 "loginDeclaration": "Izjava Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Dobrodošli v Voitrans, prosimo, da natančno preberete", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Dobrodošli v Voitrans, prosimo, da natančno preberete", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,13 +119,16 @@ const Map slSI = { "signal": "Signal", "deviceId": "ID naprave", "firmwareVersion": "Različica vdelane programske opreme", - "disconnectedDevice": "Nobena naprava ni povezana, kliknite spodnji gumb za povezavo", + "disconnectedDevice": + "Nobena naprava ni povezana, kliknite spodnji gumb za povezavo", "connectDevice": "Poveži napravo", "topAiExperiences": "Vrhunske izkušnje z AI", "aiAssistant": "Vsestranski pomočnik AI", - "aiAssistantInfo": "Ekskluzivni svetovalec 24/7, odgovarja na vprašanja, daje predloge", + "aiAssistantInfo": + "Ekskluzivni svetovalec 24/7, odgovarja na vprašanja, daje predloge", "interpretation": "Simultano tolmačenje", - "simultaneousInterpretationInfo": "Prevajanje v realnem času v več kot 80 jezikov, brezskrbna potovanja v tujino", + "simultaneousInterpretationInfo": + "Prevajanje v realnem času v več kot 80 jezikov, brezskrbna potovanja v tujino", "aiCompanion": "Družinski spremljevalec", "aiCompanionInfo": "Razume vas, topla družba", "homeSlogan": "Povezovanje sveta, preseganje zvoka", @@ -130,9 +137,11 @@ const Map slSI = { "unsystemSetup": "Pojdi na sistemske nastavitve", "talkLater": "Kasneje", "initializing": "Inicializacija...", - "bluetoothInitializationFailure": "Inicializacija storitve Bluetooth ni uspela", + "bluetoothInitializationFailure": + "Inicializacija storitve Bluetooth ni uspela", "checkingPermissions": "Preverjanje dovoljenj...", - "lackPermissions": "Manjkajo dovoljenja za Bluetooth in je potrebno omogočiti dostop do lokacije", + "lackPermissions": + "Manjkajo dovoljenja za Bluetooth in je potrebno omogočiti dostop do lokacije", "searchingDevice": "Iskanje naprav...", "findConnectedDevice": "Najdena povezana naprava", "notFound": "Nobena povezana naprava Bluetooth ni bila najdena", @@ -169,13 +178,15 @@ const Map slSI = { "faceToFaceTranslation": "Prevajanje iz oči v oči", 'audioVideoTranslation': 'Prevajanje avdia in videa', 'callTranslation': 'Prevajanje klicev', - "simultaneousTranslationInfo": "Prevajanje v realnem času v več kot 80 jezikov", + "simultaneousTranslationInfo": + "Prevajanje v realnem času v več kot 80 jezikov", "aiGirlfriend": "AI dekle", "aiGirlfriendInfo": "Inteligentni spremljevalec, klepetajte kadarkoli", "healthConsultant": "Večnamenski AI klepet", "healthConsultantInfo": "Ponuja več funkcij AI klepeta", "conferenceAssistant": "Pomočnik za poslovne sestanke", - "conferenceAssistantInfo": "Zapisovanje zapisnikov v realnem času, večjezično prevajanje", + "conferenceAssistantInfo": + "Zapisovanje zapisnikov v realnem času, večjezično prevajanje", "usageStats": "Statistika uporabe", "usageStatsInfo": "Pregledajte vaše uporabo aplikacije", "scene": "Scenarij", @@ -218,7 +229,8 @@ const Map slSI = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +286,10 @@ const Map slSI = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +298,35 @@ const Map slSI = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +335,10 @@ const Map slSI = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +353,8 @@ const Map slSI = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Preskoči", @@ -355,7 +380,8 @@ const Map slSI = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +431,8 @@ const Map slSI = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +487,54 @@ const Map slSI = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +546,8 @@ const Map slSI = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +567,8 @@ const Map slSI = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +617,8 @@ const Map slSI = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +643,8 @@ const Map slSI = { "cloudSync": "Nákup sinkronizacije v oblaku", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Povezana naprava:", "accountId": "ID računa:", "systemSetting": "Sistemska nastavitev", @@ -612,7 +657,8 @@ const Map slSI = { "privacySettings": "Nastavitve zasebnosti", "privacySettingsInfo": "Upravljanje zbiranja podatkov in dovoljenj", "permissionManagement": "Upravljanje dovoljenj", // 权限管理 - "permissionManagementInfo": "Upravljanje nastavitev dovoljenj aplikacije", // 管理应用权限设置 + "permissionManagementInfo": + "Upravljanje nastavitev dovoljenj aplikacije", // 管理应用权限设置 "aboutApplication": "O aplikaciji", "versions": "Različica", "checkUpdates": "Preveri posodobitve", @@ -621,9 +667,11 @@ const Map slSI = { "voiceServiceInfo": "Izbira storitve za prepoznavanje in sintezo govora", "selectVoiceService": "Izberi glasovno storitev", "azureVoiceService": "Azure glasovna storitev", - "azureVoiceServiceInfo": "Microsoftova glasovna storitev v oblaku, podpira visokokakovostno sintezo in prepoznavanje govora", + "azureVoiceServiceInfo": + "Microsoftova glasovna storitev v oblaku, podpira visokokakovostno sintezo in prepoznavanje govora", "flutterVoiceService": "Lokalna glasovna storitev Flutter", - "flutterVoiceServiceInfo": "Lokalna glasovna storitev naprave, uporaba brez internetne povezave", + "flutterVoiceServiceInfo": + "Lokalna glasovna storitev naprave, uporaba brez internetne povezave", 'timbreService': 'Storitev barve glasu', 'timbreServiceInfo': 'Izberite storitev sinteze govora z barvo glasu', 'defaultTimbre': 'Privzeta barva glasu', @@ -634,7 +682,8 @@ const Map slSI = { 'pleaseRead': 'Preberite na glas', 'completeRecording': 'Dokončaj snemanje', "firmwareUpgrade": "Nadgradnja vdelane programske opreme", - "bleHeadsetFirmwareUpgrade": "Nadgradnja različice vdelane programske opreme slušalk BLE", + "bleHeadsetFirmwareUpgrade": + "Nadgradnja različice vdelane programske opreme slušalk BLE", "deviceManagement": "Upravljanje naprav", "manageConnectedDevices": "Upravljanje povezanih naprav Bluetooth", @@ -652,7 +701,8 @@ const Map slSI = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Glasovni klepet v realnem času", - "realtimeVoiceChatInfo": "Izkusite funkcijo inteligentne glasovne interakcije (predogled funkcije)", + "realtimeVoiceChatInfo": + "Izkusite funkcijo inteligentne glasovne interakcije (predogled funkcije)", "loading": "Nalaganje...", //设备管理页面 @@ -667,7 +717,8 @@ const Map slSI = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -721,10 +772,14 @@ const Map slSI = { '• Upravljam funkcije slušalk\n\n' 'Kako vam lahko pomagam?', 'microphonePermission': 'Mikrofon', - 'voiceRecognitionPermissionText': 'Funkcija prepoznavanja govora zahteva dostop do mikrofona.', - 'voiceTranslationPermissionText': 'Funkcija prepoznavanja in prevajanja govora zahteva dostop do mikrofona.', - 'phoneCallPermissionText': 'Funkcija klicanja zahteva dostop do mikrofona za glasovne klice.', - 'permissionDeniedText': 'Trajno ste zavrnili dovoljenje za mikrofon, prosimo, pojdite v sistemske nastavitve, da ga omogočite.', + 'voiceRecognitionPermissionText': + 'Funkcija prepoznavanja govora zahteva dostop do mikrofona.', + 'voiceTranslationPermissionText': + 'Funkcija prepoznavanja in prevajanja govora zahteva dostop do mikrofona.', + 'phoneCallPermissionText': + 'Funkcija klicanja zahteva dostop do mikrofona za glasovne klice.', + 'permissionDeniedText': + 'Trajno ste zavrnili dovoljenje za mikrofon, prosimo, pojdite v sistemske nastavitve, da ga omogočite.', 'startVoiceInput': 'Začni glasovni vnos', 'startPhoneCallMode': 'Začni način klicanja, začni glasovni vnos', @@ -738,7 +793,8 @@ const Map slSI = { 'report': 'Prijavi', 'submitSuccess': 'Uspešno poslano', 'submitFailed': 'Pošiljanje ni uspelo', - 'reportSubmitted': 'Prijava je bila poslana, obdelali jo bomo v najkrajšem možnem času', + 'reportSubmitted': + 'Prijava je bila poslana, obdelali jo bomo v najkrajšem možnem času', //'networkError': '网络错误,请稍后重试', 'harmfulUnsafe': 'Škodljivo/Nevarno', 'pornographicVulgar': 'Pornografsko/Vulgarno', @@ -747,7 +803,8 @@ const Map slSI = { 'privacyRelated': 'Povezano z zasebnostjo', 'copyrightViolation': 'Kršitev mojih avtorskih pravic, ugleda itd.', 'other': 'Drugo', - 'reportDescriptionHint': 'Želimo vedeti, zakaj prijavljate, lahko opišete težavo, s katero ste se soočili.', + 'reportDescriptionHint': + 'Želimo vedeti, zakaj prijavljate, lahko opišete težavo, s katero ste se soočili.', //'submit': '提交', //Message_bubble @@ -778,15 +835,24 @@ const Map slSI = { 'highest': 'Najvišja', 'lowest': 'Najnižja', 'futureForecast': 'Prihodnja napoved', - 'hotWeatherTip': 'Danes je vroče, pazite na vročinsko kap in pijte veliko vode', - 'coldWeatherTip': 'Danes je temperatura nizka, oblecite se toplo, ko greste ven, da se ne prehladite', - 'rainyWeatherTip': 'Danes dežuje, vzemite s seboj dežnik, ko greste ven, in pazite na poti', - 'snowyWeatherTip': 'Danes sneži, cesta je spolzka, pazite in se toplo oblecite', - 'foggyWeatherTip': 'Danes je megla, vidljivost je zmanjšana, nosite masko, ko greste ven', - 'windyWeatherTip': 'Danes piha močan veter, pazite, ko greste ven, in zavarujte svoje stvari', - 'sunnyWeatherTip': 'Danes je sončno in močno UV sevanje, uporabite sončno kremo, ko greste ven', - 'temperatureDifferenceTip': 'Danes je velika razlika v temperaturi med dnevom in nočjo, prilagodite oblačila', - 'comfortableWeatherTip': 'Danes je vreme prijetno, odličen čas za dejavnosti na prostem', + 'hotWeatherTip': + 'Danes je vroče, pazite na vročinsko kap in pijte veliko vode', + 'coldWeatherTip': + 'Danes je temperatura nizka, oblecite se toplo, ko greste ven, da se ne prehladite', + 'rainyWeatherTip': + 'Danes dežuje, vzemite s seboj dežnik, ko greste ven, in pazite na poti', + 'snowyWeatherTip': + 'Danes sneži, cesta je spolzka, pazite in se toplo oblecite', + 'foggyWeatherTip': + 'Danes je megla, vidljivost je zmanjšana, nosite masko, ko greste ven', + 'windyWeatherTip': + 'Danes piha močan veter, pazite, ko greste ven, in zavarujte svoje stvari', + 'sunnyWeatherTip': + 'Danes je sončno in močno UV sevanje, uporabite sončno kremo, ko greste ven', + 'temperatureDifferenceTip': + 'Danes je velika razlika v temperaturi med dnevom in nočjo, prilagodite oblačila', + 'comfortableWeatherTip': + 'Danes je vreme prijetno, odličen čas za dejavnosti na prostem', "monday": "Pon", "tuesday": "Tor", "wednesday": "Sre", @@ -836,24 +902,31 @@ const Map slSI = { "notSet": "Ni nastavljeno", "accountSetting": "Nastavitve računa", "logout": "Odjava", - "logoutTips": "Ali ste prepričani, da se želite odjaviti iz trenutnega računa?", + "logoutTips": + "Ali ste prepričani, da se želite odjaviti iz trenutnega računa?", 'deleteAccount': 'Izbriši račun', - 'deleteAccountTips': 'Ali ste prepričani, da želite trajno izbrisati svoj račun? Tega dejanja ni mogoče razveljaviti', + 'deleteAccountTips': + 'Ali ste prepričani, da želite trajno izbrisati svoj račun? Tega dejanja ni mogoče razveljaviti', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Napaka v omrežni povezavi, preverite nastavitve omrežja in poskusite znova', - 'serverTemporarilyUnavailable': 'Strežnik je začasno nedosegljiv, poskusite znova kasneje', + 'networkConnectionFailed': + 'Napaka v omrežni povezavi, preverite nastavitve omrežja in poskusite znova', + 'serverTemporarilyUnavailable': + 'Strežnik je začasno nedosegljiv, poskusite znova kasneje', 'loginExpiredPleaseRelogin': 'Vaša seja je potekla, prijavite se znova', 'noPermissionForThisOperation': 'Nimate dovoljenja za to operacijo', 'requestedResourceNotFound': 'Zahtevan vir ni bil najden', - 'imageProcessingFailedPleaseReselect': 'Obdelava slike ni uspela, izberite drugo sliko', + 'imageProcessingFailedPleaseReselect': + 'Obdelava slike ni uspela, izberite drugo sliko', 'operationFailedPleaseRetry': 'Operacija ni uspela, poskusite znova', 'serverReturnedError': 'Strežnik je vrnil napako', 'serverError': 'Napaka strežnika', - 'networkConnectionFailedCheckSettings': 'Napaka v omrežni povezavi, preverite nastavitve omrežja', - 'serverInternalErrorRetryLater': 'Notranja napaka strežnika, poskusite znova kasneje', + 'networkConnectionFailedCheckSettings': + 'Napaka v omrežni povezavi, preverite nastavitve omrežja', + 'serverInternalErrorRetryLater': + 'Notranja napaka strežnika, poskusite znova kasneje', // Profile 用户交互 //'error': '错误', @@ -871,14 +944,18 @@ const Map slSI = { // 账号服务相关 'clearUserDataFailed': 'Čiščenje uporabniških podatkov ni uspelo', // 清理用户数据失败 - 'deleteUserDataFailed': 'Brisanje uporabniških podatkov ni uspelo', // 删除用户数据失败 + 'deleteUserDataFailed': + 'Brisanje uporabniških podatkov ni uspelo', // 删除用户数据失败 'thirdPartyLogoutSuccess': 'Odjava tretje osebe uspela', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Odjava tretje osebe ni uspela', // 第三方登录退出失败 'signOutProcessError': 'Prišlo je do napake med postopkom odjave', // 登出过程发生错误 - 'deleteAccountProcessError': 'Prišlo je do napake med postopkom brisanja računa', // 删除账号过程发生错误 + 'deleteAccountProcessError': + 'Prišlo je do napake med postopkom brisanja računa', // 删除账号过程发生错误 'userDataClearSuccess': 'Uporabniški podatki uspešno počiščeni', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Vsi uporabniški podatki uspešno počiščeni', // 所有用户数据清理成功 - 'accountServiceInitialized': 'AccountService je bil inicializiran', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Vsi uporabniški podatki uspešno počiščeni', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'AccountService je bil inicializiran', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Pridobivanje stanja dovoljenja ni uspelo', @@ -901,10 +978,14 @@ const Map slSI = { 'locationInfo': 'Informacije o lokaciji', 'phonePermissionDesc': 'Uporablja se za funkcijo klicanja', 'smsPermissionDesc': 'Uporablja se za funkcijo pošiljanja SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Uporablja se za ustvarjanje dogodkov in opomnikov v koledarju', - 'calendarFullAccessPermissionDesc': 'Uporablja se za branje in upravljanje dogodkov in opomnikov v koledarju', - 'locationPermissionDesc': 'Uporablja se za pridobivanje informacij o trenutni lokaciji', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Uporablja se za ustvarjanje dogodkov in opomnikov v koledarju', + 'calendarFullAccessPermissionDesc': + 'Uporablja se za branje in upravljanje dogodkov in opomnikov v koledarju', + 'locationPermissionDesc': + 'Uporablja se za pridobivanje informacij o trenutni lokaciji', 'appFunctionNeeds': 'Funkcija aplikacije zahteva', 'authorized': 'Avtorizirano', 'unauthorized': 'Neavtorizirano', @@ -913,45 +994,71 @@ const Map slSI = { 'unknownStatus': 'Neznano stanje', 'permissionGranted': 'Dovoljenje je bilo odobreno', 'permissionRequestError': 'Napaka pri zahtevanju dovoljenja', - 'phonePermissionDetailDesc': 'Funkcija klicanja zahteva dovoljenje za telefon', - 'smsPermissionDetailDesc': 'Funkcija pošiljanja SMS zahteva dovoljenje za SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Ustvarjanje dogodkov v koledarju zahteva dovoljenje za pisanje v koledar', - 'calendarFullAccessPermissionDetailDesc': 'Upravljanje dogodkov v koledarju zahteva polno dovoljenje za koledar', - 'locationPermissionDetailDesc': 'Pridobivanje informacij o lokaciji zahteva dovoljenje za lokacijo', + 'phonePermissionDetailDesc': + 'Funkcija klicanja zahteva dovoljenje za telefon', + 'smsPermissionDetailDesc': + 'Funkcija pošiljanja SMS zahteva dovoljenje za SMS', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Ustvarjanje dogodkov v koledarju zahteva dovoljenje za pisanje v koledar', + 'calendarFullAccessPermissionDetailDesc': + 'Upravljanje dogodkov v koledarju zahteva polno dovoljenje za koledar', + 'locationPermissionDetailDesc': + 'Pridobivanje informacij o lokaciji zahteva dovoljenje za lokacijo', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Aplikacija zahteva to dovoljenje za polno funkcionalnost', - 'permanentDenialText': 'Trajno ste zavrnili dovoljenje za {permission}, pojdite v nastavitve aplikacije, da ga omogočite', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Aplikacija zahteva to dovoljenje za polno funkcionalnost', + 'permanentDenialText': + 'Trajno ste zavrnili dovoljenje za {permission}, pojdite v nastavitve aplikacije, da ga omogočite', 'goToSettings': 'Pojdi na nastavitve', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1068,8 @@ const Map slSI = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1078,10 @@ const Map slSI = { 'updateNow': 'Posodobi zdaj', // 立即更新按钮 'checkUpdate': 'Preveri posodobitve', // 检查更新按钮 'updateFailed': 'Posodobitev ni uspela', // 更新失败提示 - 'cannotOpenAppStore': 'Ni mogoče odpreti trgovine z aplikacijami, pojdite ročno v trgovino, da posodobite', // 无法打开应用商店提示 - 'updateErrorRetry': 'Prišlo je do napake med posodabljanjem, poskusite znova kasneje', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Ni mogoče odpreti trgovine z aplikacijami, pojdite ročno v trgovino, da posodobite', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Prišlo je do napake med posodabljanjem, poskusite znova kasneje', // 更新错误重试提示 //国家列表 "邮箱": "E-pošta", @@ -1107,7 +1217,8 @@ const Map slSI = { "selectTargetLanguage": "Izberi ciljni jezik", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1234,12 @@ const Map slSI = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Počisti zgodovino", - "clearHistoryConfirm": "Ali ste prepričani, da želite počistiti vso zgodovino prevodov? Tega dejanja ni mogoče razveljaviti.", + "clearHistoryConfirm": + "Ali ste prepričani, da želite počistiti vso zgodovino prevodov? Tega dejanja ni mogoče razveljaviti.", "unknownLanguage": "Neznan jezik", "deleteSessionRecord": "Izbriši zapis seje", - "deleteSessionConfirm": "Ali ste prepričani, da želite izbrisati vse zapise prevodov za to sejo? Tega dejanja ni mogoče razveljaviti.", + "deleteSessionConfirm": + "Ali ste prepričani, da želite izbrisati vse zapise prevodov za to sejo? Tega dejanja ni mogoče razveljaviti.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1271,20 @@ const Map slSI = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1307,8 @@ const Map slSI = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Originalni zapis", "recordSummary": "Povzetek zapisa", - "clickToGenerateSummary": "Kliknite spodnji gumb za generiranje povzetka seje", + "clickToGenerateSummary": + "Kliknite spodnji gumb za generiranje povzetka seje", "summaryContent": "Vsebina povzetka", "copied": "Kopirano", "summaryCopiledToClipboard": "Povzetek je bil kopiran v odložišče", @@ -1197,9 +1316,11 @@ const Map slSI = { "summaryGenerated": "Povzetek je bil generiran", "generating": "Generiranje...", "regenerate": "Ponovno generiraj", - "summaryTimeoutMessage": "Čas za generiranje povzetka je potekel, morda zaradi težav z omrežjem ali zasedenosti strežnika.", + "summaryTimeoutMessage": + "Čas za generiranje povzetka je potekel, morda zaradi težav z omrežjem ali zasedenosti strežnika.", "deleteTranslationRecord": "Izbriši zapis prevoda", - "deleteTranslationConfirm": "Ali ste prepričani, da želite izbrisati ta zapis prevoda? Tega dejanja ni mogoče razveljaviti.", + "deleteTranslationConfirm": + "Ali ste prepričani, da želite izbrisati ta zapis prevoda? Tega dejanja ni mogoče razveljaviti.", "originalText": "Originalno besedilo", "translatedText": "Prevedeno besedilo", "sessionSummary": "Povzetek seje", @@ -1227,19 +1348,25 @@ const Map slSI = { // 配对状态文本 "readyToPair": "Pripravljen za seznanjanje", "preparingPairingEnvironment": "Priprava okolja za seznanjanje...", - "connectDeepSoundViaSystemBluetooth": "Najprej se povežite z napravo Voitrans prek sistemskega Bluetootha", + "connectDeepSoundViaSystemBluetooth": + "Najprej se povežite z napravo Voitrans prek sistemskega Bluetootha", "deviceBindingConfirm": "Potrditev povezave naprave...", "establishingDeviceAssociation": "Vzpostavljanje povezave z napravo...", "waitingCompletePairing": "Počakajte, seznanjanje se zaključuje...", - "pairingSuccessRedirecting": "Seznanjanje uspelo! Preusmerjanje na domačo stran...", + "pairingSuccessRedirecting": + "Seznanjanje uspelo! Preusmerjanje na domačo stran...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Prepričajte se, da ste povezani z napravo Voitrans", - "deviceAlreadyBoundToOtherAccount": "Ta naprava je že povezana z drugim računom", + "ensureConnectedDeepSoundDevice": + "Prepričajte se, da ste povezani z napravo Voitrans", + "deviceAlreadyBoundToOtherAccount": + "Ta naprava je že povezana z drugim računom", "deviceAssociationFailed": "Povezovanje naprave ni uspelo, poskusite znova", - "scanTimeoutEnsureDeviceNearby": "Čas skeniranja je potekel, prepričajte se, da je naprava v bližini", + "scanTimeoutEnsureDeviceNearby": + "Čas skeniranja je potekel, prepričajte se, da je naprava v bližini", "networkError": "Napaka v omrežju", - "authorizationFailedCheckCode": "Avtorizacija ni uspela, preverite, ali je avtorizacijska koda pravilna", + "authorizationFailedCheckCode": + "Avtorizacija ni uspela, preverite, ali je avtorizacijska koda pravilna", "pairingFailedRetry": "Seznanjanje ni uspelo, poskusite znova", // 配对控制器相关 @@ -1248,13 +1375,15 @@ const Map slSI = { 'deviceDisconnected': 'Naprava je bila odklopljena', 'readyToStartPairing': 'Pripravljen za začetek seznanjanja', 'checkingEnvironment': 'Preverjanje okolja...', - 'ensureHeadsetOnAndPairingMode': 'Prepričajte se, da so slušalke vklopljene in v načinu seznanjanja', + 'ensureHeadsetOnAndPairingMode': + 'Prepričajte se, da so slušalke vklopljene in v načinu seznanjanja', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Vzpostavljanje varne povezave...', - 'needManualBindingAuthCode': 'Potrebna je koda za avtorizacijo ročne povezave...', + 'needManualBindingAuthCode': + 'Potrebna je koda za avtorizacijo ročne povezave...', 'pairingSuccessful': 'Seznanjanje uspelo!', 'enableBluetooth': 'Omogoči Bluetooth', 'grantPermissions': 'Podeli dovoljenja', @@ -1266,35 +1395,45 @@ const Map slSI = { 'verificationFailedRetry': 'Preverjanje ni uspelo, poskusite znova', 'invalidDeviceAddress': 'Neveljaven naslov naprave', 'bleDeviceAssociationFailed': 'Povezovanje naprave BLE ni uspelo', - 'deviceAssociationFailedRetry': 'Povezovanje naprave ni uspelo, poskusite znova', - 'bleConnectionTimeoutRetry': 'Čas za povezavo BLE je potekel, poskusite znova', + 'deviceAssociationFailedRetry': + 'Povezovanje naprave ni uspelo, poskusite znova', + 'bleConnectionTimeoutRetry': + 'Čas za povezavo BLE je potekel, poskusite znova', 'blePairingStartupFailed': 'Zagon seznanjanja BLE ni uspel', 'bleConnectionFailed': 'Povezava BLE ni uspela', - 'deviceAuthorizationFailedCheckCode': 'Avtorizacija naprave ni uspela, preverite avtorizacijsko kodo', + 'deviceAuthorizationFailedCheckCode': + 'Avtorizacija naprave ni uspela, preverite avtorizacijsko kodo', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Povratne informacije uporabnikov", 'feedbackInfo': 'Podajte povratne informacije ali predloge', - 'feedbackDescription': 'Opišite težavo, s katero ste se soočili, ali svoj predlog', + 'feedbackDescription': + 'Opišite težavo, s katero ste se soočili, ali svoj predlog', 'feedbackHint': 'Vnesite svoje povratne informacije...', 'feedbackRequired': 'Vnesite vsebino povratnih informacij', 'contactInfo': 'Kontaktni podatki', 'contactHint': 'E-pošta/Telefon, da vas lahko kontaktiramo', 'submit': 'Pošlji', 'feedbackSubmitSuccess': 'Povratne informacije uspešno poslane, hvala vam!', - 'feedbackSubmitFailed': 'Pošiljanje povratnih informacij ni uspelo, poskusite znova kasneje', + 'feedbackSubmitFailed': + 'Pošiljanje povratnih informacij ni uspelo, poskusite znova kasneje', // OTA升级模块 - "upgradeExitConfirm": "Nadgradnja poteka, izhod bo prekinil postopek, ste prepričani, da želite izstopiti?", + "upgradeExitConfirm": + "Nadgradnja poteka, izhod bo prekinil postopek, ste prepričani, da želite izstopiti?", "deviceModel": "Model naprave", "unknownDevice": "Neznana naprava", "currentFirmwareVersion": "Trenutna različica vdelane programske opreme", @@ -1307,14 +1446,19 @@ const Map slSI = { "retryConnection": "Ponovno poskusi povezati", "ota_updateNow": "Posodobi zdaj", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Ohranite napravo povezano, ne zapirajte aplikacije", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Ohranite napravo povezano, ne zapirajte aplikacije", "doNotDisconnect": "Ne prekinjajte povezave", "charging": "Polnjenje", "updateContent": "Vsebina posodobitve", - "removeEarbudsEnsureBattery": "Odstranite obe slušalki in se prepričajte, da je baterija obeh nad 20%", + "removeEarbudsEnsureBattery": + "Odstranite obe slušalki in se prepričajte, da je baterija obeh nad 20%", // 音乐列表页面 "noMusic": "Ni glasbe", // 暂无音乐 @@ -1376,8 +1520,10 @@ const Map slSI = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/sr_rs.dart b/lib/core/translations/language/sr_rs.dart index a48d0b8fd..bf2feb6b0 100644 --- a/lib/core/translations/language/sr_rs.dart +++ b/lib/core/translations/language/sr_rs.dart @@ -33,6 +33,7 @@ const Map srRS = { "spanish": "Španski", "portuguese": "Portugalski", "traditionalChinese": "Tradicionalni kineski", + "traditionalChineseHK": "Tradicionalni kineski (Hong Kong)", "japanese": "Japanski", "korean": "Korejski", "french": "Francuski", @@ -90,7 +91,8 @@ const Map srRS = { "tip": "Savet", "pleaseEnterCompleteCode": "Unesite kompletan verifikacioni kod", "loginFailed": "Neuspešno prijavljivanje, pokušajte ponovo", - 'pleaseAcceptPrivacyPolicy': 'Prvo pročitajte i prihvatite Politiku privatnosti i Korisnički ugovor', + 'pleaseAcceptPrivacyPolicy': + 'Prvo pročitajte i prihvatite Politiku privatnosti i Korisnički ugovor', "enterVerificationCode": "Unesite verifikacioni kod", "verificationCodeSentTo": "Verifikacioni kod je poslat na", "resendVerificationCode": "Ponovo pošalji verifikacioni kod", @@ -99,7 +101,8 @@ const Map srRS = { // 隐私政策弹窗 "loginDeclaration": "Voitrans izjava", // Voitrans 声明 - "welcomeToThisApp": "Dobrodošli u Voitrans, molimo vas da pažljivo pročitate", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Dobrodošli u Voitrans, molimo vas da pažljivo pročitate", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +118,30 @@ const Map srRS = { "signal": "Signal", "deviceId": "ID uređaja", "firmwareVersion": "Verzija firmvera", - "disconnectedDevice": "Nijedan uređaj nije povezan, kliknite na dugme ispod da biste se povezali", + "disconnectedDevice": + "Nijedan uređaj nije povezan, kliknite na dugme ispod da biste se povezali", "connectDevice": "Poveži uređaj", "topAiExperiences": "Vrhunska AI iskustva", "aiAssistant": "AI sveobuhvatni asistent", - "aiAssistantInfo": "Ekskluzivni konsultant 24/7, odgovara na pitanja, daje predloge", + "aiAssistantInfo": + "Ekskluzivni konsultant 24/7, odgovara na pitanja, daje predloge", "interpretation": "Simultano prevođenje", - "simultaneousInterpretationInfo": "Prevođenje u realnom vremenu na 80+ jezika, bezbrižna putovanja u inostranstvo", + "simultaneousInterpretationInfo": + "Prevođenje u realnom vremenu na 80+ jezika, bezbrižna putovanja u inostranstvo", "aiCompanion": "Porodični pratilac", "aiCompanionInfo": "Razume vas, toplo društvo", "homeSlogan": "Povezivanje sveta, izvan zvuka", - "turnEarphones": "Otvorite futrolu za punjenje slušalica i stavite slušalice u uši", + "turnEarphones": + "Otvorite futrolu za punjenje slušalica i stavite slušalice u uši", "currentlyConnected": "Trenutno povezano:", "unsystemSetup": "Idite na sistemska podešavanja", "talkLater": "Kasnije", "initializing": "Inicijalizacija...", - "bluetoothInitializationFailure": "Neuspešna inicijalizacija Bluetooth servisa", + "bluetoothInitializationFailure": + "Neuspešna inicijalizacija Bluetooth servisa", "checkingPermissions": "Provera dozvola...", - "lackPermissions": "Nedostaju Bluetooth dozvole i je potrebno omogućiti pristup lokaciji", + "lackPermissions": + "Nedostaju Bluetooth dozvole i je potrebno omogućiti pristup lokaciji", "searchingDevice": "Pretraga uređaja...", "findConnectedDevice": "Pronađen povezan uređaj", "notFound": "Nije pronađen povezan Bluetooth uređaj", @@ -175,7 +184,8 @@ const Map srRS = { "healthConsultant": "Višenamenski AI ćaskanje", "healthConsultantInfo": "Nudi više funkcija AI ćaskanja", "conferenceAssistant": "Asistent za poslovne sastanke", - "conferenceAssistantInfo": "Beleženje zapisnika u realnom vremenu, višejezično prevođenje", + "conferenceAssistantInfo": + "Beleženje zapisnika u realnom vremenu, višejezično prevođenje", "usageStats": "Statistika korišćenja", "usageStatsInfo": "Pregledajte vaše korišćenje aplikacije", "scene": "Scena", @@ -218,7 +228,8 @@ const Map srRS = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +285,10 @@ const Map srRS = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +297,35 @@ const Map srRS = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +334,10 @@ const Map srRS = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +352,8 @@ const Map srRS = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Preskoči", @@ -355,7 +379,8 @@ const Map srRS = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +430,8 @@ const Map srRS = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +486,54 @@ const Map srRS = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +545,8 @@ const Map srRS = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +566,8 @@ const Map srRS = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +616,8 @@ const Map srRS = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +642,8 @@ const Map srRS = { "cloudSync": "Nákup sinkronizacije u oblaku", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Povezan uređaj:", "accountId": "ID naloga:", "systemSetting": "Sistemsko podešavanje", @@ -612,7 +656,8 @@ const Map srRS = { "privacySettings": "Podešavanja privatnosti", "privacySettingsInfo": "Upravljanje prikupljanjem podataka i dozvolama", "permissionManagement": "Upravljanje dozvolama", // 权限管理 - "permissionManagementInfo": "Upravljanje podešavanjima dozvola aplikacije", // 管理应用权限设置 + "permissionManagementInfo": + "Upravljanje podešavanjima dozvola aplikacije", // 管理应用权限设置 "aboutApplication": "O aplikaciji", "versions": "Verzija", "checkUpdates": "Proveri ažuriranja", @@ -621,9 +666,11 @@ const Map srRS = { "voiceServiceInfo": "Izbor servisa za prepoznavanje i sintezu govora", "selectVoiceService": "Izaberi govorni servis", "azureVoiceService": "Azure govorni servis", - "azureVoiceServiceInfo": "Microsoftov govorni servis u oblaku, podržava visokokvalitetnu sintezu i prepoznavanje govora", + "azureVoiceServiceInfo": + "Microsoftov govorni servis u oblaku, podržava visokokvalitetnu sintezu i prepoznavanje govora", "flutterVoiceService": "Flutter lokalni govorni servis", - "flutterVoiceServiceInfo": "Lokalni govorni servis uređaja, može se koristiti bez internet konekcije", + "flutterVoiceServiceInfo": + "Lokalni govorni servis uređaja, može se koristiti bez internet konekcije", 'timbreService': 'Servis za boju glasa', 'timbreServiceInfo': 'Izaberite servis za sintezu govora sa bojom glasa', 'defaultTimbre': 'Podrazumevana boja glasa', @@ -652,7 +699,8 @@ const Map srRS = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Glasovno ćaskanje u realnom vremenu", - "realtimeVoiceChatInfo": "Iskusite funkciju inteligentne glasovne interakcije (pregled funkcije)", + "realtimeVoiceChatInfo": + "Iskusite funkciju inteligentne glasovne interakcije (pregled funkcije)", "loading": "Učitavanje...", //设备管理页面 @@ -667,7 +715,8 @@ const Map srRS = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -721,10 +770,14 @@ const Map srRS = { '• Da kontrolišem funkcije slušalica\n\n' 'Kako vam mogu pomoći?', 'microphonePermission': 'Mikrofon', - 'voiceRecognitionPermissionText': 'Funkcija prepoznavanja govora zahteva pristup mikrofonu.', - 'voiceTranslationPermissionText': 'Funkcija prepoznavanja i prevođenja govora zahteva pristup mikrofonu.', - 'phoneCallPermissionText': 'Funkcija pozivanja zahteva pristup mikrofonu za glasovne pozive.', - 'permissionDeniedText': 'Trajno ste odbili dozvolu za mikrofon, idite u sistemska podešavanja da biste je omogućili.', + 'voiceRecognitionPermissionText': + 'Funkcija prepoznavanja govora zahteva pristup mikrofonu.', + 'voiceTranslationPermissionText': + 'Funkcija prepoznavanja i prevođenja govora zahteva pristup mikrofonu.', + 'phoneCallPermissionText': + 'Funkcija pozivanja zahteva pristup mikrofonu za glasovne pozive.', + 'permissionDeniedText': + 'Trajno ste odbili dozvolu za mikrofon, idite u sistemska podešavanja da biste je omogućili.', 'startVoiceInput': 'Započni unos glasom', 'startPhoneCallMode': 'Započni režim poziva, započni unos glasom', @@ -747,7 +800,8 @@ const Map srRS = { 'privacyRelated': 'Vezano za privatnost', 'copyrightViolation': 'Kršenje mog autorskog prava, ugleda, itd.', 'other': 'Ostalo', - 'reportDescriptionHint': 'Želimo da znamo razlog vaše prijave, možete opisati problem sa kojim ste se suočili.', + 'reportDescriptionHint': + 'Želimo da znamo razlog vaše prijave, možete opisati problem sa kojim ste se suočili.', //'submit': '提交', //Message_bubble @@ -779,14 +833,22 @@ const Map srRS = { 'lowest': 'Najniža', 'futureForecast': 'Buduća prognoza', 'hotWeatherTip': 'Danas je vruće, pazite na toplotni udar i pijte puno vode', - 'coldWeatherTip': 'Danas je temperatura niska, obucite se toplo kada izlazite da se ne prehladite', - 'rainyWeatherTip': 'Danas pada kiša, ponesite kišobran kada izlazite i pazite na putu', - 'snowyWeatherTip': 'Danas pada sneg, put je klizav, pazite i obucite se toplo', - 'foggyWeatherTip': 'Danas je magla, vidljivost je smanjena, nosite masku kada izlazite', - 'windyWeatherTip': 'Danas duva jak vetar, pazite kada izlazite i osigurajte svoje stvari', - 'sunnyWeatherTip': 'Danas je sunčano i jako UV zračenje, koristite kremu za sunčanje kada izlazite', - 'temperatureDifferenceTip': 'Danas je velika razlika u temperaturi između dana i noći, prilagodite odeću', - 'comfortableWeatherTip': 'Danas je vreme prijatno, odlično vreme za aktivnosti na otvorenom', + 'coldWeatherTip': + 'Danas je temperatura niska, obucite se toplo kada izlazite da se ne prehladite', + 'rainyWeatherTip': + 'Danas pada kiša, ponesite kišobran kada izlazite i pazite na putu', + 'snowyWeatherTip': + 'Danas pada sneg, put je klizav, pazite i obucite se toplo', + 'foggyWeatherTip': + 'Danas je magla, vidljivost je smanjena, nosite masku kada izlazite', + 'windyWeatherTip': + 'Danas duva jak vetar, pazite kada izlazite i osigurajte svoje stvari', + 'sunnyWeatherTip': + 'Danas je sunčano i jako UV zračenje, koristite kremu za sunčanje kada izlazite', + 'temperatureDifferenceTip': + 'Danas je velika razlika u temperaturi između dana i noći, prilagodite odeću', + 'comfortableWeatherTip': + 'Danas je vreme prijatno, odlično vreme za aktivnosti na otvorenom', "monday": "Pon", "tuesday": "Uto", "wednesday": "Sre", @@ -836,24 +898,31 @@ const Map srRS = { "notSet": "Nije podešeno", "accountSetting": "Podešavanja naloga", "logout": "Odjavi se", - "logoutTips": "Da li ste sigurni da želite da se odjavite sa trenutnog naloga?", + "logoutTips": + "Da li ste sigurni da želite da se odjavite sa trenutnog naloga?", 'deleteAccount': 'Obriši nalog', - 'deleteAccountTips': 'Da li ste sigurni da želite trajno da obrišete svoj nalog? Ova radnja se ne može opozvati', + 'deleteAccountTips': + 'Da li ste sigurni da želite trajno da obrišete svoj nalog? Ova radnja se ne može opozvati', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Neuspešna mrežna veza, proverite podešavanja mreže i pokušajte ponovo', - 'serverTemporarilyUnavailable': 'Server je trenutno nedostupan, pokušajte ponovo kasnije', + 'networkConnectionFailed': + 'Neuspešna mrežna veza, proverite podešavanja mreže i pokušajte ponovo', + 'serverTemporarilyUnavailable': + 'Server je trenutno nedostupan, pokušajte ponovo kasnije', 'loginExpiredPleaseRelogin': 'Vaša sesija je istekla, prijavite se ponovo', 'noPermissionForThisOperation': 'Nemate dozvolu za ovu operaciju', 'requestedResourceNotFound': 'Traženi resurs nije pronađen', - 'imageProcessingFailedPleaseReselect': 'Neuspešna obrada slike, izaberite drugu sliku', + 'imageProcessingFailedPleaseReselect': + 'Neuspešna obrada slike, izaberite drugu sliku', 'operationFailedPleaseRetry': 'Operacija nije uspela, pokušajte ponovo', 'serverReturnedError': 'Server je vratio grešku', 'serverError': 'Greška na serveru', - 'networkConnectionFailedCheckSettings': 'Neuspešna mrežna veza, proverite podešavanja mreže', - 'serverInternalErrorRetryLater': 'Interna greška na serveru, pokušajte ponovo kasnije', + 'networkConnectionFailedCheckSettings': + 'Neuspešna mrežna veza, proverite podešavanja mreže', + 'serverInternalErrorRetryLater': + 'Interna greška na serveru, pokušajte ponovo kasnije', // Profile 用户交互 //'error': '错误', @@ -872,13 +941,19 @@ const Map srRS = { // 账号服务相关 'clearUserDataFailed': 'Neuspešno brisanje korisničkih podataka', // 清理用户数据失败 'deleteUserDataFailed': 'Neuspešno brisanje korisničkih podataka', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'Uspešno odjavljivanje sa treće strane', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': 'Neuspešno odjavljivanje sa treće strane', // 第三方登录退出失败 - 'signOutProcessError': 'Došlo je do greške tokom procesa odjavljivanja', // 登出过程发生错误 - 'deleteAccountProcessError': 'Došlo je do greške tokom procesa brisanja naloga', // 删除账号过程发生错误 + 'thirdPartyLogoutSuccess': + 'Uspešno odjavljivanje sa treće strane', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': + 'Neuspešno odjavljivanje sa treće strane', // 第三方登录退出失败 + 'signOutProcessError': + 'Došlo je do greške tokom procesa odjavljivanja', // 登出过程发生错误 + 'deleteAccountProcessError': + 'Došlo je do greške tokom procesa brisanja naloga', // 删除账号过程发生错误 'userDataClearSuccess': 'Korisnički podaci uspešno obrisani', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Svi korisnički podaci uspešno obrisani', // 所有用户数据清理成功 - 'accountServiceInitialized': 'AccountService je inicijalizovan', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Svi korisnički podaci uspešno obrisani', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'AccountService je inicijalizovan', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Neuspešno dobijanje statusa dozvole', @@ -901,57 +976,86 @@ const Map srRS = { 'locationInfo': 'Informacije o lokaciji', 'phonePermissionDesc': 'Koristi se za funkciju pozivanja', 'smsPermissionDesc': 'Koristi se za funkciju slanja SMS-a', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Koristi se za kreiranje događaja i podsetnika u kalendaru', - 'calendarFullAccessPermissionDesc': 'Koristi se za čitanje i upravljanje događajima i podsetnicima u kalendaru', - 'locationPermissionDesc': 'Koristi se za dobijanje informacija o trenutnoj lokaciji', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Koristi se za kreiranje događaja i podsetnika u kalendaru', + 'calendarFullAccessPermissionDesc': + 'Koristi se za čitanje i upravljanje događajima i podsetnicima u kalendaru', + 'locationPermissionDesc': + 'Koristi se za dobijanje informacija o trenutnoj lokaciji', 'appFunctionNeeds': 'Funkcija aplikacije zahteva', 'authorized': 'Autorizovano', 'unauthorized': 'Neautorizovano', - 'needOpenInSystemSettings': 'Potrebno je omogućiti u sistemskim podešavanjima', + 'needOpenInSystemSettings': + 'Potrebno je omogućiti u sistemskim podešavanjima', 'partialAuthorization': 'Delimična autorizacija', 'unknownStatus': 'Nepoznat status', 'permissionGranted': 'Dozvola je odobrena', 'permissionRequestError': 'Greška prilikom traženja dozvole', 'phonePermissionDetailDesc': 'Funkcija pozivanja zahteva dozvolu za telefon', 'smsPermissionDetailDesc': 'Funkcija slanja SMS-a zahteva dozvolu za SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Kreiranje događaja u kalendaru zahteva dozvolu za pisanje u kalendar', - 'calendarFullAccessPermissionDetailDesc': 'Upravljanje događajima u kalendaru zahteva potpunu dozvolu za kalendar', - 'locationPermissionDetailDesc': 'Dobijanje informacija o lokaciji zahteva dozvolu za lokaciju', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Kreiranje događaja u kalendaru zahteva dozvolu za pisanje u kalendar', + 'calendarFullAccessPermissionDetailDesc': + 'Upravljanje događajima u kalendaru zahteva potpunu dozvolu za kalendar', + 'locationPermissionDetailDesc': + 'Dobijanje informacija o lokaciji zahteva dozvolu za lokaciju', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Aplikacija zahteva ovu dozvolu za punu funkcionalnost', - 'permanentDenialText': 'Trajno ste odbili dozvolu za {permission}, idite u podešavanja aplikacije da biste je omogućili', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Aplikacija zahteva ovu dozvolu za punu funkcionalnost', + 'permanentDenialText': + 'Trajno ste odbili dozvolu za {permission}, idite u podešavanja aplikacije da biste je omogućili', 'goToSettings': 'Idi na podešavanja', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1065,8 @@ const Map srRS = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1075,10 @@ const Map srRS = { 'updateNow': 'Ažuriraj sada', // 立即更新按钮 'checkUpdate': 'Proveri ažuriranja', // 检查更新按钮 'updateFailed': 'Neuspešno ažuriranje', // 更新失败提示 - 'cannotOpenAppStore': 'Nije moguće otvoriti prodavnicu aplikacija, idite ručno u prodavnicu da biste ažurirali', // 无法打开应用商店提示 - 'updateErrorRetry': 'Došlo je do greške tokom ažuriranja, pokušajte ponovo kasnije', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Nije moguće otvoriti prodavnicu aplikacija, idite ručno u prodavnicu da biste ažurirali', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Došlo je do greške tokom ažuriranja, pokušajte ponovo kasnije', // 更新错误重试提示 //国家列表 "邮箱": "E-pošta", @@ -1107,7 +1214,8 @@ const Map srRS = { "selectTargetLanguage": "Izaberi ciljni jezik", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1231,12 @@ const Map srRS = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Obriši istoriju", - "clearHistoryConfirm": "Da li ste sigurni da želite da obrišete celu istoriju prevođenja? Ova radnja se ne može opozvati.", + "clearHistoryConfirm": + "Da li ste sigurni da želite da obrišete celu istoriju prevođenja? Ova radnja se ne može opozvati.", "unknownLanguage": "Nepoznat jezik", "deleteSessionRecord": "Obriši zapis sesije", - "deleteSessionConfirm": "Da li ste sigurni da želite da obrišete sve zapise prevođenja za ovu sesiju? Ova radnja se ne može opozvati.", + "deleteSessionConfirm": + "Da li ste sigurni da želite da obrišete sve zapise prevođenja za ovu sesiju? Ova radnja se ne može opozvati.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1268,20 @@ const Map srRS = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1304,8 @@ const Map srRS = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Originalni zapis", "recordSummary": "Sažetak zapisa", - "clickToGenerateSummary": "Kliknite na dugme ispod da biste generisali sažetak sesije", + "clickToGenerateSummary": + "Kliknite na dugme ispod da biste generisali sažetak sesije", "summaryContent": "Sadržaj sažetka", "copied": "Kopirano", "summaryCopiledToClipboard": "Sažetak je kopiran u međuspremnik", @@ -1197,9 +1313,11 @@ const Map srRS = { "summaryGenerated": "Sažetak je generisan", "generating": "Generisanje...", "regenerate": "Ponovo generiši", - "summaryTimeoutMessage": "Isteklo je vreme za generisanje sažetka, možda zbog problema sa mrežom ili zauzetosti servera.", + "summaryTimeoutMessage": + "Isteklo je vreme za generisanje sažetka, možda zbog problema sa mrežom ili zauzetosti servera.", "deleteTranslationRecord": "Obriši zapis prevođenja", - "deleteTranslationConfirm": "Da li ste sigurni da želite da obrišete ovaj zapis prevođenja? Ova radnja se ne može opozvati.", + "deleteTranslationConfirm": + "Da li ste sigurni da želite da obrišete ovaj zapis prevođenja? Ova radnja se ne može opozvati.", "originalText": "Originalni tekst", "translatedText": "Prevedeni tekst", "sessionSummary": "Sažetak sesije", @@ -1227,19 +1345,25 @@ const Map srRS = { // 配对状态文本 "readyToPair": "Spremno za uparivanje", "preparingPairingEnvironment": "Priprema okruženja za uparivanje...", - "connectDeepSoundViaSystemBluetooth": "Prvo se povežite sa Voitrans uređajem preko sistemskog Bluetooth-a", + "connectDeepSoundViaSystemBluetooth": + "Prvo se povežite sa Voitrans uređajem preko sistemskog Bluetooth-a", "deviceBindingConfirm": "Potvrda povezivanja uređaja...", "establishingDeviceAssociation": "Uspostavljanje veze sa uređajem...", "waitingCompletePairing": "Molimo sačekajte, uparivanje se završava...", - "pairingSuccessRedirecting": "Uparivanje uspešno! Preusmeravanje na početnu stranicu...", + "pairingSuccessRedirecting": + "Uparivanje uspešno! Preusmeravanje na početnu stranicu...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Uverite se da ste povezani sa Voitrans uređajem", - "deviceAlreadyBoundToOtherAccount": "Ovaj uređaj je već povezan sa drugim nalogom", + "ensureConnectedDeepSoundDevice": + "Uverite se da ste povezani sa Voitrans uređajem", + "deviceAlreadyBoundToOtherAccount": + "Ovaj uređaj je već povezan sa drugim nalogom", "deviceAssociationFailed": "Neuspešno povezivanje uređaja, pokušajte ponovo", - "scanTimeoutEnsureDeviceNearby": "Isteklo vreme skeniranja, uverite se da je uređaj u blizini", + "scanTimeoutEnsureDeviceNearby": + "Isteklo vreme skeniranja, uverite se da je uređaj u blizini", "networkError": "Mrežna greška", - "authorizationFailedCheckCode": "Neuspešna autorizacija, proverite da li je autorizacioni kod tačan", + "authorizationFailedCheckCode": + "Neuspešna autorizacija, proverite da li je autorizacioni kod tačan", "pairingFailedRetry": "Neuspešno uparivanje, pokušajte ponovo", // 配对控制器相关 @@ -1248,13 +1372,15 @@ const Map srRS = { 'deviceDisconnected': 'Uređaj je isključen', 'readyToStartPairing': 'Spremno za početak uparivanja', 'checkingEnvironment': 'Provera okruženja...', - 'ensureHeadsetOnAndPairingMode': 'Uverite se da su slušalice uključene i u režimu uparivanja', + 'ensureHeadsetOnAndPairingMode': + 'Uverite se da su slušalice uključene i u režimu uparivanja', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Uspostavljanje bezbedne veze...', - 'needManualBindingAuthCode': 'Potreban je kod za autorizaciju ručnog povezivanja...', + 'needManualBindingAuthCode': + 'Potreban je kod za autorizaciju ručnog povezivanja...', 'pairingSuccessful': 'Uparivanje uspešno!', 'enableBluetooth': 'Omogući Bluetooth', 'grantPermissions': 'Daj dozvole', @@ -1266,35 +1392,45 @@ const Map srRS = { 'verificationFailedRetry': 'Neuspešna verifikacija, pokušajte ponovo', 'invalidDeviceAddress': 'Nevažeća adresa uređaja', 'bleDeviceAssociationFailed': 'Neuspešno povezivanje BLE uređaja', - 'deviceAssociationFailedRetry': 'Neuspešno povezivanje uređaja, pokušajte ponovo', + 'deviceAssociationFailedRetry': + 'Neuspešno povezivanje uređaja, pokušajte ponovo', 'bleConnectionTimeoutRetry': 'Isteklo vreme za BLE vezu, pokušajte ponovo', 'blePairingStartupFailed': 'Neuspešno pokretanje BLE uparivanja', 'bleConnectionFailed': 'Neuspešna BLE veza', - 'deviceAuthorizationFailedCheckCode': 'Neuspešna autorizacija uređaja, proverite autorizacioni kod', + 'deviceAuthorizationFailedCheckCode': + 'Neuspešna autorizacija uređaja, proverite autorizacioni kod', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Povratne informacije korisnika", 'feedbackInfo': 'Dajte povratne informacije ili predloge', - 'feedbackDescription': 'Opišite problem sa kojim ste se suočili ili svoj predlog', + 'feedbackDescription': + 'Opišite problem sa kojim ste se suočili ili svoj predlog', 'feedbackHint': 'Unesite svoje povratne informacije...', 'feedbackRequired': 'Unesite sadržaj povratnih informacija', 'contactInfo': 'Kontakt informacije', 'contactHint': 'E-pošta/Telefon, da bismo vas mogli kontaktirati', 'submit': 'Pošalji', - 'feedbackSubmitSuccess': 'Povratne informacije su uspešno poslate, hvala vam!', - 'feedbackSubmitFailed': 'Neuspešno slanje povratnih informacija, pokušajte ponovo kasnije', + 'feedbackSubmitSuccess': + 'Povratne informacije su uspešno poslate, hvala vam!', + 'feedbackSubmitFailed': + 'Neuspešno slanje povratnih informacija, pokušajte ponovo kasnije', // OTA升级模块 - "upgradeExitConfirm": "Nadogradnja je u toku, izlazak će prekinuti proces, da li ste sigurni da želite da izađete?", + "upgradeExitConfirm": + "Nadogradnja je u toku, izlazak će prekinuti proces, da li ste sigurni da želite da izađete?", "deviceModel": "Model uređaja", "unknownDevice": "Nepoznat uređaj", "currentFirmwareVersion": "Trenutna verzija firmvera", @@ -1307,14 +1443,18 @@ const Map srRS = { "retryConnection": "Pokušaj ponovo povezivanje", "ota_updateNow": "Ažuriraj sada", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "Držite uređaj povezanim, ne zatvarajte aplikaciju", "doNotDisconnect": "Ne prekidajte vezu", "charging": "Punjenje", "updateContent": "Sadržaj ažuriranja", - "removeEarbudsEnsureBattery": "Izvadite obe slušalice i uverite se da je baterija obe iznad 20%", + "removeEarbudsEnsureBattery": + "Izvadite obe slušalice i uverite se da je baterija obe iznad 20%", // 音乐列表页面 "noMusic": "Nema muzike", // 暂无音乐 @@ -1376,8 +1516,10 @@ const Map srRS = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/sv_se.dart b/lib/core/translations/language/sv_se.dart index 6874a58c4..64041c6e7 100644 --- a/lib/core/translations/language/sv_se.dart +++ b/lib/core/translations/language/sv_se.dart @@ -33,6 +33,7 @@ const Map svSE = { "spanish": "Spanska", "portuguese": "Portugisiska", "traditionalChinese": "Traditionell kinesiska", + "traditionalChineseHK": "Traditionell kinesiska (Hongkong)", "japanese": "Japanska", "korean": "Koreanska", "french": "Franska", @@ -71,7 +72,8 @@ const Map svSE = { // 登录页 "welcome": "Välkommen", - "loginTips": "Logga in eller registrera dig med ditt telefonnummer eller din e-postadress", + "loginTips": + "Logga in eller registrera dig med ditt telefonnummer eller din e-postadress", "accountNumber": "Telefonnummer eller e-post", "verificationCode": "Verifieringskod", "getCode": "Hämta kod", @@ -90,7 +92,8 @@ const Map svSE = { "tip": "Tips", "pleaseEnterCompleteCode": "Ange hela verifieringskoden", "loginFailed": "Inloggning misslyckades, försök igen", - 'pleaseAcceptPrivacyPolicy': 'Läs och godkänn integritetspolicyn och användaravtalet först', + 'pleaseAcceptPrivacyPolicy': + 'Läs och godkänn integritetspolicyn och användaravtalet först', "enterVerificationCode": "Ange verifieringskod", "verificationCodeSentTo": "Verifieringskod har skickats till", "resendVerificationCode": "Skicka verifieringskod igen", @@ -99,7 +102,8 @@ const Map svSE = { // 隐私政策弹窗 "loginDeclaration": "Voitrans-deklaration", // Voitrans 声明 - "welcomeToThisApp": "Välkommen till Voitrans, vänligen läs noggrant", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Välkommen till Voitrans, vänligen läs noggrant", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +119,29 @@ const Map svSE = { "signal": "Signal", "deviceId": "Enhets-ID", "firmwareVersion": "Firmware-version", - "disconnectedDevice": "Ingen enhet ansluten, klicka på knappen nedan för att ansluta", + "disconnectedDevice": + "Ingen enhet ansluten, klicka på knappen nedan för att ansluta", "connectDevice": "Anslut enhet", "topAiExperiences": "Topp AI-upplevelser", "aiAssistant": "AI Allround-assistent", "aiAssistantInfo": "Exklusiv konsult dygnet runt, svarar på frågor, ger råd", "interpretation": "Simultantolkning", - "simultaneousInterpretationInfo": "Realtidsöversättning för över 80 språk, bekymmersfria utlandsresor", + "simultaneousInterpretationInfo": + "Realtidsöversättning för över 80 språk, bekymmersfria utlandsresor", "aiCompanion": "Familjekamrat", "aiCompanionInfo": "Förstår dig, varmt sällskap", "homeSlogan": "Anslut världen, bortom ljudet", - "turnEarphones": "Öppna laddningsfodralet för hörlurarna och placera hörlurarna i dina öron", + "turnEarphones": + "Öppna laddningsfodralet för hörlurarna och placera hörlurarna i dina öron", "currentlyConnected": "För närvarande ansluten:", "unsystemSetup": "Gå till systeminställningar", "talkLater": "Senare", "initializing": "Initierar...", - "bluetoothInitializationFailure": "Initiering av Bluetooth-tjänst misslyckades", + "bluetoothInitializationFailure": + "Initiering av Bluetooth-tjänst misslyckades", "checkingPermissions": "Kontrollerar behörigheter...", - "lackPermissions": "Saknar Bluetooth-behörigheter och kräver att du tillåter åtkomst till plats", + "lackPermissions": + "Saknar Bluetooth-behörigheter och kräver att du tillåter åtkomst till plats", "searchingDevice": "Söker efter enheter...", "findConnectedDevice": "Hittade ansluten enhet", "notFound": "Ingen ansluten Bluetooth-enhet hittades", @@ -175,7 +184,8 @@ const Map svSE = { "healthConsultant": "Mångfunktionell AI-chatt", "healthConsultantInfo": "Erbjuder fler AI-chattfunktioner", "conferenceAssistant": "Affärsmötesassistent", - "conferenceAssistantInfo": "Realtidsinspelning av mötesprotokoll, flerspråkig översättning", + "conferenceAssistantInfo": + "Realtidsinspelning av mötesprotokoll, flerspråkig översättning", "usageStats": "Användningsstatistik", "usageStatsInfo": "Visa din användningsstatistik", "scene": "Scenario", @@ -218,7 +228,8 @@ const Map svSE = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +285,10 @@ const Map svSE = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +297,35 @@ const Map svSE = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +334,10 @@ const Map svSE = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +352,8 @@ const Map svSE = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Hoppa över", @@ -355,7 +379,8 @@ const Map svSE = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +430,8 @@ const Map svSE = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +486,54 @@ const Map svSE = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +545,8 @@ const Map svSE = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +566,8 @@ const Map svSE = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +616,8 @@ const Map svSE = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +642,8 @@ const Map svSE = { "cloudSync": "Molnsynkronisering", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Ansluten enhet:", "accountId": "Konto-ID:", "systemSetting": "Systeminställning", @@ -612,7 +656,8 @@ const Map svSE = { "privacySettings": "Integritetsinställningar", "privacySettingsInfo": "Hantera datainsamling och behörigheter", "permissionManagement": "Behörighetshantering", // 权限管理 - "permissionManagementInfo": "Hantera inställningar för appbehörigheter", // 管理应用权限设置 + "permissionManagementInfo": + "Hantera inställningar för appbehörigheter", // 管理应用权限设置 "aboutApplication": "Om appen", "versions": "Version", "checkUpdates": "Sök efter uppdateringar", @@ -621,9 +666,11 @@ const Map svSE = { "voiceServiceInfo": "Välj röstigenkännings- och syntestjänst", "selectVoiceService": "Välj rösttjänst", "azureVoiceService": "Azure Rösttjänst", - "azureVoiceServiceInfo": "Microsofts molnbaserade rösttjänst, stöder högkvalitativ röstsyntes och igenkänning", + "azureVoiceServiceInfo": + "Microsofts molnbaserade rösttjänst, stöder högkvalitativ röstsyntes och igenkänning", "flutterVoiceService": "Flutter Lokal Rösttjänst", - "flutterVoiceServiceInfo": "Enhetens lokala rösttjänst, kan användas utan internetanslutning", + "flutterVoiceServiceInfo": + "Enhetens lokala rösttjänst, kan användas utan internetanslutning", 'timbreService': 'Klangtjänst', 'timbreServiceInfo': 'Välj klangtjänst för röstsyntes', 'defaultTimbre': 'Standardklang', @@ -652,7 +699,8 @@ const Map svSE = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Realtids röstchatt", - "realtimeVoiceChatInfo": "Upplev intelligent röstinteraktionsfunktion (funktionsförhandsvisning)", + "realtimeVoiceChatInfo": + "Upplev intelligent röstinteraktionsfunktion (funktionsförhandsvisning)", "loading": "Laddar...", //设备管理页面 @@ -667,7 +715,8 @@ const Map svSE = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -721,10 +770,14 @@ const Map svSE = { '• Kontrollera hörlursfunktioner\n\n' 'Hur kan jag hjälpa dig?', 'microphonePermission': 'Mikrofon', - 'voiceRecognitionPermissionText': 'Röstigenkänning kräver åtkomst till mikrofonen.', - 'voiceTranslationPermissionText': 'Röstigenkänning och översättning kräver åtkomst till mikrofonen.', - 'phoneCallPermissionText': 'Att ringa samtal kräver åtkomst till mikrofonen för röstsamtal.', - 'permissionDeniedText': 'Du har permanent nekat åtkomst till mikrofonen, vänligen gå till systeminställningarna för att aktivera behörigheten.', + 'voiceRecognitionPermissionText': + 'Röstigenkänning kräver åtkomst till mikrofonen.', + 'voiceTranslationPermissionText': + 'Röstigenkänning och översättning kräver åtkomst till mikrofonen.', + 'phoneCallPermissionText': + 'Att ringa samtal kräver åtkomst till mikrofonen för röstsamtal.', + 'permissionDeniedText': + 'Du har permanent nekat åtkomst till mikrofonen, vänligen gå till systeminställningarna för att aktivera behörigheten.', 'startVoiceInput': 'Starta röstinmatning', 'startPhoneCallMode': 'Starta samtalsläge, starta röstinmatning', @@ -747,7 +800,8 @@ const Map svSE = { 'privacyRelated': 'Integritetsrelaterat', 'copyrightViolation': 'Inkräktar på min upphovsrätt, anseende, etc.', 'other': 'Annat', - 'reportDescriptionHint': 'Vi vill veta varför du anmäler, du kan beskriva problemet du stött på.', + 'reportDescriptionHint': + 'Vi vill veta varför du anmäler, du kan beskriva problemet du stött på.', //'submit': '提交', //Message_bubble @@ -778,15 +832,24 @@ const Map svSE = { 'highest': 'Högsta', 'lowest': 'Lägsta', 'futureForecast': 'Framtida prognos', - 'hotWeatherTip': 'Idag är det varmt, var försiktig med värmeslag och drick mycket vatten', - 'coldWeatherTip': 'Idag är temperaturen låg, klä dig varmt när du går ut för att undvika förkylning', - 'rainyWeatherTip': 'Idag regnar det, ta med ett paraply när du går ut och var försiktig', - 'snowyWeatherTip': 'Idag snöar det, vägen är hal, var försiktig och klä dig varmt', - 'foggyWeatherTip': 'Idag är det dimmigt, sikten är låg, använd en mask när du går ut', - 'windyWeatherTip': 'Idag blåser det mycket, var försiktig när du går ut och säkra dina tillhörigheter', - 'sunnyWeatherTip': 'Idag är det soligt och stark UV-strålning, använd solskydd när du går ut', - 'temperatureDifferenceTip': 'Idag är det stor temperaturskillnad mellan dag och natt, anpassa kläderna därefter', - 'comfortableWeatherTip': 'Idag är vädret behagligt, en bra tid för utomhusaktiviteter', + 'hotWeatherTip': + 'Idag är det varmt, var försiktig med värmeslag och drick mycket vatten', + 'coldWeatherTip': + 'Idag är temperaturen låg, klä dig varmt när du går ut för att undvika förkylning', + 'rainyWeatherTip': + 'Idag regnar det, ta med ett paraply när du går ut och var försiktig', + 'snowyWeatherTip': + 'Idag snöar det, vägen är hal, var försiktig och klä dig varmt', + 'foggyWeatherTip': + 'Idag är det dimmigt, sikten är låg, använd en mask när du går ut', + 'windyWeatherTip': + 'Idag blåser det mycket, var försiktig när du går ut och säkra dina tillhörigheter', + 'sunnyWeatherTip': + 'Idag är det soligt och stark UV-strålning, använd solskydd när du går ut', + 'temperatureDifferenceTip': + 'Idag är det stor temperaturskillnad mellan dag och natt, anpassa kläderna därefter', + 'comfortableWeatherTip': + 'Idag är vädret behagligt, en bra tid för utomhusaktiviteter', "monday": "Mån", "tuesday": "Tis", "wednesday": "Ons", @@ -836,23 +899,31 @@ const Map svSE = { "notSet": "Inte inställt", "accountSetting": "Kontoinställningar", "logout": "Logga ut", - "logoutTips": "Är du säker på att du vill logga ut från det nuvarande kontot?", + "logoutTips": + "Är du säker på att du vill logga ut från det nuvarande kontot?", 'deleteAccount': 'Ta bort konto', - 'deleteAccountTips': 'Är du säker på att du vill ta bort ditt konto permanent? Denna åtgärd kan inte ångras', + 'deleteAccountTips': + 'Är du säker på att du vill ta bort ditt konto permanent? Denna åtgärd kan inte ångras', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Nätverksanslutning misslyckades, kontrollera dina nätverksinställningar och försök igen', - 'serverTemporarilyUnavailable': 'Servern är tillfälligt otillgänglig, försök igen senare', - 'loginExpiredPleaseRelogin': 'Din session har gått ut, vänligen logga in igen', - 'noPermissionForThisOperation': 'Du har inte behörighet att utföra denna åtgärd', + 'networkConnectionFailed': + 'Nätverksanslutning misslyckades, kontrollera dina nätverksinställningar och försök igen', + 'serverTemporarilyUnavailable': + 'Servern är tillfälligt otillgänglig, försök igen senare', + 'loginExpiredPleaseRelogin': + 'Din session har gått ut, vänligen logga in igen', + 'noPermissionForThisOperation': + 'Du har inte behörighet att utföra denna åtgärd', 'requestedResourceNotFound': 'Den begärda resursen hittades inte', - 'imageProcessingFailedPleaseReselect': 'Bildbehandling misslyckades, välj en annan bild', + 'imageProcessingFailedPleaseReselect': + 'Bildbehandling misslyckades, välj en annan bild', 'operationFailedPleaseRetry': 'Åtgärden misslyckades, försök igen', 'serverReturnedError': 'Servern returnerade ett fel', 'serverError': 'Serverfel', - 'networkConnectionFailedCheckSettings': 'Nätverksanslutning misslyckades, kontrollera dina nätverksinställningar', + 'networkConnectionFailedCheckSettings': + 'Nätverksanslutning misslyckades, kontrollera dina nätverksinställningar', 'serverInternalErrorRetryLater': 'Internt serverfel, försök igen senare', // Profile 用户交互 @@ -871,14 +942,20 @@ const Map svSE = { // 账号服务相关 'clearUserDataFailed': 'Rensning av användardata misslyckades', // 清理用户数据失败 - 'deleteUserDataFailed': 'Borttagning av användardata misslyckades', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'Utloggning från tredje part lyckades', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': 'Utloggning från tredje part misslyckades', // 第三方登录退出失败 - 'signOutProcessError': 'Ett fel uppstod under utloggningsprocessen', // 登出过程发生错误 - 'deleteAccountProcessError': 'Ett fel uppstod under borttagningsprocessen av kontot', // 删除账号过程发生错误 + 'deleteUserDataFailed': + 'Borttagning av användardata misslyckades', // 删除用户数据失败 + 'thirdPartyLogoutSuccess': + 'Utloggning från tredje part lyckades', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': + 'Utloggning från tredje part misslyckades', // 第三方登录退出失败 + 'signOutProcessError': + 'Ett fel uppstod under utloggningsprocessen', // 登出过程发生错误 + 'deleteAccountProcessError': + 'Ett fel uppstod under borttagningsprocessen av kontot', // 删除账号过程发生错误 'userDataClearSuccess': 'Rensning av användardata lyckades', // 用户数据清理成功 'allUserDataClearSuccess': 'All användardata har rensats', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Kontotjänsten har initierats', // AccountService 已初始化 + 'accountServiceInitialized': + 'Kontotjänsten har initierats', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Hämtning av behörighetsstatus misslyckades', @@ -901,9 +978,12 @@ const Map svSE = { 'locationInfo': 'Platsinformation', 'phonePermissionDesc': 'Används för att ringa samtal', 'smsPermissionDesc': 'Används för att skicka SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Används för att skapa kalenderhändelser och påminnelser', - 'calendarFullAccessPermissionDesc': 'Används för att läsa och hantera kalenderhändelser och påminnelser', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Används för att skapa kalenderhändelser och påminnelser', + 'calendarFullAccessPermissionDesc': + 'Används för att läsa och hantera kalenderhändelser och påminnelser', 'locationPermissionDesc': 'Används för att hämta aktuell platsinformation', 'appFunctionNeeds': 'Appfunktionen behöver', 'authorized': 'Beviljad', @@ -915,43 +995,67 @@ const Map svSE = { 'permissionRequestError': 'Fel vid begäran om behörighet', 'phonePermissionDetailDesc': 'Samtalsfunktionen kräver telefonbehörighet', 'smsPermissionDetailDesc': 'SMS-funktionen kräver SMS-behörighet', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Att skapa kalenderhändelser kräver skrivbehörighet till kalendern', - 'calendarFullAccessPermissionDetailDesc': 'Att hantera kalenderhändelser kräver fullständig kalenderåtkomst', - 'locationPermissionDetailDesc': 'Att hämta platsinformation kräver platsbehörighet', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Att skapa kalenderhändelser kräver skrivbehörighet till kalendern', + 'calendarFullAccessPermissionDetailDesc': + 'Att hantera kalenderhändelser kräver fullständig kalenderåtkomst', + 'locationPermissionDetailDesc': + 'Att hämta platsinformation kräver platsbehörighet', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Appen behöver denna behörighet för full funktionalitet', - 'permanentDenialText': 'Du har permanent nekat {permission}-behörighet, vänligen gå till appinställningarna för att aktivera den', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Appen behöver denna behörighet för full funktionalitet', + 'permanentDenialText': + 'Du har permanent nekat {permission}-behörighet, vänligen gå till appinställningarna för att aktivera den', 'goToSettings': 'Gå till inställningar', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1065,8 @@ const Map svSE = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1075,10 @@ const Map svSE = { 'updateNow': 'Uppdatera nu', // 立即更新按钮 'checkUpdate': 'Sök efter uppdatering', // 检查更新按钮 'updateFailed': 'Uppdatering misslyckades', // 更新失败提示 - 'cannotOpenAppStore': 'Kan inte öppna appbutiken, vänligen gå till appbutiken manuellt för att uppdatera', // 无法打开应用商店提示 - 'updateErrorRetry': 'Ett fel uppstod under uppdateringen, försök igen senare', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Kan inte öppna appbutiken, vänligen gå till appbutiken manuellt för att uppdatera', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Ett fel uppstod under uppdateringen, försök igen senare', // 更新错误重试提示 //国家列表 "邮箱": "E-post", @@ -1107,7 +1214,8 @@ const Map svSE = { "selectTargetLanguage": "Välj målspråk", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1231,12 @@ const Map svSE = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Rensa historik", - "clearHistoryConfirm": "Är du säker på att du vill rensa all översättningshistorik? Denna åtgärd kan inte ångras.", + "clearHistoryConfirm": + "Är du säker på att du vill rensa all översättningshistorik? Denna åtgärd kan inte ångras.", "unknownLanguage": "Okänt språk", "deleteSessionRecord": "Ta bort sessionsinspelning", - "deleteSessionConfirm": "Är du säker på att du vill ta bort alla översättningsinspelningar för denna session? Denna åtgärd kan inte ångras.", + "deleteSessionConfirm": + "Är du säker på att du vill ta bort alla översättningsinspelningar för denna session? Denna åtgärd kan inte ångras.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1268,20 @@ const Map svSE = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1304,8 @@ const Map svSE = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Originalinspelning", "recordSummary": "Inspelningssammanfattning", - "clickToGenerateSummary": "Klicka på knappen nedan för att generera en sessionssammanfattning", + "clickToGenerateSummary": + "Klicka på knappen nedan för att generera en sessionssammanfattning", "summaryContent": "Sammanfattningsinnehåll", "copied": "Kopierad", "summaryCopiledToClipboard": "Sammanfattning kopierad till urklipp", @@ -1197,9 +1313,11 @@ const Map svSE = { "summaryGenerated": "Sammanfattning genererad", "generating": "Genererar...", "regenerate": "Generera igen", - "summaryTimeoutMessage": "Begäran om att generera sammanfattning nådde tidsgräns, det kan bero på nätverksproblem eller upptagen server.", + "summaryTimeoutMessage": + "Begäran om att generera sammanfattning nådde tidsgräns, det kan bero på nätverksproblem eller upptagen server.", "deleteTranslationRecord": "Ta bort översättningsinspelning", - "deleteTranslationConfirm": "Är du säker på att du vill ta bort denna översättningsinspelning? Denna åtgärd kan inte ångras.", + "deleteTranslationConfirm": + "Är du säker på att du vill ta bort denna översättningsinspelning? Denna åtgärd kan inte ångras.", "originalText": "Originaltext", "translatedText": "Översatt text", "sessionSummary": "Sessionssammanfattning", @@ -1227,19 +1345,25 @@ const Map svSE = { // 配对状态文本 "readyToPair": "Redo att parkoppla", "preparingPairingEnvironment": "Förbereder parkopplingsmiljö...", - "connectDeepSoundViaSystemBluetooth": "Anslut först till Voitrans-enheten via systemets Bluetooth", + "connectDeepSoundViaSystemBluetooth": + "Anslut först till Voitrans-enheten via systemets Bluetooth", "deviceBindingConfirm": "Bekräftelse av enhetsbindning...", "establishingDeviceAssociation": "Upprättar enhetsassociation...", "waitingCompletePairing": "Vänta, slutför parkoppling...", - "pairingSuccessRedirecting": "Parkoppling lyckades! Omdirigerar till startsidan...", + "pairingSuccessRedirecting": + "Parkoppling lyckades! Omdirigerar till startsidan...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Se till att du är ansluten till en Voitrans-enhet", - "deviceAlreadyBoundToOtherAccount": "Denna enhet är redan bunden till ett annat konto", + "ensureConnectedDeepSoundDevice": + "Se till att du är ansluten till en Voitrans-enhet", + "deviceAlreadyBoundToOtherAccount": + "Denna enhet är redan bunden till ett annat konto", "deviceAssociationFailed": "Enhetsassociation misslyckades, försök igen", - "scanTimeoutEnsureDeviceNearby": "Skanningen nådde tidsgräns, se till att enheten är i närheten", + "scanTimeoutEnsureDeviceNearby": + "Skanningen nådde tidsgräns, se till att enheten är i närheten", "networkError": "Nätverksfel", - "authorizationFailedCheckCode": "Auktorisering misslyckades, kontrollera att auktoriseringskoden är korrekt", + "authorizationFailedCheckCode": + "Auktorisering misslyckades, kontrollera att auktoriseringskoden är korrekt", "pairingFailedRetry": "Parkoppling misslyckades, försök igen", // 配对控制器相关 @@ -1248,7 +1372,8 @@ const Map svSE = { 'deviceDisconnected': 'Enheten frånkopplad', 'readyToStartPairing': 'Redo att starta parkoppling', 'checkingEnvironment': 'Kontrollerar miljö...', - 'ensureHeadsetOnAndPairingMode': 'Se till att hörlurarna är på och i parkopplingsläge', + 'ensureHeadsetOnAndPairingMode': + 'Se till att hörlurarna är på och i parkopplingsläge', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1270,15 +1395,20 @@ const Map svSE = { 'bleConnectionTimeoutRetry': 'BLE-anslutningen nådde tidsgräns, försök igen', 'blePairingStartupFailed': 'Start av BLE-parkoppling misslyckades', 'bleConnectionFailed': 'BLE-anslutning misslyckades', - 'deviceAuthorizationFailedCheckCode': 'Enhetsauktorisering misslyckades, kontrollera auktoriseringskoden', + 'deviceAuthorizationFailedCheckCode': + 'Enhetsauktorisering misslyckades, kontrollera auktoriseringskoden', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1291,10 +1421,12 @@ const Map svSE = { 'contactHint': 'E-post/Telefon, så att vi kan kontakta dig', 'submit': 'Skicka', 'feedbackSubmitSuccess': 'Feedback inskickad, tack för din feedback!', - 'feedbackSubmitFailed': 'Inskickning av feedback misslyckades, försök igen senare', + 'feedbackSubmitFailed': + 'Inskickning av feedback misslyckades, försök igen senare', // OTA升级模块 - "upgradeExitConfirm": "Uppgradering pågår, att avsluta kommer att avbryta uppgraderingsprocessen, är du säker på att du vill avsluta?", + "upgradeExitConfirm": + "Uppgradering pågår, att avsluta kommer att avbryta uppgraderingsprocessen, är du säker på att du vill avsluta?", "deviceModel": "Enhetsmodell", "unknownDevice": "Okänd enhet", "currentFirmwareVersion": "Nuvarande firmware-version", @@ -1307,14 +1439,18 @@ const Map svSE = { "retryConnection": "Försök ansluta igen", "ota_updateNow": "Uppdatera nu", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "Håll enheten ansluten, stäng inte appen", "doNotDisconnect": "Koppla inte från", "charging": "Laddar", "updateContent": "Uppdateringsinnehåll", - "removeEarbudsEnsureBattery": "Ta ut båda hörlurarna och se till att batterinivån är över 20 % på båda", + "removeEarbudsEnsureBattery": + "Ta ut båda hörlurarna och se till att batterinivån är över 20 % på båda", // 音乐列表页面 "noMusic": "Ingen musik", // 暂无音乐 @@ -1376,8 +1512,10 @@ const Map svSE = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/th_th.dart b/lib/core/translations/language/th_th.dart index 112854a30..a35ff8181 100644 --- a/lib/core/translations/language/th_th.dart +++ b/lib/core/translations/language/th_th.dart @@ -33,6 +33,7 @@ const Map thTH = { "spanish": "ภาษาสเปน", "portuguese": "ภาษาโปรตุเกส", "traditionalChinese": "ภาษาจีนตัวเต็ม", + "traditionalChineseHK": "ภาษาจีนตัวเต็ม (ฮ่องกง)", "japanese": "ภาษาญี่ปุ่น", "korean": "ภาษาเกาหลี", "french": "ภาษาฝรั่งเศส", @@ -90,7 +91,8 @@ const Map thTH = { "tip": "เคล็ดลับ", "pleaseEnterCompleteCode": "กรุณากรอกรหัสยืนยันให้ครบถ้วน", "loginFailed": "เข้าสู่ระบบล้มเหลว กรุณาลองใหม่", - 'pleaseAcceptPrivacyPolicy': 'กรุณาอ่านและยอมรับนโยบายความเป็นส่วนตัวและข้อตกลงผู้ใช้ก่อน', + 'pleaseAcceptPrivacyPolicy': + 'กรุณาอ่านและยอมรับนโยบายความเป็นส่วนตัวและข้อตกลงผู้ใช้ก่อน', "enterVerificationCode": "กรอกรหัสยืนยัน", "verificationCodeSentTo": "รหัสยืนยันถูกส่งไปยัง", "resendVerificationCode": "ส่งรหัสยืนยันอีกครั้ง", @@ -99,7 +101,8 @@ const Map thTH = { // 隐私政策弹窗 "loginDeclaration": "คำประกาศของ Voitrans", // Voitrans 声明 - "welcomeToThisApp": "ยินดีต้อนรับสู่ Voitrans กรุณาอ่านอย่างละเอียด", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "ยินดีต้อนรับสู่ Voitrans กรุณาอ่านอย่างละเอียด", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -121,7 +124,8 @@ const Map thTH = { "aiAssistant": "ผู้ช่วย AI รอบด้าน", "aiAssistantInfo": "ที่ปรึกษาส่วนตัว 24 ชั่วโมง ตอบคำถาม ให้คำแนะนำ", "interpretation": "การแปลภาษาพร้อมกัน", - "simultaneousInterpretationInfo": "แปลภาษากว่า 80 ภาษาแบบเรียลไทม์ เดินทางต่างประเทศไร้กังวล", + "simultaneousInterpretationInfo": + "แปลภาษากว่า 80 ภาษาแบบเรียลไทม์ เดินทางต่างประเทศไร้กังวล", "aiCompanion": "เพื่อนคู่คิดสำหรับครอบครัว", "aiCompanionInfo": "เข้าใจคุณ อยู่เคียงข้างอย่างอบอุ่น", "homeSlogan": "เชื่อมต่อโลก เหนือกว่าเสียง", @@ -218,7 +222,8 @@ const Map thTH = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +279,10 @@ const Map thTH = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +291,35 @@ const Map thTH = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +328,10 @@ const Map thTH = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +346,8 @@ const Map thTH = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "ข้าม", @@ -355,7 +373,8 @@ const Map thTH = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +424,8 @@ const Map thTH = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +480,54 @@ const Map thTH = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +539,8 @@ const Map thTH = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +560,8 @@ const Map thTH = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +610,8 @@ const Map thTH = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +636,8 @@ const Map thTH = { "cloudSync": "การเติมเงินการ đồng bộ hóaคลาวด์", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "อุปกรณ์ที่เชื่อมต่อ:", "accountId": "ID บัญชี:", "systemSetting": "การตั้งค่าระบบ", @@ -612,7 +650,8 @@ const Map thTH = { "privacySettings": "การตั้งค่าความเป็นส่วนตัว", "privacySettingsInfo": "จัดการการรวบรวมข้อมูลและสิทธิ์", "permissionManagement": "การจัดการสิทธิ์", // 权限管理 - "permissionManagementInfo": "จัดการการตั้งค่าสิทธิ์ของแอปพลิเคชัน", // 管理应用权限设置 + "permissionManagementInfo": + "จัดการการตั้งค่าสิทธิ์ของแอปพลิเคชัน", // 管理应用权限设置 "aboutApplication": "เกี่ยวกับแอปพลิเคชัน", "versions": "เวอร์ชัน", "checkUpdates": "ตรวจสอบการอัปเดต", @@ -621,9 +660,11 @@ const Map thTH = { "voiceServiceInfo": "เลือกบริการรู้จำและสังเคราะห์เสียง", "selectVoiceService": "เลือกบริการเสียง", "azureVoiceService": "บริการเสียง Azure", - "azureVoiceServiceInfo": "บริการเสียงบนคลาวด์ของ Microsoft รองรับการสังเคราะห์และรู้จำเสียงคุณภาพสูง", + "azureVoiceServiceInfo": + "บริการเสียงบนคลาวด์ของ Microsoft รองรับการสังเคราะห์และรู้จำเสียงคุณภาพสูง", "flutterVoiceService": "บริการเสียงในเครื่อง Flutter", - "flutterVoiceServiceInfo": "บริการเสียงในเครื่องของอุปกรณ์ สามารถใช้งานได้โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต", + "flutterVoiceServiceInfo": + "บริการเสียงในเครื่องของอุปกรณ์ สามารถใช้งานได้โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต", 'timbreService': 'บริการโทนเสียง', 'timbreServiceInfo': 'เลือกบริการสังเคราะห์เสียงด้วยโทนเสียง', 'defaultTimbre': 'โทนเสียงเริ่มต้น', @@ -652,7 +693,8 @@ const Map thTH = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "แชทเสียงแบบเรียลไทม์", - "realtimeVoiceChatInfo": "สัมผัสประสบการณ์การโต้ตอบด้วยเสียงอัจฉริยะ (ตัวอย่างฟังก์ชัน)", + "realtimeVoiceChatInfo": + "สัมผัสประสบการณ์การโต้ตอบด้วยเสียงอัจฉริยะ (ตัวอย่างฟังก์ชัน)", "loading": "กำลังโหลด...", //设备管理页面 @@ -667,7 +709,8 @@ const Map thTH = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -721,10 +764,14 @@ const Map thTH = { '• ควบคุมฟังก์ชันของหูฟัง\n\n' 'มีอะไรให้ฉันช่วยไหม', 'microphonePermission': 'ไมโครโฟน', - 'voiceRecognitionPermissionText': 'ฟังก์ชันรู้จำเสียงต้องการการเข้าถึงไมโครโฟน', - 'voiceTranslationPermissionText': 'ฟังก์ชันรู้จำและแปลเสียงต้องการการเข้าถึงไมโครโฟน', - 'phoneCallPermissionText': 'ฟังก์ชันโทรออกต้องการการเข้าถึงไมโครโฟนสำหรับการโทรด้วยเสียง', - 'permissionDeniedText': 'คุณได้ปฏิเสธการอนุญาตใช้ไมโครโฟนอย่างถาวร โปรดไปที่การตั้งค่าระบบเพื่อเปิดใช้งาน', + 'voiceRecognitionPermissionText': + 'ฟังก์ชันรู้จำเสียงต้องการการเข้าถึงไมโครโฟน', + 'voiceTranslationPermissionText': + 'ฟังก์ชันรู้จำและแปลเสียงต้องการการเข้าถึงไมโครโฟน', + 'phoneCallPermissionText': + 'ฟังก์ชันโทรออกต้องการการเข้าถึงไมโครโฟนสำหรับการโทรด้วยเสียง', + 'permissionDeniedText': + 'คุณได้ปฏิเสธการอนุญาตใช้ไมโครโฟนอย่างถาวร โปรดไปที่การตั้งค่าระบบเพื่อเปิดใช้งาน', 'startVoiceInput': 'เริ่มการป้อนข้อมูลด้วยเสียง', 'startPhoneCallMode': 'เริ่มโหมดโทรศัพท์ เริ่มการป้อนข้อมูลด้วยเสียง', @@ -747,7 +794,8 @@ const Map thTH = { 'privacyRelated': 'เกี่ยวกับความเป็นส่วนตัว', 'copyrightViolation': 'ละเมิดลิขสิทธิ์ ชื่อเสียง ฯลฯ ของฉัน', 'other': 'อื่นๆ', - 'reportDescriptionHint': 'เราต้องการทราบเหตุผลที่คุณรายงาน คุณสามารถอธิบายปัญหาที่คุณพบได้', + 'reportDescriptionHint': + 'เราต้องการทราบเหตุผลที่คุณรายงาน คุณสามารถอธิบายปัญหาที่คุณพบได้', //'submit': '提交', //Message_bubble @@ -779,13 +827,20 @@ const Map thTH = { 'lowest': 'ต่ำสุด', 'futureForecast': 'พยากรณ์อากาศล่วงหน้า', 'hotWeatherTip': 'วันนี้อากาศร้อน โปรดระวังโรคลมแดด ดื่มน้ำมากๆ', - 'coldWeatherTip': 'วันนี้อากาศเย็น โปรดใส่ใจเรื่องความอบอุ่นเมื่อออกไปข้างนอก ระวังเป็นหวัด', - 'rainyWeatherTip': 'วันนี้มีฝน โปรดพกร่มเมื่อออกไปข้างนอก ระมัดระวังในการเดินทาง', - 'snowyWeatherTip': 'วันนี้มีหิมะ ถนนลื่นโปรดระวังความปลอดภัย เตรียมมาตรการป้องกันความหนาว', - 'foggyWeatherTip': 'วันนี้มีหมอก ทัศนวิสัยต่ำ โปรดสวมหน้ากากเมื่อออกไปข้างนอก', - 'windyWeatherTip': 'วันนี้ลมแรง โปรดระวังความปลอดภัยเมื่อออกไปข้างนอก ยึดของให้แน่น', - 'sunnyWeatherTip': 'วันนี้แดดจัด รังสียูวีแรง โปรดป้องกันแสงแดดเมื่อออกไปข้างนอก', - 'temperatureDifferenceTip': 'วันนี้อุณหภูมิต่างกันมากระหว่างกลางวันและกลางคืน โปรดเพิ่มหรือลดเสื้อผ้าให้เหมาะสม', + 'coldWeatherTip': + 'วันนี้อากาศเย็น โปรดใส่ใจเรื่องความอบอุ่นเมื่อออกไปข้างนอก ระวังเป็นหวัด', + 'rainyWeatherTip': + 'วันนี้มีฝน โปรดพกร่มเมื่อออกไปข้างนอก ระมัดระวังในการเดินทาง', + 'snowyWeatherTip': + 'วันนี้มีหิมะ ถนนลื่นโปรดระวังความปลอดภัย เตรียมมาตรการป้องกันความหนาว', + 'foggyWeatherTip': + 'วันนี้มีหมอก ทัศนวิสัยต่ำ โปรดสวมหน้ากากเมื่อออกไปข้างนอก', + 'windyWeatherTip': + 'วันนี้ลมแรง โปรดระวังความปลอดภัยเมื่อออกไปข้างนอก ยึดของให้แน่น', + 'sunnyWeatherTip': + 'วันนี้แดดจัด รังสียูวีแรง โปรดป้องกันแสงแดดเมื่อออกไปข้างนอก', + 'temperatureDifferenceTip': + 'วันนี้อุณหภูมิต่างกันมากระหว่างกลางวันและกลางคืน โปรดเพิ่มหรือลดเสื้อผ้าให้เหมาะสม', 'comfortableWeatherTip': 'วันนี้อากาศดี เป็นเวลาที่ดีสำหรับกิจกรรมกลางแจ้ง', "monday": "จ.", "tuesday": "อ.", @@ -838,22 +893,29 @@ const Map thTH = { "logout": "ออกจากระบบ", "logoutTips": "คุณแน่ใจหรือไม่ว่าต้องการออกจากระบบบัญชีปัจจุบัน", 'deleteAccount': 'ลบบัญชี', - 'deleteAccountTips': 'คุณแน่ใจหรือไม่ว่าต้องการลบบัญชีของคุณอย่างถาวร การกระทำนี้ไม่สามารถย้อนกลับได้', + 'deleteAccountTips': + 'คุณแน่ใจหรือไม่ว่าต้องการลบบัญชีของคุณอย่างถาวร การกระทำนี้ไม่สามารถย้อนกลับได้', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'การเชื่อมต่อเครือข่ายล้มเหลว โปรดตรวจสอบการตั้งค่าเครือข่ายแล้วลองใหม่', - 'serverTemporarilyUnavailable': 'เซิร์ฟเวอร์ไม่สามารถตอบสนองได้ชั่วคราว โปรดลองใหม่ในภายหลัง', - 'loginExpiredPleaseRelogin': 'การเข้าสู่ระบบหมดอายุแล้ว โปรดเข้าสู่ระบบอีกครั้ง', + 'networkConnectionFailed': + 'การเชื่อมต่อเครือข่ายล้มเหลว โปรดตรวจสอบการตั้งค่าเครือข่ายแล้วลองใหม่', + 'serverTemporarilyUnavailable': + 'เซิร์ฟเวอร์ไม่สามารถตอบสนองได้ชั่วคราว โปรดลองใหม่ในภายหลัง', + 'loginExpiredPleaseRelogin': + 'การเข้าสู่ระบบหมดอายุแล้ว โปรดเข้าสู่ระบบอีกครั้ง', 'noPermissionForThisOperation': 'ไม่มีสิทธิ์ดำเนินการนี้', 'requestedResourceNotFound': 'ไม่พบทรัพยากรที่ร้องขอ', - 'imageProcessingFailedPleaseReselect': 'การประมวลผลรูปภาพล้มเหลว โปรดเลือกรูปภาพอีกครั้ง', + 'imageProcessingFailedPleaseReselect': + 'การประมวลผลรูปภาพล้มเหลว โปรดเลือกรูปภาพอีกครั้ง', 'operationFailedPleaseRetry': 'การดำเนินการล้มเหลว โปรดลองใหม่', 'serverReturnedError': 'เซิร์ฟเวอร์ส่งคืนข้อผิดพลาด', 'serverError': 'ข้อผิดพลาดของเซิร์ฟเวอร์', - 'networkConnectionFailedCheckSettings': 'การเชื่อมต่อเครือข่ายล้มเหลว โปรดตรวจสอบการตั้งค่าเครือข่าย', - 'serverInternalErrorRetryLater': 'ข้อผิดพลาดภายในเซิร์ฟเวอร์ โปรดลองใหม่ในภายหลัง', + 'networkConnectionFailedCheckSettings': + 'การเชื่อมต่อเครือข่ายล้มเหลว โปรดตรวจสอบการตั้งค่าเครือข่าย', + 'serverInternalErrorRetryLater': + 'ข้อผิดพลาดภายในเซิร์ฟเวอร์ โปรดลองใหม่ในภายหลัง', // Profile 用户交互 //'error': '错误', @@ -875,10 +937,12 @@ const Map thTH = { 'thirdPartyLogoutSuccess': 'ออกจากระบบบุคคลที่สามสำเร็จ', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'ออกจากระบบบุคคลที่สามล้มเหลว', // 第三方登录退出失败 'signOutProcessError': 'เกิดข้อผิดพลาดระหว่างกระบวนการออกจากระบบ', // 登出过程发生错误 - 'deleteAccountProcessError': 'เกิดข้อผิดพลาดระหว่างกระบวนการลบบัญชี', // 删除账号过程发生错误 + 'deleteAccountProcessError': + 'เกิดข้อผิดพลาดระหว่างกระบวนการลบบัญชี', // 删除账号过程发生错误 'userDataClearSuccess': 'ล้างข้อมูลผู้ใช้สำเร็จ', // 用户数据清理成功 'allUserDataClearSuccess': 'ล้างข้อมูลผู้ใช้ทั้งหมดสำเร็จ', // 所有用户数据清理成功 - 'accountServiceInitialized': 'AccountService ได้รับการเริ่มต้นแล้ว', // AccountService 已初始化 + 'accountServiceInitialized': + 'AccountService ได้รับการเริ่มต้นแล้ว', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'รับสถานะสิทธิ์ล้มเหลว', @@ -901,9 +965,11 @@ const Map thTH = { 'locationInfo': 'ข้อมูลตำแหน่ง', 'phonePermissionDesc': 'ใช้สำหรับฟังก์ชันการโทรออก', 'smsPermissionDesc': 'ใช้สำหรับฟังก์ชันการส่ง SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', 'calendarWritePermissionDesc': 'ใช้สำหรับสร้างกิจกรรมและการแจ้งเตือนในปฏิทิน', - 'calendarFullAccessPermissionDesc': 'ใช้สำหรับอ่านและจัดการกิจกรรมและการแจ้งเตือนในปฏิทิน', + 'calendarFullAccessPermissionDesc': + 'ใช้สำหรับอ่านและจัดการกิจกรรมและการแจ้งเตือนในปฏิทิน', 'locationPermissionDesc': 'ใช้สำหรับรับข้อมูลตำแหน่งปัจจุบัน', 'appFunctionNeeds': 'ฟังก์ชันแอปพลิเคชันต้องการ', 'authorized': 'ได้รับอนุญาต', @@ -915,43 +981,66 @@ const Map thTH = { 'permissionRequestError': 'เกิดข้อผิดพลาดขณะขอสิทธิ์', 'phonePermissionDetailDesc': 'ฟังก์ชันโทรออกต้องการสิทธิ์โทรศัพท์', 'smsPermissionDetailDesc': 'ฟังก์ชันส่ง SMS ต้องการสิทธิ์ SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'การสร้างกิจกรรมในปฏิทินต้องการสิทธิ์เขียนปฏิทิน', - 'calendarFullAccessPermissionDetailDesc': 'การจัดการกิจกรรมในปฏิทินต้องการสิทธิ์เข้าถึงปฏิทินเต็มรูปแบบ', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'การสร้างกิจกรรมในปฏิทินต้องการสิทธิ์เขียนปฏิทิน', + 'calendarFullAccessPermissionDetailDesc': + 'การจัดการกิจกรรมในปฏิทินต้องการสิทธิ์เข้าถึงปฏิทินเต็มรูปแบบ', 'locationPermissionDetailDesc': 'การรับข้อมูลตำแหน่งต้องการสิทธิ์ตำแหน่ง', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'แอปพลิเคชันต้องการสิทธิ์นี้เพื่อให้บริการเต็มรูปแบบ', - 'permanentDenialText': 'คุณได้ปฏิเสธสิทธิ์ {permission} อย่างถาวร โปรดไปที่การตั้งค่าแอปเพื่อเปิดใช้งาน', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'แอปพลิเคชันต้องการสิทธิ์นี้เพื่อให้บริการเต็มรูปแบบ', + 'permanentDenialText': + 'คุณได้ปฏิเสธสิทธิ์ {permission} อย่างถาวร โปรดไปที่การตั้งค่าแอปเพื่อเปิดใช้งาน', 'goToSettings': 'ไปที่การตั้งค่า', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1050,8 @@ const Map thTH = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1060,10 @@ const Map thTH = { 'updateNow': 'อัปเดตทันที', // 立即更新按钮 'checkUpdate': 'ตรวจสอบการอัปเดต', // 检查更新按钮 'updateFailed': 'อัปเดตล้มเหลว', // 更新失败提示 - 'cannotOpenAppStore': 'ไม่สามารถเปิด App Store ได้ โปรดไปที่ App Store เพื่ออัปเดตด้วยตนเอง', // 无法打开应用商店提示 - 'updateErrorRetry': 'เกิดข้อผิดพลาดระหว่างการอัปเดต โปรดลองใหม่ในภายหลัง', // 更新错误重试提示 + 'cannotOpenAppStore': + 'ไม่สามารถเปิด App Store ได้ โปรดไปที่ App Store เพื่ออัปเดตด้วยตนเอง', // 无法打开应用商店提示 + 'updateErrorRetry': + 'เกิดข้อผิดพลาดระหว่างการอัปเดต โปรดลองใหม่ในภายหลัง', // 更新错误重试提示 //国家列表 "邮箱": "อีเมล", @@ -1107,7 +1199,8 @@ const Map thTH = { "selectTargetLanguage": "เลือกภาษาเป้าหมาย", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1216,12 @@ const Map thTH = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "ล้างประวัติ", - "clearHistoryConfirm": "คุณแน่ใจหรือไม่ว่าต้องการล้างประวัติการแปลทั้งหมด การกระทำนี้ไม่สามารถย้อนกลับได้", + "clearHistoryConfirm": + "คุณแน่ใจหรือไม่ว่าต้องการล้างประวัติการแปลทั้งหมด การกระทำนี้ไม่สามารถย้อนกลับได้", "unknownLanguage": "ภาษาที่ไม่รู้จัก", "deleteSessionRecord": "ลบบันทึกเซสชัน", - "deleteSessionConfirm": "คุณแน่ใจหรือไม่ว่าต้องการลบบันทึกการแปลทั้งหมดของเซสชันนี้ การกระทำนี้ไม่สามารถย้อนกลับได้", + "deleteSessionConfirm": + "คุณแน่ใจหรือไม่ว่าต้องการลบบันทึกการแปลทั้งหมดของเซสชันนี้ การกระทำนี้ไม่สามารถย้อนกลับได้", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1253,20 @@ const Map thTH = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1197,9 +1297,11 @@ const Map thTH = { "summaryGenerated": "สร้างสรุปแล้ว", "generating": "กำลังสร้าง...", "regenerate": "สร้างใหม่", - "summaryTimeoutMessage": "คำขอสร้างสรุปหมดเวลา อาจเป็นเพราะปัญหาเครือข่ายหรือเซิร์ฟเวอร์ไม่ว่าง", + "summaryTimeoutMessage": + "คำขอสร้างสรุปหมดเวลา อาจเป็นเพราะปัญหาเครือข่ายหรือเซิร์ฟเวอร์ไม่ว่าง", "deleteTranslationRecord": "ลบบันทึกการแปล", - "deleteTranslationConfirm": "คุณแน่ใจหรือไม่ว่าต้องการลบบันทึกการแปลนี้ การกระทำนี้ไม่สามารถย้อนกลับได้", + "deleteTranslationConfirm": + "คุณแน่ใจหรือไม่ว่าต้องการลบบันทึกการแปลนี้ การกระทำนี้ไม่สามารถย้อนกลับได้", "originalText": "ข้อความต้นฉบับ", "translatedText": "ข้อความที่แปลแล้ว", "sessionSummary": "สรุปเซสชัน", @@ -1227,19 +1329,24 @@ const Map thTH = { // 配对状态文本 "readyToPair": "พร้อมที่จะจับคู่", "preparingPairingEnvironment": "กำลังเตรียมสภาพแวดล้อมการจับคู่...", - "connectDeepSoundViaSystemBluetooth": "กรุณาเชื่อมต่อกับอุปกรณ์ Voitrans ผ่านบลูทูธของระบบก่อน", + "connectDeepSoundViaSystemBluetooth": + "กรุณาเชื่อมต่อกับอุปกรณ์ Voitrans ผ่านบลูทูธของระบบก่อน", "deviceBindingConfirm": "ยืนยันการผูกอุปกรณ์...", "establishingDeviceAssociation": "กำลังสร้างการเชื่อมโยงอุปกรณ์...", "waitingCompletePairing": "กรุณารอสักครู่ กำลังทำการจับคู่ให้เสร็จสิ้น...", - "pairingSuccessRedirecting": "การจับคู่สำเร็จ! กำลังเปลี่ยนเส้นทางไปยังหน้าหลัก...", + "pairingSuccessRedirecting": + "การจับคู่สำเร็จ! กำลังเปลี่ยนเส้นทางไปยังหน้าหลัก...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "โปรดตรวจสอบให้แน่ใจว่าคุณเชื่อมต่อกับอุปกรณ์ Voitrans", + "ensureConnectedDeepSoundDevice": + "โปรดตรวจสอบให้แน่ใจว่าคุณเชื่อมต่อกับอุปกรณ์ Voitrans", "deviceAlreadyBoundToOtherAccount": "อุปกรณ์นี้ถูกผูกไว้กับบัญชีอื่นแล้ว", "deviceAssociationFailed": "การเชื่อมโยงอุปกรณ์ล้มเหลว โปรดลองอีกครั้ง", - "scanTimeoutEnsureDeviceNearby": "การสแกนหมดเวลา โปรดตรวจสอบให้แน่ใจว่าอุปกรณ์อยู่ใกล้ๆ", + "scanTimeoutEnsureDeviceNearby": + "การสแกนหมดเวลา โปรดตรวจสอบให้แน่ใจว่าอุปกรณ์อยู่ใกล้ๆ", "networkError": "ข้อผิดพลาดเครือข่าย", - "authorizationFailedCheckCode": "การอนุญาตล้มเหลว โปรดตรวจสอบว่ารหัสอนุญาตถูกต้องหรือไม่", + "authorizationFailedCheckCode": + "การอนุญาตล้มเหลว โปรดตรวจสอบว่ารหัสอนุญาตถูกต้องหรือไม่", "pairingFailedRetry": "การจับคู่ล้มเหลว โปรดลองอีกครั้ง", // 配对控制器相关 @@ -1248,7 +1355,8 @@ const Map thTH = { 'deviceDisconnected': 'อุปกรณ์ตัดการเชื่อมต่อแล้ว', 'readyToStartPairing': 'พร้อมที่จะเริ่มการจับคู่', 'checkingEnvironment': 'กำลังตรวจสอบสภาพแวดล้อม...', - 'ensureHeadsetOnAndPairingMode': 'โปรดตรวจสอบให้แน่ใจว่าหูฟังเปิดอยู่และอยู่ในโหมดจับคู่', + 'ensureHeadsetOnAndPairingMode': + 'โปรดตรวจสอบให้แน่ใจว่าหูฟังเปิดอยู่และอยู่ในโหมดจับคู่', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1270,15 +1378,20 @@ const Map thTH = { 'bleConnectionTimeoutRetry': 'การเชื่อมต่อ BLE หมดเวลา โปรดลองอีกครั้ง', 'blePairingStartupFailed': 'การเริ่มต้นการจับคู่ BLE ล้มเหลว', 'bleConnectionFailed': 'การเชื่อมต่อ BLE ล้มเหลว', - 'deviceAuthorizationFailedCheckCode': 'การอนุญาตอุปกรณ์ล้มเหลว โปรดตรวจสอบรหัสอนุญาต', + 'deviceAuthorizationFailedCheckCode': + 'การอนุญาตอุปกรณ์ล้มเหลว โปรดตรวจสอบรหัสอนุญาต', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1290,11 +1403,13 @@ const Map thTH = { 'contactInfo': 'ข้อมูลติดต่อ', 'contactHint': 'อีเมล/หมายเลขโทรศัพท์ เพื่อให้เราสามารถติดต่อคุณได้', 'submit': 'ส่ง', - 'feedbackSubmitSuccess': 'ส่งความคิดเห็นสำเร็จ ขอบคุณสำหรับความคิดเห็นของคุณ!', + 'feedbackSubmitSuccess': + 'ส่งความคิดเห็นสำเร็จ ขอบคุณสำหรับความคิดเห็นของคุณ!', 'feedbackSubmitFailed': 'ส่งความคิดเห็นล้มเหลว โปรดลองใหม่ในภายหลัง', // OTA升级模块 - "upgradeExitConfirm": "กำลังอัปเกรด การออกจะขัดจังหวะกระบวนการอัปเกรด คุณแน่ใจหรือไม่ว่าต้องการออก", + "upgradeExitConfirm": + "กำลังอัปเกรด การออกจะขัดจังหวะกระบวนการอัปเกรด คุณแน่ใจหรือไม่ว่าต้องการออก", "deviceModel": "รุ่นอุปกรณ์", "unknownDevice": "อุปกรณ์ที่ไม่รู้จัก", "currentFirmwareVersion": "เวอร์ชันเฟิร์มแวร์ปัจจุบัน", @@ -1307,14 +1422,19 @@ const Map thTH = { "retryConnection": "ลองเชื่อมต่อใหม่", "ota_updateNow": "อัปเดตทันที", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "โปรดให้อุปกรณ์เชื่อมต่ออยู่เสมอ อย่าปิดแอปพลิเคชัน", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "โปรดให้อุปกรณ์เชื่อมต่ออยู่เสมอ อย่าปิดแอปพลิเคชัน", "doNotDisconnect": "โปรดอย่าตัดการเชื่อมต่อ", "charging": "กำลังชาร์จ", "updateContent": "เนื้อหาการอัปเดต", - "removeEarbudsEnsureBattery": "ถอดหูฟังทั้งสองข้างออก และตรวจสอบให้แน่ใจว่าแบตเตอรี่ทั้งสองข้างมีพลังงานมากกว่า 20%", + "removeEarbudsEnsureBattery": + "ถอดหูฟังทั้งสองข้างออก และตรวจสอบให้แน่ใจว่าแบตเตอรี่ทั้งสองข้างมีพลังงานมากกว่า 20%", // 音乐列表页面 "noMusic": "ไม่มีเพลง", // 暂无音乐 @@ -1376,8 +1496,10 @@ const Map thTH = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/tl_ph.dart b/lib/core/translations/language/tl_ph.dart index 393860b45..7754df114 100644 --- a/lib/core/translations/language/tl_ph.dart +++ b/lib/core/translations/language/tl_ph.dart @@ -33,6 +33,7 @@ const Map tlPH = { "spanish": "Espanyol", "portuguese": "Portuges", "traditionalChinese": "Tradisyonal na Chinese", + "traditionalChineseHK": "Tradisyunal na Tsino (Hong Kong)", "japanese": "Hapon", "korean": "Koreano", "french": "Pranses", @@ -71,7 +72,8 @@ const Map tlPH = { // 登录页 "welcome": "Maligayang pagdating", - "loginTips": "Mangyaring mag-login o mag-signup gamit ang iyong numero ng telepono o email", + "loginTips": + "Mangyaring mag-login o mag-signup gamit ang iyong numero ng telepono o email", "accountNumber": "Numero ng Telepono o Email", "verificationCode": "Verification Code", "getCode": "Kunin ang Code", @@ -90,7 +92,8 @@ const Map tlPH = { "tip": "Paalala", "pleaseEnterCompleteCode": "Pakilagay ang kumpletong verification code", "loginFailed": "Nabigo ang pag-login, pakisubukang muli", - 'pleaseAcceptPrivacyPolicy': 'Pakibasa at sumang-ayon muna sa Patakaran sa Privacy at Kasunduan ng User', + 'pleaseAcceptPrivacyPolicy': + 'Pakibasa at sumang-ayon muna sa Patakaran sa Privacy at Kasunduan ng User', "enterVerificationCode": "Ilagay ang Verification Code", "verificationCodeSentTo": "Ang verification code ay ipinadala sa", "resendVerificationCode": "Ipadala muli ang verification code", @@ -99,7 +102,8 @@ const Map tlPH = { // 隐私政策弹窗 "loginDeclaration": "Pahayag ng Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Maligayang pagdating sa Voitrans, mangyaring basahin nang mabuti", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Maligayang pagdating sa Voitrans, mangyaring basahin nang mabuti", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +119,30 @@ const Map tlPH = { "signal": "Signal", "deviceId": "Device ID", "firmwareVersion": "Bersyon ng Firmware", - "disconnectedDevice": "Walang device na konektado, i-click ang button sa ibaba para kumonekta", + "disconnectedDevice": + "Walang device na konektado, i-click ang button sa ibaba para kumonekta", "connectDevice": "Ikonekta ang Device", "topAiExperiences": "Mga Nangungunang Karanasan sa AI", "aiAssistant": "AI All-in-One Assistant", - "aiAssistantInfo": "24/7 na eksklusibong consultant, sumasagot sa mga tanong, nagbibigay ng payo", + "aiAssistantInfo": + "24/7 na eksklusibong consultant, sumasagot sa mga tanong, nagbibigay ng payo", "interpretation": "Sabayang Pagsasalin", - "simultaneousInterpretationInfo": "Real-time na pagsasalin sa 80+ na wika, walang alalahanin sa paglalakbay sa ibang bansa", + "simultaneousInterpretationInfo": + "Real-time na pagsasalin sa 80+ na wika, walang alalahanin sa paglalakbay sa ibang bansa", "aiCompanion": "Kasama ng Pamilya", "aiCompanionInfo": "Nakakaintindi sa iyo, mainit na samahan", "homeSlogan": "Ikonekta ang mundo, lampas sa tunog", - "turnEarphones": "Pakibuksan ang charging case ng earphones, at ilagay ang earphones sa iyong mga tainga", + "turnEarphones": + "Pakibuksan ang charging case ng earphones, at ilagay ang earphones sa iyong mga tainga", "currentlyConnected": "Kasalukuyang konektado:", "unsystemSetup": "Pumunta sa Mga Setting ng System", "talkLater": "Mamaya na", "initializing": "Nag-i-initialize...", - "bluetoothInitializationFailure": "Nabigo ang pag-initialize ng serbisyo ng Bluetooth", + "bluetoothInitializationFailure": + "Nabigo ang pag-initialize ng serbisyo ng Bluetooth", "checkingPermissions": "Sinusuri ang mga pahintulot...", - "lackPermissions": "Kulang sa mga pahintulot ng Bluetooth at sumasang-ayon ka sa lokasyon", + "lackPermissions": + "Kulang sa mga pahintulot ng Bluetooth at sumasang-ayon ka sa lokasyon", "searchingDevice": "Naghahanap ng mga device...", "findConnectedDevice": "Natagpuan ang konektadong device", "notFound": "Walang natagpuang konektadong Bluetooth device", @@ -164,7 +174,8 @@ const Map tlPH = { "exploreAi": "Galugarin ang mga function ng AI na inaalok ng Voitrans", "aiFunction": "Mga Function ng AI", "allRoundAssistant": "All-in-One Assistant", - "allRoundAssistantInfo": "Tumutulong sa iyong malutas ang iba't ibang problema", + "allRoundAssistantInfo": + "Tumutulong sa iyong malutas ang iba't ibang problema", "simultaneousTranslation": "Sabayang Pagsasalin", "faceToFaceTranslation": "Pagsasalin ng Harapan", 'audioVideoTranslation': 'Pagsasalin ng Audio at Video', @@ -175,7 +186,8 @@ const Map tlPH = { "healthConsultant": "Multi-functional na AI Chat", "healthConsultantInfo": "Nagbibigay ng mas maraming function ng AI chat", "conferenceAssistant": "Business Meeting Assistant", - "conferenceAssistantInfo": "Real-time na pagtatala ng mga minuto ng pulong, pagsasalin sa maraming wika", + "conferenceAssistantInfo": + "Real-time na pagtatala ng mga minuto ng pulong, pagsasalin sa maraming wika", "usageStats": "Usage Statistics", "usageStatsInfo": "View your usage statistics", "scene": "Eksena", @@ -218,7 +230,8 @@ const Map tlPH = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +287,10 @@ const Map tlPH = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +299,35 @@ const Map tlPH = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +336,10 @@ const Map tlPH = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +354,8 @@ const Map tlPH = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Laktawan", @@ -355,7 +381,8 @@ const Map tlPH = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +432,8 @@ const Map tlPH = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +488,54 @@ const Map tlPH = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +547,8 @@ const Map tlPH = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +568,8 @@ const Map tlPH = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +618,8 @@ const Map tlPH = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +644,8 @@ const Map tlPH = { "cloudSync": "Pagsasalin ng Recharge ng Cloud", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Konektadong device:", "accountId": "Account ID:", "systemSetting": "Setting ng System", @@ -612,18 +658,22 @@ const Map tlPH = { "privacySettings": "Mga Setting ng Privacy", "privacySettingsInfo": "Pamahalaan ang koleksyon ng data at mga pahintulot", "permissionManagement": "Pamamahala ng Pahintulot", // 权限管理 - "permissionManagementInfo": "Pamahalaan ang mga setting ng pahintulot ng app", // 管理应用权限设置 + "permissionManagementInfo": + "Pamahalaan ang mga setting ng pahintulot ng app", // 管理应用权限设置 "aboutApplication": "Tungkol sa App", "versions": "Bersyon", "checkUpdates": "Suriin kung may mga Update", "selectLanguage": "Pumili ng Wika", "voiceService": "Serbisyo ng Boses", - "voiceServiceInfo": "Pumili ng serbisyo para sa pagkilala at pag-synthesize ng boses", + "voiceServiceInfo": + "Pumili ng serbisyo para sa pagkilala at pag-synthesize ng boses", "selectVoiceService": "Pumili ng Serbisyo ng Boses", "azureVoiceService": "Azure Voice Service", - "azureVoiceServiceInfo": "Serbisyo ng boses sa cloud ng Microsoft, sumusuporta sa mataas na kalidad na voice synthesis at recognition", + "azureVoiceServiceInfo": + "Serbisyo ng boses sa cloud ng Microsoft, sumusuporta sa mataas na kalidad na voice synthesis at recognition", "flutterVoiceService": "Flutter Local Voice Service", - "flutterVoiceServiceInfo": "Lokal na serbisyo ng boses sa device, maaaring gamitin nang walang koneksyon sa internet", + "flutterVoiceServiceInfo": + "Lokal na serbisyo ng boses sa device, maaaring gamitin nang walang koneksyon sa internet", 'timbreService': 'Serbisyo ng Timbre', 'timbreServiceInfo': 'Pumili ng serbisyo ng voice synthesis na may timbre', 'defaultTimbre': 'Default na Timbre', @@ -634,7 +684,8 @@ const Map tlPH = { 'pleaseRead': 'Pakibasa nang malakas', 'completeRecording': 'Kumpletuhin ang Pag-record', "firmwareUpgrade": "Pag-upgrade ng Firmware", - "bleHeadsetFirmwareUpgrade": "Pag-upgrade ng Bersyon ng Firmware ng BLE Headset", + "bleHeadsetFirmwareUpgrade": + "Pag-upgrade ng Bersyon ng Firmware ng BLE Headset", "deviceManagement": "Pamamahala ng Device", "manageConnectedDevices": "Pamahalaan ang mga naka-pair na Bluetooth device", @@ -652,7 +703,8 @@ const Map tlPH = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Real-time na Voice Chat", - "realtimeVoiceChatInfo": "Damhin ang matalinong voice interaction function (feature preview)", + "realtimeVoiceChatInfo": + "Damhin ang matalinong voice interaction function (feature preview)", "loading": "Naglo-load...", //设备管理页面 @@ -667,7 +719,8 @@ const Map tlPH = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -678,7 +731,8 @@ const Map tlPH = { "inputMessage": "Mag-type ng mensahe...", "imListening": "Nakikinig...", "canStartTalking": "Maaari ka nang magsalita", - "addQuestionAboutImage": "Magdagdag ng tanong o paglalarawan tungkol sa larawan...", + "addQuestionAboutImage": + "Magdagdag ng tanong o paglalarawan tungkol sa larawan...", "summarizeImageContent": "Ibuod ang nilalaman ng larawan", "extractImageText": "I-extract ang teksto sa imahe", "translateImageText": "Isalin ang teksto sa imahe", @@ -721,10 +775,14 @@ const Map tlPH = { '• Pagkontrol sa mga function ng earphone\n\n' 'Paano kita matutulungan?', 'microphonePermission': 'Mikropono', - 'voiceRecognitionPermissionText': 'Ang pagkilala sa boses ay nangangailangan ng access sa mikropono.', - 'voiceTranslationPermissionText': 'Ang pagkilala at pagsasalin ng boses ay nangangailangan ng access sa mikropono.', - 'phoneCallPermissionText': 'Ang pagtawag ay nangangailangan ng access sa mikropono para sa mga voice call.', - 'permissionDeniedText': 'Permanenteng tinanggihan mo ang pahintulot sa mikropono, mangyaring pumunta sa mga setting ng system para paganahin ito.', + 'voiceRecognitionPermissionText': + 'Ang pagkilala sa boses ay nangangailangan ng access sa mikropono.', + 'voiceTranslationPermissionText': + 'Ang pagkilala at pagsasalin ng boses ay nangangailangan ng access sa mikropono.', + 'phoneCallPermissionText': + 'Ang pagtawag ay nangangailangan ng access sa mikropono para sa mga voice call.', + 'permissionDeniedText': + 'Permanenteng tinanggihan mo ang pahintulot sa mikropono, mangyaring pumunta sa mga setting ng system para paganahin ito.', 'startVoiceInput': 'Simulan ang voice input', 'startPhoneCallMode': 'Simulan ang mode ng pagtawag, simulan ang voice input', @@ -738,7 +796,8 @@ const Map tlPH = { 'report': 'I-report', 'submitSuccess': 'Matagumpay na naisumite', 'submitFailed': 'Nabigo ang pagsusumite', - 'reportSubmitted': 'Naisumite na ang report, ipoproseso namin ito sa lalong madaling panahon', + 'reportSubmitted': + 'Naisumite na ang report, ipoproseso namin ito sa lalong madaling panahon', //'networkError': '网络错误,请稍后重试', 'harmfulUnsafe': 'Nakapipinsala/Hindi Ligtas', 'pornographicVulgar': 'Pornograpiko/Bastos', @@ -747,7 +806,8 @@ const Map tlPH = { 'privacyRelated': 'May kaugnayan sa Privacy', 'copyrightViolation': 'Lumabag sa aking copyright, reputasyon, atbp.', 'other': 'Iba pa', - 'reportDescriptionHint': 'Gusto naming malaman kung bakit ka nagre-report, maaari mong ilarawan ang problemang iyong naranasan.', + 'reportDescriptionHint': + 'Gusto naming malaman kung bakit ka nagre-report, maaari mong ilarawan ang problemang iyong naranasan.', //'submit': '提交', //Message_bubble @@ -778,15 +838,24 @@ const Map tlPH = { 'highest': 'Pinakamataas', 'lowest': 'Pinakamababa', 'futureForecast': 'Pagtataya sa Hinaharap', - 'hotWeatherTip': 'Mainit ngayon, mag-ingat sa heatstroke, uminom ng maraming tubig', - 'coldWeatherTip': 'Malamig ang temperatura ngayon, magsuot ng mainit na damit kapag lalabas para maiwasan ang sipon', - 'rainyWeatherTip': 'May ulan ngayon, magdala ng payong kapag lalabas, mag-ingat sa paglalakbay', - 'snowyWeatherTip': 'May snow ngayon, madulas ang daan, mag-ingat at magsuot ng panlamig', - 'foggyWeatherTip': 'May hamog ngayon, mababa ang visibility, magsuot ng mask kapag lalabas', - 'windyWeatherTip': 'Mahangin ngayon, mag-ingat kapag lalabas, i-secure ang mga gamit', - 'sunnyWeatherTip': 'Maaraw at malakas ang UV rays ngayon, maglagay ng sunscreen kapag lalabas', - 'temperatureDifferenceTip': 'Malaki ang pagkakaiba ng temperatura sa araw at gabi, magsuot ng damit na angkop', - 'comfortableWeatherTip': 'Maganda ang panahon ngayon, magandang oras para sa mga aktibidad sa labas', + 'hotWeatherTip': + 'Mainit ngayon, mag-ingat sa heatstroke, uminom ng maraming tubig', + 'coldWeatherTip': + 'Malamig ang temperatura ngayon, magsuot ng mainit na damit kapag lalabas para maiwasan ang sipon', + 'rainyWeatherTip': + 'May ulan ngayon, magdala ng payong kapag lalabas, mag-ingat sa paglalakbay', + 'snowyWeatherTip': + 'May snow ngayon, madulas ang daan, mag-ingat at magsuot ng panlamig', + 'foggyWeatherTip': + 'May hamog ngayon, mababa ang visibility, magsuot ng mask kapag lalabas', + 'windyWeatherTip': + 'Mahangin ngayon, mag-ingat kapag lalabas, i-secure ang mga gamit', + 'sunnyWeatherTip': + 'Maaraw at malakas ang UV rays ngayon, maglagay ng sunscreen kapag lalabas', + 'temperatureDifferenceTip': + 'Malaki ang pagkakaiba ng temperatura sa araw at gabi, magsuot ng damit na angkop', + 'comfortableWeatherTip': + 'Maganda ang panahon ngayon, magandang oras para sa mga aktibidad sa labas', "monday": "Lunes", "tuesday": "Martes", "wednesday": "Miyerkules", @@ -836,24 +905,33 @@ const Map tlPH = { "notSet": "Hindi Naitakda", "accountSetting": "Setting ng Account", "logout": "Mag-logout", - "logoutTips": "Sigurado ka bang gusto mong mag-logout sa kasalukuyang account?", + "logoutTips": + "Sigurado ka bang gusto mong mag-logout sa kasalukuyang account?", 'deleteAccount': 'Burahin ang Account', - 'deleteAccountTips': 'Sigurado ka bang gusto mong permanenteng burahin ang iyong account? Hindi na ito maibabalik.', + 'deleteAccountTips': + 'Sigurado ka bang gusto mong permanenteng burahin ang iyong account? Hindi na ito maibabalik.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Nabigo ang koneksyon sa network, pakisuri ang iyong mga setting ng network at subukang muli', - 'serverTemporarilyUnavailable': 'Pansamantalang hindi available ang server, pakisubukang muli mamaya', - 'loginExpiredPleaseRelogin': 'Nag-expire na ang iyong pag-login, mangyaring mag-login muli', - 'noPermissionForThisOperation': 'Walang pahintulot na gawin ang operasyong ito', + 'networkConnectionFailed': + 'Nabigo ang koneksyon sa network, pakisuri ang iyong mga setting ng network at subukang muli', + 'serverTemporarilyUnavailable': + 'Pansamantalang hindi available ang server, pakisubukang muli mamaya', + 'loginExpiredPleaseRelogin': + 'Nag-expire na ang iyong pag-login, mangyaring mag-login muli', + 'noPermissionForThisOperation': + 'Walang pahintulot na gawin ang operasyong ito', 'requestedResourceNotFound': 'Hindi natagpuan ang hiniling na mapagkukunan', - 'imageProcessingFailedPleaseReselect': 'Nabigo ang pagproseso ng imahe, mangyaring pumili muli ng imahe', + 'imageProcessingFailedPleaseReselect': + 'Nabigo ang pagproseso ng imahe, mangyaring pumili muli ng imahe', 'operationFailedPleaseRetry': 'Nabigo ang operasyon, pakisubukang muli', 'serverReturnedError': 'Nagbalik ng error ang server', 'serverError': 'Error sa Server', - 'networkConnectionFailedCheckSettings': 'Nabigo ang koneksyon sa network, pakisuri ang iyong mga setting ng network', - 'serverInternalErrorRetryLater': 'Internal na error sa server, pakisubukang muli mamaya', + 'networkConnectionFailedCheckSettings': + 'Nabigo ang koneksyon sa network, pakisuri ang iyong mga setting ng network', + 'serverInternalErrorRetryLater': + 'Internal na error sa server, pakisubukang muli mamaya', // Profile 用户交互 //'error': '错误', @@ -872,13 +950,18 @@ const Map tlPH = { // 账号服务相关 'clearUserDataFailed': 'Nabigong i-clear ang data ng user', // 清理用户数据失败 'deleteUserDataFailed': 'Nabigong burahin ang data ng user', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'Matagumpay na naka-logout sa third-party', // 第三方登录退出成功 + 'thirdPartyLogoutSuccess': + 'Matagumpay na naka-logout sa third-party', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Nabigo ang pag-logout sa third-party', // 第三方登录退出失败 - 'signOutProcessError': 'Nagkaroon ng error sa proseso ng pag-sign out', // 登出过程发生错误 - 'deleteAccountProcessError': 'Nagkaroon ng error sa proseso ng pagbura ng account', // 删除账号过程发生错误 + 'signOutProcessError': + 'Nagkaroon ng error sa proseso ng pag-sign out', // 登出过程发生错误 + 'deleteAccountProcessError': + 'Nagkaroon ng error sa proseso ng pagbura ng account', // 删除账号过程发生错误 'userDataClearSuccess': 'Matagumpay na na-clear ang data ng user', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Matagumpay na na-clear ang lahat ng data ng user', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Naisimulan na ang AccountService', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Matagumpay na na-clear ang lahat ng data ng user', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Naisimulan na ang AccountService', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Nabigong makuha ang katayuan ng pahintulot', @@ -901,10 +984,14 @@ const Map tlPH = { 'locationInfo': 'Impormasyon sa Lokasyon', 'phonePermissionDesc': 'Ginagamit para sa function ng pagtawag', 'smsPermissionDesc': 'Ginagamit para sa function ng pagpapadala ng SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Ginagamit para sa paglikha ng mga kaganapan at paalala sa kalendaryo', - 'calendarFullAccessPermissionDesc': 'Ginagamit para sa pagbabasa at pamamahala ng mga kaganapan at paalala sa kalendaryo', - 'locationPermissionDesc': 'Ginagamit para sa pagkuha ng kasalukuyang impormasyon sa lokasyon', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Ginagamit para sa paglikha ng mga kaganapan at paalala sa kalendaryo', + 'calendarFullAccessPermissionDesc': + 'Ginagamit para sa pagbabasa at pamamahala ng mga kaganapan at paalala sa kalendaryo', + 'locationPermissionDesc': + 'Ginagamit para sa pagkuha ng kasalukuyang impormasyon sa lokasyon', 'appFunctionNeeds': 'Kailangan ng function ng app', 'authorized': 'Pinahintulutan', 'unauthorized': 'Hindi Pinahintulutan', @@ -913,45 +1000,71 @@ const Map tlPH = { 'unknownStatus': 'Hindi Malamang Katayuan', 'permissionGranted': 'Naibigay na ang pahintulot', 'permissionRequestError': 'Error sa paghiling ng pahintulot', - 'phonePermissionDetailDesc': 'Ang function ng pagtawag ay nangangailangan ng pahintulot sa telepono', - 'smsPermissionDetailDesc': 'Ang function ng pagpapadala ng SMS ay nangangailangan ng pahintulot sa SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Ang paglikha ng mga kaganapan sa kalendaryo ay nangangailangan ng pahintulot sa pagsulat sa kalendaryo', - 'calendarFullAccessPermissionDetailDesc': 'Ang pamamahala ng mga kaganapan sa kalendaryo ay nangangailangan ng buong pahintulot sa kalendaryo', - 'locationPermissionDetailDesc': 'Ang pagkuha ng impormasyon sa lokasyon ay nangangailangan ng pahintulot sa lokasyon', + 'phonePermissionDetailDesc': + 'Ang function ng pagtawag ay nangangailangan ng pahintulot sa telepono', + 'smsPermissionDetailDesc': + 'Ang function ng pagpapadala ng SMS ay nangangailangan ng pahintulot sa SMS', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Ang paglikha ng mga kaganapan sa kalendaryo ay nangangailangan ng pahintulot sa pagsulat sa kalendaryo', + 'calendarFullAccessPermissionDetailDesc': + 'Ang pamamahala ng mga kaganapan sa kalendaryo ay nangangailangan ng buong pahintulot sa kalendaryo', + 'locationPermissionDetailDesc': + 'Ang pagkuha ng impormasyon sa lokasyon ay nangangailangan ng pahintulot sa lokasyon', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Kailangan ng app ang pahintulot na ito para sa buong paggana', - 'permanentDenialText': 'Permanenteng tinanggihan mo ang pahintulot sa {permission}, mangyaring pumunta sa mga setting ng app para paganahin ito', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Kailangan ng app ang pahintulot na ito para sa buong paggana', + 'permanentDenialText': + 'Permanenteng tinanggihan mo ang pahintulot sa {permission}, mangyaring pumunta sa mga setting ng app para paganahin ito', 'goToSettings': 'Pumunta sa Mga Setting', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1074,8 @@ const Map tlPH = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1084,10 @@ const Map tlPH = { 'updateNow': 'I-update Ngayon', // 立即更新按钮 'checkUpdate': 'Suriin kung may Update', // 检查更新按钮 'updateFailed': 'Nabigo ang Pag-update', // 更新失败提示 - 'cannotOpenAppStore': 'Hindi mabuksan ang app store, mangyaring pumunta nang manu-mano sa app store para mag-update', // 无法打开应用商店提示 - 'updateErrorRetry': 'Nagkaroon ng error habang nag-a-update, pakisubukang muli mamaya', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Hindi mabuksan ang app store, mangyaring pumunta nang manu-mano sa app store para mag-update', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Nagkaroon ng error habang nag-a-update, pakisubukang muli mamaya', // 更新错误重试提示 //国家列表 "邮箱": "Email", @@ -1107,7 +1223,8 @@ const Map tlPH = { "selectTargetLanguage": "Pumili ng target na wika", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1240,12 @@ const Map tlPH = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Burahin ang Kasaysayan", - "clearHistoryConfirm": "Sigurado ka bang gusto mong burahin ang lahat ng kasaysayan ng pagsasalin? Hindi na ito maibabalik.", + "clearHistoryConfirm": + "Sigurado ka bang gusto mong burahin ang lahat ng kasaysayan ng pagsasalin? Hindi na ito maibabalik.", "unknownLanguage": "Hindi Kilalang Wika", "deleteSessionRecord": "Burahin ang Record ng Session", - "deleteSessionConfirm": "Sigurado ka bang gusto mong burahin ang lahat ng record ng pagsasalin para sa session na ito? Hindi na ito maibabalik.", + "deleteSessionConfirm": + "Sigurado ka bang gusto mong burahin ang lahat ng record ng pagsasalin para sa session na ito? Hindi na ito maibabalik.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1277,20 @@ const Map tlPH = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1313,8 @@ const Map tlPH = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Orihinal na Record", "recordSummary": "Buod ng Record", - "clickToGenerateSummary": "I-click ang button sa ibaba para bumuo ng buod ng session", + "clickToGenerateSummary": + "I-click ang button sa ibaba para bumuo ng buod ng session", "summaryContent": "Nilalaman ng Buod", "copied": "Nakopya", "summaryCopiledToClipboard": "Nakopya ang buod sa clipboard", @@ -1197,9 +1322,11 @@ const Map tlPH = { "summaryGenerated": "Nabuong buod", "generating": "Gumagawa...", "regenerate": "Muling buuin", - "summaryTimeoutMessage": "Nag-time out ang kahilingan sa pagbuo ng buod, maaaring dahil sa problema sa network o abala ang server.", + "summaryTimeoutMessage": + "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", - "deleteTranslationConfirm": "Sigurado ka bang gusto mong burahin ang record ng pagsasalin na ito? Hindi na ito maibabalik.", + "deleteTranslationConfirm": + "Sigurado ka bang gusto mong burahin ang record ng pagsasalin na ito? Hindi na ito maibabalik.", "originalText": "Orihinal na Teksto", "translatedText": "Isinaling Teksto", "sessionSummary": "Buod ng Session", @@ -1226,20 +1353,28 @@ const Map tlPH = { // 配对状态文本 "readyToPair": "Handa nang i-pair", - "preparingPairingEnvironment": "Inihahanda ang kapaligiran para sa pag-pair...", - "connectDeepSoundViaSystemBluetooth": "Mangyaring kumonekta muna sa Voitrans device sa pamamagitan ng system Bluetooth", + "preparingPairingEnvironment": + "Inihahanda ang kapaligiran para sa pag-pair...", + "connectDeepSoundViaSystemBluetooth": + "Mangyaring kumonekta muna sa Voitrans device sa pamamagitan ng system Bluetooth", "deviceBindingConfirm": "Kumpirmasyon sa pag-bind ng device...", "establishingDeviceAssociation": "Itinatatag ang ugnayan ng device...", "waitingCompletePairing": "Pakihintay, kinukumpleto ang pag-pair...", - "pairingSuccessRedirecting": "Matagumpay ang pag-pair! Papunta na sa home page...", + "pairingSuccessRedirecting": + "Matagumpay ang pag-pair! Papunta na sa home page...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Pakitiyak na konektado ka sa isang Voitrans device", - "deviceAlreadyBoundToOtherAccount": "Ang device na ito ay naka-bind na sa ibang account", - "deviceAssociationFailed": "Nabigo ang pag-uugnay ng device, pakisubukang muli", - "scanTimeoutEnsureDeviceNearby": "Nag-time out ang pag-scan, pakitiyak na malapit ang device", + "ensureConnectedDeepSoundDevice": + "Pakitiyak na konektado ka sa isang Voitrans device", + "deviceAlreadyBoundToOtherAccount": + "Ang device na ito ay naka-bind na sa ibang account", + "deviceAssociationFailed": + "Nabigo ang pag-uugnay ng device, pakisubukang muli", + "scanTimeoutEnsureDeviceNearby": + "Nag-time out ang pag-scan, pakitiyak na malapit ang device", "networkError": "Error sa Network", - "authorizationFailedCheckCode": "Nabigo ang awtorisasyon, pakisuri kung tama ang authorization code", + "authorizationFailedCheckCode": + "Nabigo ang awtorisasyon, pakisuri kung tama ang authorization code", "pairingFailedRetry": "Nabigo ang pag-pair, pakisubukang muli", // 配对控制器相关 @@ -1248,53 +1383,67 @@ const Map tlPH = { 'deviceDisconnected': 'Nadiskonekta ang device', 'readyToStartPairing': 'Handa nang simulan ang pag-pair', 'checkingEnvironment': 'Sinusuri ang kapaligiran...', - 'ensureHeadsetOnAndPairingMode': 'Pakitiyak na naka-on ang headset at nasa pairing mode', + 'ensureHeadsetOnAndPairingMode': + 'Pakitiyak na naka-on ang headset at nasa pairing mode', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Itinatatag ang secure na koneksyon...', - 'needManualBindingAuthCode': 'Kailangan ng manual binding authorization code...', + 'needManualBindingAuthCode': + 'Kailangan ng manual binding authorization code...', 'pairingSuccessful': 'Matagumpay ang pag-pair!', 'enableBluetooth': 'Paganahin ang Bluetooth', 'grantPermissions': 'Magbigay ng mga Pahintulot', 'retryAssociation': 'Muling iugnay', 'retryAuthorization': 'Muling pahintulutan', - 'pleaseGrantNecessaryPermissions': 'Pakibigay ang mga kinakailangang pahintulot', + 'pleaseGrantNecessaryPermissions': + 'Pakibigay ang mga kinakailangang pahintulot', 'checkFailedRetry': 'Nabigo ang pagsuri, pakisubukang muli', 'pleaseConnectDeepSoundDevice': 'Pakikonekta ang isang Voitrans device', 'verificationFailedRetry': 'Nabigo ang pag-verify, pakisubukang muli', 'invalidDeviceAddress': 'Hindi wastong address ng device', 'bleDeviceAssociationFailed': 'Nabigo ang pag-uugnay ng BLE device', - 'deviceAssociationFailedRetry': 'Nabigo ang pag-uugnay ng device, pakisubukang muli', - 'bleConnectionTimeoutRetry': 'Nag-time out ang koneksyon ng BLE, pakisubukang muli', + 'deviceAssociationFailedRetry': + 'Nabigo ang pag-uugnay ng device, pakisubukang muli', + 'bleConnectionTimeoutRetry': + 'Nag-time out ang koneksyon ng BLE, pakisubukang muli', 'blePairingStartupFailed': 'Nabigo ang pagsisimula ng BLE pairing', 'bleConnectionFailed': 'Nabigo ang koneksyon ng BLE', - 'deviceAuthorizationFailedCheckCode': 'Nabigo ang awtorisasyon ng device, pakisuri ang authorization code', + 'deviceAuthorizationFailedCheckCode': + 'Nabigo ang awtorisasyon ng device, pakisuri ang authorization code', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Feedback ng User", 'feedbackInfo': 'Magbigay ng feedback o suhestiyon', - 'feedbackDescription': 'Pakilarawan ang problemang naranasan o ang iyong suhestiyon', + 'feedbackDescription': + 'Pakilarawan ang problemang naranasan o ang iyong suhestiyon', 'feedbackHint': 'Pakilagay ang iyong feedback...', 'feedbackRequired': 'Pakilagay ang nilalaman ng feedback', 'contactInfo': 'Impormasyon sa Pakikipag-ugnayan', 'contactHint': 'Email/Numero ng telepono, para makontak ka namin', 'submit': 'Isumite', - 'feedbackSubmitSuccess': 'Matagumpay na naisumite ang feedback, salamat sa iyong feedback!', - 'feedbackSubmitFailed': 'Nabigong isumite ang feedback, pakisubukang muli mamaya', + 'feedbackSubmitSuccess': + 'Matagumpay na naisumite ang feedback, salamat sa iyong feedback!', + 'feedbackSubmitFailed': + 'Nabigong isumite ang feedback, pakisubukang muli mamaya', // OTA升级模块 - "upgradeExitConfirm": "Kasalukuyang nag-a-upgrade, ang pag-exit ay makakaantala sa proseso, sigurado ka bang gusto mong mag-exit?", + "upgradeExitConfirm": + "Kasalukuyang nag-a-upgrade, ang pag-exit ay makakaantala sa proseso, sigurado ka bang gusto mong mag-exit?", "deviceModel": "Modelo ng Device", "unknownDevice": "Hindi Kilalang Device", "currentFirmwareVersion": "Kasalukuyang Bersyon ng Firmware", @@ -1307,14 +1456,19 @@ const Map tlPH = { "retryConnection": "Muling kumonekta", "ota_updateNow": "I-update Ngayon", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Panatilihing konektado ang device, huwag isara ang app", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Panatilihing konektado ang device, huwag isara ang app", "doNotDisconnect": "Huwag idiskonekta", "charging": "Nagcha-charge", "updateContent": "Nilalaman ng Update", - "removeEarbudsEnsureBattery": "Alisin ang parehong earbuds, at tiyaking parehong may 20% o higit pang baterya", + "removeEarbudsEnsureBattery": + "Alisin ang parehong earbuds, at tiyaking parehong may 20% o higit pang baterya", // 音乐列表页面 "noMusic": "Walang Musika", // 暂无音乐 @@ -1376,8 +1530,10 @@ const Map tlPH = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/tr_tr.dart b/lib/core/translations/language/tr_tr.dart index ae652136b..190a4cdc8 100644 --- a/lib/core/translations/language/tr_tr.dart +++ b/lib/core/translations/language/tr_tr.dart @@ -33,6 +33,7 @@ const Map trTR = { "spanish": "İspanyolca", "portuguese": "Portekizce", "traditionalChinese": "Geleneksel Çince", + "traditionalChineseHK": "Geleneksel Çince (Hong Kong)", "japanese": "Japonca", "korean": "Korece", "french": "Fransızca", @@ -71,7 +72,8 @@ const Map trTR = { // 登录页 "welcome": "Hoş Geldiniz", - "loginTips": "Lütfen telefon numaranızı veya e-postanızı kullanarak giriş yapın veya hesap oluşturun", + "loginTips": + "Lütfen telefon numaranızı veya e-postanızı kullanarak giriş yapın veya hesap oluşturun", "accountNumber": "Telefon Numarası veya E-posta", "verificationCode": "Doğrulama Kodu", "getCode": "Kodu Al", @@ -90,7 +92,8 @@ const Map trTR = { "tip": "İpucu", "pleaseEnterCompleteCode": "Lütfen tam doğrulama kodunu girin", "loginFailed": "Giriş başarısız, lütfen tekrar deneyin", - 'pleaseAcceptPrivacyPolicy': 'Lütfen önce Gizlilik Politikasını ve Kullanıcı Sözleşmesini okuyup kabul edin', + 'pleaseAcceptPrivacyPolicy': + 'Lütfen önce Gizlilik Politikasını ve Kullanıcı Sözleşmesini okuyup kabul edin', "enterVerificationCode": "Doğrulama kodunu girin", "verificationCodeSentTo": "Doğrulama kodu şuraya gönderildi:", "resendVerificationCode": "Doğrulama kodunu tekrar gönder", @@ -99,7 +102,8 @@ const Map trTR = { // 隐私政策弹窗 "loginDeclaration": "Voitrans Beyanı", // Voitrans 声明 - "welcomeToThisApp": "Voitrans'a hoş geldiniz, lütfen dikkatlice okuyun", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Voitrans'a hoş geldiniz, lütfen dikkatlice okuyun", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,17 +119,20 @@ const Map trTR = { "signal": "Sinyal", "deviceId": "Cihaz Kimliği", "firmwareVersion": "Donanım Yazılımı Sürümü", - "disconnectedDevice": "Bağlı cihaz yok, bağlanmak için aşağıdaki düğmeye tıklayın", + "disconnectedDevice": + "Bağlı cihaz yok, bağlanmak için aşağıdaki düğmeye tıklayın", "connectDevice": "Cihaz Bağla", "topAiExperiences": "En İyi Yapay Zeka Deneyimleri", "aiAssistant": "Her Şey Dahil Yapay Zeka Asistanı", "aiAssistantInfo": "Sorular ve tavsiyeler için 7/24 özel danışman", "interpretation": "Simultane Çeviri", - "simultaneousInterpretationInfo": "80'den fazla dil için gerçek zamanlı çeviri, sorunsuz yurt dışı seyahati", + "simultaneousInterpretationInfo": + "80'den fazla dil için gerçek zamanlı çeviri, sorunsuz yurt dışı seyahati", "aiCompanion": "Aile Arkadaşı", "aiCompanionInfo": "Sizi anlar ve sıcak bir arkadaşlık sunar", "homeSlogan": "Dünyayla bağlan, sesin ötesine geç", - "turnEarphones": "Lütfen kulaklık şarj kutusunu açın ve kulaklıkları kulaklarınıza takın", + "turnEarphones": + "Lütfen kulaklık şarj kutusunu açın ve kulaklıkları kulaklarınıza takın", "currentlyConnected": "Şu anda bağlı:", "unsystemSetup": "Sistem ayarlarına git", "talkLater": "Daha Sonra", @@ -175,7 +182,8 @@ const Map trTR = { "healthConsultant": "Çok Fonksiyonlu Yapay Zeka Sohbeti", "healthConsultantInfo": "Daha fazla yapay zeka sohbet özelliği sunar", "conferenceAssistant": "İş Toplantısı Asistanı", - "conferenceAssistantInfo": "Gerçek zamanlı toplantı tutanakları, çok dilli çeviri", + "conferenceAssistantInfo": + "Gerçek zamanlı toplantı tutanakları, çok dilli çeviri", "usageStats": "Kullanım İstatistikleri", "usageStatsInfo": "Kullanım istatistiklerinizi görüntüleyin", "scene": "Senaryo", @@ -218,7 +226,8 @@ const Map trTR = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +283,10 @@ const Map trTR = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +295,35 @@ const Map trTR = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +332,10 @@ const Map trTR = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +350,8 @@ const Map trTR = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Atla", @@ -355,7 +377,8 @@ const Map trTR = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +428,8 @@ const Map trTR = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +484,54 @@ const Map trTR = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +543,8 @@ const Map trTR = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +564,8 @@ const Map trTR = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +614,8 @@ const Map trTR = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,13 +640,15 @@ const Map trTR = { "cloudSync": "Bulut Sincronizasyonu", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Bağlı cihaz:", "accountId": "Hesap Kimliği:", "systemSetting": "Sistem Ayarları", "languageSetting": "Dil Ayarları", "darkMode": "Karanlık Mod", - "darkModeInfo": "Uygulamanın aydınlık ve karanlık temaları arasında geçiş yapın", + "darkModeInfo": + "Uygulamanın aydınlık ve karanlık temaları arasında geçiş yapın", "backups": "Yedekle ve Geri Yükle", "backupsInfo": "Ayarları ve yapay zeka etkileşim geçmişini yedekleyin", "lastBackup": "Son yedekleme:", @@ -621,9 +664,11 @@ const Map trTR = { "voiceServiceInfo": "Ses tanıma ve sentezleme hizmetini seçin", "selectVoiceService": "Ses Hizmeti Seç", "azureVoiceService": "Azure Ses Hizmeti", - "azureVoiceServiceInfo": "Yüksek kaliteli ses sentezi ve tanımayı destekleyen Microsoft bulut ses hizmeti", + "azureVoiceServiceInfo": + "Yüksek kaliteli ses sentezi ve tanımayı destekleyen Microsoft bulut ses hizmeti", "flutterVoiceService": "Flutter Yerel Ses Hizmeti", - "flutterVoiceServiceInfo": "Cihazın yerel ses hizmeti, internet bağlantısı olmadan kullanılabilir", + "flutterVoiceServiceInfo": + "Cihazın yerel ses hizmeti, internet bağlantısı olmadan kullanılabilir", 'timbreService': 'Ses Tonu Hizmeti', 'timbreServiceInfo': 'Ses sentezi için ses tonu hizmeti seçin', 'defaultTimbre': 'Varsayılan Ses Tonu', @@ -634,7 +679,8 @@ const Map trTR = { 'pleaseRead': 'Lütfen Yüksek Sesle Okuyun', 'completeRecording': 'Kaydı Tamamla', "firmwareUpgrade": "Donanım Yazılımı Güncellemesi", - "bleHeadsetFirmwareUpgrade": "BLE Kulaklık Donanım Yazılımı Sürüm Güncellemesi", + "bleHeadsetFirmwareUpgrade": + "BLE Kulaklık Donanım Yazılımı Sürüm Güncellemesi", "deviceManagement": "Cihaz Yönetimi", "manageConnectedDevices": "Bağlı Bluetooth cihazlarını yönetin", @@ -652,7 +698,8 @@ const Map trTR = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Gerçek Zamanlı Sesli Sohbet", - "realtimeVoiceChatInfo": "Akıllı sesli etkileşim özelliğini deneyimleyin (Özellik Önizlemesi)", + "realtimeVoiceChatInfo": + "Akıllı sesli etkileşim özelliğini deneyimleyin (Özellik Önizlemesi)", "loading": "Yükleniyor...", //设备管理页面 @@ -667,7 +714,8 @@ const Map trTR = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -713,7 +761,8 @@ const Map trTR = { "nearbyFood": "What delicious food is nearby?", // 美食 // Agent controller - 'welcomeMessage': 'Merhaba! Ben **Lily**, size şu konularda yardımcı olabilirim:\n\n' + 'welcomeMessage': + 'Merhaba! Ben **Lily**, size şu konularda yardımcı olabilirim:\n\n' '• Soruları yanıtlamak ve bilgi sağlamak\n\n' '• Gerçek zamanlı sesli çeviri\n\n' '• Müzik ve podcast önermek\n\n' @@ -721,10 +770,14 @@ const Map trTR = { '• Kulaklık fonksiyonlarını kontrol etmek\n\n' 'Size nasıl yardımcı olabilirim?', 'microphonePermission': 'Mikrofon', - 'voiceRecognitionPermissionText': 'Ses tanıma özelliği mikrofon erişimi gerektirir.', - 'voiceTranslationPermissionText': 'Ses tanıma ve çeviri özelliği mikrofon erişimi gerektirir.', - 'phoneCallPermissionText': 'Arama yapma özelliği sesli aramalar için mikrofon erişimi gerektirir.', - 'permissionDeniedText': 'Mikrofon iznini kalıcı olarak reddettiniz, lütfen sistem ayarlarından izni etkinleştirin.', + 'voiceRecognitionPermissionText': + 'Ses tanıma özelliği mikrofon erişimi gerektirir.', + 'voiceTranslationPermissionText': + 'Ses tanıma ve çeviri özelliği mikrofon erişimi gerektirir.', + 'phoneCallPermissionText': + 'Arama yapma özelliği sesli aramalar için mikrofon erişimi gerektirir.', + 'permissionDeniedText': + 'Mikrofon iznini kalıcı olarak reddettiniz, lütfen sistem ayarlarından izni etkinleştirin.', 'startVoiceInput': 'Sesli girişi başlat', 'startPhoneCallMode': 'Arama modunu başlat, sesli girişi başlat', @@ -747,7 +800,8 @@ const Map trTR = { 'privacyRelated': 'Gizlilikle İlgili', 'copyrightViolation': 'Telif hakkımı, itibarımı vb. ihlal ediyor', 'other': 'Diğer', - 'reportDescriptionHint': 'Şikayet nedeninizi öğrenmek istiyoruz, karşılaştığınız sorunu açıklayabilirsiniz.', + 'reportDescriptionHint': + 'Şikayet nedeninizi öğrenmek istiyoruz, karşılaştığınız sorunu açıklayabilirsiniz.', //'submit': '提交', //Message_bubble @@ -778,15 +832,24 @@ const Map trTR = { 'highest': 'En Yüksek', 'lowest': 'En Düşük', 'futureForecast': 'Gelecek Tahmini', - 'hotWeatherTip': 'Bugün hava sıcak, lütfen serin kalmaya ve güneş çarpmasını önlemek için bol su içmeye dikkat edin', - 'coldWeatherTip': 'Bugün hava soğuk, dışarı çıkarken üşütmemek için sıkı giyinin', - 'rainyWeatherTip': 'Bugün yağmurlu, dışarı çıkarken şemsiye alın ve dikkatli olun', - 'snowyWeatherTip': 'Bugün karlı, yollar kaygan, lütfen dikkatli olun ve sıcak kalmak için önlem alın', - 'foggyWeatherTip': 'Bugün sisli, görüş mesafesi düşük, dışarı çıkarken maske takın', - 'windyWeatherTip': 'Bugün rüzgarlı, dışarı çıkarken dikkatli olun ve eşyalarınızı sabitleyin', - 'sunnyWeatherTip': 'Bugün güneşli ve UV ışınları güçlü, dışarı çıkarken güneş kremi kullanın', - 'temperatureDifferenceTip': 'Bugün gece ile gündüz arasında büyük sıcaklık farkı var, giysilerinizi buna göre ayarlayın', - 'comfortableWeatherTip': 'Bugün hava güzel, dışarıda vakit geçirmek için harika bir zaman', + 'hotWeatherTip': + 'Bugün hava sıcak, lütfen serin kalmaya ve güneş çarpmasını önlemek için bol su içmeye dikkat edin', + 'coldWeatherTip': + 'Bugün hava soğuk, dışarı çıkarken üşütmemek için sıkı giyinin', + 'rainyWeatherTip': + 'Bugün yağmurlu, dışarı çıkarken şemsiye alın ve dikkatli olun', + 'snowyWeatherTip': + 'Bugün karlı, yollar kaygan, lütfen dikkatli olun ve sıcak kalmak için önlem alın', + 'foggyWeatherTip': + 'Bugün sisli, görüş mesafesi düşük, dışarı çıkarken maske takın', + 'windyWeatherTip': + 'Bugün rüzgarlı, dışarı çıkarken dikkatli olun ve eşyalarınızı sabitleyin', + 'sunnyWeatherTip': + 'Bugün güneşli ve UV ışınları güçlü, dışarı çıkarken güneş kremi kullanın', + 'temperatureDifferenceTip': + 'Bugün gece ile gündüz arasında büyük sıcaklık farkı var, giysilerinizi buna göre ayarlayın', + 'comfortableWeatherTip': + 'Bugün hava güzel, dışarıda vakit geçirmek için harika bir zaman', "monday": "Pzt", "tuesday": "Sal", "wednesday": "Çar", @@ -838,22 +901,28 @@ const Map trTR = { "logout": "Çıkış Yap", "logoutTips": "Mevcut hesaptan çıkmak istediğinizden emin misiniz?", 'deleteAccount': 'Hesabı Sil', - 'deleteAccountTips': 'Hesabınızı kalıcı olarak silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.', + 'deleteAccountTips': + 'Hesabınızı kalıcı olarak silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Ağ bağlantısı başarısız, lütfen ağ ayarlarını kontrol edip tekrar deneyin', - 'serverTemporarilyUnavailable': 'Sunucu geçici olarak yanıt vermiyor, lütfen daha sonra tekrar deneyin', + 'networkConnectionFailed': + 'Ağ bağlantısı başarısız, lütfen ağ ayarlarını kontrol edip tekrar deneyin', + 'serverTemporarilyUnavailable': + 'Sunucu geçici olarak yanıt vermiyor, lütfen daha sonra tekrar deneyin', 'loginExpiredPleaseRelogin': 'Oturum süresi doldu, lütfen tekrar giriş yapın', 'noPermissionForThisOperation': 'Bu işlemi gerçekleştirmek için izniniz yok', 'requestedResourceNotFound': 'İstenen kaynak bulunamadı', - 'imageProcessingFailedPleaseReselect': 'Resim işlenemedi, lütfen resmi yeniden seçin', + 'imageProcessingFailedPleaseReselect': + 'Resim işlenemedi, lütfen resmi yeniden seçin', 'operationFailedPleaseRetry': 'İşlem başarısız, lütfen tekrar deneyin', 'serverReturnedError': 'Sunucu bir hata döndürdü', 'serverError': 'Sunucu Hatası', - 'networkConnectionFailedCheckSettings': 'Ağ bağlantısı başarısız, lütfen ağ ayarlarını kontrol edin', - 'serverInternalErrorRetryLater': 'Sunucu iç hatası, lütfen daha sonra tekrar deneyin', + 'networkConnectionFailedCheckSettings': + 'Ağ bağlantısı başarısız, lütfen ağ ayarlarını kontrol edin', + 'serverInternalErrorRetryLater': + 'Sunucu iç hatası, lütfen daha sonra tekrar deneyin', // Profile 用户交互 //'error': '错误', @@ -872,13 +941,18 @@ const Map trTR = { // 账号服务相关 'clearUserDataFailed': 'Kullanıcı verileri temizlenemedi', // 清理用户数据失败 'deleteUserDataFailed': 'Kullanıcı verileri silinemedi', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'Üçüncü taraf oturumu başarıyla kapatıldı', // 第三方登录退出成功 + 'thirdPartyLogoutSuccess': + 'Üçüncü taraf oturumu başarıyla kapatıldı', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Üçüncü taraf oturumu kapatılamadı', // 第三方登录退出失败 - 'signOutProcessError': 'Oturum kapatma işlemi sırasında bir hata oluştu', // 登出过程发生错误 - 'deleteAccountProcessError': 'Hesap silme işlemi sırasında bir hata oluştu', // 删除账号过程发生错误 + 'signOutProcessError': + 'Oturum kapatma işlemi sırasında bir hata oluştu', // 登出过程发生错误 + 'deleteAccountProcessError': + 'Hesap silme işlemi sırasında bir hata oluştu', // 删除账号过程发生错误 'userDataClearSuccess': 'Kullanıcı verileri başarıyla temizlendi', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Tüm kullanıcı verileri başarıyla temizlendi', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Hesap Hizmeti başlatıldı', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Tüm kullanıcı verileri başarıyla temizlendi', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Hesap Hizmeti başlatıldı', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'İzin durumu alınamadı', @@ -901,9 +975,12 @@ const Map trTR = { 'locationInfo': 'Konum Bilgisi', 'phonePermissionDesc': 'Telefon arama özelliği için kullanılır', 'smsPermissionDesc': 'SMS gönderme özelliği için kullanılır', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Takvim etkinlikleri ve hatırlatıcılar oluşturmak için kullanılır', - 'calendarFullAccessPermissionDesc': 'Takvim etkinliklerini ve hatırlatıcıları okumak ve yönetmek için kullanılır', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Takvim etkinlikleri ve hatırlatıcılar oluşturmak için kullanılır', + 'calendarFullAccessPermissionDesc': + 'Takvim etkinliklerini ve hatırlatıcıları okumak ve yönetmek için kullanılır', 'locationPermissionDesc': 'Mevcut konum bilgisini almak için kullanılır', 'appFunctionNeeds': 'Uygulama özelliğinin ihtiyacı var', 'authorized': 'Yetkilendirildi', @@ -915,43 +992,66 @@ const Map trTR = { 'permissionRequestError': 'İzin istenirken hata oluştu', 'phonePermissionDetailDesc': 'Arama özelliği telefon izni gerektirir', 'smsPermissionDetailDesc': 'SMS gönderme özelliği SMS izni gerektirir', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Takvim etkinliği oluşturma takvime yazma izni gerektirir', - 'calendarFullAccessPermissionDetailDesc': 'Takvim etkinliklerini yönetme tam takvim erişimi gerektirir', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Takvim etkinliği oluşturma takvime yazma izni gerektirir', + 'calendarFullAccessPermissionDetailDesc': + 'Takvim etkinliklerini yönetme tam takvim erişimi gerektirir', 'locationPermissionDetailDesc': 'Konum bilgisi alma konum izni gerektirir', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Uygulamanın tam işlevsellik için bu izne ihtiyacı var', - 'permanentDenialText': '{permission} iznini kalıcı olarak reddettiniz, lütfen etkinleştirmek için uygulama ayarlarına gidin', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Uygulamanın tam işlevsellik için bu izne ihtiyacı var', + 'permanentDenialText': + '{permission} iznini kalıcı olarak reddettiniz, lütfen etkinleştirmek için uygulama ayarlarına gidin', 'goToSettings': 'Ayarlara Git', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1061,8 @@ const Map trTR = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1071,10 @@ const Map trTR = { 'updateNow': 'Şimdi Güncelle', // 立即更新按钮 'checkUpdate': 'Güncellemeleri Kontrol Et', // 检查更新按钮 'updateFailed': 'Güncelleme Başarısız', // 更新失败提示 - 'cannotOpenAppStore': 'Uygulama mağazası açılamıyor, lütfen güncellemek için manuel olarak gidin', // 无法打开应用商店提示 - 'updateErrorRetry': 'Güncelleme sırasında bir hata oluştu, lütfen daha sonra tekrar deneyin', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Uygulama mağazası açılamıyor, lütfen güncellemek için manuel olarak gidin', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Güncelleme sırasında bir hata oluştu, lütfen daha sonra tekrar deneyin', // 更新错误重试提示 //国家列表 "邮箱": "E-posta", @@ -1107,7 +1210,8 @@ const Map trTR = { "selectTargetLanguage": "Hedef Dil Seç", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1227,12 @@ const Map trTR = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Geçmişi Temizle", - "clearHistoryConfirm": "Tüm çeviri geçmişini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.", + "clearHistoryConfirm": + "Tüm çeviri geçmişini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.", "unknownLanguage": "Bilinmeyen Dil", "deleteSessionRecord": "Oturum Kaydını Sil", - "deleteSessionConfirm": "Bu oturumun tüm çeviri kayıtlarını silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", + "deleteSessionConfirm": + "Bu oturumun tüm çeviri kayıtlarını silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1264,20 @@ const Map trTR = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1300,8 @@ const Map trTR = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Orijinal Kayıt", "recordSummary": "Kayıt Özeti", - "clickToGenerateSummary": "Oturum özeti oluşturmak için aşağıdaki düğmeye tıklayın", + "clickToGenerateSummary": + "Oturum özeti oluşturmak için aşağıdaki düğmeye tıklayın", "summaryContent": "Özet İçeriği", "copied": "Kopyalandı", "summaryCopiledToClipboard": "Özet panoya kopyalandı", @@ -1197,9 +1309,11 @@ const Map trTR = { "summaryGenerated": "Özet oluşturuldu", "generating": "Oluşturuluyor...", "regenerate": "Yeniden Oluştur", - "summaryTimeoutMessage": "Özet oluşturma isteği zaman aşımına uğradı. Ağ sorunları veya sunucu yoğunluğu olabilir.", + "summaryTimeoutMessage": + "Özet oluşturma isteği zaman aşımına uğradı. Ağ sorunları veya sunucu yoğunluğu olabilir.", "deleteTranslationRecord": "Çeviri Kaydını Sil", - "deleteTranslationConfirm": "Bu çeviri kaydını silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", + "deleteTranslationConfirm": + "Bu çeviri kaydını silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", "originalText": "Orijinal Metin", "translatedText": "Çevrilmiş Metin", "sessionSummary": "Oturum Özeti", @@ -1227,19 +1341,24 @@ const Map trTR = { // 配对状态文本 "readyToPair": "Eşleştirmeye hazır", "preparingPairingEnvironment": "Eşleştirme ortamı hazırlanıyor...", - "connectDeepSoundViaSystemBluetooth": "Lütfen önce sistem Bluetooth'u üzerinden Voitrans cihazına bağlanın", + "connectDeepSoundViaSystemBluetooth": + "Lütfen önce sistem Bluetooth'u üzerinden Voitrans cihazına bağlanın", "deviceBindingConfirm": "Cihaz bağlama onayı...", "establishingDeviceAssociation": "Cihaz ilişkisi kuruluyor...", "waitingCompletePairing": "Lütfen bekleyin, eşleştirme tamamlanıyor...", - "pairingSuccessRedirecting": "Eşleştirme başarılı! Ana sayfaya yönlendiriliyor...", + "pairingSuccessRedirecting": + "Eşleştirme başarılı! Ana sayfaya yönlendiriliyor...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Lütfen bir Voitrans cihazına bağlı olduğunuzdan emin olun", + "ensureConnectedDeepSoundDevice": + "Lütfen bir Voitrans cihazına bağlı olduğunuzdan emin olun", "deviceAlreadyBoundToOtherAccount": "Bu cihaz başka bir hesaba zaten bağlı", "deviceAssociationFailed": "Cihaz ilişkisi kurulamadı, lütfen tekrar deneyin", - "scanTimeoutEnsureDeviceNearby": "Tarama zaman aşımına uğradı, lütfen cihazın yakında olduğundan emin olun", + "scanTimeoutEnsureDeviceNearby": + "Tarama zaman aşımına uğradı, lütfen cihazın yakında olduğundan emin olun", "networkError": "Ağ Hatası", - "authorizationFailedCheckCode": "Yetkilendirme başarısız, lütfen yetkilendirme kodunun doğru olup olmadığını kontrol edin", + "authorizationFailedCheckCode": + "Yetkilendirme başarısız, lütfen yetkilendirme kodunun doğru olup olmadığını kontrol edin", "pairingFailedRetry": "Eşleştirme başarısız, lütfen tekrar deneyin", // 配对控制器相关 @@ -1248,7 +1367,8 @@ const Map trTR = { 'deviceDisconnected': 'Cihaz bağlantısı kesildi', 'readyToStartPairing': 'Eşleştirmeye başlamaya hazır', 'checkingEnvironment': 'Ortam kontrol ediliyor...', - 'ensureHeadsetOnAndPairingMode': 'Lütfen kulaklığın açık ve eşleştirme modunda olduğundan emin olun', + 'ensureHeadsetOnAndPairingMode': + 'Lütfen kulaklığın açık ve eşleştirme modunda olduğundan emin olun', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1266,35 +1386,46 @@ const Map trTR = { 'verificationFailedRetry': 'Doğrulama başarısız, lütfen tekrar deneyin', 'invalidDeviceAddress': 'Geçersiz cihaz adresi', 'bleDeviceAssociationFailed': 'BLE cihaz ilişkisi kurulamadı', - 'deviceAssociationFailedRetry': 'Cihaz ilişkisi kurulamadı, lütfen tekrar deneyin', - 'bleConnectionTimeoutRetry': 'BLE bağlantısı zaman aşımına uğradı, lütfen tekrar deneyin', + 'deviceAssociationFailedRetry': + 'Cihaz ilişkisi kurulamadı, lütfen tekrar deneyin', + 'bleConnectionTimeoutRetry': + 'BLE bağlantısı zaman aşımına uğradı, lütfen tekrar deneyin', 'blePairingStartupFailed': 'BLE eşleştirmesi başlatılamadı', 'bleConnectionFailed': 'BLE bağlantısı başarısız', - 'deviceAuthorizationFailedCheckCode': 'Cihaz yetkilendirmesi başarısız, lütfen yetkilendirme kodunu kontrol edin', + 'deviceAuthorizationFailedCheckCode': + 'Cihaz yetkilendirmesi başarısız, lütfen yetkilendirme kodunu kontrol edin', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Kullanıcı Geri Bildirimi", 'feedbackInfo': 'Geri bildirim veya öneri sağlayın', - 'feedbackDescription': 'Lütfen karşılaştığınız sorunu veya önerinizi açıklayın', + 'feedbackDescription': + 'Lütfen karşılaştığınız sorunu veya önerinizi açıklayın', 'feedbackHint': 'Lütfen geri bildiriminizi girin...', 'feedbackRequired': 'Lütfen geri bildirim içeriğini girin', 'contactInfo': 'İletişim Bilgileri', 'contactHint': 'E-posta/Telefon, sizinle iletişime geçebilmemiz için', 'submit': 'Gönder', - 'feedbackSubmitSuccess': 'Geri bildirim başarıyla gönderildi, geri bildiriminiz için teşekkür ederiz!', - 'feedbackSubmitFailed': 'Geri bildirim gönderilemedi, lütfen daha sonra tekrar deneyin', + 'feedbackSubmitSuccess': + 'Geri bildirim başarıyla gönderildi, geri bildiriminiz için teşekkür ederiz!', + 'feedbackSubmitFailed': + 'Geri bildirim gönderilemedi, lütfen daha sonra tekrar deneyin', // OTA升级模块 - "upgradeExitConfirm": "Yükseltme devam ediyor. Çıkmak işlemi kesecektir, çıkmak istediğinizden emin misiniz?", + "upgradeExitConfirm": + "Yükseltme devam ediyor. Çıkmak işlemi kesecektir, çıkmak istediğinizden emin misiniz?", "deviceModel": "Cihaz Modeli", "unknownDevice": "Bilinmeyen Cihaz", "currentFirmwareVersion": "Mevcut Donanım Yazılımı Sürümü", @@ -1307,14 +1438,19 @@ const Map trTR = { "retryConnection": "Yeniden Dene", "ota_updateNow": "Şimdi Güncelle", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Lütfen cihazı bağlı tutun ve uygulamayı kapatmayın", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Lütfen cihazı bağlı tutun ve uygulamayı kapatmayın", "doNotDisconnect": "Bağlantıyı kesmeyin", "charging": "Şarj oluyor", "updateContent": "Güncelleme İçeriği", - "removeEarbudsEnsureBattery": "Her iki kulaklığı da çıkarın ve pil seviyelerinin %20'un üzerinde olduğundan emin olun", + "removeEarbudsEnsureBattery": + "Her iki kulaklığı da çıkarın ve pil seviyelerinin %20'un üzerinde olduğundan emin olun", // 音乐列表页面 "noMusic": "Müzik Yok", // 暂无音乐 @@ -1376,8 +1512,10 @@ const Map trTR = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/uk_ua.dart b/lib/core/translations/language/uk_ua.dart index 05fa55fad..a933b00a0 100644 --- a/lib/core/translations/language/uk_ua.dart +++ b/lib/core/translations/language/uk_ua.dart @@ -33,6 +33,7 @@ const Map ukUA = { "spanish": "Іспанська", "portuguese": "Португальська", "traditionalChinese": "Традиційна китайська", + "traditionalChineseHK": "Традиційна китайська (Гонконг)", "japanese": "Японська", "korean": "Корейська", "french": "Французька", @@ -71,7 +72,8 @@ const Map ukUA = { // 登录页 "welcome": "Ласкаво просимо", - "loginTips": "Увійдіть або зареєструйтеся за допомогою номера телефону або електронної пошти", + "loginTips": + "Увійдіть або зареєструйтеся за допомогою номера телефону або електронної пошти", "accountNumber": "Номер телефону або Email", "verificationCode": "Код підтвердження", "getCode": "Отримати код", @@ -90,7 +92,8 @@ const Map ukUA = { "tip": "Підказка", "pleaseEnterCompleteCode": "Будь ласка, введіть повний код підтвердження", "loginFailed": "Помилка входу, спробуйте ще раз", - 'pleaseAcceptPrivacyPolicy': 'Будь ласка, спочатку прочитайте та погодьтеся з Політикою конфіденційності та Угодою користувача', + 'pleaseAcceptPrivacyPolicy': + 'Будь ласка, спочатку прочитайте та погодьтеся з Політикою конфіденційності та Угодою користувача', "enterVerificationCode": "Введіть код підтвердження", "verificationCodeSentTo": "Код підтвердження надіслано на", "resendVerificationCode": "Надіслати код ще раз", @@ -99,7 +102,8 @@ const Map ukUA = { // 隐私政策弹窗 "loginDeclaration": "Декларація Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Ласкаво просимо до Voitrans, будь ласка, уважно прочитайте", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Ласкаво просимо до Voitrans, будь ласка, уважно прочитайте", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -115,24 +119,29 @@ const Map ukUA = { "signal": "Сигнал", "deviceId": "ID пристрою", "firmwareVersion": "Версія прошивки", - "disconnectedDevice": "Пристрій не підключено, натисніть кнопку нижче, щоб підключити", + "disconnectedDevice": + "Пристрій не підключено, натисніть кнопку нижче, щоб підключити", "connectDevice": "Підключити пристрій", "topAiExperiences": "Найкращі враження від AI", "aiAssistant": "Всемогутній помічник AI", - "aiAssistantInfo": "Ексклюзивний консультант 24/7, відповідає на запитання, надає поради", + "aiAssistantInfo": + "Ексклюзивний консультант 24/7, відповідає на запитання, надає поради", "interpretation": "Синхронний переклад", - "simultaneousInterpretationInfo": "Переклад у реальному часі на 80+ мов, безтурботні подорожі за кордон", + "simultaneousInterpretationInfo": + "Переклад у реальному часі на 80+ мов, безтурботні подорожі за кордон", "aiCompanion": "Сімейний компаньйон", "aiCompanionInfo": "Розуміє вас, тепла компанія", "homeSlogan": "З'єднуючи світ, перевершуючи звук", - "turnEarphones": "Будь ласка, відкрийте зарядний кейс для навушників і вставте навушники у вуха", + "turnEarphones": + "Будь ласка, відкрийте зарядний кейс для навушників і вставте навушники у вуха", "currentlyConnected": "Наразі підключено:", "unsystemSetup": "Перейти до налаштувань системи", "talkLater": "Пізніше", "initializing": "Ініціалізація...", "bluetoothInitializationFailure": "Помилка ініціалізації служби Bluetooth", "checkingPermissions": "Перевірка дозволів...", - "lackPermissions": "Відсутні дозволи Bluetooth і необхідно дозволити доступ до місцезнаходження", + "lackPermissions": + "Відсутні дозволи Bluetooth і необхідно дозволити доступ до місцезнаходження", "searchingDevice": "Пошук пристроїв...", "findConnectedDevice": "Знайдено підключений пристрій", "notFound": "Не знайдено підключеного пристрою Bluetooth", @@ -175,7 +184,8 @@ const Map ukUA = { "healthConsultant": "Багатофункціональний чат AI", "healthConsultantInfo": "Надає більше функцій чату AI", "conferenceAssistant": "Помічник для ділових зустрічей", - "conferenceAssistantInfo": "Запис протоколів у реальному часі, багатомовний переклад", + "conferenceAssistantInfo": + "Запис протоколів у реальному часі, багатомовний переклад", "usageStats": "Статистика використання", "usageStatsInfo": "Перегляньте статистику використання вашого пристрою", "scene": "Сценарій", @@ -218,7 +228,8 @@ const Map ukUA = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +285,10 @@ const Map ukUA = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +297,35 @@ const Map ukUA = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +334,10 @@ const Map ukUA = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +352,8 @@ const Map ukUA = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Пропустити", @@ -355,7 +379,8 @@ const Map ukUA = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +430,8 @@ const Map ukUA = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +486,54 @@ const Map ukUA = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +545,8 @@ const Map ukUA = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +566,8 @@ const Map ukUA = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +616,8 @@ const Map ukUA = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +642,8 @@ const Map ukUA = { "cloudSync": "Увімкнути синхронізацію в хмарі", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Підключений пристрій:", "accountId": "ID облікового запису:", "systemSetting": "Системні налаштування", @@ -612,7 +656,8 @@ const Map ukUA = { "privacySettings": "Налаштування конфіденційності", "privacySettingsInfo": "Керування збором даних та дозволами", "permissionManagement": "Керування дозволами", // 权限管理 - "permissionManagementInfo": "Керування налаштуваннями дозволів програми", // 管理应用权限设置 + "permissionManagementInfo": + "Керування налаштуваннями дозволів програми", // 管理应用权限设置 "aboutApplication": "Про програму", "versions": "Версія", "checkUpdates": "Перевірити оновлення", @@ -621,9 +666,11 @@ const Map ukUA = { "voiceServiceInfo": "Вибір служби розпізнавання та синтезу мовлення", "selectVoiceService": "Вибрати голосову службу", "azureVoiceService": "Голосова служба Azure", - "azureVoiceServiceInfo": "Хмарна голосова служба Microsoft, що підтримує високоякісний синтез та розпізнавання мовлення", + "azureVoiceServiceInfo": + "Хмарна голосова служба Microsoft, що підтримує високоякісний синтез та розпізнавання мовлення", "flutterVoiceService": "Локальна голосова служба Flutter", - "flutterVoiceServiceInfo": "Локальна голосова служба пристрою, яку можна використовувати без підключення до Інтернету", + "flutterVoiceServiceInfo": + "Локальна голосова служба пристрою, яку можна використовувати без підключення до Інтернету", 'timbreService': 'Служба тембрів', 'timbreServiceInfo': 'Вибір служби синтезу мовлення з різними тембрами', 'defaultTimbre': 'Стандартний тембр', @@ -652,7 +699,8 @@ const Map ukUA = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Голосовий чат у реальному часі", - "realtimeVoiceChatInfo": "Спробуйте функцію інтелектуальної голосової взаємодії (попередній перегляд)", + "realtimeVoiceChatInfo": + "Спробуйте функцію інтелектуальної голосової взаємодії (попередній перегляд)", "loading": "Завантаження...", //设备管理页面 @@ -667,7 +715,8 @@ const Map ukUA = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -721,10 +770,14 @@ const Map ukUA = { '• Керувати функціями навушників\n\n' 'Чим я можу вам допомогти?', 'microphonePermission': 'Мікрофон', - 'voiceRecognitionPermissionText': 'Для розпізнавання мовлення потрібен доступ до мікрофона.', - 'voiceTranslationPermissionText': 'Для розпізнавання та перекладу мовлення потрібен доступ до мікрофона.', - 'phoneCallPermissionText': 'Для здійснення дзвінків потрібен доступ до мікрофона для голосових викликів.', - 'permissionDeniedText': 'Ви назавжди відмовили в доступі до мікрофона, будь ласка, увімкніть дозвіл у налаштуваннях системи.', + 'voiceRecognitionPermissionText': + 'Для розпізнавання мовлення потрібен доступ до мікрофона.', + 'voiceTranslationPermissionText': + 'Для розпізнавання та перекладу мовлення потрібен доступ до мікрофона.', + 'phoneCallPermissionText': + 'Для здійснення дзвінків потрібен доступ до мікрофона для голосових викликів.', + 'permissionDeniedText': + 'Ви назавжди відмовили в доступі до мікрофона, будь ласка, увімкніть дозвіл у налаштуваннях системи.', 'startVoiceInput': 'Почати голосове введення', 'startPhoneCallMode': 'Почати режим дзвінка, почати голосове введення', @@ -747,7 +800,8 @@ const Map ukUA = { 'privacyRelated': "Пов'язано з конфіденційністю", 'copyrightViolation': "Порушення моїх авторських прав, репутації тощо", 'other': 'Інше', - 'reportDescriptionHint': 'Ми хочемо знати причину вашої скарги, ви можете описати проблему, з якою зіткнулися.', + 'reportDescriptionHint': + 'Ми хочемо знати причину вашої скарги, ви можете описати проблему, з якою зіткнулися.', //'submit': '提交', //Message_bubble @@ -778,15 +832,24 @@ const Map ukUA = { 'highest': 'Макс.', 'lowest': 'Мін.', 'futureForecast': 'Прогноз на майбутнє', - 'hotWeatherTip': 'Сьогодні спекотно, будь ласка, уникайте перегріву та пийте більше води, щоб уникнути сонячного удару', - 'coldWeatherTip': 'Сьогодні температура низька, будь ласка, тепло одягайтеся, виходячи на вулицю, щоб не застудитися', - 'rainyWeatherTip': 'Сьогодні дощ, будь ласка, візьміть з собою парасольку та будьте обережні під час поїздок', - 'snowyWeatherTip': 'Сьогодні сніг, дороги слизькі, будьте обережні та тепло одягайтеся', - 'foggyWeatherTip': 'Сьогодні туман, видимість обмежена, будь ласка, надягайте маску, виходячи на вулицю', - 'windyWeatherTip': 'Сьогодні сильний вітер, будь ласка, будьте обережні та закріпіть свої речі, виходячи на вулицю', - 'sunnyWeatherTip': 'Сьогодні сонячно та сильне ультрафіолетове випромінювання, будь ласка, використовуйте сонцезахисний крем, виходячи на вулицю', - 'temperatureDifferenceTip': 'Сьогодні велика різниця температур між днем і ніччю, будь ласка, одягайтеся відповідно', - 'comfortableWeatherTip': 'Сьогодні приємна погода, чудовий час для активного відпочинку на свіжому повітрі', + 'hotWeatherTip': + 'Сьогодні спекотно, будь ласка, уникайте перегріву та пийте більше води, щоб уникнути сонячного удару', + 'coldWeatherTip': + 'Сьогодні температура низька, будь ласка, тепло одягайтеся, виходячи на вулицю, щоб не застудитися', + 'rainyWeatherTip': + 'Сьогодні дощ, будь ласка, візьміть з собою парасольку та будьте обережні під час поїздок', + 'snowyWeatherTip': + 'Сьогодні сніг, дороги слизькі, будьте обережні та тепло одягайтеся', + 'foggyWeatherTip': + 'Сьогодні туман, видимість обмежена, будь ласка, надягайте маску, виходячи на вулицю', + 'windyWeatherTip': + 'Сьогодні сильний вітер, будь ласка, будьте обережні та закріпіть свої речі, виходячи на вулицю', + 'sunnyWeatherTip': + 'Сьогодні сонячно та сильне ультрафіолетове випромінювання, будь ласка, використовуйте сонцезахисний крем, виходячи на вулицю', + 'temperatureDifferenceTip': + 'Сьогодні велика різниця температур між днем і ніччю, будь ласка, одягайтеся відповідно', + 'comfortableWeatherTip': + 'Сьогодні приємна погода, чудовий час для активного відпочинку на свіжому повітрі', "monday": "Пн", "tuesday": "Вт", "wednesday": "Ср", @@ -838,22 +901,29 @@ const Map ukUA = { "logout": "Вийти", "logoutTips": "Ви впевнені, що хочете вийти з поточного облікового запису?", 'deleteAccount': 'Видалити обліковий запис', - 'deleteAccountTips': 'Ви впевнені, що хочете назавжди видалити свій обліковий запис? Цю дію неможливо скасувати', + 'deleteAccountTips': + 'Ви впевнені, що хочете назавжди видалити свій обліковий запис? Цю дію неможливо скасувати', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': 'Помилка мережевого підключення, перевірте налаштування мережі та спробуйте ще раз', - 'serverTemporarilyUnavailable': 'Сервер тимчасово недоступний, спробуйте ще раз пізніше', - 'loginExpiredPleaseRelogin': 'Термін дії сесії закінчився, будь ласка, увійдіть знову', + 'networkConnectionFailed': + 'Помилка мережевого підключення, перевірте налаштування мережі та спробуйте ще раз', + 'serverTemporarilyUnavailable': + 'Сервер тимчасово недоступний, спробуйте ще раз пізніше', + 'loginExpiredPleaseRelogin': + 'Термін дії сесії закінчився, будь ласка, увійдіть знову', 'noPermissionForThisOperation': 'Немає дозволу на виконання цієї операції', 'requestedResourceNotFound': 'Запитаний ресурс не знайдено', - 'imageProcessingFailedPleaseReselect': 'Не вдалося обробити зображення, будь ласка, виберіть інше зображення', + 'imageProcessingFailedPleaseReselect': + 'Не вдалося обробити зображення, будь ласка, виберіть інше зображення', 'operationFailedPleaseRetry': 'Операція не вдалася, спробуйте ще раз', 'serverReturnedError': 'Сервер повернув помилку', 'serverError': 'Помилка сервера', - 'networkConnectionFailedCheckSettings': 'Помилка мережевого підключення, перевірте налаштування мережі', - 'serverInternalErrorRetryLater': 'Внутрішня помилка сервера, спробуйте ще раз пізніше', + 'networkConnectionFailedCheckSettings': + 'Помилка мережевого підключення, перевірте налаштування мережі', + 'serverInternalErrorRetryLater': + 'Внутрішня помилка сервера, спробуйте ще раз пізніше', // Profile 用户交互 //'error': '错误', @@ -867,18 +937,24 @@ const Map ukUA = { 'loggedOut': 'Ви вийшли з системи', 'logoutFailedRetry': 'Не вдалося вийти, спробуйте ще раз', 'accountPermanentlyDeleted': 'Обліковий запис було назавжди видалено', - 'deleteAccountFailedRetry': 'Не вдалося видалити обліковий запис, спробуйте ще раз', + 'deleteAccountFailedRetry': + 'Не вдалося видалити обліковий запис, спробуйте ще раз', // 账号服务相关 'clearUserDataFailed': 'Не вдалося очистити дані користувача', // 清理用户数据失败 'deleteUserDataFailed': 'Не вдалося видалити дані користувача', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': 'Вихід зі стороннього сервісу успішний', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': 'Не вдалося вийти зі стороннього сервісу', // 第三方登录退出失败 + 'thirdPartyLogoutSuccess': + 'Вихід зі стороннього сервісу успішний', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': + 'Не вдалося вийти зі стороннього сервісу', // 第三方登录退出失败 'signOutProcessError': 'Сталася помилка під час виходу з системи', // 登出过程发生错误 - 'deleteAccountProcessError': 'Сталася помилка під час видалення облікового запису', // 删除账号过程发生错误 + 'deleteAccountProcessError': + 'Сталася помилка під час видалення облікового запису', // 删除账号过程发生错误 'userDataClearSuccess': 'Дані користувача успішно очищено', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Усі дані користувача успішно очищено', // 所有用户数据清理成功 - 'accountServiceInitialized': 'Службу облікових записів ініціалізовано', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Усі дані користувача успішно очищено', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'Службу облікових записів ініціалізовано', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Не вдалося отримати статус дозволів', @@ -901,10 +977,14 @@ const Map ukUA = { 'locationInfo': 'Інформація про місцезнаходження', 'phonePermissionDesc': 'Використовується для здійснення дзвінків', 'smsPermissionDesc': 'Використовується для надсилання SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': 'Використовується для створення подій та нагадувань у календарі', - 'calendarFullAccessPermissionDesc': 'Використовується для читання та керування подіями та нагадуваннями у календарі', - 'locationPermissionDesc': 'Використовується для отримання інформації про поточне місцезнаходження', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': + 'Використовується для створення подій та нагадувань у календарі', + 'calendarFullAccessPermissionDesc': + 'Використовується для читання та керування подіями та нагадуваннями у календарі', + 'locationPermissionDesc': + 'Використовується для отримання інформації про поточне місцезнаходження', 'appFunctionNeeds': 'Функції програми потребують', 'authorized': 'Дозволено', 'unauthorized': 'Не дозволено', @@ -913,45 +993,71 @@ const Map ukUA = { 'unknownStatus': 'Невідомий статус', 'permissionGranted': 'Дозвіл надано', 'permissionRequestError': 'Помилка під час запиту дозволу', - 'phonePermissionDetailDesc': 'Для функції дзвінків потрібен дозвіл на доступ до телефону', - 'smsPermissionDetailDesc': 'Для функції надсилання SMS потрібен дозвіл на доступ до SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Для створення подій у календарі потрібен дозвіл на запис до календаря', - 'calendarFullAccessPermissionDetailDesc': 'Для керування подіями у календарі потрібен повний доступ до календаря', - 'locationPermissionDetailDesc': 'Для отримання інформації про місцезнаходження потрібен дозвіл на доступ до місцезнаходження', + 'phonePermissionDetailDesc': + 'Для функції дзвінків потрібен дозвіл на доступ до телефону', + 'smsPermissionDetailDesc': + 'Для функції надсилання SMS потрібен дозвіл на доступ до SMS', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Для створення подій у календарі потрібен дозвіл на запис до календаря', + 'calendarFullAccessPermissionDetailDesc': + 'Для керування подіями у календарі потрібен повний доступ до календаря', + 'locationPermissionDetailDesc': + 'Для отримання інформації про місцезнаходження потрібен дозвіл на доступ до місцезнаходження', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Програмі потрібен цей дозвіл для надання повної функціональності', - 'permanentDenialText': 'Ви назавжди відмовили в доступі до {permission}, будь ласка, перейдіть до налаштувань програми, щоб увімкнути його', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Програмі потрібен цей дозвіл для надання повної функціональності', + 'permanentDenialText': + 'Ви назавжди відмовили в доступі до {permission}, будь ласка, перейдіть до налаштувань програми, щоб увімкнути його', 'goToSettings': 'Перейти до налаштувань', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1067,8 @@ const Map ukUA = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1077,10 @@ const Map ukUA = { 'updateNow': 'Оновити зараз', // 立即更新按钮 'checkUpdate': 'Перевірити оновлення', // 检查更新按钮 'updateFailed': 'Не вдалося оновити', // 更新失败提示 - 'cannotOpenAppStore': 'Не вдається відкрити App Store, будь ласка, перейдіть до App Store вручну, щоб оновити', // 无法打开应用商店提示 - 'updateErrorRetry': 'Сталася помилка під час оновлення, спробуйте ще раз пізніше', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Не вдається відкрити App Store, будь ласка, перейдіть до App Store вручну, щоб оновити', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Сталася помилка під час оновлення, спробуйте ще раз пізніше', // 更新错误重试提示 //国家列表 "邮箱": "Email", @@ -1107,7 +1216,8 @@ const Map ukUA = { "selectTargetLanguage": "Вибрати цільову мову", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1233,12 @@ const Map ukUA = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Очистити історію", - "clearHistoryConfirm": "Ви впевнені, що хочете очистити всю історію перекладів? Цю дію неможливо скасувати.", + "clearHistoryConfirm": + "Ви впевнені, що хочете очистити всю історію перекладів? Цю дію неможливо скасувати.", "unknownLanguage": "Невідома мова", "deleteSessionRecord": "Видалити запис сесії", - "deleteSessionConfirm": "Ви впевнені, що хочете видалити всі записи перекладів цієї сесії? Цю дію неможливо скасувати.", + "deleteSessionConfirm": + "Ви впевнені, що хочете видалити всі записи перекладів цієї сесії? Цю дію неможливо скасувати.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1270,20 @@ const Map ukUA = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1189,7 +1306,8 @@ const Map ukUA = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Оригінальний запис", "recordSummary": "Підсумок запису", - "clickToGenerateSummary": "Натисніть кнопку нижче, щоб згенерувати підсумок сесії", + "clickToGenerateSummary": + "Натисніть кнопку нижче, щоб згенерувати підсумок сесії", "summaryContent": "Зміст підсумку", "copied": "Скопійовано", "summaryCopiledToClipboard": "Підсумок скопійовано до буфера обміну", @@ -1197,9 +1315,11 @@ const Map ukUA = { "summaryGenerated": "Підсумок згенеровано", "generating": "Генерація...", "regenerate": "Згенерувати знову", - "summaryTimeoutMessage": "Час очікування запиту на генерацію підсумку минув, можливо, через проблеми з мережею або завантаженість сервера.", + "summaryTimeoutMessage": + "Час очікування запиту на генерацію підсумку минув, можливо, через проблеми з мережею або завантаженість сервера.", "deleteTranslationRecord": "Видалити запис перекладу", - "deleteTranslationConfirm": "Ви впевнені, що хочете видалити цей запис перекладу? Цю дію неможливо скасувати.", + "deleteTranslationConfirm": + "Ви впевнені, що хочете видалити цей запис перекладу? Цю дію неможливо скасувати.", "originalText": "Оригінальний текст", "translatedText": "Перекладений текст", "sessionSummary": "Підсумок сесії", @@ -1227,19 +1347,25 @@ const Map ukUA = { // 配对状态文本 "readyToPair": "Готово до спарювання", "preparingPairingEnvironment": "Підготовка середовища для спарювання...", - "connectDeepSoundViaSystemBluetooth": "Будь ласка, спочатку підключіться до пристрою Voitrans через системний Bluetooth", + "connectDeepSoundViaSystemBluetooth": + "Будь ласка, спочатку підключіться до пристрою Voitrans через системний Bluetooth", "deviceBindingConfirm": "Підтвердження прив'язки пристрою...", "establishingDeviceAssociation": "Встановлення асоціації пристрою...", "waitingCompletePairing": "Будь ласка, зачекайте, завершується спарювання...", - "pairingSuccessRedirecting": "Спарювання успішне! Перенаправлення на головну сторінку...", + "pairingSuccessRedirecting": + "Спарювання успішне! Перенаправлення на головну сторінку...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Переконайтеся, що ви підключені до пристрою Voitrans", - "deviceAlreadyBoundToOtherAccount": "Цей пристрій вже прив'язаний до іншого облікового запису", + "ensureConnectedDeepSoundDevice": + "Переконайтеся, що ви підключені до пристрою Voitrans", + "deviceAlreadyBoundToOtherAccount": + "Цей пристрій вже прив'язаний до іншого облікового запису", "deviceAssociationFailed": "Не вдалося асоціювати пристрій, спробуйте ще раз", - "scanTimeoutEnsureDeviceNearby": "Час сканування минув, переконайтеся, що пристрій знаходиться поруч", + "scanTimeoutEnsureDeviceNearby": + "Час сканування минув, переконайтеся, що пристрій знаходиться поруч", "networkError": "Помилка мережі", - "authorizationFailedCheckCode": "Помилка авторизації, перевірте правильність коду авторизації", + "authorizationFailedCheckCode": + "Помилка авторизації, перевірте правильність коду авторизації", "pairingFailedRetry": "Не вдалося спарити, спробуйте ще раз", // 配对控制器相关 @@ -1248,13 +1374,15 @@ const Map ukUA = { 'deviceDisconnected': 'Пристрій відключено', 'readyToStartPairing': 'Готово до початку спарювання', 'checkingEnvironment': 'Перевірка середовища...', - 'ensureHeadsetOnAndPairingMode': 'Переконайтеся, що навушники увімкнені та знаходяться в режимі спарювання', + 'ensureHeadsetOnAndPairingMode': + 'Переконайтеся, що навушники увімкнені та знаходяться в режимі спарювання', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Встановлення безпечного з\'єднання...', - 'needManualBindingAuthCode': 'Потрібен код авторизації для ручної прив\'язки...', + 'needManualBindingAuthCode': + 'Потрібен код авторизації для ручної прив\'язки...', 'pairingSuccessful': 'Спарювання успішне!', 'enableBluetooth': 'Увімкнути Bluetooth', 'grantPermissions': 'Надати дозволи', @@ -1266,35 +1394,45 @@ const Map ukUA = { 'verificationFailedRetry': 'Перевірка не вдалася, спробуйте ще раз', 'invalidDeviceAddress': 'Недійсна адреса пристрою', 'bleDeviceAssociationFailed': 'Не вдалося асоціювати пристрій BLE', - 'deviceAssociationFailedRetry': 'Не вдалося асоціювати пристрій, спробуйте ще раз', - 'bleConnectionTimeoutRetry': 'Час очікування підключення BLE минув, спробуйте ще раз', + 'deviceAssociationFailedRetry': + 'Не вдалося асоціювати пристрій, спробуйте ще раз', + 'bleConnectionTimeoutRetry': + 'Час очікування підключення BLE минув, спробуйте ще раз', 'blePairingStartupFailed': 'Не вдалося розпочати спарювання BLE', 'bleConnectionFailed': 'Не вдалося підключитися через BLE', - 'deviceAuthorizationFailedCheckCode': 'Помилка авторизації пристрою, перевірте код авторизації', + 'deviceAuthorizationFailedCheckCode': + 'Помилка авторизації пристрою, перевірте код авторизації', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Відгук користувача", 'feedbackInfo': 'Надати відгук або пропозицію', - 'feedbackDescription': 'Будь ласка, опишіть проблему, з якою ви зіткнулися, або вашу пропозицію', + 'feedbackDescription': + 'Будь ласка, опишіть проблему, з якою ви зіткнулися, або вашу пропозицію', 'feedbackHint': 'Будь ласка, введіть ваш відгук...', 'feedbackRequired': 'Будь ласка, введіть зміст відгуку', 'contactInfo': 'Контактна інформація', 'contactHint': 'Email/Телефон, щоб ми могли з вами зв\'язатися', 'submit': 'Надіслати', 'feedbackSubmitSuccess': 'Відгук успішно надіслано, дякуємо за ваш відгук!', - 'feedbackSubmitFailed': 'Не вдалося надіслати відгук, спробуйте ще раз пізніше', + 'feedbackSubmitFailed': + 'Не вдалося надіслати відгук, спробуйте ще раз пізніше', // OTA升级模块 - "upgradeExitConfirm": "Наразі триває оновлення, вихід перерве процес оновлення, ви впевнені, що хочете вийти?", + "upgradeExitConfirm": + "Наразі триває оновлення, вихід перерве процес оновлення, ви впевнені, що хочете вийти?", "deviceModel": "Модель пристрою", "unknownDevice": "Невідомий пристрій", "currentFirmwareVersion": "Поточна версія прошивки", @@ -1307,14 +1445,19 @@ const Map ukUA = { "retryConnection": "Повторити підключення", "ota_updateNow": "Оновити зараз", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Будь ласка, тримайте пристрій підключеним, не закривайте програму", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Будь ласка, тримайте пристрій підключеним, не закривайте програму", "doNotDisconnect": "Будь ласка, не відключайте", "charging": "Зарядка", "updateContent": "Зміст оновлення", - "removeEarbudsEnsureBattery": "Вийміть обидва навушники та переконайтеся, що заряд батареї в обох перевищує 20%", + "removeEarbudsEnsureBattery": + "Вийміть обидва навушники та переконайтеся, що заряд батареї в обох перевищує 20%", // 音乐列表页面 "noMusic": "Немає музики", // 暂无音乐 @@ -1376,8 +1519,10 @@ const Map ukUA = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/vi_vn.dart b/lib/core/translations/language/vi_vn.dart index 80bf7a966..4ecda89d1 100644 --- a/lib/core/translations/language/vi_vn.dart +++ b/lib/core/translations/language/vi_vn.dart @@ -33,6 +33,7 @@ const Map viVN = { "spanish": "Tiếng Tây Ban Nha", "portuguese": "Tiếng Bồ Đào Nha", "traditionalChinese": "Tiếng Trung (Phồn thể)", + "traditionalChineseHK": "Tiếng Trung phồn thể (Hồng Kông)", "japanese": "Tiếng Nhật", "korean": "Tiếng Hàn", "french": "Tiếng Pháp", @@ -90,7 +91,8 @@ const Map viVN = { "tip": "Gợi ý", "pleaseEnterCompleteCode": "Vui lòng nhập đầy đủ mã xác minh", "loginFailed": "Đăng nhập thất bại, vui lòng thử lại", - 'pleaseAcceptPrivacyPolicy': 'Vui lòng đọc và đồng ý với Chính sách bảo mật và Thỏa thuận người dùng trước', + 'pleaseAcceptPrivacyPolicy': + 'Vui lòng đọc và đồng ý với Chính sách bảo mật và Thỏa thuận người dùng trước', "enterVerificationCode": "Nhập mã xác minh", "verificationCodeSentTo": "Mã xác minh đã được gửi đến", "resendVerificationCode": "Gửi lại mã xác minh", @@ -99,7 +101,8 @@ const Map viVN = { // 隐私政策弹窗 "loginDeclaration": "Tuyên bố của Voitrans", // Voitrans 声明 - "welcomeToThisApp": "Chào mừng bạn đến với Voitrans, vui lòng đọc kỹ", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": + "Chào mừng bạn đến với Voitrans, vui lòng đọc kỹ", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": @@ -119,9 +122,11 @@ const Map viVN = { "connectDevice": "Kết nối thiết bị", "topAiExperiences": "Trải nghiệm AI hàng đầu", "aiAssistant": "Trợ lý toàn năng AI", - "aiAssistantInfo": "Tư vấn viên độc quyền 24/7, trả lời câu hỏi, cung cấp đề xuất", + "aiAssistantInfo": + "Tư vấn viên độc quyền 24/7, trả lời câu hỏi, cung cấp đề xuất", "interpretation": "Phiên dịch đồng thời", - "simultaneousInterpretationInfo": "Dịch thời gian thực hơn 80 ngôn ngữ, du lịch nước ngoài không lo", + "simultaneousInterpretationInfo": + "Dịch thời gian thực hơn 80 ngôn ngữ, du lịch nước ngoài không lo", "aiCompanion": "Bạn đồng hành gia đình", "aiCompanionInfo": "Thấu hiểu bạn, đồng hành ấm áp", "homeSlogan": "Kết nối thế giới, vượt trên cả âm thanh", @@ -132,7 +137,8 @@ const Map viVN = { "initializing": "Đang khởi tạo...", "bluetoothInitializationFailure": "Khởi tạo dịch vụ Bluetooth thất bại", "checkingPermissions": "Đang kiểm tra quyền...", - "lackPermissions": "Thiếu quyền Bluetooth và cần phải cấp quyền truy cập vị trí", + "lackPermissions": + "Thiếu quyền Bluetooth và cần phải cấp quyền truy cập vị trí", "searchingDevice": "Đang tìm kiếm thiết bị...", "findConnectedDevice": "Đã tìm thấy thiết bị đã kết nối", "notFound": "Không tìm thấy thiết bị Bluetooth đã kết nối", @@ -175,7 +181,8 @@ const Map viVN = { "healthConsultant": "Trò chuyện AI đa chức năng", "healthConsultantInfo": "Cung cấp thêm chức năng trò chuyện AI", "conferenceAssistant": "Trợ lý hội nghị kinh doanh", - "conferenceAssistantInfo": "Ghi lại biên bản họp thời gian thực, dịch đa ngôn ngữ", + "conferenceAssistantInfo": + "Ghi lại biên bản họp thời gian thực, dịch đa ngôn ngữ", "usageStats": "Thống kê sử dụng", "usageStatsInfo": "Xem thống kê sử dụng của bạn", "scene": "Tình huống", @@ -218,7 +225,8 @@ const Map viVN = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": + "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -274,8 +282,10 @@ const Map viVN = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': + 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': + 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -284,27 +294,35 @@ const Map viVN = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': + 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': + 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': + 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': + 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': + 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': + 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': + 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': + 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -313,8 +331,10 @@ const Map viVN = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', - 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': + 'Template messages and schedule reminders', + 'aiDisclaimer': + 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -329,7 +349,8 @@ const Map viVN = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': + 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding 'skip': "Bỏ qua", @@ -355,7 +376,8 @@ const Map viVN = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -405,7 +427,8 @@ const Map viVN = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': + 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -460,40 +483,54 @@ const Map viVN = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': + 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': + 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': + 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': + 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': + 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': + 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': + 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': + 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': + 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': + 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': + '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': + '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': + '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': + 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -505,7 +542,8 @@ const Map viVN = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': + 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -525,7 +563,8 @@ const Map viVN = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': + 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', @@ -574,7 +613,8 @@ const Map viVN = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': + 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', @@ -599,7 +639,8 @@ const Map viVN = { "cloudSync": "Chuyển đổi đồng bộ hóa đám mây", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": + "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Thiết bị đã kết nối:", "accountId": "ID tài khoản:", "systemSetting": "Cài đặt hệ thống", @@ -621,9 +662,11 @@ const Map viVN = { "voiceServiceInfo": "Chọn dịch vụ nhận dạng và tổng hợp giọng nói", "selectVoiceService": "Chọn dịch vụ giọng nói", "azureVoiceService": "Dịch vụ giọng nói Azure", - "azureVoiceServiceInfo": "Dịch vụ giọng nói đám mây của Microsoft, hỗ trợ tổng hợp và nhận dạng giọng nói chất lượng cao", + "azureVoiceServiceInfo": + "Dịch vụ giọng nói đám mây của Microsoft, hỗ trợ tổng hợp và nhận dạng giọng nói chất lượng cao", "flutterVoiceService": "Dịch vụ giọng nói cục bộ Flutter", - "flutterVoiceServiceInfo": "Dịch vụ giọng nói cục bộ trên thiết bị, có thể sử dụng mà không cần kết nối mạng", + "flutterVoiceServiceInfo": + "Dịch vụ giọng nói cục bộ trên thiết bị, có thể sử dụng mà không cần kết nối mạng", 'timbreService': 'Dịch vụ âm sắc', 'timbreServiceInfo': 'Chọn dịch vụ tổng hợp giọng nói âm sắc', 'defaultTimbre': 'Âm sắc mặc định', @@ -652,7 +695,8 @@ const Map viVN = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Trò chuyện giọng nói thời gian thực", - "realtimeVoiceChatInfo": "Trải nghiệm chức năng tương tác giọng nói thông minh (xem trước chức năng)", + "realtimeVoiceChatInfo": + "Trải nghiệm chức năng tương tác giọng nói thông minh (xem trước chức năng)", "loading": "Đang tải...", //设备管理页面 @@ -667,7 +711,8 @@ const Map viVN = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": + "Are you sure you want to unbind device \"{deviceName}\"?", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -721,12 +766,17 @@ const Map viVN = { '• Điều khiển chức năng tai nghe\n\n' 'Tôi có thể giúp gì cho bạn?', 'microphonePermission': 'Microphone', - 'voiceRecognitionPermissionText': 'Chức năng nhận dạng giọng nói cần truy cập microphone.', - 'voiceTranslationPermissionText': 'Chức năng nhận dạng và dịch giọng nói cần truy cập microphone.', - 'phoneCallPermissionText': 'Chức năng gọi điện cần truy cập microphone để thực hiện cuộc gọi thoại.', - 'permissionDeniedText': 'Bạn đã từ chối vĩnh viễn quyền truy cập microphone, vui lòng vào cài đặt hệ thống để cấp quyền.', + 'voiceRecognitionPermissionText': + 'Chức năng nhận dạng giọng nói cần truy cập microphone.', + 'voiceTranslationPermissionText': + 'Chức năng nhận dạng và dịch giọng nói cần truy cập microphone.', + 'phoneCallPermissionText': + 'Chức năng gọi điện cần truy cập microphone để thực hiện cuộc gọi thoại.', + 'permissionDeniedText': + 'Bạn đã từ chối vĩnh viễn quyền truy cập microphone, vui lòng vào cài đặt hệ thống để cấp quyền.', 'startVoiceInput': 'Bắt đầu nhập liệu bằng giọng nói', - 'startPhoneCallMode': 'Bắt đầu chế độ gọi điện, bắt đầu nhập liệu bằng giọng nói', + 'startPhoneCallMode': + 'Bắt đầu chế độ gọi điện, bắt đầu nhập liệu bằng giọng nói', // Agent 全屏编辑器 'fullScreenEditorHint': 'Nhập tin nhắn của bạn ở đây...', // 全屏编辑器输入提示 @@ -747,7 +797,8 @@ const Map viVN = { 'privacyRelated': 'Liên quan đến quyền riêng tư', 'copyrightViolation': 'Vi phạm bản quyền, danh dự của tôi, v.v.', 'other': 'Khác', - 'reportDescriptionHint': 'Chúng tôi muốn biết lý do bạn báo cáo, bạn có thể mô tả vấn đề bạn gặp phải.', + 'reportDescriptionHint': + 'Chúng tôi muốn biết lý do bạn báo cáo, bạn có thể mô tả vấn đề bạn gặp phải.', //'submit': '提交', //Message_bubble @@ -778,15 +829,23 @@ const Map viVN = { 'highest': 'Cao nhất', 'lowest': 'Thấp nhất', 'futureForecast': 'Dự báo tương lai', - 'hotWeatherTip': 'Hôm nay trời nóng, chú ý chống nóng, uống nhiều nước để tránh say nắng', - 'coldWeatherTip': 'Hôm nay nhiệt độ thấp, ra ngoài chú ý giữ ấm, cẩn thận cảm lạnh', - 'rainyWeatherTip': 'Hôm nay có mưa, ra ngoài nhớ mang theo ô, chú ý an toàn khi đi lại', - 'snowyWeatherTip': 'Hôm nay có tuyết, đường trơn trượt chú ý an toàn, giữ ấm cơ thể', - 'foggyWeatherTip': 'Hôm nay có sương mù, tầm nhìn thấp, ra ngoài nhớ đeo khẩu trang', - 'windyWeatherTip': 'Hôm nay gió lớn, ra ngoài chú ý an toàn, buộc chặt đồ đạc', + 'hotWeatherTip': + 'Hôm nay trời nóng, chú ý chống nóng, uống nhiều nước để tránh say nắng', + 'coldWeatherTip': + 'Hôm nay nhiệt độ thấp, ra ngoài chú ý giữ ấm, cẩn thận cảm lạnh', + 'rainyWeatherTip': + 'Hôm nay có mưa, ra ngoài nhớ mang theo ô, chú ý an toàn khi đi lại', + 'snowyWeatherTip': + 'Hôm nay có tuyết, đường trơn trượt chú ý an toàn, giữ ấm cơ thể', + 'foggyWeatherTip': + 'Hôm nay có sương mù, tầm nhìn thấp, ra ngoài nhớ đeo khẩu trang', + 'windyWeatherTip': + 'Hôm nay gió lớn, ra ngoài chú ý an toàn, buộc chặt đồ đạc', 'sunnyWeatherTip': 'Hôm nay nắng đẹp, tia UV mạnh, ra ngoài nhớ chống nắng', - 'temperatureDifferenceTip': 'Hôm nay chênh lệch nhiệt độ ngày đêm lớn, chú ý thêm bớt quần áo cho phù hợp', - 'comfortableWeatherTip': 'Hôm nay thời tiết dễ chịu, là thời điểm tốt để hoạt động ngoài trời', + 'temperatureDifferenceTip': + 'Hôm nay chênh lệch nhiệt độ ngày đêm lớn, chú ý thêm bớt quần áo cho phù hợp', + 'comfortableWeatherTip': + 'Hôm nay thời tiết dễ chịu, là thời điểm tốt để hoạt động ngoài trời', "monday": "Thứ 2", "tuesday": "Thứ 3", "wednesday": "Thứ 4", @@ -836,23 +895,29 @@ const Map viVN = { "notSet": "Chưa đặt", "accountSetting": "Cài đặt tài khoản", "logout": "Đăng xuất", - "logoutTips": "Bạn có chắc chắn muốn đăng xuất khỏi tài khoản hiện tại không?", + "logoutTips": + "Bạn có chắc chắn muốn đăng xuất khỏi tài khoản hiện tại không?", 'deleteAccount': 'Xóa tài khoản', - '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', + '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', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - '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', - 'serverTemporarilyUnavailable': 'Máy chủ tạm thời không khả dụng, vui lòng thử lại sau', + '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', + 'serverTemporarilyUnavailable': + 'Máy chủ tạm thời không khả dụng, vui lòng thử lại sau', 'loginExpiredPleaseRelogin': 'Đăng nhập đã hết hạn, vui lòng đăng nhập lại', 'noPermissionForThisOperation': 'Không có quyền thực hiện thao tác này', 'requestedResourceNotFound': 'Không tìm thấy tài nguyên được yêu cầu', - 'imageProcessingFailedPleaseReselect': 'Xử lý hình ảnh thất bại, vui lòng chọn lại hình ảnh', + 'imageProcessingFailedPleaseReselect': + 'Xử lý hình ảnh thất bại, vui lòng chọn lại hình ảnh', 'operationFailedPleaseRetry': 'Thao tác thất bại, vui lòng thử lại', 'serverReturnedError': 'Máy chủ trả về lỗi', 'serverError': 'Lỗi máy chủ', - 'networkConnectionFailedCheckSettings': 'Kết nối mạng thất bại, vui lòng kiểm tra cài đặt mạng', + 'networkConnectionFailedCheckSettings': + 'Kết nối mạng thất bại, vui lòng kiểm tra cài đặt mạng', 'serverInternalErrorRetryLater': 'Lỗi nội bộ máy chủ, vui lòng thử lại sau', // Profile 用户交互 @@ -875,10 +940,13 @@ const Map viVN = { 'thirdPartyLogoutSuccess': 'Đăng xuất bên thứ ba thành công', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Đăng xuất bên thứ ba thất bại', // 第三方登录退出失败 'signOutProcessError': 'Đã xảy ra lỗi trong quá trình đăng xuất', // 登出过程发生错误 - 'deleteAccountProcessError': 'Đã xảy ra lỗi trong quá trình xóa tài khoản', // 删除账号过程发生错误 + 'deleteAccountProcessError': + 'Đã xảy ra lỗi trong quá trình xóa tài khoản', // 删除账号过程发生错误 'userDataClearSuccess': 'Xóa dữ liệu người dùng thành công', // 用户数据清理成功 - 'allUserDataClearSuccess': 'Tất cả dữ liệu người dùng đã được xóa thành công', // 所有用户数据清理成功 - 'accountServiceInitialized': 'AccountService đã được khởi tạo', // AccountService 已初始化 + 'allUserDataClearSuccess': + 'Tất cả dữ liệu người dùng đã được xóa thành công', // 所有用户数据清理成功 + 'accountServiceInitialized': + 'AccountService đã được khởi tạo', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Lấy trạng thái quyền thất bại', @@ -901,9 +969,11 @@ const Map viVN = { 'locationInfo': 'Thông tin vị trí', 'phonePermissionDesc': 'Dùng cho chức năng gọi điện thoại', 'smsPermissionDesc': 'Dùng cho chức năng gửi SMS', - 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', 'calendarWritePermissionDesc': 'Dùng để tạo sự kiện và lời nhắc trên lịch', - 'calendarFullAccessPermissionDesc': 'Dùng để đọc và quản lý các sự kiện và lời nhắc trên lịch', + 'calendarFullAccessPermissionDesc': + 'Dùng để đọc và quản lý các sự kiện và lời nhắc trên lịch', 'locationPermissionDesc': 'Dùng để lấy thông tin vị trí hiện tại', 'appFunctionNeeds': 'Chức năng ứng dụng cần', 'authorized': 'Đã cấp quyền', @@ -913,45 +983,70 @@ const Map viVN = { 'unknownStatus': 'Trạng thái không xác định', 'permissionGranted': 'Quyền đã được cấp', 'permissionRequestError': 'Lỗi khi yêu cầu quyền', - 'phonePermissionDetailDesc': 'Chức năng gọi điện cần quyền truy cập điện thoại', + 'phonePermissionDetailDesc': + 'Chức năng gọi điện cần quyền truy cập điện thoại', 'smsPermissionDetailDesc': 'Chức năng gửi SMS cần quyền truy cập SMS', - 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': 'Tạo sự kiện lịch cần quyền ghi vào lịch', - 'calendarFullAccessPermissionDetailDesc': 'Quản lý sự kiện lịch cần quyền truy cập lịch đầy đủ', - 'locationPermissionDetailDesc': 'Lấy thông tin vị trí cần quyền truy cập vị trí', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': + 'Tạo sự kiện lịch cần quyền ghi vào lịch', + 'calendarFullAccessPermissionDetailDesc': + 'Quản lý sự kiện lịch cần quyền truy cập lịch đầy đủ', + 'locationPermissionDetailDesc': + 'Lấy thông tin vị trí cần quyền truy cập vị trí', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': + 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': + 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': + 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': + 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': + 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': 'Ứng dụng cần quyền này để cung cấp đầy đủ chức năng', - 'permanentDenialText': 'Bạn đã từ chối vĩnh viễn quyền {permission}, vui lòng vào cài đặt ứng dụng để bật', + 'notificationPermissionDetailDesc': + 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': + 'Ứng dụng cần quyền này để cung cấp đầy đủ chức năng', + 'permanentDenialText': + 'Bạn đã từ chối vĩnh viễn quyền {permission}, vui lòng vào cài đặt ứng dụng để bật', 'goToSettings': 'Đi đến cài đặt', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': + 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': + 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': + 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': + 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': + 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': + 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': + 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': + 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': + 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': + 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': + 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': + 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'storagePermissionPermanentDenial': @@ -961,7 +1056,8 @@ const Map viVN = { 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': + 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -970,8 +1066,10 @@ const Map viVN = { 'updateNow': 'Cập nhật ngay', // 立即更新按钮 'checkUpdate': 'Kiểm tra cập nhật', // 检查更新按钮 'updateFailed': 'Cập nhật thất bại', // 更新失败提示 - 'cannotOpenAppStore': 'Không thể mở App Store, vui lòng vào App Store để cập nhật thủ công', // 无法打开应用商店提示 - 'updateErrorRetry': 'Đã xảy ra lỗi trong quá trình cập nhật, vui lòng thử lại sau', // 更新错误重试提示 + 'cannotOpenAppStore': + 'Không thể mở App Store, vui lòng vào App Store để cập nhật thủ công', // 无法打开应用商店提示 + 'updateErrorRetry': + 'Đã xảy ra lỗi trong quá trình cập nhật, vui lòng thử lại sau', // 更新错误重试提示 //国家列表 "邮箱": "Email", @@ -1107,7 +1205,8 @@ const Map viVN = { "selectTargetLanguage": "Chọn ngôn ngữ đích", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": + "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1123,10 +1222,12 @@ const Map viVN = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Xóa lịch sử", - "clearHistoryConfirm": "Bạn có chắc muốn xóa toàn bộ lịch sử dịch không? Thao tác này không thể hoàn tác.", + "clearHistoryConfirm": + "Bạn có chắc muốn xóa toàn bộ lịch sử dịch không? Thao tác này không thể hoàn tác.", "unknownLanguage": "Ngôn ngữ không xác định", "deleteSessionRecord": "Xóa bản ghi phiên", - "deleteSessionConfirm": "Bạn có chắc muốn xóa tất cả các bản ghi dịch của phiên này không? Thao tác này không thể hoàn tác.", + "deleteSessionConfirm": + "Bạn có chắc muốn xóa tất cả các bản ghi dịch của phiên này không? Thao tác này không thể hoàn tác.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1158,15 +1259,20 @@ const Map viVN = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": + "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": + "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": + "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": + "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": "Photo album permission required to pick images", + "photoAlbumPermissionRequired": + "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1197,9 +1303,11 @@ const Map viVN = { "summaryGenerated": "Đã tạo tóm tắt", "generating": "Đang tạo...", "regenerate": "Tạo lại", - "summaryTimeoutMessage": "Yêu cầu tạo tóm tắt đã hết thời gian, có thể do sự cố mạng hoặc máy chủ bận.", + "summaryTimeoutMessage": + "Yêu cầu tạo tóm tắt đã hết thời gian, có thể do sự cố mạng hoặc máy chủ bận.", "deleteTranslationRecord": "Xóa bản ghi dịch", - "deleteTranslationConfirm": "Bạn có chắc muốn xóa bản ghi dịch này không? Thao tác này không thể hoàn tác.", + "deleteTranslationConfirm": + "Bạn có chắc muốn xóa bản ghi dịch này không? Thao tác này không thể hoàn tác.", "originalText": "Văn bản gốc", "translatedText": "Văn bản dịch", "sessionSummary": "Tóm tắt phiên", @@ -1227,19 +1335,25 @@ const Map viVN = { // 配对状态文本 "readyToPair": "Sẵn sàng để ghép nối", "preparingPairingEnvironment": "Đang chuẩn bị môi trường ghép nối...", - "connectDeepSoundViaSystemBluetooth": "Vui lòng kết nối với thiết bị Voitrans qua Bluetooth hệ thống trước", + "connectDeepSoundViaSystemBluetooth": + "Vui lòng kết nối với thiết bị Voitrans qua Bluetooth hệ thống trước", "deviceBindingConfirm": "Xác nhận liên kết thiết bị...", "establishingDeviceAssociation": "Đang thiết lập liên kết thiết bị...", "waitingCompletePairing": "Vui lòng đợi, đang hoàn tất ghép nối...", - "pairingSuccessRedirecting": "Ghép nối thành công! Sắp chuyển hướng đến trang chủ...", + "pairingSuccessRedirecting": + "Ghép nối thành công! Sắp chuyển hướng đến trang chủ...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": "Vui lòng đảm bảo bạn đang kết nối với thiết bị Voitrans", - "deviceAlreadyBoundToOtherAccount": "Thiết bị này đã được liên kết với tài khoản khác", + "ensureConnectedDeepSoundDevice": + "Vui lòng đảm bảo bạn đang kết nối với thiết bị Voitrans", + "deviceAlreadyBoundToOtherAccount": + "Thiết bị này đã được liên kết với tài khoản khác", "deviceAssociationFailed": "Liên kết thiết bị thất bại, vui lòng thử lại", - "scanTimeoutEnsureDeviceNearby": "Quét hết thời gian, vui lòng đảm bảo thiết bị ở gần", + "scanTimeoutEnsureDeviceNearby": + "Quét hết thời gian, vui lòng đảm bảo thiết bị ở gần", "networkError": "Lỗi mạng", - "authorizationFailedCheckCode": "Ủy quyền thất bại, vui lòng kiểm tra xem mã ủy quyền có đúng không", + "authorizationFailedCheckCode": + "Ủy quyền thất bại, vui lòng kiểm tra xem mã ủy quyền có đúng không", "pairingFailedRetry": "Ghép nối thất bại, vui lòng thử lại", // 配对控制器相关 @@ -1248,7 +1362,8 @@ const Map viVN = { 'deviceDisconnected': 'Thiết bị đã ngắt kết nối', 'readyToStartPairing': 'Sẵn sàng bắt đầu ghép nối', 'checkingEnvironment': 'Đang kiểm tra môi trường...', - 'ensureHeadsetOnAndPairingMode': 'Vui lòng đảm bảo tai nghe đã bật và ở chế độ ghép nối', + 'ensureHeadsetOnAndPairingMode': + 'Vui lòng đảm bảo tai nghe đã bật và ở chế độ ghép nối', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1266,19 +1381,25 @@ const Map viVN = { 'verificationFailedRetry': 'Xác minh thất bại, vui lòng thử lại', 'invalidDeviceAddress': 'Địa chỉ thiết bị không hợp lệ', 'bleDeviceAssociationFailed': 'Liên kết thiết bị BLE thất bại', - 'deviceAssociationFailedRetry': 'Liên kết thiết bị thất bại, vui lòng thử lại', + 'deviceAssociationFailedRetry': + 'Liên kết thiết bị thất bại, vui lòng thử lại', 'bleConnectionTimeoutRetry': 'Kết nối BLE hết thời gian, vui lòng thử lại', 'blePairingStartupFailed': 'Khởi động ghép nối BLE thất bại', 'bleConnectionFailed': 'Kết nối BLE thất bại', - 'deviceAuthorizationFailedCheckCode': 'Ủy quyền thiết bị thất bại, vui lòng kiểm tra mã ủy quyền', + 'deviceAuthorizationFailedCheckCode': + 'Ủy quyền thiết bị thất bại, vui lòng kiểm tra mã ủy quyền', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': + 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': + 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': + 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': + 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1294,7 +1415,8 @@ const Map viVN = { 'feedbackSubmitFailed': 'Gửi phản hồi thất bại, vui lòng thử lại sau', // OTA升级模块 - "upgradeExitConfirm": "Đang nâng cấp, thoát sẽ làm gián đoạn quá trình nâng cấp, bạn có chắc chắn muốn thoát không?", + "upgradeExitConfirm": + "Đang nâng cấp, thoát sẽ làm gián đoạn quá trình nâng cấp, bạn có chắc chắn muốn thoát không?", "deviceModel": "Kiểu máy", "unknownDevice": "Thiết bị không xác định", "currentFirmwareVersion": "Phiên bản firmware hiện tại", @@ -1307,14 +1429,19 @@ const Map viVN = { "retryConnection": "Thử kết nối lại", "ota_updateNow": "Cập nhật ngay", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": "Vui lòng giữ thiết bị kết nối, không đóng ứng dụng", + "otaDeviceInfoUnavailable": + "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": + "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": + "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": + "Vui lòng giữ thiết bị kết nối, không đóng ứng dụng", "doNotDisconnect": "Vui lòng không ngắt kết nối", "charging": "Đang sạc", "updateContent": "Nội dung cập nhật", - "removeEarbudsEnsureBattery": "Lấy cả hai tai nghe ra và đảm bảo pin của cả hai đều trên 20%", + "removeEarbudsEnsureBattery": + "Lấy cả hai tai nghe ra và đảm bảo pin của cả hai đều trên 20%", // 音乐列表页面 "noMusic": "Không có nhạc", // 暂无音乐 @@ -1376,8 +1503,10 @@ const Map viVN = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": 'Insufficient balance, please go to the corresponding recharge page to recharge.', + "insufficientBalanceDesc": + 'Insufficient balance, please go to the corresponding recharge page to recharge.', "recharge": 'Go to Recharge', // 会员到期提示 - "aiMemberExpiredDesc": 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": + 'AI membership expired, please go to the membership recharge page to renew.', }; diff --git a/lib/core/translations/language/zh_cn.dart b/lib/core/translations/language/zh_cn.dart index fcfa4c0f8..a7da9384f 100644 --- a/lib/core/translations/language/zh_cn.dart +++ b/lib/core/translations/language/zh_cn.dart @@ -33,6 +33,7 @@ const Map zhCN = { "spanish": "西班牙语", "portuguese": "葡萄牙语", "traditionalChinese": "繁体中文", + "traditionalChineseHK": "繁体中文(香港)", "japanese": "日语", "korean": "韩语", "french": "法语", diff --git a/lib/core/translations/language/zh_hk.dart b/lib/core/translations/language/zh_hk.dart index cfaf1c0bf..752892fb6 100644 --- a/lib/core/translations/language/zh_hk.dart +++ b/lib/core/translations/language/zh_hk.dart @@ -33,6 +33,7 @@ const Map zhHK = { "spanish": "西班牙語", "portuguese": "葡萄牙語", "traditionalChinese": "繁體中文", + "traditionalChineseHK": "繁體中文(HK)", "japanese": "日語", "korean": "韓語", "french": "法語", @@ -270,7 +271,7 @@ const Map zhHK = { // 商品页通用页脚 'appNameProvider': '應用名稱:Voitrans · 服務提供:Voitrans', - 'iapCustomerServiceQQLabel': '內购商品专属客服QQ:@qq', + 'iapCustomerServiceQQLabel': '內購商品專屬客服QQ:@qq', 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 @@ -698,8 +699,8 @@ const Map zhHK = { "loadMoreMessages": "載入更多訊息...", "loadFailedClickRetry": "載入失敗,點擊重試", "swipeUpForMore": "向上滑動查看更多", - "callingTool": "正在帮您,请稍等!", // 正在帮您,请稍等! - "voice_interrupt": "语音打断", // 语音打断 + "callingTool": "正在幫您,請稍等!", // 正在帮您,请稍等! + "voice_interrupt": "語音打斷", // 语音打断 // 预设提示词 "presetMusic": '來點音樂', // 来点音乐 @@ -1310,7 +1311,7 @@ const Map zhHK = { "otaVersionInfoFailed": '獲取版本資訊失敗,請稍後重試', "otaDeviceInfoUnavailable": '無法獲取設備資訊,請檢查連接後重試', "otaProductInfoUnavailable": '無法識別當前設備,請重新連接後重試', - "otaFirmwareVersionInvalid": '設備固件版本異常,請重新連接後重試', + "otaFirmwareVersionInvalid": '設備韌體版本異常,請重新連接後重試', "keepConnectedDontClose": "請保持設備連接,不要關閉應用", "doNotDisconnect": "請勿斷開連接", "charging": "充電中", diff --git a/lib/core/translations/language/zh_tw.dart b/lib/core/translations/language/zh_tw.dart new file mode 100644 index 000000000..c8692be3a --- /dev/null +++ b/lib/core/translations/language/zh_tw.dart @@ -0,0 +1,1385 @@ +const Map zhTW = { + // 通用 + 'continue': '繼續', + 'confirm': '確認', + 'cancel': '取消', + 'retry': '重試', + 'error': '錯誤', + 'success': '成功', + 'connected': '已連接', + 'connecting': '連接中...', + 'connectionFailure': '連接失敗', + 'unconnected': '未連接', + 'search': '搜尋', + "requestCancellation": "請求已取消", + "connectionTimeout": "連接逾時", + "requestTimeout": "請求逾時", + "responseTimeout": "回應逾時", + "unknownError": "未知錯誤", + + // 启动页 + "slogan": "連接世界,豈止聲音", + "sloganInfo": "AI語音專家 · 隨時隨地", + + // 底部导航 + "home": "首頁", + "explore": "發現", + "settings": "設定", + + // 语言 + "followingSystem": "跟隨系統", + "chinese": "中文", + "english": "英語", + "spanish": "西班牙語", + "portuguese": "葡萄牙語", + "traditionalChinese": "繁體中文", + "traditionalChineseHK": "繁體中文(香港)", + "japanese": "日語", + "korean": "韓語", + "french": "法語", + "german": "德語", + "russian": "俄語", + "vietnamese": "越南語", + "italian": "義大利語", + "hindi": "印地語", + "indonesian": "印尼語", + "thai": "泰語", + "malay": "馬來語", + "turkish": "土耳其語", + "polish": "波蘭語", + "filipino": "菲律賓語", + "dutch": "荷蘭語", + "swedish": "瑞典語", + "danish": "丹麥語", + "finnish": "芬蘭語", + "czech": "捷克語", + "hungarian": "匈牙利語", + "norwegian": "挪威語", + "romanian": "羅馬尼亞語", + "ukrainian": "烏克蘭語", + "greek": "希臘語", + "bulgarian": "保加利亞語", + "croatian": "克羅埃西亞語", + "slovak": "斯洛伐克語", + "slovenian": "斯洛文尼亞語", + "lithuanian": "立陶宛語", + "latvian": "拉脫維亞語", + "estonian": "愛沙尼亞語", + "serbian": "塞爾維亞語", + "icelandic": "冰島語", + "arabic": "阿拉伯語", + "persian": "波斯語", + + // 登录页 + "welcome": "歡迎使用", + "loginTips": "請使用手機號或電子郵件登入/註冊", + "accountNumber": "手機號碼或電子郵件", + "verificationCode": "驗證碼", + "getCode": "取得驗證碼", + "reacquireAfter": "秒後重新取得", + "otherWays": "或使用以下方式登入", + "expressConsent": "登入/註冊即表示你同意", + "and": " 和 ", + "userAgreement": "《使用者協議》", + "privacyPolicy": "《隱私政策》", + 'selectCountry': '選擇國家/地區', + "email": "電子郵件", + "phoneNumber": "手機號碼", + "pleaseEnterContactInfo": "請輸入手機號或電子郵件", + "invalidEmailFormat": "電子郵件格式不正確", + "invalidPhoneFormat": "手機號格式不正確", + "tip": "提示", + "pleaseEnterCompleteCode": "請輸入完整的驗證碼", + "loginFailed": "登入失敗,請重試", + 'pleaseAcceptPrivacyPolicy': '請先閱讀並同意隱私政策和使用者協議', + "enterVerificationCode": "輸入驗證碼", + "verificationCodeSentTo": "驗證碼已發送至", + "resendVerificationCode": "重新發送驗證碼", + "login": "登入", + "usePasswordLogin": "使用密碼登入", + + // 隐私政策弹窗 + "loginDeclaration": "Voitrans 聲明", // Voitrans 声明 + "welcomeToThisApp": "歡迎使用Voitrans,請充分閱讀", // 欢迎使用Voitrans,请充分阅读 + // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 + // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 + "privacyPolicyText": + "點擊'同意並進入'表示您已充分閱讀並同意上述協議。點擊'不同意'將退出應用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 + "disagree": "不同意", // 不同意 + "agreeAndEnter": "同意並進入", // 同意并进入 + + // 首页 + "deviceStatus": "設備狀態", + "reconnect": "重新連接", + "connectingDevice": "正在連接設備...", + "connectedTo": "已連接到", + "signal": "訊號", + "deviceId": "設備ID", + "firmwareVersion": "韌體版本", + "disconnectedDevice": "未連接設備,點擊下方按鈕連接", + "connectDevice": "連接設備", + "topAiExperiences": "熱門AI體驗", + "aiAssistant": "AI全能助手", + "aiAssistantInfo": "24小時專屬顧問,解答問題、提供建議", + "interpretation": "翻譯", + "simultaneousInterpretationInfo": "80+種語言實時翻譯,出國無憂", + "aiCompanion": "親子陪伴", + "aiCompanionInfo": "懂你心意,溫暖陪伴", + "homeSlogan": "連接世界,超越聲音", + "turnEarphones": "請打開耳機充電盒,將耳機放入您的耳朵", + "currentlyConnected": "當前已連接:", + "unsystemSetup": "前往系統設定", + "talkLater": "稍後再說", + "initializing": "正在初始化...", + "bluetoothInitializationFailure": "藍牙服務初始化失敗", + "checkingPermissions": "正在檢查權限...", + "lackPermissions": "開啟藍牙和位置權限,才能發現並連接附近的設備", + "searchingDevice": "正在搜尋設備...", + "findConnectedDevice": "找到已連接的設備", + "notFound": "未找到已連接的藍牙設備", + "initializationFailure": "初始化失敗", + "connectedDevice": "已連接到設備:", + "failedRefreshDevice": "刷新設備失敗", + "noDeviceFound": "未找到已連接的設備", + "failedDeviceInformation": "無法取得設備資訊", + "unknownEquipment": "未知設備", + "zeroSignal": "無訊號", + "good": "良好", + "fine": "很好", + "excellent": "極佳", + "unknown": "未知", + 'bluetoothTurnedOff': '藍牙已關閉,請開啟藍牙', + 'bluetoothOff': '藍牙已關閉', + 'leftEar': '左耳', + 'rightEar': '右耳', + 'chargingCase': '充電倉', + 'left': '左', + 'right': '右', + 'checkConnectionStatusFailed': '檢查連接狀態失敗', + +// 发现页 + "searchAi": "搜尋AI功能...", + "exploreSlogan": "智能耳機,無限可能", + "exploreSlogan1": "智能陪伴,無限可能", + "exploreSlogan2": "智能眼鏡,無限可能", + "exploreAi": "探索Voitrans提供的AI功能", + "aiFunction": "AI助手", + "allRoundAssistant": "全能助理", + "allRoundAssistantInfo": "幫你解決各類問題", + "simultaneousTranslation": "同聲翻譯", + "faceToFaceTranslation": "面對面翻譯", + 'audioVideoTranslation': '多媒體翻譯', + 'callTranslation': '通話翻譯', + "simultaneousTranslationInfo": "實時翻譯80+種語言", + "aiGirlfriend": "親子陪伴", + "aiGirlfriendInfo": "智能陪伴,隨時聊天", + "healthConsultant": "多功能AI聊天", + "healthConsultantInfo": "提供更多AI聊天功能", + "conferenceAssistant": "商務會議助手", + "conferenceAssistantInfo": "實時記錄會議紀要,多語言翻譯", + "usageStats": "用量統計", + "usageStatsInfo": "查看您的使用統計資料", + "scene": "場景", + // 用量统计模块 + "aiChat": 'AI聊天', + "translationStats": '翻譯統計', + "meetingStats": '會議統計', + "today": '今日', + "thisWeek": '本週', + "thisMonth": '本月', + "history": '歷史', + "currentSessionStats": '當前會話統計', + "translationCount": '翻譯次數', + "sessionDuration": '會話時長', + "characters": '字元數', + "recordingDuration": '錄音時長', + "totalApiCalls": '總呼叫次數', + "sessionCount": '會話數量', + "totalCharacters": '總字元數', + "apiCallStats": 'API呼叫統計', + "translationApi": '翻譯API', + "asr": '語音識別', + "tts": '語音合成', + //"aiSummary": "AI摘要", + "dataVolumeStats": '資料量統計', + "sourceTextCharacters": '來源文本字元', + "ttsTextCharacters": 'TTS文本字元', + "effectiveAudioDuration": '有效音訊時長', + "totalSessionDuration": '總會話時長', + "costStats": '成本統計', + "estimatedCost": '預估成本', + "dailyCostThreshold": '日成本預警閾值', + "monthlyCostThreshold": '月成本預警閾值', + "usageBehaviorStats": '使用行為統計', + "mostUsedLanguagePair": '最常用語言對', + "mostUsedMode": '最常用模式', + "asrApiCalls": 'ASR呼叫次數', + "totalAudioDuration": '音訊總時長', + "audioFileSize": '音訊檔案大小', + "transcriptBytes": '轉寫位元組', + // 通知文案 + "loadFailed": '載入失敗', + "statsLoadFailedTryLater": '統計資料載入失敗,請稍後重試', + "cleanupComplete": '清理完成', + "cleanedOldData": '已清理90天前的過期資料', + "exportFeature": '導出功能', + "exportInDevelopment": '資料匯出功能正在開發中', + + // 商品页面(AI/翻译/会议) + 'availablePackages': '可購買套餐', + 'remainingQuota': '剩餘額度', + 'totalQuota': '總額度', + 'remaining': '剩餘', + 'featureDescription': '功能說明', + // AI 功能卡片 + 'musicAndRecommendation': '聽歌與推薦', + 'navigationAndRoutes': '導航與路線', + 'nearbySearch': '附近搜尋', + 'newsInformation': '新聞資訊', + 'communicationAssistant': '通訊助手', + // 翻译功能卡片 + 'realtimeTranscription': '實時同傳', + // 'textTranslation' 已存在 + 'sceneLexicon': '場景詞庫', + 'subtitleDisplay': '字幕顯示', + // 会议功能卡片 + 'meetingRecording': '會議記錄', + 'transcriptionAndSummary': '轉寫與總結', + 'keywordSearch': '關鍵詞檢索', + 'collaborationSharing': '協同分享', + // 商品名称(按ID) + 'ai_001_name': 'AI基礎 100 次', + 'ai_002_name': 'AI基礎 500 次', + 'ai_003_name': 'AI基礎 1000 次', + 'meet_001_name': '會議基礎 100 次', + 'meet_002_name': '會議基礎 500 次', + 'meet_003_name': '會議基礎 1000 次', + 'trans_001_name': '翻譯基礎 100 次', + 'trans_002_name': '翻譯基礎 500 次', + 'trans_003_name': '翻譯基礎 1000 次', + + // 商品描述(按ID) + 'ai_001_desc': '含 100 次使用,涵蓋核心 AI 功能', + 'ai_002_desc': '含 500 次使用,涵蓋核心 AI 功能', + 'ai_003_desc': '含 1000 次使用,涵蓋核心 AI 功能', + 'meet_001_desc': '含 100 次會議錄音/轉寫', + 'meet_002_desc': '含 500 次會議錄音/轉寫', + 'meet_003_desc': '含 1000 次會議錄音/轉寫', + 'trans_001_desc': '含 100 次翻譯(語音/文本)', + 'trans_002_desc': '含 500 次翻譯(語音/文本)', + 'trans_003_desc': '含 1000 次翻譯(語音/文本)', + +// 商品页通用页脚 + 'appNameProvider': '應用名稱:Voitrans · 服務提供:Voitrans', + 'iapCustomerServiceQQLabel': '內購商品專屬客服QQ:@qq', + 'copyrightVoitrans': '© 2025 Voitrans Technologies', + + // 会议商品页描述 + 'meetingHeaderDesc1': '錄音轉寫、關鍵詞檢索與自動總結,提升會議效率。', + 'meetingHeaderDesc2': '適用於商務會議、課堂筆記、訪談紀要等場景。', + 'meetingAutoRecording': '自動錄音與分段', + 'meetingSpeakerTagging': '講話人標注', + 'meetingLongAudioTranscription': '長音訊轉寫', + 'meetingKeyPointSummary': '關鍵要點提煉', + 'meetingTopicNameSearch': '按主題/人名檢索', + 'meetingTimelineJump': '時間線跳轉', + 'meetingExportSummary': '導出紀要', + 'meetingMultiPlatformShare': '多平台分享', + 'meetingDisclaimer': '建議在安靜環境使用,效果受麥克風與網路影響,具體以實際表現為準。', + + // 同传/翻译商品页描述 + 'transHeaderDesc1': '多語種實時同傳與文本翻譯,低延時語音播報。', + 'transHeaderDesc2': '適用於出行、商務、演講與教學等場景。', + 'translateZhEn': '中英互譯', + 'lowLatencyVoiceBroadcast': '低延時語音播報', + 'multiLangTextTranslation': '多語種文本翻譯', + 'termOptimizationContextPreserve': '術語優化與語境保持', + 'lexiconTourBusinessLife': '旅遊/商務/生活詞庫', + 'personalVocabularyMemory': '專屬詞彙記憶', + 'conversationSubtitleLargeText': '對話字幕/大字模式', + 'colorHighContrast': '顏色高對比度', + 'transDisclaimer': '翻譯效果受麥克風、網路時延與環境噪聲影響,具體以實際表現為準。', + + // AI 商品页描述 + 'aiHeaderDesc1': '更長對話額度、更多工具呼叫、更強上下文長度支持。', + 'aiHeaderDesc2': '適用於智能體問答、總結分析、任務執行等場景。', + 'musicSearchPlaybackControl': '檢索曲庫、播放控制', + 'smartPlaylistAndSimilarRecommendations': '智能推薦歌單與相似歌曲', + 'routePlanningAndCongestionAvoidance': '路線規劃與擁堵規避', + 'voiceBroadcastAndWaypoints': '語音播報與途徑點設置', + 'realTimeWeatherForecast': '實時天氣與預報', + 'clothingAdviceAndTravelReminders': '穿衣建議與出行提醒', + 'poiSearchFoodGasParking': '餐飲/加油/停車等地點檢索', + 'ratingsHoursAndDirectRoutes': '評分、營業時間與路線直達', + 'hotNewsAndTopicOverview': '熱點快訊與專題速覽', + 'longArticleSummariesAndKeyPoints': '長文總結與要點提煉', + 'helpCallAndSMS': '幫忙撥打電話與發短信', + 'templatedMessagesAndScheduleReminders': '模板消息與日程提醒', + 'aiDisclaimer': '以上功能受設備權限、服務可用性與網路狀況影響,具體以實際表現為準。', + + // 会员商品页 + 'benefitsOverview': '權益總覽', + 'higherQuota': '更高使用額度', + 'lowerUnitPrice': '更低單價', + 'priorityService': '優先服務', + 'exclusiveSupportChannel': '專屬客服通道', + 'fastResponse': '問題快速回應', + 'eventsAndDiscounts': '活動與折扣', + 'memberExclusiveEvents': '會員專屬活動', + 'longTermDiscountPlan': '長期優惠計劃', + 'generalPrivileges': '通用特權', + 'earlyAccessNewFeatures': '新功能優先體驗', + 'crossDeviceSync': '跨設備同步', + 'vipDisclaimer': '具體權益以實際套餐說明為準,可能隨版本迭代調整。', + + // 新手引导 / Onboarding + 'skip': "跳過", + 'next': '下一步', + 'sayLilyHint': "Say \"Lily Lily\" to the mic", + 'imHere': "I’m here~", + 'guideWelcomeWakeAI': "Welcome to Voitrans! First, wake your AI “Lily”.", + 'aiReplyCompleted': "Lily has finished the reply!", + 'aiThinking': "Lily is thinking…", + 'guideAwakenSuccess': "Great! Lily is awake—ask it to help.", + 'confirmInput': "Confirm Input", + 'guideClickSendPrefix': "Tap send, ", + // AI 引导步骤 + 'guideWeatherStart': "Tell Lily: “What’s the weather today?”", + 'guideWeatherInput': "What’s the weather today?", + 'guideWeatherSend': "Lily will report the weather in real time", + 'guideWeatherEnd': "Lily can report weather live—try other commands", + 'guideMusicStart': "Tell Lily: “Play some rock music”", + 'guideMusicInput': "Play some rock music", + 'guideMusicSend': "Lily will find music for you", + 'guideMusicEnd': "Lily found music—try other commands", + 'guideNavStart': "Tell Lily: “Navigate to Shenzhen Airport”", + 'guideNavInput': "Navigate to Shenzhen Airport", + 'guideNavSend': "Lily will plan the route", + 'guideNavEnd': "Navigation set—try other commands", + 'guideMeetingStart': + "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", + 'guideMeetingInput': "Create a meeting reminder for 3pm tomorrow", + 'guideMeetingSend': "Lily will create a meeting reminder", + 'guideMeetingEnd': "Reminder created—try other commands", + 'guidePhoneStart': "Tell Lily: “Call Mom”", + 'guidePhoneInput': "Call Mom", + 'guidePhoneSend': "Lily will make the call", + 'guidePhoneEnd': "Call placed—try other commands", + 'guideSmsStart': "Tell Lily: “Send Dad a text: I’ll be home for dinner”", + 'guideSmsInput': "Text Dad: I’ll be home for dinner", + 'guideSmsSend': "Lily will send the message", + 'guideSmsEnd': "Message sent—voice control is convenient", + + // 商务会议助手页 + "startMeeting": "開始會議", + 'edit': '編輯', + 'delete': '刪除', + 'noContent': '無內容', + 'editMeetingTitle': '修改會議標題(非必填)', + 'meetingTitle': '會議標題(非必填)', + 'maxCharacters': '最多50個字元', + 'meeting': '會議', + 'recordingDetails': '錄音詳情', + 'aiSummary': 'AI總結', + 'meetingTranscript': '會議原文', + + // Meeting模块 - 导航和基础功能 + 'files': '檔案', + 'mine': '我的', + 'connect': '連接', + 'allFiles': '全部檔案', + 'searchInAllFiles': '在所有檔案中搜尋', + 'from': '來自', + 'sortBy': '排序方式', + 'creationTime': '建立時間', + 'bluetoothConnection': '藍牙連接', + 'meetingReconnect': '重新連接', + 'searching': '搜尋中...', + 'searchFailed': '搜尋失敗,請檢查藍牙是否已開啟', + 'aiPenNotFound': '未搜尋到 AI PEN 設備', + 'connectedToAiPen': '已連接到 AI PEN 設備', + 'checkingNewFiles': '檢查是否有新檔案需要導入', + 'startingWifi': '正在開啟Wi-Fi...', + 'newFilesDetected': '檢查到有新檔案,正在準備導入', + 'noNewFiles': '沒有新檔案需要導入', + 'connectingWifi': '正在連接 Wi-Fi...', + 'wifiConnected': 'Wi-Fi 連接成功', + 'downloadingFiles': '正在下載檔案...', + 'downloadingFileProgress': '共{total}個檔案,正在下載第{current}個檔案', + 'downloadComplete': '下載完成', + 'downloadCompleteInfo': '下載完成,共{count}個檔案,2秒後自動返回', + + // Meeting模块 - 录音功能 + 'startRecording': '開始錄音', + 'liveRecording': '現場錄音', + 'audioVideoRecording': '音訊、影片錄音', + 'callRecording': '通話錄音', + 'importAudio': '導入音訊', + 'transcribing': '正在轉寫...', + 'summarizing': '正在總結...', + 'analyzing': '正在分析...', + 'summaryComplete': '總結完成', + //'generating': '正在生成...', + 'generate': '生成', + 'overview': '概覽', + 'transcription': '轉寫', + 'summary': '總結', + 'mindMap': '思維導圖', + 'editSpeaker': '編輯', + 'nameSpeaker': '命名發言者', + + // Meeting模块 - 我的页面 + 'transcriptionRecords': '轉寫記錄', + 'templateCommunity': '模板社區', + 'comingSoon': '敬請期待', + 'integration': '集成', + 'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', + 'enabled': '開啟', + 'disabled': '關閉', + 'myVoitransDevice': '我的VOITRANS設備', + 'helpAndFeedback': '幫助與反饋', + 'aboutVoitrans': '關於VOITRANS', + 'meetingDays': '天', + 'meetingHours': '小時', + 'voitransAiMember': 'Voitrans AI會員', + 'unlockStarterMember': '解鎖 Starter 會員', + 'bindDeviceToActivate': '綁定 Voitrans 設備可啟用 Starter 會員', + 'unlockNow': '立即解鎖', + + // Meeting模块 - 会员功能 + 'comparison': '對比', + 'detailedInfo': '詳細資訊', + 'monthlyTranscriptionTime': '每月轉寫時長', + 'unlimited': '無限', + 'professionalTemplates': '專業模板', + 'limited': '有限', + 'fullTemplates': '全量模板', + 'professionalTerms': '專業術語', + 'customTemplates': '自訂模板', + 'visualMindMap': '可視化思維導圖', + 'speakerIdentification': '區分說話人', + 'aiVoiceEnhancement': 'AI 人聲增強', + 'audioImport': '音訊導入', + 'multipleExportFormats': '支援多種導出格式', + 'professionalSummaryTemplates': '專業總結模板', + 'professionalTemplateDesc': '專業模板設計,提高您的工作效率。根據行業需求量身定制。', + 'customTemplateDesc': '您可以根據需求自訂總結 Prompts,並用它們生成所需的總結。', + 'askAiDesc': '從錄音中智能挖掘更深入資訊,一鍵生成資料表格、關鍵討論結論、To Do、匯報郵件等格式內容。', + 'visualMindMapDesc': '超越總結-用思維導圖整理和可視化要點,更有效地理解全文。', + 'templateCommunityDesc': '發現、分享,並從使用者建立的模板庫中獲得靈感。', + 'speakerIdentificationDesc': '音訊轉寫將支援區分發言者,更直觀地還原會議或電話通話內容。同時總結將更加準確。', + 'privateCloudSyncDesc': '您的錄音和轉寫等資料將安全儲存在專屬的雲端伺服器中,無論是上傳還是下載,全程加密處理,確保隱私安全。', + 'aiVoiceEnhancementDesc': 'AI 人聲增強支援多檔降噪設定,智能消除背景噪音,增強語音清晰度,提升音訊回放效果。', + 'audioImportDesc': '可以輕鬆從本地或第三方應用導入音訊檔案,如語音備忘錄、Google雲端硬碟等。', + 'multipleExportFormatsDesc': '導出您的音訊錄音、轉寫文本和摘要為各種格式(TXT、PDF、JPEG),以滿足您的需求。', + + // Meeting模块 - 升级会员 + 'upgradeMembership': '升級您的會員', + 'yearlySubscription': '年訂閱', + 'monthlySubscription': '月訂閱', + 'proMonthly': 'Pro ¥60/月', + 'proMonthlyDesc': '7天免費試用,之後按¥800/年。試用期結束前可隨時取消。', + 'sevenDayTrial': '7天免費試用', + 'unlimitedMonthly': 'Unlimited ¥120/月', + 'unlimitedMonthlyDesc': '7天免費試用,之後按¥1600/年。試用期結束前可隨時取消。', + 'trialNote': '*免費試用7天,然後按年收費,隨時取消。', + 'proPrice': 'Pro ¥120', + 'proMonthlyPrice': '¥120/月', + 'subscribe': '訂閱', + 'unlimitedPrice': 'Unlimited ¥198', + 'unlimitedMonthlyPrice': '¥198/月', + 'upgradeNote': '*升級訂閱後,原訂閱的剩餘天數會自動折算差價並退還至您的支付帳戶', + 'buyMoreTranscriptionTime': '購買更多轉寫時長', + 'sixThousandMinutes': '6,000分鐘', + 'threeThousandMinutes': '3,000分鐘', + 'sixHundredMinutes': '600分鐘', + 'oneHundredTwentyMinutes': '120分鐘', + 'validityPeriod': '*有效期:', + 'validityNote': '購買後立即啟用,啟用後2年內有效。', + 'purchase': '購買', + + // Meeting模块 - 模版和生成 + 'selectSummaryTemplate': '選擇總結模板', + 'useThisTemplate': '就用這個模板', + 'lastUsed': '上次使用', + 'viewAll': '查看全部', + 'recordingLanguage': '錄音語言', + 'chineseSimplified': '中文普通話(簡體)', + 'meetingGenerateNow': '立即生成', + 'keyEventsAnalyzed': '分析出{count}個關鍵事件。', + 'aiAnalysisDesc': 'AI分析識別錄音中的關鍵事件,讓你選擇重要事件進行AI生成。', + + // Meeting模块 - 文件操作和状态 + 'importing': '正在導入...', + 'batchImporting': '正在批量導入...', + 'importingLocalRecordings': '正在導入本地錄音...', + 'importFailed': '導入檔案失敗: {filePath}, error: {error}', + 'importSuccess': '成功導入本地 {count} 條錄音', + 'importError': '導入失敗: {error}', + 'pleaseSelectAudioFile': '請選擇音訊檔案', + 'shareAudio': '分享會議音訊', + 'shareComplete': '分享完成!', + 'shareFailed': '分享失敗: {error}', + 'fileProcessingFailed': '檔案處理失敗: {filePath}, 錯誤: {error}', + + // 翻译模块 - Meeting相关 + 'meetingUnknownLanguage': '未知語言', + + // 权限相关 - Meeting相关 + 'meetingStoragePermission': '儲存', + 'meetingStoragePermissionExplanation': '我們需要存取儲存權限,以便您可以選擇並上傳音訊檔案。', + 'meetingStoragePermissionPermanentDenial': + '檢測到您已永久拒絕儲存權限。如需繼續使用此功能,請前往應用設定中手動開啟儲存權限。', + + // Meeting模块 - 思维导图相关 + 'shareMindMap': '分享思維導圖', + 'shareSuccess': '分享成功', + + // Meeting模块 - AI相关 + 'askAI': '問 AI ...', + 'askAIPrompt': '今天我能幫您做點什麼呢?', + 'continueAsk': '繼續提問', + 'todoList': '待辦事項', + 'extractConclusion': '提取結論', + 'generateKeyIndicators': '生成關鍵指標', + + // Meeting模块 - 更多操作相关 + 'reSummarize': '重新總結', + + // Meeting模块 - 录音语言相关 + 'recordLanguage': '錄音語言', + // 'chinese': '中文普通话(简体)', + 'cantonese': '粵語', + 'sichuan': '四川話', + 'shanghai': '上海話', + // 'english': '英文', + // 'japanese': '日语', + // 'korean': '韩语', + // 'french': '法语', + // 'spanish': '西班牙语', + // 'portuguese': '葡萄牙语', + // 'indonesian': '印尼语', + + // Meeting模块 - 分享相关 + 'shareLink': '分享連結', + 'copyTranscript': '複製轉寫', + 'copySummary': '複製總結', + 'exportAudio': '導出音訊', + 'exportTranscript': '導出轉寫', + 'shareMeetingAudio': '分享會議音訊', + 'exportSummary': '導出總結', + 'exportAs': '導出為', + 'exportingPDF': '正在導出PDF...', + + // Meeting模块 - 发言者相关 + 'nameCurrentSpeaker': '命名當前發言者', + 'recentlyUsedNames': '最近使用過的名稱', + 'applyToCurrentParagraph': '應用到當前段落', + 'totalTime': '總計', + 'summarySpeakerWillBeUpdatedAutomatically': '總結的發言者將自動更新', + + // Meeting模块 - 云端同步相关 + 'syncToCloud': '同步到雲端', + 'syncToCloudTip': + '自動將你的錄音同步到雲端,你可以通過任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享錄音。', + 'syncToVoitransApp': '同步VOITRANS APP', + 'transcriptionRecord': '轉寫記錄', + + // Meeting模块 - 总结页面相关 + 'dateAndTime': '日期時間', + 'location': '地點', + 'attendees': '與會人員', + 'inputLocation': '輸入地點', + 'inputAttendees': '輸入與會人員', + + // 设置页 + "systemSettings": "系統設定", + "vipRecharge": "高級會員充值", + "aiRecharge": "AI充值", + "translationRecharge": "翻譯充值", + "meetingAssistantRecharge": "會議充值", + "cloudSync": "雲端同步", + "memberService": '會員服務', + "bindRewardTitle": '獎勵', + "bindRewardSimpleDesc": '首次綁定設備獎勵已下發,點擊確定關閉即可', + "joinDevice": "已連接設備:", + "accountId": "帳號ID:", + "systemSetting": "系統設定", + "languageSetting": "語言設定", + "darkMode": "深色模式", + "darkModeInfo": "切換應用的明暗主題", + "backups": "備份與還原", + "backupsInfo": "備份設定和AI互動歷史", + "lastBackup": "上次備份:", + "privacySettings": "隱私設定", + "privacySettingsInfo": "管理資料收集和權限", + "permissionManagement": "權限管理", // 权限管理 + "permissionManagementInfo": "管理應用權限設定", // 管理应用权限设置 + "aboutApplication": "關於應用", + "versions": "版本", + "checkUpdates": "檢查更新", + "selectLanguage": "選擇語言", + "voiceService": "語音服務", + "voiceServiceInfo": "選擇語音識別和合成服務", + "selectVoiceService": "選擇語音服務", + "azureVoiceService": "Azure 語音服務", + "azureVoiceServiceInfo": "微軟雲端語音服務,支援高品質語音合成和識別", + "flutterVoiceService": "Flutter 本地語音服務", + "flutterVoiceServiceInfo": "設備本地語音服務,無需聯網即可使用", + 'timbreService': '音色服務', + 'timbreServiceInfo': '選擇音色語音合成服務', + 'defaultTimbre': '預設音色', + 'microsoftCloudTimbreService': '微軟雲端音色服務', + 'voiceClone': '聲音複刻', + 'AIsettings': 'AI設定', + 'selecttimbre': '選擇音色', + 'pleaseRead': '請朗讀', + 'completeRecording': '完成錄製', + "firmwareUpgrade": "韌體升級", + "bleHeadsetFirmwareUpgrade": "BLE耳機韌體版本升級", + "deviceManagement": "設備管理", + "manageConnectedDevices": "管理已綁定的藍牙設備", + + //设置setting_controller + // 版本更新相关 + 'currentLatestVersion': '當前已是最新版本 {version}', + 'checkUpdateFailed': '檢查更新失敗', + 'networkErrorRetry': '網路錯誤,請稍後重試', + +// 设备管理相关 + // 'clearPairedDevices': '清除配对设备', + // 'clearPairedDevicesConfirm': '确定要清除所有配对设备吗?', + // 'clearPairedDevicesSuccess': '清除配对设备成功', + // 'clearPairedDevicesFailed': '清除配对设备失败', + + // 设置页面 - 实时语音对话 + "realtimeVoiceChat": "實時語音對話", + "realtimeVoiceChatInfo": "體驗智能語音互動功能(功能預覽)", + "loading": "載入中...", + + //设备管理页面 + "deviceTypeUnknown": '未知設備', + "deviceTypeClassicBluetoothHeadset": '經典藍牙耳機', + "deviceTypeBleBluetoothHeadset": 'BLE藍牙耳機', + "deviceTypeSmartVoiceRecorder": '智能錄音筆', + "deviceTypeSmartEye": '智能眼鏡', + "unbind": "解除綁定", + "noDevicesBound": '暫未綁定任何設備', + "pleaseBindDeviceFirst": '請先綁定設備後再進行管理', + "noMacAddress": '無MAC地址', + "licenseCode": '授權碼', + "confirmUnbind": '確認解除綁定', + "confirmUnbindMessage": '確定要解除綁定設備 "{deviceName}" 嗎?', + "confirmUnbindAction": '確認解除綁定', + +//Agent 模块 + // agent View + "Lily": "Lily", + "clearChatHistory": "清空聊天記錄", + "online": "在線", + "inputMessage": "輸入訊息...", + "imListening": "正在聆聽...", + "canStartTalking": "你可以開始說話", + "addQuestionAboutImage": "新增關於圖片的問題或描述...", + "summarizeImageContent": "總結圖片內容", + "extractImageText": "擷取圖片文字", + "translateImageText": "翻譯圖片文字", + "recording": "正在錄音...", + "holdToSpeak": "按住說話", + "takePhoto": "拍照", + "photoAlbum": "相簿", + "makeCall": "打電話", + "aiVoiceCall": "AI語音通話", + "inCall": "正在通話中...", + "aiReplying": "AI正在回覆...", + "waitingToStart": "等待開始...", + "clickToStartCall": "點擊開始通話", + "listeningToYou": "正在聽您說話...", + "processing": "正在處理...", + "loadMoreMessages": "載入更多訊息...", + "loadFailedClickRetry": "載入失敗,點擊重試", + "swipeUpForMore": "向上滑動查看更多", + "callingTool": "正在幫您,請稍等!", // 正在帮您,请稍等! + "voice_interrupt": "語音打斷", // 语音打断 + + // 预设提示词 + "presetMusic": '來點音樂', // 来点音乐 + "presetNavigation": '導航到', // 导航 + "presetWeather": '今日天氣', // 今日天气 + "presetNews": '今日新聞', // 今日新闻 + "presetFood": '附近美食', // 美食 + "playSomeMusic": '播放一些流行音樂', // 播放一些流行音乐 + "navigationTo": '請幫我導航到', // 导航到 + "todayWeather": '今天天氣如何?', // 今日天气 + "todayNews": '今天有哪些新聞?', // 今日新闻 + "nearbyFood": '附近有哪些美食?', // 美食 + + // Agent controller + 'welcomeMessage': '你好!我是**Lily**,我能幫你:\n\n' + '• 回答問題和提供資訊\n\n' + '• 實時語音翻譯\n\n' + '• 推薦音樂和播客\n\n' + '• 語音備忘錄和提醒\n\n' + '• 控制耳機功能\n\n' + '有什麼我可以幫你的嗎?', + 'microphonePermission': '麥克風', + 'voiceRecognitionPermissionText': '語音識別功能需要存取麥克風。', + 'voiceTranslationPermissionText': '語音識別與翻譯功能需要存取麥克風。', + 'phoneCallPermissionText': '打電話功能需要存取麥克風進行語音通話。', + 'permissionDeniedText': '您已永久拒絕麥克風權限,請前往系統設定開啟權限。', + 'startVoiceInput': '開始語音輸入', + 'startPhoneCallMode': '開始打電話模式,開始語音輸入', + + // Agent 全屏编辑器 + 'fullScreenEditorHint': '在這裡輸入你的訊息...', // 全屏编辑器输入提示 + 'characterCount': '{count} 字元', // 字符计数显示 + + // 消息长按操作 + 'copy': '複製', + 'copySuccess': '複製成功', + 'report': '舉報', + 'submitSuccess': '提交成功', + 'submitFailed': '提交失敗', + 'reportSubmitted': '舉報已提交,我們會盡快處理', + //'networkError': '网络错误,请稍后重试', + 'harmfulUnsafe': '有害/不安全', + 'pornographicVulgar': '色情低俗', + 'misleadingAttack': '誤導攻擊', + 'illegalCriminal': '違法犯罪', + 'privacyRelated': '隱私相關', + 'copyrightViolation': '侵犯我的著作權、名譽權等', + 'other': '其他', + 'reportDescriptionHint': '我們想知道你舉報的原因,你可以描述你遇到的問題。', + //'submit': '提交', + + //Message_bubble + 'generatedByAi': '由AI生成', + + //音乐卡片 music_card + 'recommendedMusic': '以下是一些推薦的音樂:', + 'playList': '播放清單', + 'moreMusic': '更多音樂', + + //导航卡片 navigation_card + 'kilometers': '公里', // 公里单位 + 'meters': '米', // 米单位 + 'hours': '小時', // 小时单位 + 'minutes': '分鐘', // 分钟单位 + 'seconds': '秒', // 秒单位 + 'navigating': '導航中', // 导航状态 + 'currentLocation': '目前位置', // 当前位置 + 'approximate': '約', // 大约 + 'enterRoad': '進入', // 进入道路 + "driving": "駕車", + "walking": "步行", + "bicycling": "騎行", + "tsransit": "公共交通", + + //天气卡片 weather_card + 'weatherQuery': '查詢天氣情況:', + 'highest': '最高', + 'lowest': '最低', + 'futureForecast': '未來預報', + 'hotWeatherTip': '今日高溫炎熱,請注意防暑降溫,多喝水避免中暑', + 'coldWeatherTip': '今日氣溫較低,外出請注意保暖,小心感冒', + 'rainyWeatherTip': '今日有雨,外出請攜帶雨具,注意出行安全', + 'snowyWeatherTip': '今日有雪,路面濕滑請注意安全,做好保暖措施', + 'foggyWeatherTip': '今日有霧霾,能見度較低,外出請佩戴口罩', + 'windyWeatherTip': '今日風力較大,外出請注意安全,固定好物品', + 'sunnyWeatherTip': '今日陽光充足紫外線較強,外出請做好防曬', + 'temperatureDifferenceTip': '今日晝夜溫差較大,請適時增減衣物', + 'comfortableWeatherTip': '今日天氣適宜,是外出活動的好時光', + "monday": "週一", + "tuesday": "週二", + "wednesday": "週三", + "thursday": "週四", + "friday": "週五", + "saturday": "週六", + "sunday": "週日", + // 首次绑定奖励弹窗(英文文案,保持一致性) + "firstBindRewardTitle": 'Welcome Reward', + "firstBindRewardDesc": 'You\'ve received binding rewards.', + "vipLevelLabel": 'VIP Level:', + "expiryLabel": '到期時間:', + "notActivated": '未啟用', + "aiChatCreditsLabel": 'AI Chat Credits:', + "translationCreditsLabel": 'Translation Credits:', + "meetingCreditsLabel": 'Meeting Credits:', + "ok": 'OK', + + // 天气描述 + "sunny": "晴", + "partlyCloudy": "少雲", + "partlySunny": "晴間多雲", + "cloudy": "多雲", + "overcast": "陰", + "shower": "陣雨", + "thundershower": "雷陣雨", + "lightRain": "小雨", + "moderateRain": "中雨", + "heavyRain": "大雨", + "rainstorm": "暴雨", + "snowShower": "陣雪", + "lightSnow": "小雪", + "moderateSnow": "中雪", + "heavySnow": "大雪", + "blizzard": "暴雪", + "fog": "霧", + "haze": "霾", + "strongWind": "大風", + + //编辑个人信息页 + "editProfile": "編輯個人資訊", + "avatar": "頭像", + "nickname": "暱稱", + "save": "儲存", + "about": "關於", + "enterNickname": "請輸入暱稱", + "notSet": "未設定", + "accountSetting": "帳號設定", + "logout": "登出", + "logoutTips": "確定要登出目前帳號嗎?", + 'deleteAccount': '註銷帳號', + 'deleteAccountTips': '確定要永久刪除您的帳號嗎?此操作不可撤銷', + 'clean': '清除快取', + 'cleanTips': '確定要清除個人快取嗎?', + + // Profile 错误信息 + 'networkConnectionFailed': '網路連接失敗,請檢查網路設定後重試', + 'serverTemporarilyUnavailable': '伺服器暫時無法回應,請稍後重試', + 'loginExpiredPleaseRelogin': '登入已過期,請重新登入', + 'noPermissionForThisOperation': '沒有權限執行此操作', + 'requestedResourceNotFound': '請求的資源不存在', + 'imageProcessingFailedPleaseReselect': '圖片處理失敗,請重新選擇圖片', + 'operationFailedPleaseRetry': '操作失敗,請重試', + 'serverReturnedError': '伺服器返回錯誤', + 'serverError': '伺服器錯誤', + 'networkConnectionFailedCheckSettings': '網路連接失敗,請檢查網路設定', + 'serverInternalErrorRetryLater': '伺服器內部錯誤,請稍後重試', + +// Profile 用户交互 +//'error': '错误', +//'success': '成功', + 'imageCompressionFailed': '圖片壓縮失敗', + 'avatarUpdateFailed': '頭像更新失敗', + 'usernameCannotBeEmpty': '使用者名稱不能為空', + 'saveSuccess': '儲存成功', + 'personalInfoUpdated': '個人資訊已更新', + 'saveFailed': '儲存失敗', + 'loggedOut': '已登出', + 'logoutFailedRetry': '登出失敗,請重試', + 'accountPermanentlyDeleted': '帳號已被永久刪除', + 'deleteAccountFailedRetry': '刪除帳號失敗,請重試', + + // 账号服务相关 + 'clearUserDataFailed': '清理使用者資料失敗', // 清理用户数据失败 + 'deleteUserDataFailed': '刪除使用者資料失敗', // 删除用户数据失败 + 'thirdPartyLogoutSuccess': '第三方登出成功', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': '第三方登出失敗', // 第三方登录退出失败 + 'signOutProcessError': '登出過程發生錯誤', // 登出过程发生错误 + 'deleteAccountProcessError': '刪除帳號過程發生錯誤', // 删除账号过程发生错误 + 'userDataClearSuccess': '使用者資料清理成功', // 用户数据清理成功 + 'allUserDataClearSuccess': '所有使用者資料清理成功', // 所有用户数据清理成功 + 'accountServiceInitialized': 'AccountService 已初始化', // AccountService 已初始化 + + // 权限管理页面 + 'getPermissionStatusFailed': '取得權限狀態失敗', + 'communicationPermissions': '通訊權限', + 'bluetoothPermissions': '藍牙權限', + 'notificationPermissions': '通知權限', + 'storagePermissions': '儲存權限', + 'microphonePermissions': '麥克風權限', + 'alarmPermissions': '鬧鐘權限', + 'calendarPermissions': '日曆權限', + 'locationPermissions': '位置權限', + 'phone': '電話', + 'sms': '簡訊', + 'contacts': '聯絡人', + //'bluetooth': '蓝牙', + 'notification': '通知', + 'alarm': '鬧鐘', + 'calendarWrite': '日曆寫入', + 'calendarFullAccess': '日曆完整存取', + 'locationInfo': '位置資訊', + 'phonePermissionDesc': '用於撥打電話功能', + 'smsPermissionDesc': '用於發送簡訊功能', + 'alarmPermissionDesc': '用於設定精確鬧鐘以確保提醒按時觸發', + 'calendarWritePermissionDesc': '用於建立日曆事件和提醒', + 'calendarFullAccessPermissionDesc': '用於讀取和管理日曆事件及提醒', + 'locationPermissionDesc': '用於取得目前位置資訊', + 'appFunctionNeeds': '應用功能需要', + 'authorized': '已授權', + 'unauthorized': '未授權', + 'needOpenInSystemSettings': '需要在系統設定中開啟', + 'partialAuthorization': '部分授權', + 'unknownStatus': '未知狀態', + 'permissionGranted': '權限已授予', + 'permissionRequestError': '請求權限時出錯', + 'phonePermissionDetailDesc': '撥打電話功能需要電話權限', + 'smsPermissionDetailDesc': '發送簡訊功能需要簡訊權限', + 'alarmPermissionDetailDesc': '設定精確鬧鐘需要此權限,以確保提醒按時觸發', + 'calendarWritePermissionDetailDesc': '建立日曆事件需要日曆寫入權限', + 'calendarFullAccessPermissionDetailDesc': '管理日曆事件需要完整日曆權限', + 'locationPermissionDetailDesc': '取得位置資訊需要位置權限', + 'contactsPermissionDesc': '用於存取聯絡人資訊', + 'contactsPermissionDetailDesc': '撥打電話和發送簡訊功能需要聯絡人權限以選擇聯絡人', + 'bluetoothPermissionDesc': '用於連接和管理藍牙設備', + 'bluetoothPermissionDetailDesc': '連接藍牙耳機等設備需要藍牙權限', + 'bluetoothScanPermissionDesc': '用於掃描附近的藍牙設備', + 'bluetoothScanPermissionDetailDesc': '掃描附近藍牙設備需要藍牙掃描權限', + 'bluetoothConnectPermissionDesc': '用於連接藍牙設備', + 'bluetoothConnectPermissionDetailDesc': '連接藍牙設備需要藍牙連接權限', + 'notificationPermissionDesc': '用於發送通知訊息', + 'notificationPermissionDetailDesc': '應用需要通知權限以向您發送重要提醒和訊息', + 'appNeedsPermissionForFullFunction': '應用需要此權限以提供完整功能', + 'permanentDenialText': '您已永久拒絕{permission}權限,請前往應用設定開啟', + 'goToSettings': '去設定', + + // 权限申请 + 'bluetoothScan': '藍牙掃描', + 'bluetoothConnect': '藍牙連接', + 'bluetoothScanExplanation': '為了掃描附近的藍牙設備,應用需要取得藍牙掃描權限。', + 'bluetoothConnectExplanation': '為了連接藍牙設備,應用需要取得藍牙連接權限。', + 'locationForBluetoothExplanation': '為了掃描藍牙設備,應用需要取得位置資訊權限。', + 'bluetoothScanPermanentDenial': '藍牙掃描權限已被永久拒絕,請前往設定手動開啟。', + 'bluetoothConnectPermanentDenial': '藍牙連接權限已被永久拒絕,請前往設定手動開啟。', + 'locationPermanentDenial': '位置資訊權限已被永久拒絕,請前往設定手動開啟。', + 'notificationPermission': '通知', + 'locationPermission': '定位', + 'notificationPermissionExplanation': '需要通知權限來顯示音樂播放狀態。', + 'locationPermissionExplanation': '需要定位權限來取得當前位置。', + 'notificationPermissionPermanentDenial': '您已永久拒絕通知權限,請前往設定開啟權限。', + 'locationPermissionPermanentDenial': '您已永久拒絕定位權限,請前往設定開啟權限。', +//'microphonePermission': '录音', + 'storagePermission': '儲存', + 'microphonePermissionExplanation': '我們需要存取麥克風權限,以便您錄製音訊內容。', + 'storagePermissionExplanation': '我們需要存取儲存權限,以便您可以選擇並上傳音訊檔案。', + 'microphonePermissionPermanentDenial': + '檢測到您已永久拒絕錄音權限。如需繼續使用此功能,請前往應用設定中手動開啟麥克風權限。', + 'storagePermissionPermanentDenial': + '檢測到您已永久拒絕儲存權限。如需繼續使用此功能,請前往應用設定中手動開啟儲存權限。', + + //permission_util.dart + 'permissionUtilNeed': '需要', + 'permissionUtilPermission': '權限', + 'permissionUtilRestricted': '權限受限', + 'permissionUtilRestrictedMessage': '此功能在當前設備上不可用或受限,請檢查設備設定或系統限制', + 'permissionUtilConfirm': '確定', + + // 版本更新对话框 + 'newVersionFound': '發現新版本', // 版本更新对话框标题 + 'remindLater': '稍後提醒', // 稍后提醒按钮 + 'updateNow': '立即更新', // 立即更新按钮 + 'checkUpdate': '檢查更新', // 检查更新按钮 + 'updateFailed': '更新失敗', // 更新失败提示 + 'cannotOpenAppStore': '無法打開應用商店,請手動前往應用商店更新', // 无法打开应用商店提示 + 'updateErrorRetry': '更新過程中發生錯誤,請稍後重試', // 更新错误重试提示 + + //国家列表 + "邮箱": "電子郵件", + "中国": "中國", + "美国": "美國", + "加拿大": "加拿大", + "俄罗斯": "俄羅斯", + "英国": "英國", + "德国": "德國", + "意大利": "義大利", + "法国": "法國", + "西班牙": "西班牙", + "南非": "南非", + "沙特阿拉伯": "沙特阿拉伯", + "土耳其": "土耳其", + "日本": "日本", + "韩国": "韓國", + "新加坡": "新加坡", + "马来西亚": "馬來西亞", + "泰国": "泰國", + "越南": "越南", + "印度": "印度", + "巴基斯坦": "巴基斯坦", + "菲律宾": "菲律賓", + "印度尼西亚": "印度尼西亞", + "阿联酋": "阿聯酋", + "墨西哥": "墨西哥", + "巴西": "巴西", + "阿根廷": "阿根廷", + "澳大利亚": "澳大利亞", + "新西兰": "新西蘭", + "中国香港": "中國香港", + "中国澳门": "中國澳門", + "中国台湾": "中國台灣", + "埃及": "埃及", + "希腊": "希臘", + "荷兰": "荷蘭", + "比利时": "比利時", + "匈牙利": "匈牙利", + "罗马尼亚": "羅馬尼亞", + "瑞士": "瑞士", + "奥地利": "奧地利", + "丹麦": "丹麥", + "瑞典": "瑞典", + "挪威": "挪威", + "波兰": "波蘭", + "秘鲁": "秘魯", + "智利": "智利", + "哥伦比亚": "哥倫比亞", + "委内瑞拉": "委內瑞拉", + "葡萄牙": "葡萄牙", + "卢森堡": "盧森堡", + "爱尔兰": "愛爾蘭", + "冰岛": "冰島", + "阿尔巴尼亚": "阿爾巴尼亞", + "马耳他": "馬耳他", + "塞浦路斯": "塞浦路斯", + "芬兰": "芬蘭", + "保加利亚": "保加利亞", + "立陶宛": "立陶宛", + "拉脱维亚": "拉脫維亞", + "爱沙尼亚": "愛沙尼亞", + "乌克兰": "烏克蘭", + "塞尔维亚": "塞爾維亞", + "克罗地亚": "克羅埃西亞", + "斯洛文尼亚": "斯洛文尼亞", + "捷克": "捷克", + "斯洛伐克": "斯洛伐克", + "危地马拉": "危地馬拉", + "萨尔瓦多": "薩爾瓦多", + "洪都拉斯": "洪都拉斯", + "尼加拉瓜": "尼加拉瓜", + "哥斯达黎加": "哥斯達黎加", + "巴拿马": "巴拿馬", + "海地": "海地", + "玻利维亚": "玻利維亞", + "厄瓜多尔": "厄瓜多爾", + "巴拉圭": "巴拉圭", + "乌拉圭": "烏拉圭", + "摩洛哥": "摩洛哥", + "阿尔及利亚": "阿爾及利亞", + "突尼斯": "突尼斯", + "尼日利亚": "尼日利亞", + "加纳": "加納", + "埃塞俄比亚": "埃塞俄比亞", + "肯尼亚": "肯尼亞", + "坦桑尼亚": "坦桑尼亞", + "乌干达": "烏干達", + "孟加拉国": "孟加拉國", + "以色列": "以色列", + "黎巴嫩": "黎巴嫩", + "约旦": "約旦", + "伊拉克": "伊拉克", + "科威特": "科威特", + "巴林": "巴林", + "卡塔尔": "卡塔爾", + "阿曼": "阿曼", + "阿富汗": "阿富汗", + "斯里兰卡": "斯里蘭卡", + "缅甸": "緬甸", + "尼泊尔": "尼泊爾", + "蒙古": "蒙古", + "柬埔寨": "柬埔寨", + "老挝": "老撾", + "文莱": "文萊", + "东帝汶": "東帝汶", + "斐济": "斐濟", + "所罗门群岛": "所羅門群島", + "刚果民主共和国": '剛果民主共和國', + "安哥拉": '安哥拉', + "苏丹": '蘇丹', + "马尔代夫": '馬爾代夫', + "不丹": '不丹', + "摩纳哥": '摩納哥', + "圣马力诺": '聖馬力諾', + "牙买加": '牙買加', + "巴哈马": '巴哈馬', + "巴布亚新几内亚": '巴布亞新幾內亞', + "萨摩亚": '薩摩亞', + + // 翻译模块 + // 翻译中间层 (translation_middleware_view.dart) + "pictureTranslation": '圖片翻譯', + "textTranslation": '文本翻譯', + + // 翻译主页 (translation_view.dart) + "translationHistory": "翻譯歷史", + "enableRecording": "是否開啟錄音", + "viewAudioFiles": "查看錄音檔案", + "headsetUser": "耳機使用者", + "phoneUser": "手機使用者", + "selectSourceLanguage": "選擇來源語言", + "selectTargetLanguage": "選擇目標語言", + "me": '我', + "counterPart": '對方', + "bluetoothCallStateError": '請確保藍牙耳機已連接到手機並處於通話狀態', + + // 通用对话按钮与选项(用于统一语言选择弹窗等) + // 以下翻译键的中文文本内容如注释所示 + "autoDetect": '自動檢測', // 自动检测 + // 文本翻译与语种检测 + "languageDetectionFailed": '語言檢測失敗', + "translationFailed": '翻譯失敗', + "pleaseInputText": '請輸入文本', + "textTooLong": '文本過長,最多5000字符', + + // 翻译历史页 + "noTranslationHistory": "暫無歷史記錄", + "historyRecords": '歷史記錄', + "clearResults": '清空結果', + "clearHistory": "清除歷史記錄", + "clearHistoryConfirm": "確定要清除所有翻譯歷史記錄嗎?此操作無法撤銷。", + "unknownLanguage": "未知語言", + "deleteSessionRecord": "刪除對話記錄", + "deleteSessionConfirm": "確定要刪除該對話的所有翻譯記錄嗎?此操作無法撤銷。", + + // 图片翻译模块(Picture Translation) + "selectImageSource": '選擇圖片來源', + "imagePreview": '圖片預覽', + "translationResult": '翻譯結果', + "recognitionResult": '識別結果', + "translatedImagePreview": '翻譯後的圖片預覽', + "translatedImageLoadFailed": '翻譯圖片載入失敗', + "pleaseSelectImage": '請選擇圖片', + "imageLoadFailed": '圖片載入失敗', + "imageQuality": '圖片品質', + "maxSize": '最大尺寸', + "close": '關閉', + "setImageQuality": '設定圖片品質', + "currentQuality": '當前品質: @value%', + "setMaxSize": '設定最大尺寸', + "currentMaxSize": '當前: @pxpx', + "waitingForAction": '等待操作', + "pleaseSelectImageToStart": '請選擇圖片開始翻譯', + "chooseImage": '選擇圖片', + "openingCamera": '正在打開相機...', + "openingPhotoAlbum": '正在打開相簿...', + "cancelled": '已取消', + "userCancelledSelection": '使用者取消了選擇', + "translatingImage": '翻譯圖片', + "callingImageTranslateService": '正在呼叫圖片翻譯服務...', + "savingRecord": '保存記錄', + "savingTranslationResult": '正在保存翻譯結果...', + "translationCompleted": '翻譯完成', + "allStepsCompleted": '所有步驟已完成', + "processingFailed": '處理失敗', + "imageProcessingOrTranslationFailed": '圖片處理或翻譯失敗,請重試。n錯誤資訊: {error}', + "imageTooLarge": '圖片大小超過4MB限制', + "imageTooLargeHint": '圖片大小超過4MB限制,請降低品質或尺寸後重試', + "emptyTranslationResult": '圖片翻譯介面返回空結果', + "imageTranslationFailedTryLater": '圖片翻譯失敗,可能的原因:網路異常或介面限流,請稍後重試', + "imageTranslationApiException": '圖片翻譯介面呼叫異常,請檢查網路後重試', + "permissionRequired": '權限需求', + "cameraPermissionRequired": '需要相機權限才能拍照', + "photoAlbumPermissionRequired": '需要相簿權限才能選擇圖片', + "translationDetails": '翻譯詳情', + "originalImage": '原圖片', + "sourceLanguage": '源語言', + "targetLanguage": '目標語言', + "translationTime": '翻譯時間', + "shareInDevelopment": '分享功能開發中', + + // 翻译录音文件列表页 + "translateAudioFiles": "翻譯錄音檔案", + "noAudioFiles": "暫無音訊檔案", + "calculating": "計算中...", + "playing": "播放中...", + "paused": "已暫停", + "clickToPlay": "點擊播放", + "rename": "重新命名", + "smartTranscription": "智能轉寫", + "renameAudioFile": "重新命名音訊檔案", + "enterNewFileName": "請輸入新的檔案名稱", + + // 翻译详情页 (translation_detail_view.dart) + "originalRecord": "原始記錄", + "recordSummary": "記錄摘要", + "clickToGenerateSummary": "點擊下方按鈕生成對話摘要", + "summaryContent": "摘要內容", + "copied": "已複製", + "summaryCopiledToClipboard": "摘要已複製到剪貼簿", + "extractSummary": "提取摘要", + "summaryGenerated": "已生成摘要", + "generating": "生成中...", + "regenerate": "重新生成", + "summaryTimeoutMessage": "生成摘要請求逾時,可能是網路問題或伺服器繁忙。", + "deleteTranslationRecord": "刪除翻譯記錄", + "deleteTranslationConfirm": "確定要刪除這條翻譯記錄嗎?此操作無法撤銷。", + "originalText": "原文", + "translatedText": "譯文", + "sessionSummary": "對話摘要", + "cannotShare": "無法分享", + "generateSummaryFirst": "請先生成摘要", + "translationSessionRecord": "翻譯對話記錄", + + // 配对模块 + // 配对页面 (pairing_view.dart & pairing_view_new.dart) + "devicePairing": "設備配對", + "connectYourDeepSoundHeadset": "連接您的 Voitrans 耳機", + "bind": "綁定", + "authorizeBind": "授權綁定", + "enterCode": "請輸入代碼", + "autoInputCode": "自動輸入代碼", + "skipBinding": "跳過綁定", + "rescan": "重新掃描", + + "verifyingDevice": "正在驗證設備...", + "confirmBinding": "確認綁定", + "associatingDevice": "正在關聯設備...", + "goToBluetoothSettings": "前往藍牙設定", + 'bluetooth': '藍牙', + + // 配对状态文本 + "readyToPair": "準備開始配對", + "preparingPairingEnvironment": "正在準備配對環境...", + "connectDeepSoundViaSystemBluetooth": "請先透過系統藍牙連接Voitrans設備", + "deviceBindingConfirm": "設備綁定確認...", + "establishingDeviceAssociation": "正在建立設備關聯...", + "waitingCompletePairing": "請稍候,正在完成配對...", + "pairingSuccessRedirecting": "配對成功!即將跳轉到首頁...", + + // 配对错误状态文本 + "ensureConnectedDeepSoundDevice": "請確保連接的是Voitrans設備", + "deviceAlreadyBoundToOtherAccount": "該設備已被其他帳號綁定", + "deviceAssociationFailed": "設備關聯失敗,請重試", + "scanTimeoutEnsureDeviceNearby": "掃描逾時,請確保設備在附近", + "networkError": "網路錯誤", + "authorizationFailedCheckCode": "授權失敗,請檢查授權碼是否正確", + "pairingFailedRetry": "配對失敗,請重試", + + // 配对控制器相关 + //'connectDevice': '连接设备', + 'pleaseEnableBluetooth': '請開啟藍牙', + 'deviceDisconnected': '設備已斷開', + 'readyToStartPairing': '準備開始配對', + 'checkingEnvironment': '正在檢查環境...', + 'ensureHeadsetOnAndPairingMode': '請確保耳機已開啟並進入配對模式', + //'goToBluetoothSettings': '前往蓝牙设置', + //'verifyingDevice': '正在验证设备...', + //'confirmBinding': '确认绑定', + //'associatingDevice': '正在关联设备...', + 'establishingSecureConnection': '正在建立安全連接...', + 'needManualBindingAuthCode': '需要手動綁定授權碼...', + 'pairingSuccessful': '配對成功!', + 'enableBluetooth': '開啟藍牙', + 'grantPermissions': '授予權限', + 'retryAssociation': '重新關聯', + 'retryAuthorization': '重新授權', + 'pleaseGrantNecessaryPermissions': '請授予必要權限', + 'checkFailedRetry': '檢查失敗,請重試', + 'pleaseConnectDeepSoundDevice': '請連接 Voitrans 設備', + 'verificationFailedRetry': '驗證失敗,請重試', + 'invalidDeviceAddress': '設備地址無效', + 'bleDeviceAssociationFailed': 'BLE設備關聯失敗', + 'deviceAssociationFailedRetry': '設備關聯失敗,請重試', + 'bleConnectionTimeoutRetry': 'BLE連接逾時,請重試', + 'blePairingStartupFailed': 'BLE配對啟動失敗', + 'bleConnectionFailed': 'BLE連接失敗', + 'deviceAuthorizationFailedCheckCode': '設備授權失敗,請檢查授權碼', + + ///iOS蓝牙引导窗 + 'bluetoothGuideTitle': '需要手動開啟藍牙', // 需要手动开启蓝牙 + 'bluetoothGuideSteps': '請按照以下步驟操作:', // 请按照以下步骤操作: + 'bluetoothGuideStep1': '開啟藍牙:設定 → 藍牙 → 開啟', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': '連接設備:在"我的設備"中找到您的設備並點擊連接', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': '返回應用繼續配對流程', // 返回应用继续配对流程 + 'bluetoothGuideTip': '提示:也可以從控制中心長按藍牙圖標快速進入藍牙設定', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'iKnow': '我知道了', // 我知道了 + + //用户反馈页 + "feedback": "使用者回饋", + 'feedbackInfo': '提供反饋或建議', + 'feedbackDescription': '請描述您遇到的問題或建議', + 'feedbackHint': '請輸入您的反饋內容...', + 'feedbackRequired': '請輸入反饋內容', + 'contactInfo': '聯絡方式', + 'contactHint': '電子郵件/手機號,方便我們聯絡您', + 'submit': '提交', + 'feedbackSubmitSuccess': '反饋提交成功,感謝您的反饋!', + 'feedbackSubmitFailed': '反饋提交失敗,請稍後重試', + + // OTA升级模块 + "upgradeExitConfirm": "當前正在升級,退出將中斷升級進程,確定要退出嗎?", + "deviceModel": "設備型號", + "unknownDevice": "未知設備", + "currentFirmwareVersion": "當前韌體版本", + "latestFirmwareVersion": "最新韌體版本", + "ota_newVersionFound": "發現新版本", + "latestVersion": "已是最新版本", + "gettingDeviceInfo": "正在取得設備資訊...", + "keepDeviceConnected": "請保持設備連接", + "connectionFailed": "連接失敗", + "retryConnection": "重試連接", + "ota_updateNow": "立即更新", + "otaVersionInfoFailed": '取得版本資訊失敗,請稍後重試', + "otaDeviceInfoUnavailable": '無法取得設備資訊,請檢查連接後重試', + "otaProductInfoUnavailable": '無法識別當前設備,請重新連接後重試', + "otaFirmwareVersionInvalid": '設備韌體版本異常,請重新連接後重試', + "keepConnectedDontClose": "請保持設備連接,不要關閉應用", + "doNotDisconnect": "請勿斷開連接", + "charging": "充電中", + "updateContent": "更新內容", + "removeEarbudsEnsureBattery": "取出雙耳機,並保證電量均為20%以上的狀態", + + // 音乐列表页面 + "noMusic": "暫無音樂", // 暂无音乐 + "noPlayingMusic": "暫無播放音樂", // 暂无播放音乐 + "unknownSong": "未知歌曲", // 未知歌曲 + "unknownArtist": "未知歌手", // 未知歌手 + "playAll": "播放全部", // 播放全部 + + // 语言名称 + "中文(简体)": "中文(簡體)", + "中文(繁体)": "中文(繁體)", + "中文(香港繁体)": "中文(香港繁體)", + "英语": "英語", + "日语": "日語", + "韩语": "韓語", + "法语": "法語", + "西班牙语": "西班牙語", + "葡萄牙语": "葡萄牙語", + "意大利语": "義大利語", + "德语": "德語", + "俄语": "俄語", + "波兰语": "波蘭語", + "荷兰语": "荷蘭語", + "瑞典语": "瑞典語", + "捷克语": "捷克語", + "现代希腊语": "現代希臘語", + "罗马尼亚语": "羅馬尼亞語", + "匈牙利语": "匈牙利語", + "乌克兰语": "烏克蘭語", + "丹麦语": "丹麥語", + "芬兰语": "芬蘭語", + "挪威语": "挪威語", + "克罗地亚语": "克羅埃西亞語", + "加泰隆语": "加泰羅尼亞語", + "阿拉伯语": "阿拉伯語", + "泰语": "泰語", + "越南语": "越南語", + "印尼语": "印尼語", + "印地语": "印地語", + "土耳其语": "土耳其語", + "马来语": "馬來語", + "孟加拉语": "孟加拉語", + "泰米尔语": "泰米爾語", + "泰卢固语": "泰盧固語", + "马拉提语": "馬拉提語", + "乌尔都语": "烏爾都語", + "波斯语": "波斯語", + "斯瓦希里语": "斯瓦希里語", + + // 时间相关 + "justNow": '剛剛', + "minutesAgo": '@minutes分鐘前', + "yesterday": '昨天', + // 时间扩展(图片翻译模块使用) + "daysAgo": '@days天前', + "hoursAgo": '@hours小時前', + + //补充 + "insufficientIntegral": '積分不足', + + //余额不足弹窗 + "insufficientBalanceDesc": "餘額不足,請前往對應充值界面進行充值", + "recharge": "去充值", + // 会员到期提示 + "aiMemberExpiredDesc": 'AI會員已到期,請前往會員充值續費', +}; diff --git a/lib/modules/settings/controllers/settings_controller.dart b/lib/modules/settings/controllers/settings_controller.dart index 4eff2d73e..3a5860cd8 100644 --- a/lib/modules/settings/controllers/settings_controller.dart +++ b/lib/modules/settings/controllers/settings_controller.dart @@ -27,7 +27,9 @@ class SettingsController extends GetxController { LanguageModel(name: 'english', alias: 'English', value: 'en_US'), // 英语.tr LanguageModel(name: 'chinese', alias: '中文', value: 'zh_CN'), // 中文.tr LanguageModel( - name: 'traditionalChinese', alias: '繁體中文', value: 'zh_HK'), // 添加繁体中文 + name: 'traditionalChinese', alias: '繁體中文', value: 'zh_TW'), // 添加繁体中文 + LanguageModel( + name: 'traditionalChineseHK', alias: '繁體中文(HK)', value: 'zh_HK'), // 添加香港繁体中文 LanguageModel( name: 'spanish', alias: 'Español', value: 'es_ES'), // 添加西班牙语选项 LanguageModel(