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", "malay": "Malay",
"turkish": "Turkish", "turkish": "Turkish",
"polish": "Polish", "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", "welcome": "Welcome",
@ -68,10 +88,14 @@ const Map<String, String> enUS = {
"invalidPhoneFormat": "Invalid phone number format", "invalidPhoneFormat": "Invalid phone number format",
"tip": "Tip", "tip": "Tip",
"pleaseEnterCompleteCode": "Please enter the complete verification code", "pleaseEnterCompleteCode": "Please enter the complete verification code",
// 登录错误提示
"loginFailed": "Login failed, please try again", "loginFailed": "Login failed, please try again",
'pleaseAcceptPrivacyPolicy': 'pleaseAcceptPrivacyPolicy':
'Please read and accept the Privacy Policy and User Agreement first', '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", "deviceStatus": "Device Status",
@ -127,6 +151,9 @@ const Map<String, String> enUS = {
"allRoundAssistant": "All-round Assistant", "allRoundAssistant": "All-round Assistant",
"allRoundAssistantInfo": "Helps solve various problems", "allRoundAssistantInfo": "Helps solve various problems",
"simultaneousTranslation": "Real-time Translation", "simultaneousTranslation": "Real-time Translation",
"faceToFaceTranslation": "Face-to-face Translation",
'audioVideoTranslation': 'Audio/Video Translation',
'callTranslation': 'Call Translation',
"simultaneousTranslationInfo": "Instant translation for 80+ languages", "simultaneousTranslationInfo": "Instant translation for 80+ languages",
"aiGirlfriend": "Parent-child bondingn", "aiGirlfriend": "Parent-child bondingn",
"aiGirlfriendInfo": "Intelligent company, chat at any time", "aiGirlfriendInfo": "Intelligent company, chat at any time",
@ -212,16 +239,32 @@ const Map<String, String> enUS = {
"imListening": "Listening...", "imListening": "Listening...",
"canStartTalking": "You may start speaking", "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", "selectSourceLanguage": "Select Source Language",
"selectTargetLanguage": "Select Target 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", "editProfile": "Edit Profile",
"nickname": "Nickname", "nickname": "Nickname",
"save": "Save", "save": "Save",
//国家列表 // 国家列表
"邮箱": "Email", "邮箱": "Email",
"中国": "China", "中国": "China",
"美国": "United States", "美国": "United States",
@ -329,7 +372,7 @@ const Map<String, String> enUS = {
"斐济": "Fiji", "斐济": "Fiji",
"所罗门群岛": "Solomon Islands", "所罗门群岛": "Solomon Islands",
// Personal Assistant Emma // 个人助理Emma
"personalAssistantName": "Emma", "personalAssistantName": "Emma",
"personalAssistantDescription": "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!", "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?", "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!", "personalAssistantVoiceWelcome": "I'm here!",
// 同声传译 Lucy // 导航
"driving": "Driving",
"walking": "Walking",
"bicycling": "Cycling",
"tsransit": "Transit",
// 同声传译Lucy
"interpreterName": "Simultaneous Interpreter", "interpreterName": "Simultaneous Interpreter",
"interpreterDescription": "interpreterDescription":
"Hi! I'm Lucy, a professional English-Chinese interpreter specializing in real-time translation for meetings, lectures, and conversations, making communication barrier-free.", "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 ... // ... existing code ...
// 亲子陪伴 芯愿 // 亲子陪伴芯愿
"companionName": "XinYuan", "companionName": "XinYuan",
"companionDescription": "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.", "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.", "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!", "companionVoiceWelcome": "I'm here with you!",
// 多功能AI聊天 吴小江 // 多功能AI聊天吴小江
"healthAdvisorName": "AI Chat Assistant Wu", "healthAdvisorName": "AI Chat Assistant Wu",
"healthAdvisorDescription": "healthAdvisorDescription":
"I'm Wu, ready to provide you with various AI chat features.", "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?", "Hello, I'm Wu. I'm happy to assist you with AI chat features. How may I help you today?",
"healthAdvisorVoiceWelcome": "I'm here!", "healthAdvisorVoiceWelcome": "I'm here!",
// Translation History // 翻译音频文件列表页
"noTranslationHistory": "No translation history", "translateAudioFiles": "Translate Audio Files",
"clearHistory": "Clear History", "noAudioFiles": "No audio files",
"clearHistoryConfirm": "calculating": "Calculating...",
"Are you sure you want to clear all translation history? This action cannot be undone.", "playing": "Playing...",
"translationHistory": "Translation History", "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", "feedback": "Feedback",
'feedbackInfo': 'Provide feedback or suggestions', 'feedbackInfo': 'Provide feedback or suggestions',
'feedbackDescription': 'Please describe your issue or suggestion', 'feedbackDescription': 'Please describe your issue or suggestion',
@ -385,7 +503,7 @@ const Map<String, String> enUS = {
'feedbackSubmitSuccess': 'Feedback submitted successfully, thank you!', 'feedbackSubmitSuccess': 'Feedback submitted successfully, thank you!',
'feedbackSubmitFailed': 'Failed to submit feedback, please try again later', 'feedbackSubmitFailed': 'Failed to submit feedback, please try again later',
// Language names // 语言名称
"中文(简体)": "Chinese (Simplified)", "中文(简体)": "Chinese (Simplified)",
"中文(繁体)": "Chinese (Traditional)", "中文(繁体)": "Chinese (Traditional)",
"中文(香港繁体)": "Chinese (Hong Kong)", "中文(香港繁体)": "Chinese (Hong Kong)",

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

@ -46,6 +46,26 @@ const Map<String, String> zhCN = {
"malay": "马来语", "malay": "马来语",
"turkish": "土耳其语", "turkish": "土耳其语",
"polish": "波兰语", "polish": "波兰语",
"filipino": "菲律宾语",
"dutch": "荷兰语",
"swedish": "瑞典语",
"danish": "丹麦语",
"finnish": "芬兰语",
"czech": "捷克语",
"hungarian": "匈牙利语",
"norwegian": "挪威语",
"romanian": "罗马尼亚语",
"ukrainian": "乌克兰语",
"greek": "希腊语",
"bulgarian": "保加利亚语",
"croatian": "克罗地亚语",
"slovak": "斯洛伐克语",
"slovenian": "斯洛文尼亚语",
"lithuanian": "立陶宛语",
"latvian": "拉脱维亚语",
"estonian": "爱沙尼亚语",
"serbian": "塞尔维亚语",
"icelandic": "冰岛语",
// 登录页 // 登录页
"welcome": "欢迎使用", "welcome": "欢迎使用",
@ -69,6 +89,11 @@ const Map<String, String> zhCN = {
"pleaseEnterCompleteCode": "请输入完整的验证码", "pleaseEnterCompleteCode": "请输入完整的验证码",
"loginFailed": "登录失败,请重试", "loginFailed": "登录失败,请重试",
'pleaseAcceptPrivacyPolicy': '请先阅读并同意隐私政策和用户协议', 'pleaseAcceptPrivacyPolicy': '请先阅读并同意隐私政策和用户协议',
"enterVerificationCode": "输入验证码",
"verificationCodeSentTo": "验证码已发送至",
"resendVerificationCode": "重新发送验证码",
"login": "登录",
"usePasswordLogin": "使用密码登录",
// 首页 // 首页
"deviceStatus": "设备状态", "deviceStatus": "设备状态",
@ -206,10 +231,6 @@ const Map<String, String> zhCN = {
"imListening": "正在聆听...", "imListening": "正在聆听...",
"canStartTalking": "你可以开始说话", "canStartTalking": "你可以开始说话",
// 翻译页
"selectSourceLanguage": "选择源语言",
"selectTargetLanguage": "选择目标语言",
//编辑个人信息页 //编辑个人信息页
"editProfile": "编辑个人信息", "editProfile": "编辑个人信息",
"nickname": "昵称", "nickname": "昵称",
@ -323,47 +344,12 @@ const Map<String, String> zhCN = {
"斐济": "斐济", "斐济": "斐济",
"所罗门群岛": "所罗门群岛", "所罗门群岛": "所罗门群岛",
// 个人助理 Emma
"personalAssistantName": "个人助理 Emma",
"personalAssistantDescription":
"你好,我是 Emma,一位全能型 AI 助理。无论是工作规划、学习建议、生活安排,还是其他任何问题,我都很乐意为你提供帮助。让我们一起提高效率,实现目标!",
"assistantTag": "助理",
"personalAssistantWelcome":
"你好!我是 Emma,很高兴成为你的私人助理。我可以帮你处理各种任务,比如时间管理、目标规划、信息整理等。有什么我可以帮你的吗?",
"personalAssistantVoiceWelcome": "我在呢!",
// 导航 // 导航
"driving": "驾车", "driving": "驾车",
"walking": "步行", "walking": "步行",
"bicycling": "骑行", "bicycling": "骑行",
"tsransit": "公交", "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) // 翻译主页 (translation_view.dart)
"translationHistory": "翻译历史", "translationHistory": "翻译历史",
@ -371,6 +357,8 @@ const Map<String, String> zhCN = {
"viewAudioFiles": "查看录音文件", "viewAudioFiles": "查看录音文件",
"headsetUser": "耳机用户", "headsetUser": "耳机用户",
"phoneUser": "手机用户", "phoneUser": "手机用户",
"selectSourceLanguage": "选择源语言",
"selectTargetLanguage": "选择目标语言",
// 翻译历史页 (translation_history_view.dart) // 翻译历史页 (translation_history_view.dart)
"noTranslationHistory": "暂无历史记录", "noTranslationHistory": "暂无历史记录",
@ -424,12 +412,15 @@ const Map<String, String> zhCN = {
"skipBinding": "跳过绑定", "skipBinding": "跳过绑定",
"rescan": "重新扫描", "rescan": "重新扫描",
"skip": "跳过", "skip": "跳过",
"verifyingDevice": "正在验证设备...",
"confirmBinding": "确认绑定",
"associatingDevice": "正在关联设备...",
"goToBluetoothSettings": "前往蓝牙设置",
// 配对状态文本 // 配对状态文本
"readyToPair": "准备开始配对", "readyToPair": "准备开始配对",
"preparingPairingEnvironment": "正在准备配对环境...", "preparingPairingEnvironment": "正在准备配对环境...",
"connectDeepSoundViaSystemBluetooth": "请先通过系统蓝牙连接DeapSound设备", "connectDeepSoundViaSystemBluetooth": "请先通过系统蓝牙连接DeapSound设备",
"verifyingDevice": "正在验证设备...",
"deviceBindingConfirm": "设备绑定确认...", "deviceBindingConfirm": "设备绑定确认...",
"establishingDeviceAssociation": "正在建立设备关联...", "establishingDeviceAssociation": "正在建立设备关联...",
"waitingCompletePairing": "请稍候,正在完成配对...", "waitingCompletePairing": "请稍候,正在完成配对...",

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

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

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

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

Loading…
Cancel
Save