import 'package:flutter/material.dart'; import 'package:flutter_habit/common/LocalData.dart'; class I18N { static String _language; static void init() { _language = LocalData.getInstance().getString("language"); if (_language ==null) { _language = "cn"; LocalData.getInstance().setString("language", _language); } debugPrint("init I18N to $_language"); } static String of(String key) { return wordMap[_language][key] ?? "${_language.toUpperCase()}_$key"; // return key.toString(); } static String getLanguage() { return _language; } static void setLanguage(String language) { _language = language; LocalData.getInstance().setString("language", _language); } } Map> wordMap = { "cn" : { "" : "", "7日运动次数" : "7日运动次数", "7日运动总消耗" : "7日运动总消耗", "BMI" : "BMI", "ID" : "ID", "MarkDown预览" : "MarkDown预览", "不能关注自己" : "不能关注自己", "裁剪图片" : "裁剪图片", "长按可删除食物" : "长按可删除食物", "长按可删除运动" : "长按可删除运动", "长度为2-10个不包括任何符号的字符" : "长度为2-10个不包括任何符号的字符", "吃饭时间" : "吃饭时间", "迟到次数" : "迟到次数", "从相册中选择" : "从相册中选择", "从云端下载数据" : "从云端下载数据", "打卡成功" : "打卡成功", "打卡时段" : "打卡时段", "打卡提醒" : "打卡提醒", "打卡完成度" : "打卡完成度", "待完成计划数" : "待完成计划数", "登出" : "登出", "登录" : "登录", "登录信息过期" : "登录信息过期", "登陆成功" : "登陆成功", "调整数据" : "调整数据", "非打卡时间打卡成功" : "非打卡时间打卡成功", "否" : "否", "该食物已存在" : "该食物已存在", "该邮箱未注册" : "该邮箱未注册", "该邮箱已存在" : "该邮箱已存在", "该运动已存在" : "该运动已存在", "概览" : "概览", "感谢您的支持,优惠口令已发送至您的邮箱" : "感谢您的支持,优惠口令已发送至您的邮箱", "关注" : "关注", "关注成功" : "关注成功", "官方合作" : "官方合作", "花费" : "花费", "花费记录" : "花费记录", "滑动来打卡" : "滑动来打卡", "滑动来覆盖今日数据" : "滑动来覆盖今日数据", "滑动来删除该条数据" : "滑动来删除该条数据", "滑动来完成计划" : "滑动来完成计划", "欢迎" : "欢迎", "获取验证码" : "获取验证码", "基本信息" : "基本信息", "基本信息记录" : "基本信息记录", "计划任务" : "计划任务", "计划运动时长" : "计划运动时长", "记录" : "记录", "记录成功" : "记录成功", "记录课程学习" : "记录课程学习", "继续该操作吗?":"继续该操作吗?", "简单" : "简单", "结束时间" : "结束时间", "金币" : "金币", "金币不足" : "金币不足", "今日" : "今日", "今日状态" : "今日状态", "进食量" : "进食量", "卡路里消耗" : "卡路里消耗", "课程难度" : "课程难度", "课程学习" : "课程学习", "课程学习详情" : "课程学习详情", "课程主题" : "课程主题", "课程主题不能为空" : "课程主题不能为空", "库存" : "库存", "库存不足" : "库存不足", "快速注册" : "快速注册", "困难" : "困难", "来到" : "来到", "立即获取优惠口令" : "立即获取优惠口令", "连接失败" : "连接失败", "两次输入不一致" : "两次输入不一致", "每日打卡完成度" : "每日打卡完成度", "每日课程数" : "每日课程数", "密码" : "密码", "密码不能为空" : "密码不能为空", "男" : "男", "您不能删除吃过的食物" : "您不能删除吃过的食物", "您不能删除记录过的运动" : "您不能删除记录过的运动", "您的账号由于存在恶意刷金币行为已被系统限制金币获取" : "您的账号由于存在恶意刷金币行为已被系统限制金币获取", "女" : "女", "拍照" : "拍照", "排名" : "排名", "排行榜" : "排行榜", "起床打卡" : "起床打卡", "起床打卡开始了" : "起床打卡开始了", "起床打卡时间" : "起床打卡时间", "起床时间" : "起床时间", "起始时间" : "起始时间", "请输入6位验证码" : "请输入6位验证码", "请输入花费" : "请输入花费", "请输入计划运动时长" : "请输入计划运动时长", "请输入进食量" : "请输入进食量", "请输入您的密码" : "请输入您的密码", "请输入您的新密码" : "请输入您的新密码", "请输入您的邮箱" : "请输入您的邮箱", "请输入您注册时的邮箱" : "请输入您注册时的邮箱", "请输入食物名称" : "请输入食物名称", "请输入食物热量" : "请输入食物热量", "请输入消耗热量" : "请输入消耗热量", "请输入新用户名" : "请输入新用户名", "请输入运动名称" : "请输入运动名称", "请输入运动时长" : "请输入运动时长", "请先登录" : "请先登录", "请重复输入您的密码" : "请重复输入您的密码", "请重复输入您的新密码" : "请重复输入您的新密码", "取消" : "取消", "取消关注" : "取消关注", "取消关注成功" : "取消关注成功", "缺席次数" : "缺席次数", "确定" : "确定", "日常生活" : "日常生活", "日常生活记录" : "日常生活记录", "三围信息" : "三围信息", "删除成功" : "删除成功", "商城" : "商城", "商品详情" : "商品详情", "上传同步成功" : "上传同步成功", "摄入卡路里" : "摄入卡路里", "摄入卡路里总量" : "摄入卡路里总量", "设置" : "设置", "身高" : "身高", "生日" : "生日", "食物名称" : "食物名称", "食物热量" : "食物热量", "食用次数" : "食用次数", "是" : "是", "是否迟到" : "是否迟到", "是否缺席" : "是否缺席", "输入用户名查询" : "输入用户名查询", "输入有误" : "输入有误", "数据管理" : "数据管理", "睡觉打卡开始了" : "睡觉打卡开始了", "睡觉时间" : "睡觉时间", "睡眠时长" : "睡眠时长", "睡眠时间" : "睡眠时间", "私信" : "私信", "松开以继续" : "松开以继续", "搜索" : "搜索", "搜索用户" : "搜索用户", "提交" : "提交", "体育锻炼" : "体育锻炼", "体育锻炼记录" : "体育锻炼记录", "体重" : "体重", "体重信息" : "体重信息", "添加计划任务" : "添加计划任务", "添加计划任务成功" : "添加计划任务成功", "添加食物" : "添加食物", "添加数据后会展示对应图表" : "添加数据后会展示对应图表", "添加运动" : "添加运动", "通知开关" : "通知开关", "同步数据到云端" : "同步数据到云端", "臀围" : "臀围", "完成" : "完成", "晚安打卡" : "晚安打卡", "晚饭打卡" : "晚饭打卡", "晚饭时间" : "晚饭时间", "忘记密码?" : "忘记密码?", "未登录" : "未登录", "未解决的问题数" : "未解决的问题数", "未入榜" : "未入榜", "未完成的作业" : "未完成的作业", "未完成的作业数" : "未完成的作业数", "我的关注" : "我的关注", "无数据" : "无数据", "午饭打卡" : "午饭打卡", "午饭打卡开始了" : "午饭打卡开始了", "午饭打卡时间" : "午饭打卡时间", "午饭时间" : "午饭时间", "午休打卡" : "午休打卡", "午休打卡开始了" : "午休打卡开始了", "午休打卡时间" : "午休打卡时间", "午休时间" : "午休时间", "下载同步成功" : "下载同步成功", "详情" : "详情", "向右滑动" : "向右滑动", "消费" : "消费", "消耗" : "消耗", "消耗热量" : "消耗热量", "新密码" : "新密码", "信息" : "信息", "性别" : "性别", "胸围" : "胸围", "修改成功" : "修改成功", "修改密码成功" : "修改密码成功", "修改生日" : "修改生日", "修改头像" : "修改头像", "修改性别" : "修改性别", "修改用户名" : "修改用户名", "选择食物" : "选择食物", "学习" : "学习", "验证码" : "验证码", "验证码错误或过期" : "验证码错误或过期", "验证码发送成功,5分钟内有效" : "验证码发送成功,5分钟内有效", "腰围" : "腰围", "一般" : "一般", "已解决" : "已解决", "用户" : "用户", "用户名" : "用户名", "用户设置" : "用户设置", "邮件发送失败" : "邮件发送失败", "邮箱" : "邮箱", "邮箱不能为空" : "邮箱不能为空", "邮箱格式有误" : "邮箱格式有误", "邮箱或密码错误" : "邮箱或密码错误", "有未解决的问题" : "有未解决的问题", "有未完成的作业" : "有未完成的作业", "语言" : "语言", "遇到的问题" : "遇到的问题", "预计消耗" : "预计消耗", "云端无数据" : "云端无数据", "运动次数" : "运动次数", "运动类型" : "运动类型", "运动名称" : "运动名称", "运动时长" : "运动时长", "早饭打卡" : "早饭打卡", "早饭打卡开始了" : "早饭打卡开始了", "早饭打卡时间" : "早饭打卡时间", "早饭时间" : "早饭时间", "支持MarkDown" : "支持MarkDown", "重复购买不会重复扣费" : "重复购买不会重复扣费", "重复密码" : "重复密码", "重设密码" : "重设密码", "重置密码" : "重置密码", "重置数据" : "重置数据", "主题" : "主题", "注册" : "注册", "注册成功" : "注册成功", "注意" : "注意", "字母开头,必须包含大小写字母,可以包含字母、数字、特殊符号\n长度为8~16位" : "字母开头,必须包含大小写字母,可以包含字母、数字、特殊符号\n长度为8~16位", "总结" : "总结", "最近" : "最近", "昨夜睡眠时长" : "昨夜睡眠时长", "作业是否完成" : "作业是否完成", }, "en" : { "":"", "7日运动次数" : "7 days exercise times", "7日运动总消耗" : "7 days consumption", "BMI" : "BMI", "ID" : "ID", "MarkDown预览" : "MarkDown preview", "不能关注自己" : "You can't follow yourself", "裁剪图片" : "Crop Image", "长按可删除食物" : "Long press to remove food", "长按可删除运动" : "Long press to delete movement", "长度为2-10个不包括任何符号的字符" : "Length of 2-10 characters without any symbols", "吃饭时间" : "Mealtime", "迟到次数" : "Late times", "从相册中选择" : "Select from the album", "从云端下载数据" : "Download data from the cloud", "打卡成功" : "Clock in success", "打卡时段" : "Clock in time", "打卡提醒" : "Clock in reminded", "打卡完成度" : "Clock in progress", "待完成计划数" : "Schedule to be completed", "登出" : "Sign out", "登录" : "Sign in", "登录信息过期" : "token expired", "登陆成功" : "Sign in success", "调整数据" : "Adjust data", "非打卡时间打卡成功" : "Non-clocked time clocked in", "否" : "no", "该食物已存在" : "The food already exists", "该邮箱未注册" : "This email is not registered", "该邮箱已存在" : "The email already exists", "该运动已存在" : "The movement already exists", "概览" : "Overview", "感谢您的支持,优惠口令已发送至您的邮箱" : "Thank you for your support. The token has been sent to your email", "关注" : "follow", "关注成功" : "follow success", "官方合作" : "Authoritative", "花费" : "Spend", "花费记录" : "Spend record", "滑动来打卡" : "Slide to clock in", "滑动来覆盖今日数据" : "Slide to over today's data", "滑动来删除该条数据" : "Slide to delete the data", "滑动来完成计划" : "Slide to complete the schedule", "欢迎" : "Welcome", "获取验证码" : "Get AuthCode", "基本信息" : "Basic information", "基本信息记录" : "Basic information record", "计划任务" : "Scheduled tasks", "计划运动时长" : "Scheduled exercise time", "记录" : "Record", "记录成功" : "Record success", "记录课程学习" : "Record course learning", "继续该操作吗?":"Continue?", "简单" : "Simple", "结束时间" : "End time", "金币" : "Coins", "金币不足" : "Not enough Coins", "今日" : "Today", "今日状态" : "Today's state", "进食量" : "Food-intake", "卡路里消耗" : "Calorie consumption", "课程难度" : "Course difficulty", "课程学习" : "Course learning", "课程学习详情" : "Course details", "课程主题" : "Course topic", "课程主题不能为空" : "Course topic can not be empty", "库存" : "Stock", "库存不足" : "Understock", "快速注册" : "Fast sign up", "困难" : "difficulty", "来到" : "to", "立即获取优惠口令" : "Get the discount token now", "连接失败" : "Connection fail", "两次输入不一致" : "The two inputs are inconsistent", "每日打卡完成度" : "Daily clock in progress", "每日课程数" : "Daily course count", "密码" : "Password", "密码不能为空" : "Password cannot be empty", "男" : "Male", "您不能删除吃过的食物" : "You cannot delete recorded food", "您不能删除记录过的运动" : "You cannot delete recorded movements", "您的账号由于存在恶意刷金币行为已被系统限制金币获取" : "Your account has been ban due to there is a malicious behavior of gain COINS", "女" : "Female", "拍照" : "Take a picture", "排名" : "Ranking", "排行榜" : "Ranking list", "起床打卡" : "Wake-up clock in", "起床打卡开始了" : "It's Wake-up clock in time", "起床打卡时间" : "Wake-up clock in time", "起床时间" : "Wake-up time", "起始时间" : "Starting time", "请输入6位验证码" : "Please enter a six-bit verification code", "请输入花费" : "Please enter the cost", "请输入计划运动时长" : "Please enter the duration of planned exercise", "请输入进食量" : "Please enter food intake", "请输入您的密码" : "Enter your password", "请输入您的新密码" : "Enter your new password", "请输入您的邮箱" : "Enter your email", "请输入您注册时的邮箱" : "Enter your email that you sign up", "请输入食物名称" : "Enter the name of the food", "请输入食物热量" : "Enter the calorie of food", "请输入消耗热量" : "Enter calories consumed", "请输入新用户名" : "Please enter a new user name", "请输入运动名称" : "Please enter the name of the movement", "请输入运动时长" : "Please enter the duration of exercise", "请先登录" : "Please log in first", "请重复输入您的密码" : "Please repeat your password", "请重复输入您的新密码" : "Please repeat your new password", "取消" : "Cancel", "取消关注" : "Unfollow", "取消关注成功" : "Unfollow success", "缺席次数" : "Absent times", "确定" : "ok", "日常生活" : "Daily life", "日常生活记录" : "Daily life record", "三围信息" : "BWH information", "删除成功" : "deleted success", "商城" : "Shopping mall", "商品详情" : "Product details", "上传同步成功" : "Upload synchronization successful", "摄入卡路里" : "Calorie intake", "摄入卡路里总量" : "Total calories intake", "设置" : "Setting", "身高" : "Stature", "生日" : "Birthday", "食物名称" : "Food name", "食物热量" : "food energy", "食用次数" : "Eat times", "是" : "ok", "是否迟到" : "Is late", "是否缺席" : "Is absent", "输入用户名查询" : "Enter the username to query", "输入有误" : "Input error", "数据管理" : "Data management", "睡觉打卡开始了" : "It's sleep clock in time", "睡觉时间" : "Sleep time", "睡眠时长" : "Sleep duration", "睡眠时间" : "Sleep time", "私信" : "Private letter", "松开以继续" : "Release to continue", "搜索" : "Search", "搜索用户" : "Search User", "提交" : "Commit", "体育锻炼" : "Physical exercise", "体育锻炼记录" : "Physical exercise record", "体重" : "Weight", "体重信息" : "Weight information", "添加计划任务" : "Add scheduled tasks", "添加计划任务成功" : "Added scheduled task success", "添加食物" : "Add food", "添加数据后会展示对应图表" : "The corresponding chart will be displayed after the data is added", "添加运动" : "Add movement", "通知开关" : "Notification toggle", "同步数据到云端" : "Synchronize data to the cloud", "臀围" : "Hipline", "完成" : "Accomplish", "晚安打卡" : "Sleep clock in", "晚饭打卡" : "Dinner clock in", "晚饭时间" : "Dinner time", "忘记密码?" : "Forget the password?", "未登录" : "Not sign in", "未解决的问题数" : "Unsolved issues count", "未入榜" : "Not in listed", "未完成的作业" : "Unfinished homework", "未完成的作业数" : "Unfinished homework count", "我的关注" : "My follows", "无数据" : "Empty Data", "午饭打卡" : "Lunch clock in", "午饭打卡开始了" : "It's lunch clock in time", "午饭打卡时间" : "Lunch clock in time", "午饭时间" : "Lunch time", "午休打卡" : "Lunch break clock in", "午休打卡开始了" : "It's lunch break clock in time", "午休打卡时间" : "Lunch break clock in time", "午休时间" : "Lunch break time", "下载同步成功" : "Download synchronization successful", "详情" : "Details", "向右滑动" : "Slide right", "消费" : "Consumption", "消耗" : "Consume", "消耗热量" : "Calorie consumption", "新密码" : "New password", "信息" : "Information", "性别" : "Gender", "胸围" : "Chestline", "修改成功" : "Modify success", "修改密码成功" : "Password changed success", "修改生日" : "Modify birthday", "修改头像" : "Modify head picture", "修改性别" : "Modify gender", "修改用户名" : "Modify username", "选择食物" : "Choice food", "学习" : "Study", "验证码" : "Auth code", "验证码错误或过期" : "Auth code wrong or expired", "验证码发送成功,5分钟内有效" : "Auth code sent successfully, valid within 5 minutes", "腰围" : "Waistline", "一般" : "General", "已解决" : "solved", "用户" : "User", "用户名" : "User name", "用户设置" : "User settings", "邮件发送失败" : "Email sending failed", "邮箱" : "Email", "邮箱不能为空" : "Email cannot be empty", "邮箱格式有误" : "Incorrect email format", "邮箱或密码错误" : "Email or password wrong", "有未解决的问题" : "There are unfinished tasks", "有未完成的作业" : "There are unfinished homework", "语言" : "Language", "遇到的问题" : "Problems", "预计消耗" : "Expected consumption", "云端无数据" : "Empty cloud data", "运动次数" : "Movement times", "运动类型" : "Movement type", "运动名称" : "Movement name", "运动时长" : "Exercise duration", "早饭打卡" : "breakfast clock in", "早饭打卡开始了" : "It's breakfast clock in time", "早饭打卡时间" : "Breakfast clock in time", "早饭时间" : "Breakfast time", "支持MarkDown" : "Support MarkDown", "重复购买不会重复扣费" : "Repeat purchase will not be repeated deduction coins", "重复密码" : "Repeat password", "重设密码" : "Reset password", "重置密码" : "Reset password", "重置数据" : "Reset data", "主题" : "Theme", "注册" : "Sign up", "注册成功" : "Sign up success", "注意" : "Attention", "字母开头,必须包含大小写字母,可以包含字母、数字、特殊符号\n长度为8~16位" : "Letter beginning, must contain case letters, can contain letters, Numbers, special symbol \n length of 8 to 16 bits", "总结" : "Conclusion", "最近" : "Recently", "昨夜睡眠时长" : "Last night sleep time", "作业是否完成" : "Is homework completed", } }; // A // B // C // D // E // F // G // H // I // J // K // L // M // N // O // P // Q // R // S // T // U // V // W // X // Y // Z