I18N.dart 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_habit/common/LocalData.dart';
  3. /// Description: 多国语言
  4. /// Time : 08/18/2023 Friday
  5. /// Author : liuyuqi.gov@msn.cn
  6. class I18N {
  7. static String? _language;
  8. static void init() {
  9. _language = LocalData.getInstance()!.getString("language");
  10. if (_language == null) {
  11. _language = "cn";
  12. LocalData.getInstance()!.setString("language", _language!);
  13. }
  14. debugPrint("init I18N to $_language");
  15. }
  16. static String of(String? key) {
  17. return wordMap[_language]![key] ?? "${_language!.toUpperCase()}_$key";
  18. }
  19. static String? getLanguage() {
  20. return _language;
  21. }
  22. static void setLanguage(String language) {
  23. _language = language;
  24. LocalData.getInstance()!.setString("language", _language!);
  25. }
  26. }
  27. Map<String, Map<String, String>> wordMap = {
  28. "cn": {
  29. "": "",
  30. "7日运动次数": "7日运动次数",
  31. "7日运动总消耗": "7日运动总消耗",
  32. "BMI": "BMI",
  33. "ID": "ID",
  34. "MarkDown预览": "MarkDown预览",
  35. "不能关注自己": "不能关注自己",
  36. "裁剪图片": "裁剪图片",
  37. "长按可删除食物": "长按可删除食物",
  38. "长按可删除运动": "长按可删除运动",
  39. "长度为2-10个不包括任何符号的字符": "长度为2-10个不包括任何符号的字符",
  40. "吃饭时间": "吃饭时间",
  41. "迟到次数": "迟到次数",
  42. "从相册中选择": "从相册中选择",
  43. "从云端下载数据": "从云端下载数据",
  44. "打卡成功": "打卡成功",
  45. "打卡时段": "打卡时段",
  46. "打卡提醒": "打卡提醒",
  47. "打卡完成度": "打卡完成度",
  48. "待完成计划数": "待完成计划数",
  49. "登出": "登出",
  50. "登录": "登录",
  51. "登录信息过期": "登录信息过期",
  52. "登陆成功": "登陆成功",
  53. "调整数据": "调整数据",
  54. "非打卡时间打卡成功": "非打卡时间打卡成功",
  55. "否": "否",
  56. "该食物已存在": "该食物已存在",
  57. "该邮箱未注册": "该邮箱未注册",
  58. "该邮箱已存在": "该邮箱已存在",
  59. "该运动已存在": "该运动已存在",
  60. "概览": "概览",
  61. "感谢您的支持,优惠口令已发送至您的邮箱": "感谢您的支持,优惠口令已发送至您的邮箱",
  62. "关注": "关注",
  63. "关注成功": "关注成功",
  64. "官方合作": "官方合作",
  65. "花费": "花费",
  66. "花费记录": "花费记录",
  67. "滑动来打卡": "滑动来打卡",
  68. "滑动来覆盖今日数据": "滑动来覆盖今日数据",
  69. "滑动来删除该条数据": "滑动来删除该条数据",
  70. "滑动来完成计划": "滑动来完成计划",
  71. "欢迎": "欢迎",
  72. "获取验证码": "获取验证码",
  73. "基本信息": "基本信息",
  74. "基本信息记录": "基本信息记录",
  75. "计划任务": "计划任务",
  76. "计划运动时长": "计划运动时长",
  77. "记录": "记录",
  78. "记录成功": "记录成功",
  79. "记录课程学习": "记录课程学习",
  80. "继续该操作吗?": "继续该操作吗?",
  81. "简单": "简单",
  82. "结束时间": "结束时间",
  83. "金币": "金币",
  84. "金币不足": "金币不足",
  85. "今日": "今日",
  86. "今日状态": "今日状态",
  87. "进食量": "进食量",
  88. "卡路里消耗": "卡路里消耗",
  89. "课程难度": "课程难度",
  90. "课程学习": "课程学习",
  91. "课程学习详情": "课程学习详情",
  92. "课程主题": "课程主题",
  93. "课程主题不能为空": "课程主题不能为空",
  94. "库存": "库存",
  95. "库存不足": "库存不足",
  96. "快速注册": "快速注册",
  97. "困难": "困难",
  98. "来到": "来到",
  99. "立即获取优惠口令": "立即获取优惠口令",
  100. "连接失败": "连接失败",
  101. "两次输入不一致": "两次输入不一致",
  102. "每日打卡完成度": "每日打卡完成度",
  103. "每日课程数": "每日课程数",
  104. "密码": "密码",
  105. "密码不能为空": "密码不能为空",
  106. "男": "男",
  107. "您不能删除吃过的食物": "您不能删除吃过的食物",
  108. "您不能删除记录过的运动": "您不能删除记录过的运动",
  109. "您的账号由于存在恶意刷金币行为已被系统限制金币获取": "您的账号由于存在恶意刷金币行为已被系统限制金币获取",
  110. "女": "女",
  111. "拍照": "拍照",
  112. "排名": "排名",
  113. "排行榜": "排行榜",
  114. "起床打卡": "起床打卡",
  115. "起床打卡开始了": "起床打卡开始了",
  116. "起床打卡时间": "起床打卡时间",
  117. "起床时间": "起床时间",
  118. "起始时间": "起始时间",
  119. "请输入6位验证码": "请输入6位验证码",
  120. "请输入花费": "请输入花费",
  121. "请输入计划运动时长": "请输入计划运动时长",
  122. "请输入进食量": "请输入进食量",
  123. "请输入您的密码": "请输入您的密码",
  124. "请输入您的新密码": "请输入您的新密码",
  125. "请输入您的邮箱": "请输入您的邮箱",
  126. "请输入您注册时的邮箱": "请输入您注册时的邮箱",
  127. "请输入食物名称": "请输入食物名称",
  128. "请输入食物热量": "请输入食物热量",
  129. "请输入消耗热量": "请输入消耗热量",
  130. "请输入新用户名": "请输入新用户名",
  131. "请输入运动名称": "请输入运动名称",
  132. "请输入运动时长": "请输入运动时长",
  133. "请先登录": "请先登录",
  134. "请重复输入您的密码": "请重复输入您的密码",
  135. "请重复输入您的新密码": "请重复输入您的新密码",
  136. "取消": "取消",
  137. "取消关注": "取消关注",
  138. "取消关注成功": "取消关注成功",
  139. "缺席次数": "缺席次数",
  140. "确定": "确定",
  141. "日常生活": "日常生活",
  142. "日常生活记录": "日常生活记录",
  143. "三围信息": "三围信息",
  144. "删除成功": "删除成功",
  145. "商城": "商城",
  146. "商品详情": "商品详情",
  147. "上传同步成功": "上传同步成功",
  148. "摄入卡路里": "摄入卡路里",
  149. "摄入卡路里总量": "摄入卡路里总量",
  150. "设置": "设置",
  151. "身高": "身高",
  152. "生日": "生日",
  153. "食物名称": "食物名称",
  154. "食物热量": "食物热量",
  155. "食用次数": "食用次数",
  156. "是": "是",
  157. "是否迟到": "是否迟到",
  158. "是否缺席": "是否缺席",
  159. "输入用户名查询": "输入用户名查询",
  160. "输入有误": "输入有误",
  161. "数据管理": "数据管理",
  162. "睡觉打卡开始了": "睡觉打卡开始了",
  163. "睡觉时间": "睡觉时间",
  164. "睡眠时长": "睡眠时长",
  165. "睡眠时间": "睡眠时间",
  166. "私信": "私信",
  167. "松开以继续": "松开以继续",
  168. "搜索": "搜索",
  169. "搜索用户": "搜索用户",
  170. "提交": "提交",
  171. "体育锻炼": "体育锻炼",
  172. "体育锻炼记录": "体育锻炼记录",
  173. "体重": "体重",
  174. "体重信息": "体重信息",
  175. "添加计划任务": "添加计划任务",
  176. "添加计划任务成功": "添加计划任务成功",
  177. "添加食物": "添加食物",
  178. "添加数据后会展示对应图表": "添加数据后会展示对应图表",
  179. "添加运动": "添加运动",
  180. "通知开关": "通知开关",
  181. "同步数据到云端": "同步数据到云端",
  182. "臀围": "臀围",
  183. "完成": "完成",
  184. "晚安打卡": "晚安打卡",
  185. "晚饭打卡": "晚饭打卡",
  186. "晚饭时间": "晚饭时间",
  187. "忘记密码?": "忘记密码?",
  188. "未登录": "未登录",
  189. "未解决的问题数": "未解决的问题数",
  190. "未入榜": "未入榜",
  191. "未完成的作业": "未完成的作业",
  192. "未完成的作业数": "未完成的作业数",
  193. "我的关注": "我的关注",
  194. "无数据": "无数据",
  195. "午饭打卡": "午饭打卡",
  196. "午饭打卡开始了": "午饭打卡开始了",
  197. "午饭打卡时间": "午饭打卡时间",
  198. "午饭时间": "午饭时间",
  199. "午休打卡": "午休打卡",
  200. "午休打卡开始了": "午休打卡开始了",
  201. "午休打卡时间": "午休打卡时间",
  202. "午休时间": "午休时间",
  203. "下载同步成功": "下载同步成功",
  204. "详情": "详情",
  205. "向右滑动": "向右滑动",
  206. "消费": "消费",
  207. "消耗": "消耗",
  208. "消耗热量": "消耗热量",
  209. "新密码": "新密码",
  210. "信息": "信息",
  211. "性别": "性别",
  212. "胸围": "胸围",
  213. "修改成功": "修改成功",
  214. "修改密码成功": "修改密码成功",
  215. "修改生日": "修改生日",
  216. "修改头像": "修改头像",
  217. "修改性别": "修改性别",
  218. "修改用户名": "修改用户名",
  219. "选择食物": "选择食物",
  220. "学习": "学习",
  221. "验证码": "验证码",
  222. "验证码错误或过期": "验证码错误或过期",
  223. "验证码发送成功,5分钟内有效": "验证码发送成功,5分钟内有效",
  224. "腰围": "腰围",
  225. "一般": "一般",
  226. "已解决": "已解决",
  227. "用户": "用户",
  228. "用户名": "用户名",
  229. "用户设置": "用户设置",
  230. "邮件发送失败": "邮件发送失败",
  231. "邮箱": "邮箱",
  232. "邮箱不能为空": "邮箱不能为空",
  233. "邮箱格式有误": "邮箱格式有误",
  234. "邮箱或密码错误": "邮箱或密码错误",
  235. "有未解决的问题": "有未解决的问题",
  236. "有未完成的作业": "有未完成的作业",
  237. "语言": "语言",
  238. "遇到的问题": "遇到的问题",
  239. "预计消耗": "预计消耗",
  240. "云端无数据": "云端无数据",
  241. "运动次数": "运动次数",
  242. "运动类型": "运动类型",
  243. "运动名称": "运动名称",
  244. "运动时长": "运动时长",
  245. "早饭打卡": "早饭打卡",
  246. "早饭打卡开始了": "早饭打卡开始了",
  247. "早饭打卡时间": "早饭打卡时间",
  248. "早饭时间": "早饭时间",
  249. "支持MarkDown": "支持MarkDown",
  250. "重复购买不会重复扣费": "重复购买不会重复扣费",
  251. "重复密码": "重复密码",
  252. "重设密码": "重设密码",
  253. "重置密码": "重置密码",
  254. "重置数据": "重置数据",
  255. "主题": "主题",
  256. "注册": "注册",
  257. "注册成功": "注册成功",
  258. "注意": "注意",
  259. "字母开头,必须包含大小写字母,可以包含字母、数字、特殊符号\n长度为8~16位":
  260. "字母开头,必须包含大小写字母,可以包含字母、数字、特殊符号\n长度为8~16位",
  261. "总结": "总结",
  262. "最近": "最近",
  263. "昨夜睡眠时长": "昨夜睡眠时长",
  264. "作业是否完成": "作业是否完成",
  265. },
  266. "en": {
  267. "": "",
  268. "7日运动次数": "7 days exercise times",
  269. "7日运动总消耗": "7 days consumption",
  270. "BMI": "BMI",
  271. "ID": "ID",
  272. "MarkDown预览": "MarkDown preview",
  273. "不能关注自己": "You can't follow yourself",
  274. "裁剪图片": "Crop Image",
  275. "长按可删除食物": "Long press to remove food",
  276. "长按可删除运动": "Long press to delete movement",
  277. "长度为2-10个不包括任何符号的字符": "Length of 2-10 characters without any symbols",
  278. "吃饭时间": "Mealtime",
  279. "迟到次数": "Late times",
  280. "从相册中选择": "Select from the album",
  281. "从云端下载数据": "Download data from the cloud",
  282. "打卡成功": "Clock in success",
  283. "打卡时段": "Clock in time",
  284. "打卡提醒": "Clock in reminded",
  285. "打卡完成度": "Clock in progress",
  286. "待完成计划数": "Schedule to be completed",
  287. "登出": "Sign out",
  288. "登录": "Sign in",
  289. "登录信息过期": "token expired",
  290. "登陆成功": "Sign in success",
  291. "调整数据": "Adjust data",
  292. "非打卡时间打卡成功": "Non-clocked time clocked in",
  293. "否": "no",
  294. "该食物已存在": "The food already exists",
  295. "该邮箱未注册": "This email is not registered",
  296. "该邮箱已存在": "The email already exists",
  297. "该运动已存在": "The movement already exists",
  298. "概览": "Overview",
  299. "感谢您的支持,优惠口令已发送至您的邮箱":
  300. "Thank you for your support. The token has been sent to your email",
  301. "关注": "follow",
  302. "关注成功": "follow success",
  303. "官方合作": "Authoritative",
  304. "花费": "Spend",
  305. "花费记录": "Spend record",
  306. "滑动来打卡": "Slide to clock in",
  307. "滑动来覆盖今日数据": "Slide to over today's data",
  308. "滑动来删除该条数据": "Slide to delete the data",
  309. "滑动来完成计划": "Slide to complete the schedule",
  310. "欢迎": "Welcome",
  311. "获取验证码": "Get AuthCode",
  312. "基本信息": "Basic information",
  313. "基本信息记录": "Basic information record",
  314. "计划任务": "Scheduled tasks",
  315. "计划运动时长": "Scheduled exercise time",
  316. "记录": "Record",
  317. "记录成功": "Record success",
  318. "记录课程学习": "Record course learning",
  319. "继续该操作吗?": "Continue?",
  320. "简单": "Simple",
  321. "结束时间": "End time",
  322. "金币": "Coins",
  323. "金币不足": "Not enough Coins",
  324. "今日": "Today",
  325. "今日状态": "Today's state",
  326. "进食量": "Food-intake",
  327. "卡路里消耗": "Calorie consumption",
  328. "课程难度": "Course difficulty",
  329. "课程学习": "Course learning",
  330. "课程学习详情": "Course details",
  331. "课程主题": "Course topic",
  332. "课程主题不能为空": "Course topic can not be empty",
  333. "库存": "Stock",
  334. "库存不足": "Understock",
  335. "快速注册": "Fast sign up",
  336. "困难": "difficulty",
  337. "来到": "to",
  338. "立即获取优惠口令": "Get the discount token now",
  339. "连接失败": "Connection fail",
  340. "两次输入不一致": "The two inputs are inconsistent",
  341. "每日打卡完成度": "Daily clock in progress",
  342. "每日课程数": "Daily course count",
  343. "密码": "Password",
  344. "密码不能为空": "Password cannot be empty",
  345. "男": "Male",
  346. "您不能删除吃过的食物": "You cannot delete recorded food",
  347. "您不能删除记录过的运动": "You cannot delete recorded movements",
  348. "您的账号由于存在恶意刷金币行为已被系统限制金币获取":
  349. "Your account has been ban due to there is a malicious behavior of gain COINS",
  350. "女": "Female",
  351. "拍照": "Take a picture",
  352. "排名": "Ranking",
  353. "排行榜": "Ranking list",
  354. "起床打卡": "Wake-up clock in",
  355. "起床打卡开始了": "It's Wake-up clock in time",
  356. "起床打卡时间": "Wake-up clock in time",
  357. "起床时间": "Wake-up time",
  358. "起始时间": "Starting time",
  359. "请输入6位验证码": "Please enter a six-bit verification code",
  360. "请输入花费": "Please enter the cost",
  361. "请输入计划运动时长": "Please enter the duration of planned exercise",
  362. "请输入进食量": "Please enter food intake",
  363. "请输入您的密码": "Enter your password",
  364. "请输入您的新密码": "Enter your new password",
  365. "请输入您的邮箱": "Enter your email",
  366. "请输入您注册时的邮箱": "Enter your email that you sign up",
  367. "请输入食物名称": "Enter the name of the food",
  368. "请输入食物热量": "Enter the calorie of food",
  369. "请输入消耗热量": "Enter calories consumed",
  370. "请输入新用户名": "Please enter a new user name",
  371. "请输入运动名称": "Please enter the name of the movement",
  372. "请输入运动时长": "Please enter the duration of exercise",
  373. "请先登录": "Please log in first",
  374. "请重复输入您的密码": "Please repeat your password",
  375. "请重复输入您的新密码": "Please repeat your new password",
  376. "取消": "Cancel",
  377. "取消关注": "Unfollow",
  378. "取消关注成功": "Unfollow success",
  379. "缺席次数": "Absent times",
  380. "确定": "ok",
  381. "日常生活": "Daily life",
  382. "日常生活记录": "Daily life record",
  383. "三围信息": "BWH information",
  384. "删除成功": "deleted success",
  385. "商城": "Shopping mall",
  386. "商品详情": "Product details",
  387. "上传同步成功": "Upload synchronization successful",
  388. "摄入卡路里": "Calorie intake",
  389. "摄入卡路里总量": "Total calories intake",
  390. "设置": "Setting",
  391. "身高": "Stature",
  392. "生日": "Birthday",
  393. "食物名称": "Food name",
  394. "食物热量": "food energy",
  395. "食用次数": "Eat times",
  396. "是": "ok",
  397. "是否迟到": "Is late",
  398. "是否缺席": "Is absent",
  399. "输入用户名查询": "Enter the username to query",
  400. "输入有误": "Input error",
  401. "数据管理": "Data management",
  402. "睡觉打卡开始了": "It's sleep clock in time",
  403. "睡觉时间": "Sleep time",
  404. "睡眠时长": "Sleep duration",
  405. "睡眠时间": "Sleep time",
  406. "私信": "Private letter",
  407. "松开以继续": "Release to continue",
  408. "搜索": "Search",
  409. "搜索用户": "Search User",
  410. "提交": "Commit",
  411. "体育锻炼": "Physical exercise",
  412. "体育锻炼记录": "Physical exercise record",
  413. "体重": "Weight",
  414. "体重信息": "Weight information",
  415. "添加计划任务": "Add scheduled tasks",
  416. "添加计划任务成功": "Added scheduled task success",
  417. "添加食物": "Add food",
  418. "添加数据后会展示对应图表":
  419. "The corresponding chart will be displayed after the data is added",
  420. "添加运动": "Add movement",
  421. "通知开关": "Notification toggle",
  422. "同步数据到云端": "Synchronize data to the cloud",
  423. "臀围": "Hipline",
  424. "完成": "Accomplish",
  425. "晚安打卡": "Sleep clock in",
  426. "晚饭打卡": "Dinner clock in",
  427. "晚饭时间": "Dinner time",
  428. "忘记密码?": "Forget the password?",
  429. "未登录": "Not sign in",
  430. "未解决的问题数": "Unsolved issues count",
  431. "未入榜": "Not in listed",
  432. "未完成的作业": "Unfinished homework",
  433. "未完成的作业数": "Unfinished homework count",
  434. "我的关注": "My follows",
  435. "无数据": "Empty Data",
  436. "午饭打卡": "Lunch clock in",
  437. "午饭打卡开始了": "It's lunch clock in time",
  438. "午饭打卡时间": "Lunch clock in time",
  439. "午饭时间": "Lunch time",
  440. "午休打卡": "Lunch break clock in",
  441. "午休打卡开始了": "It's lunch break clock in time",
  442. "午休打卡时间": "Lunch break clock in time",
  443. "午休时间": "Lunch break time",
  444. "下载同步成功": "Download synchronization successful",
  445. "详情": "Details",
  446. "向右滑动": "Slide right",
  447. "消费": "Consumption",
  448. "消耗": "Consume",
  449. "消耗热量": "Calorie consumption",
  450. "新密码": "New password",
  451. "信息": "Information",
  452. "性别": "Gender",
  453. "胸围": "Chestline",
  454. "修改成功": "Modify success",
  455. "修改密码成功": "Password changed success",
  456. "修改生日": "Modify birthday",
  457. "修改头像": "Modify head picture",
  458. "修改性别": "Modify gender",
  459. "修改用户名": "Modify username",
  460. "选择食物": "Choice food",
  461. "学习": "Study",
  462. "验证码": "Auth code",
  463. "验证码错误或过期": "Auth code wrong or expired",
  464. "验证码发送成功,5分钟内有效": "Auth code sent successfully, valid within 5 minutes",
  465. "腰围": "Waistline",
  466. "一般": "General",
  467. "已解决": "solved",
  468. "用户": "User",
  469. "用户名": "User name",
  470. "用户设置": "User settings",
  471. "邮件发送失败": "Email sending failed",
  472. "邮箱": "Email",
  473. "邮箱不能为空": "Email cannot be empty",
  474. "邮箱格式有误": "Incorrect email format",
  475. "邮箱或密码错误": "Email or password wrong",
  476. "有未解决的问题": "There are unfinished tasks",
  477. "有未完成的作业": "There are unfinished homework",
  478. "语言": "Language",
  479. "遇到的问题": "Problems",
  480. "预计消耗": "Expected consumption",
  481. "云端无数据": "Empty cloud data",
  482. "运动次数": "Movement times",
  483. "运动类型": "Movement type",
  484. "运动名称": "Movement name",
  485. "运动时长": "Exercise duration",
  486. "早饭打卡": "breakfast clock in",
  487. "早饭打卡开始了": "It's breakfast clock in time",
  488. "早饭打卡时间": "Breakfast clock in time",
  489. "早饭时间": "Breakfast time",
  490. "支持MarkDown": "Support MarkDown",
  491. "重复购买不会重复扣费": "Repeat purchase will not be repeated deduction coins",
  492. "重复密码": "Repeat password",
  493. "重设密码": "Reset password",
  494. "重置密码": "Reset password",
  495. "重置数据": "Reset data",
  496. "主题": "Theme",
  497. "注册": "Sign up",
  498. "注册成功": "Sign up success",
  499. "注意": "Attention",
  500. "字母开头,必须包含大小写字母,可以包含字母、数字、特殊符号\n长度为8~16位":
  501. "Letter beginning, must contain case letters, can contain letters, Numbers, special symbol \n length of 8 to 16 bits",
  502. "总结": "Conclusion",
  503. "最近": "Recently",
  504. "昨夜睡眠时长": "Last night sleep time",
  505. "作业是否完成": "Is homework completed",
  506. }
  507. };