Browse Source

fix: 修复翻译文件格式问题并补充缺失的翻译项

修复翻译文件中格式不一致的问题,补充缺失的翻译项,包括登录页验证码相关文本和多种语言名称
newdev_shunjiawei
lxm 1 year ago
parent
commit
bf966bb29e
  1. 2
      lib/core/themes/app_theme.dart
  2. 150
      lib/core/translations/language/en_us.dart
  3. 71
      lib/core/translations/language/zh_cn.dart
  4. 20
      lib/modules/login/views/login_view.dart
  5. 7
      lib/modules/settings/controllers/settings_controller.dart

2
lib/core/themes/app_theme.dart

@ -69,4 +69,4 @@ class AppTheme {
),
),
);
}
}

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

@ -46,6 +46,26 @@ const Map<String, String> enUS = {
"malay": "Malay",
"turkish": "Turkish",
"polish": "Polish",
"filipino": "Filipino",
"dutch": "Dutch",
"swedish": "Swedish",
"danish": "Danish",
"finnish": "Finnish",
"czech": "Czech",
"hungarian": "Hungarian",
"norwegian": "Norwegian",
"romanian": "Romanian",
"ukrainian": "Ukrainian",
"greek": "Greek",
"bulgarian": "Bulgarian",
"croatian": "Croatian",
"slovak": "Slovak",
"slovenian": "Slovenian",
"lithuanian": "Lithuanian",
"latvian": "Latvian",
"estonian": "Estonian",
"serbian": "Serbian",
"icelandic": "Icelandic",
// 登录页
"welcome": "Welcome",
@ -68,10 +88,14 @@ const Map<String, String> enUS = {
"invalidPhoneFormat": "Invalid phone number format",
"tip": "Tip",
"pleaseEnterCompleteCode": "Please enter the complete verification code",
// 登录错误提示
"loginFailed": "Login failed, please try again",
'pleaseAcceptPrivacyPolicy':
'Please read and accept the Privacy Policy and User Agreement first',
"enterVerificationCode": "Enter verification code",
"verificationCodeSentTo": "Verification code sent to",
"resendVerificationCode": "Resend verification code",
"login": "Login",
"usePasswordLogin": "Use password login",
// 首页
"deviceStatus": "Device Status",
@ -127,6 +151,9 @@ const Map<String, String> enUS = {
"allRoundAssistant": "All-round Assistant",
"allRoundAssistantInfo": "Helps solve various problems",
"simultaneousTranslation": "Real-time Translation",
"faceToFaceTranslation": "Face-to-face Translation",
'audioVideoTranslation': 'Audio/Video Translation',
'callTranslation': 'Call Translation',
"simultaneousTranslationInfo": "Instant translation for 80+ languages",
"aiGirlfriend": "Parent-child bondingn",
"aiGirlfriendInfo": "Intelligent company, chat at any time",
@ -212,16 +239,32 @@ const Map<String, String> enUS = {
"imListening": "Listening...",
"canStartTalking": "You may start speaking",
// 翻译页
// 翻译模块
// 翻译主页
"translationHistory": "Translation History",
"enableRecording": "Enable Recording",
"viewAudioFiles": "View Audio Files",
"headsetUser": "Headset User",
"phoneUser": "Phone User",
"selectSourceLanguage": "Select Source Language",
"selectTargetLanguage": "Select Target Language",
//编辑个人信息页
// 翻译历史页
"noTranslationHistory": "No translation history",
"clearHistory": "Clear History",
"clearHistoryConfirm":
"Are you sure you want to clear all translation history? This action cannot be undone.",
"unknownLanguage": "Unknown Language",
"deleteSessionRecord": "Delete Session Record",
"deleteSessionConfirm":
"Are you sure you want to delete all translation records for this session? This action cannot be undone.",
// 编辑个人信息页
"editProfile": "Edit Profile",
"nickname": "Nickname",
"save": "Save",
//国家列表
// 国家列表
"邮箱": "Email",
"中国": "China",
"美国": "United States",
@ -329,7 +372,7 @@ const Map<String, String> enUS = {
"斐济": "Fiji",
"所罗门群岛": "Solomon Islands",
// Personal Assistant Emma
// 个人助理Emma
"personalAssistantName": "Emma",
"personalAssistantDescription":
"Hi, I'm Emma, a versatile AI assistant. Whether it's work planning, study advice, life arrangements, or any other issues, I'm happy to help. Let's improve efficiency and achieve goals together!",
@ -338,7 +381,13 @@ const Map<String, String> enUS = {
"Hello! I'm Emma, and I'm happy to be your personal assistant. I can help you with various tasks such as time management, goal planning, information organization, etc. What can I help you with?",
"personalAssistantVoiceWelcome": "I'm here!",
// 同声传译 Lucy
// 导航
"driving": "Driving",
"walking": "Walking",
"bicycling": "Cycling",
"tsransit": "Transit",
// 同声传译Lucy
"interpreterName": "Simultaneous Interpreter",
"interpreterDescription":
"Hi! I'm Lucy, a professional English-Chinese interpreter specializing in real-time translation for meetings, lectures, and conversations, making communication barrier-free.",
@ -348,7 +397,7 @@ const Map<String, String> enUS = {
// ... existing code ...
// 亲子陪伴 芯愿
// 亲子陪伴芯愿
"companionName": "XinYuan",
"companionDescription":
"I am XinYuan, your dedicated parent-child companion, gentle and understanding. Whether you want to chat, share concerns, or need companionship, I'll always be by your side.",
@ -357,7 +406,7 @@ const Map<String, String> enUS = {
"Hello! Finally meeting you! I'm XinYuan, your dedicated parent-child companion. How was your day? Is there anything you'd like to share with me? I'm always here, ready to listen to your thoughts.",
"companionVoiceWelcome": "I'm here with you!",
// 多功能AI聊天 吴小江
// 多功能AI聊天吴小江
"healthAdvisorName": "AI Chat Assistant Wu",
"healthAdvisorDescription":
"I'm Wu, ready to provide you with various AI chat features.",
@ -366,14 +415,83 @@ const Map<String, String> enUS = {
"Hello, I'm Wu. I'm happy to assist you with AI chat features. How may I help you today?",
"healthAdvisorVoiceWelcome": "I'm here!",
// Translation History
"noTranslationHistory": "No translation history",
"clearHistory": "Clear History",
"clearHistoryConfirm":
"Are you sure you want to clear all translation history? This action cannot be undone.",
"translationHistory": "Translation History",
// 翻译音频文件列表页
"translateAudioFiles": "Translate Audio Files",
"noAudioFiles": "No audio files",
"calculating": "Calculating...",
"playing": "Playing...",
"paused": "Paused",
"clickToPlay": "Click to play",
"rename": "Rename",
"smartTranscription": "Smart Transcription",
"renameAudioFile": "Rename Audio File",
"enterNewFileName": "Please enter new file name",
// 翻译详情页
"originalRecord": "Original Record",
"recordSummary": "Record Summary",
"clickToGenerateSummary":
"Click the button below to generate session summary",
"summaryContent": "Summary Content",
"copied": "Copied",
"summaryCopiledToClipboard": "Summary copied to clipboard",
"extractSummary": "Extract Summary",
"summaryGenerated": "Summary generated",
"generating": "Generating...",
"regenerate": "Regenerate",
"summaryTimeoutMessage":
"Summary generation request timed out, possibly due to network issues or server busy.",
"deleteTranslationRecord": "Delete Translation Record",
"deleteTranslationConfirm":
"Are you sure you want to delete this translation record? This action cannot be undone.",
"originalText": "Original Text",
"translatedText": "Translated Text",
"sessionSummary": "Session Summary",
"cannotShare": "Cannot Share",
"generateSummaryFirst": "Please generate summary first",
"translationSessionRecord": "Translation Session Record",
// 配对模块
// 配对页面
"devicePairing": "Device Pairing",
"connectYourDeepSoundHeadset": "Connect Your DeepSound Headset",
"bind": "Bind",
"authorizeBind": "Authorize Binding",
"enterCode": "Please enter code",
"autoInputCode": "Auto Input Code",
"skipBinding": "Skip Binding",
"rescan": "Rescan",
"skip": "Skip",
"verifyingDevice": "Verifying device...",
"confirmBinding": "Confirm Binding",
"associatingDevice": "Associating device...",
"goToBluetoothSettings": "Go to Bluetooth Settings",
// 配对状态文本
"readyToPair": "Ready to pair",
"preparingPairingEnvironment": "Preparing pairing environment...",
"connectDeepSoundViaSystemBluetooth":
"Please connect DeepSound device via system Bluetooth first",
"deviceBindingConfirm": "Device binding confirmation...",
"establishingDeviceAssociation": "Establishing device association...",
"waitingCompletePairing": "Please wait, completing pairing...",
"pairingSuccessRedirecting":
"Pairing successful! Redirecting to home page...",
// 配对错误状态文本
"ensureConnectedDeepSoundDevice":
"Please ensure connected device is DeepSound",
"deviceAlreadyBoundToOtherAccount":
"This device is already bound to another account",
"deviceAssociationFailed": "Device association failed, please retry",
"scanTimeoutEnsureDeviceNearby":
"Scan timeout, please ensure device is nearby",
"networkError": "Network error",
"authorizationFailedCheckCode":
"Authorization failed, please check authorization code",
"pairingFailedRetry": "Pairing failed, please retry",
// User Feedback Page
// 用户反馈页
"feedback": "Feedback",
'feedbackInfo': 'Provide feedback or suggestions',
'feedbackDescription': 'Please describe your issue or suggestion',
@ -385,7 +503,7 @@ const Map<String, String> enUS = {
'feedbackSubmitSuccess': 'Feedback submitted successfully, thank you!',
'feedbackSubmitFailed': 'Failed to submit feedback, please try again later',
// Language names
// 语言名称
"中文(简体)": "Chinese (Simplified)",
"中文(繁体)": "Chinese (Traditional)",
"中文(香港繁体)": "Chinese (Hong Kong)",

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

@ -46,6 +46,26 @@ const Map<String, String> zhCN = {
"malay": "马来语",
"turkish": "土耳其语",
"polish": "波兰语",
"filipino": "菲律宾语",
"dutch": "荷兰语",
"swedish": "瑞典语",
"danish": "丹麦语",
"finnish": "芬兰语",
"czech": "捷克语",
"hungarian": "匈牙利语",
"norwegian": "挪威语",
"romanian": "罗马尼亚语",
"ukrainian": "乌克兰语",
"greek": "希腊语",
"bulgarian": "保加利亚语",
"croatian": "克罗地亚语",
"slovak": "斯洛伐克语",
"slovenian": "斯洛文尼亚语",
"lithuanian": "立陶宛语",
"latvian": "拉脱维亚语",
"estonian": "爱沙尼亚语",
"serbian": "塞尔维亚语",
"icelandic": "冰岛语",
// 登录页
"welcome": "欢迎使用",
@ -69,6 +89,11 @@ const Map<String, String> zhCN = {
"pleaseEnterCompleteCode": "请输入完整的验证码",
"loginFailed": "登录失败,请重试",
'pleaseAcceptPrivacyPolicy': '请先阅读并同意隐私政策和用户协议',
"enterVerificationCode": "输入验证码",
"verificationCodeSentTo": "验证码已发送至",
"resendVerificationCode": "重新发送验证码",
"login": "登录",
"usePasswordLogin": "使用密码登录",
// 首页
"deviceStatus": "设备状态",
@ -206,10 +231,6 @@ const Map<String, String> zhCN = {
"imListening": "正在聆听...",
"canStartTalking": "你可以开始说话",
// 翻译页
"selectSourceLanguage": "选择源语言",
"selectTargetLanguage": "选择目标语言",
//编辑个人信息页
"editProfile": "编辑个人信息",
"nickname": "昵称",
@ -323,47 +344,12 @@ const Map<String, String> zhCN = {
"斐济": "斐济",
"所罗门群岛": "所罗门群岛",
// 个人助理 Emma
"personalAssistantName": "个人助理 Emma",
"personalAssistantDescription":
"你好,我是 Emma,一位全能型 AI 助理。无论是工作规划、学习建议、生活安排,还是其他任何问题,我都很乐意为你提供帮助。让我们一起提高效率,实现目标!",
"assistantTag": "助理",
"personalAssistantWelcome":
"你好!我是 Emma,很高兴成为你的私人助理。我可以帮你处理各种任务,比如时间管理、目标规划、信息整理等。有什么我可以帮你的吗?",
"personalAssistantVoiceWelcome": "我在呢!",
// 导航
"driving": "驾车",
"walking": "步行",
"bicycling": "骑行",
"tsransit": "公交",
// 同声传译 Lucy
"interpreterName": "同声传译",
"interpreterDescription":
"Hello!我是 Lucy,一名专业的中英同声翻译官,擅长在会议、讲座、对话场景中进行实时翻译,让沟通无障碍。",
"interpreterTag": "翻译",
"interpreterWelcome":
"大家好!我是同声翻译官 Lucy,为你在中英之间提供实时翻译。你说中文,我就给你翻译成英文;你说英文,我就给你翻译成中文。现在,开始我们的翻译吧!",
// ... existing code ...
// 亲子陪伴 芯愿
"companionName": "亲子陪伴 芯愿",
"companionDescription":
"我是你的专属亲子陪伴芯愿,温柔体贴,善解人意。无论你想聊天、倾诉烦恼,还是需要陪伴,我都会一直在你身边。",
"companionTag": "情感",
"companionWelcome":
"您好呀,终于等到你啦!我是芯愿,你的专属亲子陪伴。今天过得怎么样?有什么想和我分享的吗?我一直都在这里,随时倾听你的心声。",
"companionVoiceWelcome": "我在这里陪着你!",
// 多功能AI聊天 吴小江
"healthAdvisorName": "多功能AI聊天 吴小江",
"healthAdvisorDescription": "我是吴小江,我可以为你提供更多AI聊天功能。",
"healthAdvisorTag": "健康",
"healthAdvisorWelcome": "您好,我是吴小江,很高兴能为您提供多功能AI聊天。我将用专业知识帮助您。请问有什么问题想咨询吗?",
"healthAdvisorVoiceWelcome": "我在这里!",
// 翻译模块
// 翻译主页 (translation_view.dart)
"translationHistory": "翻译历史",
@ -371,6 +357,8 @@ const Map<String, String> zhCN = {
"viewAudioFiles": "查看录音文件",
"headsetUser": "耳机用户",
"phoneUser": "手机用户",
"selectSourceLanguage": "选择源语言",
"selectTargetLanguage": "选择目标语言",
// 翻译历史页 (translation_history_view.dart)
"noTranslationHistory": "暂无历史记录",
@ -424,12 +412,15 @@ const Map<String, String> zhCN = {
"skipBinding": "跳过绑定",
"rescan": "重新扫描",
"skip": "跳过",
"verifyingDevice": "正在验证设备...",
"confirmBinding": "确认绑定",
"associatingDevice": "正在关联设备...",
"goToBluetoothSettings": "前往蓝牙设置",
// 配对状态文本
"readyToPair": "准备开始配对",
"preparingPairingEnvironment": "正在准备配对环境...",
"connectDeepSoundViaSystemBluetooth": "请先通过系统蓝牙连接DeapSound设备",
"verifyingDevice": "正在验证设备...",
"deviceBindingConfirm": "设备绑定确认...",
"establishingDeviceAssociation": "正在建立设备关联...",
"waitingCompletePairing": "请稍候,正在完成配对...",

20
lib/modules/login/views/login_view.dart

@ -236,8 +236,8 @@ class LoginView extends GetView<LoginController> {
controller: controller.contactController,
decoration: InputDecoration(
hintText: controller.selectedCountryFlag == '✉️'
? 'email'.tr // 需要在翻译文件中添加
: 'phoneNumber'.tr, // 需要在翻译文件中添加
? 'email'.tr // 邮箱
: 'phoneNumber'.tr, // 手机号码
hintStyle: TextStyle(
fontSize: 14.sp,
color: isDarkMode
@ -303,7 +303,7 @@ class LoginView extends GetView<LoginController> {
style: TextStyle(fontSize: 24.sp),
),
title: Text(
'${country['name']}'.tr,
'${country['name']}'.tr, // 国家名称
style: TextStyle(
color: isDarkMode ? Colors.white : Colors.black,
),
@ -584,7 +584,7 @@ class LoginView extends GetView<LoginController> {
),
SizedBox(width: 4.w),
Text(
'expressConsent'.tr,
'expressConsent'.tr, // 登录/注册即表示你同意
style: TextStyle(
fontSize: 13.sp,
color: isDarkMode ? Colors.grey[400] : Colors.grey[700],
@ -680,7 +680,7 @@ class LoginView extends GetView<LoginController> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'输入验证码',
'enterVerificationCode'.tr, // 输入验证码
style: TextStyle(
fontSize: 20.sp,
fontWeight: FontWeight.w600,
@ -689,7 +689,7 @@ class LoginView extends GetView<LoginController> {
),
SizedBox(height: 8.h),
Obx(() => Text(
'验证码已发送至 ${controller.displayContact}',
'${'verificationCodeSentTo'.tr} ${controller.displayContact}', // 验证码已发送至
style: TextStyle(
fontSize: 14.sp,
color: isDarkMode ? Colors.grey[400] : Colors.grey[600],
@ -767,8 +767,8 @@ class LoginView extends GetView<LoginController> {
),
label: Text(
controller.countdownSeconds > 0
? '重新发送验证码 (${controller.countdownSeconds}s)'
: '重新发送验证码',
? '${'resendVerificationCode'.tr} (${controller.countdownSeconds}s)' // 重新发送验证码 (倒计时)
: 'resendVerificationCode'.tr, // 重新发送验证码
style: TextStyle(
fontSize: 14.sp,
color: controller.countdownSeconds > 0
@ -808,7 +808,7 @@ class LoginView extends GetView<LoginController> {
),
)
: Text(
'登录',
'login'.tr, // 登录
style: TextStyle(
fontSize: 16.sp,
fontWeight: FontWeight.w600,
@ -824,7 +824,7 @@ class LoginView extends GetView<LoginController> {
child: TextButton(
onPressed: controller.usePasswordLogin,
child: Text(
'使用密码登录',
'usePasswordLogin'.tr, // 使用密码登录
style: TextStyle(
fontSize: 14.sp,
color:

7
lib/modules/settings/controllers/settings_controller.dart

@ -23,9 +23,7 @@ class SettingsController extends GetxController {
// 语言设置
final List<LanguageModel> languageList = [
LanguageModel(
name: 'followingSystem', // 跟随系统.tr
alias: '',
value: 'system'),
name: 'followingSystem', alias: '', value: 'system'), // 跟随系统.tr
LanguageModel(name: 'english', alias: 'English', value: 'en_US'), // 英语.tr
LanguageModel(name: 'chinese', alias: '中文', value: 'zh_CN'), // 中文.tr
LanguageModel(
@ -78,8 +76,7 @@ class SettingsController extends GetxController {
LanguageModel(name: 'estonian', alias: 'Eesti', value: 'et_EE'), // 爱沙尼亚语
LanguageModel(
name: 'serbian', alias: 'Srpski', value: 'sr_RS'), // 塞尔维亚语(拉丁)
LanguageModel(
name: 'icelandic', alias: 'Íslenska', value: 'is_IS'), // 新增冰岛语
LanguageModel(name: 'icelandic', alias: 'Íslenska', value: 'is_IS'), // 冰岛语
];
Rx<LanguageModel> language = LanguageModel().obs;

Loading…
Cancel
Save