完成国际化功能(包括中英文在内的34种语言)
This commit is contained in:
parent
0e99d60cb8
commit
b241008de8
1085
lan/lan_ar.json
Normal file
1085
lan/lan_ar.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_bg.json
Normal file
1085
lan/lan_bg.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_bn.json
Normal file
1085
lan/lan_bn.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_cs.json
Normal file
1085
lan/lan_cs.json
Normal file
File diff suppressed because one or more lines are too long
1085
lan/lan_da.json
Normal file
1085
lan/lan_da.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_de.json
Normal file
1085
lan/lan_de.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_el.json
Normal file
1085
lan/lan_el.json
Normal file
File diff suppressed because it is too large
Load Diff
2145
lan/lan_en.json
Executable file → Normal file
2145
lan/lan_en.json
Executable file → Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_es.json
Normal file
1085
lan/lan_es.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_et.json
Normal file
1085
lan/lan_et.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_fi.json
Normal file
1085
lan/lan_fi.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_fr.json
Normal file
1085
lan/lan_fr.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_he.json
Normal file
1085
lan/lan_he.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_hr.json
Normal file
1085
lan/lan_hr.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_hu.json
Normal file
1085
lan/lan_hu.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_id.json
Normal file
1085
lan/lan_id.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_it.json
Normal file
1085
lan/lan_it.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_ja.json
Normal file
1085
lan/lan_ja.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -26,7 +26,6 @@
|
||||
"星期五": "星期五",
|
||||
"星期六": "星期六",
|
||||
"星期日": "星期日",
|
||||
|
||||
"简写周一": "简写周一",
|
||||
"简写周二": "简写周二",
|
||||
"简写周三": "简写周三",
|
||||
@ -34,7 +33,6 @@
|
||||
"简写周五": "简写周五",
|
||||
"简写周六": "简写周六",
|
||||
"简写周日": "简写周日",
|
||||
|
||||
"周一": "周一",
|
||||
"周二": "周二",
|
||||
"周三": "周三",
|
||||
@ -42,7 +40,6 @@
|
||||
"周五": "周五",
|
||||
"周六": "周六",
|
||||
"周日": "周日",
|
||||
|
||||
"群发钥匙":"群发钥匙",
|
||||
"锁": "锁",
|
||||
"请添加":"请添加",
|
||||
@ -102,7 +99,6 @@
|
||||
"月榜":"月榜",
|
||||
"考勤记录":"考勤记录",
|
||||
"假日信息":"假日信息",
|
||||
|
||||
"基本信息":"基本信息",
|
||||
"无线键盘":"无线键盘",
|
||||
"选择无线键盘": "选择无线键盘",
|
||||
@ -121,7 +117,6 @@
|
||||
"微信二维码":"微信二维码",
|
||||
"拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边": "拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边",
|
||||
"锁编号":"锁编号",
|
||||
|
||||
"电量":"电量",
|
||||
"锁分组":"锁分组",
|
||||
"选择分组":"选择分组",
|
||||
@ -135,9 +130,6 @@
|
||||
"附近的设备":"附近的设备",
|
||||
"暂无数据":"暂无数据",
|
||||
"通过门磁可查询门的开、关状态。每把锁咳添加一个门磁":"通过门磁可查询门的开、关状态。每把锁咳添加一个门磁",
|
||||
"delayTime":"delayTime",
|
||||
"automaticBlockingTip":"automaticBlockingTip",
|
||||
|
||||
"开始":"开始",
|
||||
"全天":"全天",
|
||||
"你可以设置多个常开时间段,在设置的时间段内,锁被打开后一直处于打开的状态。":"你可以设置多个常开时间段,在设置的时间段内,锁被打开后一直处于打开的状态。",
|
||||
@ -160,9 +152,8 @@
|
||||
"升级":"升级",
|
||||
"空闲":"空闲",
|
||||
"已入住":"已入住",
|
||||
|
||||
"英文":"英文",
|
||||
"中文":"中文",
|
||||
"简体中文":"简体中文",
|
||||
"多语言":"多语言",
|
||||
"添加锁":"添加锁",
|
||||
"锁地址":"锁地址",
|
||||
@ -173,7 +164,6 @@
|
||||
"客服":"客服",
|
||||
"设置":"设置",
|
||||
"更多设置":"更多设置",
|
||||
|
||||
"消息推送":"消息推送",
|
||||
"锁用户管理":"锁用户管理",
|
||||
"拥有的钥匙":"拥有的钥匙",
|
||||
@ -219,7 +209,6 @@
|
||||
"即将到期":"即将到期",
|
||||
"去授权":"去授权",
|
||||
"修改名称":"修改名称",
|
||||
|
||||
"状态": "状态",
|
||||
"WiFi名称": "WiFi名称",
|
||||
"网络MAC": "网络MAC",
|
||||
@ -245,6 +234,7 @@
|
||||
"备选DNS": "备选DNS",
|
||||
"不使用静态IP": "不使用静态IP",
|
||||
"使用静态IP": "使用静态IP",
|
||||
"请输入IP地址": "请输入IP地址",
|
||||
"请输入子网掩码": "请输入子网掩码",
|
||||
"请输入默认网关": "请输入默认网关",
|
||||
"所有锁":"所有锁",
|
||||
@ -259,7 +249,6 @@
|
||||
"附近的锁":"附近的锁",
|
||||
"如需修改名字请重新命名,点击确定添加锁":"如需修改名字请重新命名,点击确定添加锁",
|
||||
"添加锁时,手机必须在锁旁边":"添加锁时,手机必须在锁旁边",
|
||||
|
||||
"登录":"登录",
|
||||
"注册":"注册",
|
||||
"我已阅读并同意":"我已阅读并同意",
|
||||
@ -272,15 +261,12 @@
|
||||
"你所在的国家/地区": "你所在的国家/地区",
|
||||
"选择国家/地区": "你所在的国家/地区",
|
||||
"获取验证码":"获取验证码",
|
||||
|
||||
"商务合作":"商务合作",
|
||||
"电脑网页版":"电脑网页版",
|
||||
"酒店系统":"酒店系统",
|
||||
"说明书网页版":"说明书网页版",
|
||||
|
||||
"高级功能":"高级功能",
|
||||
"记录保存":"记录保存",
|
||||
|
||||
"您可通过短信将密码、电子钥匙信息发给接收人。":"您可通过短信将密码、电子钥匙信息发给接收人。",
|
||||
"您可通过邮件将密码、电子钥匙信息发给接收人。":"您可通过邮件将密码、电子钥匙信息发给接收人。",
|
||||
"购买实名认证提示":"购买实名认证提示",
|
||||
@ -299,7 +285,6 @@
|
||||
"购买高级功能提示":"购买高级功能提示",
|
||||
"免费体验":"免费体验",
|
||||
"立即开通":"立即开通",
|
||||
|
||||
"购买短信":"购买短信",
|
||||
"购买邮件":"购买邮件",
|
||||
"购买实名认证次数":"购买实名认证次数",
|
||||
@ -308,7 +293,6 @@
|
||||
"支付方式":"支付方式",
|
||||
"支付宝":"支付宝",
|
||||
"去支付":"去支付",
|
||||
|
||||
"你可以自己定义模版的内容,用于发送密码或电子钥匙信息给他人":"你可以自己定义模版的内容,用于发送密码或电子钥匙信息给他人",
|
||||
"高级功能仅能用于你自己的锁":"高级功能仅能用于你自己的锁",
|
||||
"新建模板":"新建模板",
|
||||
@ -317,15 +301,12 @@
|
||||
"预览":"预览",
|
||||
"房间名":"房间名",
|
||||
"预计产生短信条数":"预计产生短信条数",
|
||||
|
||||
"功能开启后,已失效较长时间的密码、电子钥匙、卡、指纹等开锁权限将被隐藏,不在列表里显示。":"功能开启后,已失效较长时间的密码、电子钥匙、卡、指纹等开锁权限将被隐藏,不在列表里显示。",
|
||||
"对于选中的这些锁,当用户用APP开锁时,他的手机需要是连网的,否则无法开锁":"对于选中的这些锁,当用户用APP开锁时,他的手机需要是连网的,否则无法开锁",
|
||||
|
||||
"配置WiFi":"配置WiFi",
|
||||
"请输入WiFi名字":"请输入WiFi名字",
|
||||
"WiFi配网":"WiFi配网",
|
||||
"胁迫卡":"胁迫卡",
|
||||
|
||||
"员工是否有密码":"员工是否有密码",
|
||||
"员工是否有卡":"员工是否有卡",
|
||||
"员工是否有指纹":"员工是否有指纹",
|
||||
@ -334,43 +315,35 @@
|
||||
"获取指纹":"获取指纹",
|
||||
"安全验证":"安全验证",
|
||||
"删除账号后,你的所有信息及相关记录都会从平台彻底删除,且不可恢复,是否删除?":"删除账号后,你的所有信息及相关记录都会从平台彻底删除,且不可恢复,是否删除?",
|
||||
|
||||
"监控":"监控",
|
||||
"视频日志":"视频日志",
|
||||
"网关设备":"网关设备",
|
||||
|
||||
"开门器":"开门器",
|
||||
"面容开锁":"面容开锁",
|
||||
"开门方向设置":"开门方向设置",
|
||||
"电机功率设置":"电机功率设置",
|
||||
"开锁时是否需联网":"开锁时是否需联网",
|
||||
|
||||
"选择要加入分组的锁":"选择要加入分组的锁",
|
||||
"锁数量":"锁数量",
|
||||
"小米IOT平台":"小米IOT平台",
|
||||
|
||||
"面容开锁设置": "面容开锁设置",
|
||||
"感应距离": "感应距离",
|
||||
"防误开": "防误开",
|
||||
"防误开已关闭,关门后仍可使用面容开锁": "防误开已关闭,关门后仍可使用面容开锁",
|
||||
"添加和使用面容开锁时": "添加和使用面容开锁时",
|
||||
"添加和使用面容开锁时提示":"添加和使用面容开锁时提示",
|
||||
|
||||
"秒": "秒",
|
||||
"请根据门锁实际情况,请谨慎选择电机功率:": "请根据门锁实际情况,请谨慎选择电机功率:",
|
||||
"小功率:": "小功率:",
|
||||
"耗电少": "耗电少",
|
||||
"大功率": "大功率",
|
||||
"大功率提示": "大功率提示",
|
||||
|
||||
"开门方向设置提示": "开门方向设置提示",
|
||||
"左开": "左开",
|
||||
"右开": "右开",
|
||||
"判断方法:": "判断方法:",
|
||||
"判断方法内容": "判断方法内容",
|
||||
|
||||
"录像时段": "录像时段",
|
||||
|
||||
"密码":"密码",
|
||||
"卡":"卡",
|
||||
"指纹":"指纹",
|
||||
@ -594,7 +567,6 @@
|
||||
"密码生成后,请在当日23:59前使用,否则过0点后失效。": "密码生成后,请在当日23:59前使用,否则过0点后失效。",
|
||||
"清空密码底部提示": "清空密码底部提示",
|
||||
"密码不一致哦":"密码不一致哦",
|
||||
|
||||
"相机": "相机",
|
||||
"相册": "相册",
|
||||
"读写": "读写",
|
||||
@ -611,10 +583,8 @@
|
||||
"请手动在系统设置中开启": "请手动在系统设置中开启",
|
||||
"权限以继续使用应用": "权限以继续使用应用。",
|
||||
"去设置": "去设置",
|
||||
|
||||
"虹膜":"虹膜",
|
||||
"手掌":"手掌",
|
||||
|
||||
"商城":"mall",
|
||||
"我的":"my",
|
||||
"微信公众号推送":"微信公众号推送",
|
||||
@ -707,7 +677,6 @@
|
||||
"当前剩余数量":"当前剩余数量",
|
||||
"购买":"购买",
|
||||
"实名认证为付费功能,请购买后再使用":"实名认证为付费功能,请购买后再使用",
|
||||
|
||||
"退出添加":"退出添加",
|
||||
"管理员已满":"管理员已满",
|
||||
"用户已满": "用户已满",
|
||||
@ -721,13 +690,11 @@
|
||||
"密码已存在": "密码已存在",
|
||||
"请输入密码": "请输入密码",
|
||||
"暂无密码,无需重置": "暂无密码,无需重置",
|
||||
|
||||
"真实姓名":"真实姓名",
|
||||
"身份证号":"身份证号",
|
||||
"请输入真实姓名":"请输入真实姓名",
|
||||
"请输入身份证号":"请输入身份证号",
|
||||
"请输入身份证号和真实姓名":"请输入身份证号和真实姓名",
|
||||
|
||||
"点击返回设备配对":"点击返回设备配对",
|
||||
"无法连接?尝试升级":"无法连接?尝试升级",
|
||||
"固件升级提示":"固件升级提示",
|
||||
@ -782,14 +749,12 @@
|
||||
"自定义邮件模版":"自定义邮件模版",
|
||||
"名称":"名称",
|
||||
"星星锁": "星星锁",
|
||||
|
||||
"无考勤记录": "无考勤记录",
|
||||
"大家干劲十足": "大家干劲十足",
|
||||
"工作时长未出炉": "工作时长未出炉",
|
||||
"国家地区的选择将影响数据安全,你当前选择的是阿尔巴尼亚,请确认后再继续": "国家地区的选择将影响数据安全,你当前选择的是阿尔巴尼亚,请确认后再继续",
|
||||
"确认国家或地区": "确认国家或地区",
|
||||
"我知道了": "我知道了",
|
||||
|
||||
"为了让您及时收到重要通知和更新,我们需要获取通知权限。请点击“确定”按钮,然后在设置页面中启用通知权限。": "为了让您及时收到重要通知和更新,我们需要获取通知权限。请点击“确定”按钮,然后在设置页面中启用通知权限。",
|
||||
"开启后,可通过长按锁上的设置键重新上电,用APP重新添加":"开启后,可通过长按锁上的设置键重新上电,用APP重新添加",
|
||||
"已有": "已有",
|
||||
@ -800,13 +765,11 @@
|
||||
"加载数据失败": "加载数据失败",
|
||||
"重试": "重试",
|
||||
"升级中,是否退出": "升级中,是否退出",
|
||||
|
||||
"下一步": "下一步",
|
||||
"公寓": "公寓",
|
||||
"个人用户": "个人用户",
|
||||
"星寓": "星寓",
|
||||
"账号": "账号",
|
||||
|
||||
"请输入手机号或email": "请输入手机号或email",
|
||||
"请输入星寓管理员的账号": "请输入星寓管理员的账号",
|
||||
"选中的智能锁将会转移到您输入的账号中,您将失去锁的管理权": "选中的智能锁将会转移到您输入的账号中,您将失去锁的管理权",
|
||||
@ -840,14 +803,12 @@
|
||||
"进度": "进度",
|
||||
"失败": "失败",
|
||||
"人脸详情": "人脸详情",
|
||||
|
||||
"感应到门前约1.5米有人时,将自动启动面部识别开锁。": "感应到门前约1.5米有人时,将自动启动面部识别开锁。",
|
||||
"感应到门前约0.8米有人时,将自动启动面部识别开锁。": "感应到门前约0.8米有人时,将自动启动面部识别开锁。",
|
||||
"感应到门前约0.5米有人时,将自动启动面部识别开锁。": "感应到门前约0.5米有人时,将自动启动面部识别开锁。",
|
||||
"感应距离已关闭,需手动触摸键盘任意键,进行面部识别开锁。": "感应距离已关闭,需手动触摸键盘任意键,进行面部识别开锁。",
|
||||
"防误开已打开,开锁后": "防误开已打开,开锁后",
|
||||
"秒内不可使用面容开锁": "秒内不可使用面容开锁",
|
||||
|
||||
"掌静脉": "掌静脉",
|
||||
"添加掌静脉": "添加掌静脉",
|
||||
"胁迫掌静脉": "胁迫掌静脉",
|
||||
@ -857,7 +818,6 @@
|
||||
"掌静脉号": "掌静脉号",
|
||||
"蓝牙未打开,请到设置里面打开蓝牙": "蓝牙未打开,请到设置里面打开蓝牙",
|
||||
"删除用户时,会将用户拥有的钥匙一起删除。": "删除用户时,会将用户拥有的钥匙一起删除。",
|
||||
|
||||
"配置网络": "配置网络",
|
||||
"你好": "你好",
|
||||
"成功": "成功",
|
||||
@ -1087,5 +1047,39 @@
|
||||
"热门城市": "热门城市",
|
||||
"导出锁数据": "导出锁数据",
|
||||
"一键开锁": "一键开锁",
|
||||
"已开通": "已开通"
|
||||
"已开通": "已开通",
|
||||
"繁体中文": "繁体中文",
|
||||
"法语": "法语",
|
||||
"俄语": "俄语",
|
||||
"德语": "德语",
|
||||
"日语": "日语",
|
||||
"韩语": "韩语",
|
||||
"意大利语": "意大利语",
|
||||
"乌克兰语": "乌克兰语",
|
||||
"葡萄牙语": "葡萄牙语",
|
||||
"西班牙语": "西班牙语",
|
||||
"阿拉伯语": "阿拉伯语",
|
||||
"越南语": "越南语",
|
||||
"马莱语": "马莱语",
|
||||
"荷兰语": "荷兰语",
|
||||
"罗马尼亚语": "罗马尼亚语",
|
||||
"立陶宛语": "立陶宛语",
|
||||
"瑞典语": "瑞典语",
|
||||
"爱沙尼亚语": "爱沙尼亚语",
|
||||
"波兰语": "波兰语",
|
||||
"斯洛伐克语": "斯洛伐克语",
|
||||
"捷克语": "捷克语",
|
||||
"希腊语": "希腊语",
|
||||
"希伯来语": "希伯来语",
|
||||
"塞尔维亚语": "塞尔维亚语",
|
||||
"土耳其语": "土耳其语",
|
||||
"匈牙利语": "匈牙利语",
|
||||
"保加利亚语": "保加利亚语",
|
||||
"哈萨克斯坦语": "哈萨克斯坦语",
|
||||
"孟加拉语": "孟加拉语",
|
||||
"克罗地亚语": "克罗地亚语",
|
||||
"泰语": "泰语",
|
||||
"印度尼西亚语": "印度尼西亚语",
|
||||
"芬兰语": "芬兰语",
|
||||
"丹麦语": "丹麦语"
|
||||
}
|
||||
|
||||
1085
lan/lan_kk.json
Normal file
1085
lan/lan_kk.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_ko.json
Normal file
1085
lan/lan_ko.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_lt.json
Normal file
1085
lan/lan_lt.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_ms.json
Normal file
1085
lan/lan_ms.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_nl.json
Normal file
1085
lan/lan_nl.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_pl.json
Normal file
1085
lan/lan_pl.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_pt.json
Normal file
1085
lan/lan_pt.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_ro.json
Normal file
1085
lan/lan_ro.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_ru.json
Normal file
1085
lan/lan_ru.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_sk.json
Normal file
1085
lan/lan_sk.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_sv.json
Normal file
1085
lan/lan_sv.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_th.json
Normal file
1085
lan/lan_th.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_tr.json
Normal file
1085
lan/lan_tr.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_tw.json
Normal file
1085
lan/lan_tw.json
Normal file
File diff suppressed because it is too large
Load Diff
1085
lan/lan_vi.json
Normal file
1085
lan/lan_vi.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -26,7 +26,6 @@
|
||||
"星期五": "星期五",
|
||||
"星期六": "星期六",
|
||||
"星期日": "星期日",
|
||||
|
||||
"简写周一": "一",
|
||||
"简写周二": "二",
|
||||
"简写周三": "三",
|
||||
@ -34,7 +33,6 @@
|
||||
"简写周五": "五",
|
||||
"简写周六": "六",
|
||||
"简写周日": "日",
|
||||
|
||||
"周一": "周一",
|
||||
"周二": "周二",
|
||||
"周三": "周三",
|
||||
@ -42,7 +40,6 @@
|
||||
"周五": "周五",
|
||||
"周六": "周六",
|
||||
"周日": "周日",
|
||||
|
||||
"群发钥匙": "群发钥匙",
|
||||
"锁": "锁",
|
||||
"请添加": "请添加",
|
||||
@ -103,7 +100,6 @@
|
||||
"考勤记录": "考勤记录",
|
||||
"未打卡": "未打卡",
|
||||
"假日信息": "假日信息",
|
||||
|
||||
"基本信息": "基本信息",
|
||||
"无线键盘": "无线键盘",
|
||||
"选择无线键盘": "选择无线键盘",
|
||||
@ -122,7 +118,6 @@
|
||||
"微信二维码": "微信二维码",
|
||||
"拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边": "拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边",
|
||||
"锁编号": "锁编号",
|
||||
|
||||
"电量": "电量",
|
||||
"锁分组": "锁分组",
|
||||
"选择分组": "选择分组",
|
||||
@ -136,7 +131,6 @@
|
||||
"附近的设备": "附近的设备",
|
||||
"暂无数据": "暂无数据",
|
||||
"通过门磁可查询门的开、关状态。每把锁咳添加一个门磁": "通过门磁可查询门的开、关状态。每把锁咳添加一个门磁",
|
||||
|
||||
"开始": "开始",
|
||||
"全天": "全天",
|
||||
"你可以设置多个常开时间段,在设置的时间段内,锁被打开后一直处于打开的状态。": "你可以设置多个常开时间段,在设置的时间段内,锁被打开后一直处于打开的状态。",
|
||||
@ -159,9 +153,8 @@
|
||||
"升级": "升级",
|
||||
"空闲": "空闲",
|
||||
"已入住": "已入住",
|
||||
|
||||
"英文": "英文",
|
||||
"中文": "中文",
|
||||
"简体中文": "简体中文",
|
||||
"多语言": "多语言",
|
||||
"添加锁": "添加锁",
|
||||
"锁地址": "锁地址",
|
||||
@ -172,7 +165,6 @@
|
||||
"客服": "客服",
|
||||
"设置": "设置",
|
||||
"更多设置": "更多设置",
|
||||
|
||||
"消息推送": "消息推送",
|
||||
"锁用户管理": "锁用户管理",
|
||||
"拥有的钥匙": "拥有的钥匙",
|
||||
@ -201,7 +193,6 @@
|
||||
"请输入昵称": "请输入昵称",
|
||||
"修改昵称": "修改昵称",
|
||||
"修改账号": "修改账号",
|
||||
|
||||
"重置密码": "重置密码",
|
||||
"安全问题": "安全问题",
|
||||
"为了你的账号安全,修改账号前请先使用验证码验证": "为了你的账号安全,修改账号前请先使用验证码验证",
|
||||
@ -354,7 +345,6 @@
|
||||
"判断方法:": "判断方法:",
|
||||
"判断方法内容": "人站在屋外,面向入户门。\n如果门的合页或门轴在左边,则门是左开;\n如果门的合页或门轴在右边,则门是右开。\n如果设置错误,将无法正常开关门。\n建议由安装或维修人员操作。",
|
||||
"录像时段": "录像时段",
|
||||
|
||||
"密码": "密码",
|
||||
"卡": "卡",
|
||||
"指纹": "指纹",
|
||||
@ -746,19 +736,25 @@
|
||||
"请选择有效日": "请选择有效日",
|
||||
"公司名字长度不能小于 6 ": "公司名字长度不能小于 6 ",
|
||||
"已是最新版本": "已是最新版本",
|
||||
|
||||
"无考勤记录": "无考勤记录",
|
||||
"大家干劲十足": "大家干劲十足",
|
||||
"工作时长未出炉": "工作时长未出炉",
|
||||
"国家地区的选择将影响数据安全,你当前选择的是阿尔巴尼亚,请确认后再继续": "国家地区的选择将影响数据安全,你当前选择的是阿尔巴尼亚,请确认后再继续",
|
||||
"确认国家或地区": "确认国家或地区",
|
||||
"我知道了": "我知道了",
|
||||
"一":"一",
|
||||
"二":"二",
|
||||
"三":"三",
|
||||
"四":"四",
|
||||
"五":"五",
|
||||
"六":"六",
|
||||
"日":"日",
|
||||
"新建短信模版": "新建短信模版",
|
||||
"新建邮件模版": "新建邮件模版",
|
||||
"自定义短信模版": "自定义短信模版",
|
||||
"自定义邮件模版": "自定义邮件模版",
|
||||
"名称": "名称",
|
||||
"星星锁": "星星锁",
|
||||
"无考勤记录": "无考勤记录",
|
||||
"大家干劲十足": "大家干劲十足",
|
||||
"工作时长未出炉": "工作时长未出炉",
|
||||
"国家地区的选择将影响数据安全,你当前选择的是阿尔巴尼亚,请确认后再继续": "国家地区的选择将影响数据安全,你当前选择的是阿尔巴尼亚,请确认后再继续",
|
||||
"确认国家或地区": "确认国家或地区",
|
||||
"我知道了": "我知道了",
|
||||
"为了让您及时收到重要通知和更新,我们需要获取通知权限。请点击“确定”按钮,然后在设置页面中启用通知权限。": "为了让您及时收到重要通知和更新,我们需要获取通知权限。请点击“确定”按钮,然后在设置页面中启用通知权限。",
|
||||
"开启后,可通过长按锁上的设置键重新上电,用APP重新添加": "开启后,可通过长按锁上的设置键重新上电,用APP重新添加",
|
||||
"已有": "已有",
|
||||
@ -774,7 +770,6 @@
|
||||
"个人用户": "个人用户",
|
||||
"星寓": "星寓",
|
||||
"账号": "账号",
|
||||
|
||||
"请输入手机号或email": "请输入手机号或email",
|
||||
"请输入星寓管理员的账号": "请输入星寓管理员的账号",
|
||||
"选中的智能锁将会转移到您输入的账号中,您将失去锁的管理权": "选中的智能锁将会转移到您输入的账号中,您将失去锁的管理权",
|
||||
@ -808,14 +803,12 @@
|
||||
"进度": "进度",
|
||||
"失败": "失败",
|
||||
"人脸详情": "人脸详情",
|
||||
|
||||
"感应到门前约1.5米有人时,将自动启动面部识别开锁。": "感应到门前约1.5米有人时,将自动启动面部识别开锁。",
|
||||
"感应到门前约0.8米有人时,将自动启动面部识别开锁。": "感应到门前约0.8米有人时,将自动启动面部识别开锁。",
|
||||
"感应到门前约0.5米有人时,将自动启动面部识别开锁。": "感应到门前约0.5米有人时,将自动启动面部识别开锁。",
|
||||
"感应距离已关闭,需手动触摸键盘任意键,进行面部识别开锁。": "感应距离已关闭,需手动触摸键盘任意键,进行面部识别开锁。",
|
||||
"防误开已打开,开锁后": "防误开已打开,开锁后",
|
||||
"秒内不可使用面容开锁": "秒内不可使用面容开锁",
|
||||
|
||||
"掌静脉": "掌静脉",
|
||||
"添加掌静脉": "添加掌静脉",
|
||||
"胁迫掌静脉": "胁迫掌静脉",
|
||||
@ -825,7 +818,6 @@
|
||||
"掌静脉号": "掌静脉号",
|
||||
"蓝牙未打开,请到设置里面打开蓝牙": "蓝牙未打开,请到设置里面打开蓝牙",
|
||||
"删除用户时,会将用户拥有的钥匙一起删除。": "删除用户时,会将用户拥有的钥匙一起删除。",
|
||||
|
||||
"配置网络": "配置网络",
|
||||
"你好": "你好",
|
||||
"成功": "成功",
|
||||
@ -1055,6 +1047,39 @@
|
||||
"热门城市": "热门城市",
|
||||
"导出锁数据": "导出锁数据",
|
||||
"一键开锁": "一键开锁",
|
||||
"已开通": "已开通"
|
||||
|
||||
"已开通": "已开通",
|
||||
"繁体中文": "繁体中文",
|
||||
"法语": "法语",
|
||||
"俄语": "俄语",
|
||||
"德语": "德语",
|
||||
"日语": "日语",
|
||||
"韩语": "韩语",
|
||||
"意大利语": "意大利语",
|
||||
"乌克兰语": "乌克兰语",
|
||||
"葡萄牙语": "葡萄牙语",
|
||||
"西班牙语": "西班牙语",
|
||||
"阿拉伯语": "阿拉伯语",
|
||||
"越南语": "越南语",
|
||||
"马莱语": "马莱语",
|
||||
"荷兰语": "荷兰语",
|
||||
"罗马尼亚语": "罗马尼亚语",
|
||||
"立陶宛语": "立陶宛语",
|
||||
"瑞典语": "瑞典语",
|
||||
"爱沙尼亚语": "爱沙尼亚语",
|
||||
"波兰语": "波兰语",
|
||||
"斯洛伐克语": "斯洛伐克语",
|
||||
"捷克语": "捷克语",
|
||||
"希腊语": "希腊语",
|
||||
"希伯来语": "希伯来语",
|
||||
"塞尔维亚语": "塞尔维亚语",
|
||||
"土耳其语": "土耳其语",
|
||||
"匈牙利语": "匈牙利语",
|
||||
"保加利亚语": "保加利亚语",
|
||||
"哈萨克斯坦语": "哈萨克斯坦语",
|
||||
"孟加拉语": "孟加拉语",
|
||||
"克罗地亚语": "克罗地亚语",
|
||||
"泰语": "泰语",
|
||||
"印度尼西亚语": "印度尼西亚语",
|
||||
"芬兰语": "芬兰语",
|
||||
"丹麦语": "丹麦语"
|
||||
}
|
||||
|
||||
@ -71,7 +71,7 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
|
||||
if (idx != -1) {
|
||||
locale = appSupportedLocales[idx];
|
||||
} else {
|
||||
locale = const Locale('zh', 'CN');
|
||||
locale = Get.locale;
|
||||
}
|
||||
}
|
||||
AppManager().setLanCode(
|
||||
@ -86,7 +86,7 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
|
||||
.first
|
||||
: Get.deviceLocale,
|
||||
// locale: Get.deviceLocale,
|
||||
fallbackLocale: const Locale('zh', 'CN'),
|
||||
fallbackLocale: Get.locale,
|
||||
theme: ThemeData(
|
||||
scaffoldBackgroundColor: const Color(0xFFF6F6F6),
|
||||
backgroundColor: const Color(0xFFF6F6F6),
|
||||
|
||||
@ -65,11 +65,7 @@ FutureOr<void> main() async {
|
||||
}
|
||||
|
||||
// 设置国际化信息
|
||||
Future<void> _initTranslation() async => TranslationLoader.loadTranslation(
|
||||
zhSource: 'lan/lan_zh.json',
|
||||
enSource: 'lan/lan_en.json',
|
||||
keySource: 'lan/lan_keys.json',
|
||||
);
|
||||
Future<void> _initTranslation() async => TranslationLoader.loadTranslation();
|
||||
|
||||
// 设置包名服务设备信息
|
||||
Future<void> _setCommonServices() async {
|
||||
|
||||
@ -90,10 +90,12 @@ class LockDetailLogic extends BaseGetXController {
|
||||
|
||||
// 开锁成功上报
|
||||
lockReportLockSuccessfullyUploadData();
|
||||
//锁数据更新
|
||||
// getLockRecordLastUploadDataTime();
|
||||
|
||||
resetOpenDoorState();
|
||||
state.animationController!.stop();
|
||||
|
||||
//锁数据更新
|
||||
// getLockRecordLastUploadDataTime();
|
||||
break;
|
||||
case 0x06:
|
||||
//无权限
|
||||
|
||||
@ -258,7 +258,7 @@ class _RealTimePicturePageState extends State<RealTimePicturePage> with TickerPr
|
||||
*/
|
||||
})),
|
||||
bottomBtnItemWidget(
|
||||
'images/main/icon_lockDetail_hangUp.png', '挂断', Colors.red, () async {
|
||||
'images/main/icon_lockDetail_hangUp.png', '挂断'.tr, Colors.red, () async {
|
||||
// 挂断
|
||||
logic.udpHangUpAction();
|
||||
CallTalk().finishAVData();
|
||||
|
||||
@ -165,7 +165,7 @@ class _AboutPageState extends State<AboutPage> {
|
||||
endIndent: 20.w,
|
||||
),
|
||||
CommonItem(
|
||||
leftTitel:"".tr,
|
||||
leftTitel:'第三方信息共享清单'.tr,
|
||||
rightTitle: '',
|
||||
isHaveLine: false,
|
||||
isHaveDirection: true,
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
|
||||
import 'dart:ui';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/app_settings/app_settings.dart';
|
||||
import 'package:star_lock/tools/baseGetXController.dart';
|
||||
import '../../main/lockDetail/passwordKey/passwordKeyList/passwordKeyListEntity.dart';
|
||||
import '../../network/api_repository.dart';
|
||||
@ -10,19 +11,21 @@ import 'mineMultiLanguage_state.dart';
|
||||
class MineMultiLanguageLogic extends GetxController {
|
||||
final MineMultiLanguageState state = MineMultiLanguageState();
|
||||
|
||||
//更新个人信息-头像
|
||||
Future<void> updateUserLangInfo(Locale l, String lanTypeTitle) async {
|
||||
//更新个人信息
|
||||
Future<void> updateUserLangInfo(Locale l) async {
|
||||
// AppLog.log('lanTypeTitle: $lanTypeTitle');
|
||||
|
||||
final String lang = l.toLanguageTag();
|
||||
final PasswordKeyListEntity entity = await ApiRepository.to.updateUserLangInfo(lang: lang);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
eventBus.fire(ChangeLanguageBlockLastLanguageEvent(lanTypeTitle));
|
||||
changeLanguage(l);
|
||||
await changeLanguage(l);
|
||||
eventBus.fire(ChangeLanguageBlockLastLanguageEvent());
|
||||
}
|
||||
}
|
||||
|
||||
void changeLanguage(Locale l) {
|
||||
Future<void> changeLanguage(Locale l) async {
|
||||
if(l == Get.locale)return;
|
||||
Get.updateLocale(l);
|
||||
await Get.updateLocale(l);
|
||||
state.resetLan();
|
||||
}
|
||||
}
|
||||
@ -6,7 +6,6 @@ import 'package:star_lock/mine/mineMultiLanguage/mineMultiLanguage_state.dart';
|
||||
|
||||
import '../../app_settings/app_colors.dart';
|
||||
import '../../tools/commonItem.dart';
|
||||
import '../../tools/eventBusEventManage.dart';
|
||||
import '../../tools/titleAppBar.dart';
|
||||
import '../../translations/app_dept.dart';
|
||||
import 'mineMultiLanguage_logic.dart';
|
||||
@ -30,9 +29,9 @@ class _MineMultiLanguagePageState extends State<MineMultiLanguagePage> {
|
||||
barTitle: '多语言'.tr,
|
||||
haveBack: true,
|
||||
backgroundColor: AppColors.mainColor),
|
||||
body: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
body: ListView(
|
||||
// mainAxisAlignment: MainAxisAlignment.start,
|
||||
// mainAxisSize: MainAxisSize.min,
|
||||
children: _children(),
|
||||
)
|
||||
);
|
||||
@ -54,7 +53,8 @@ class _MineMultiLanguagePageState extends State<MineMultiLanguagePage> {
|
||||
// );
|
||||
for (int i = 0; i < state.languages.length; i++) {
|
||||
final Locale e = state.languages[i];
|
||||
final LanguageType lanType = ExtensionLanguageType.fromLanguageCode(e.languageCode);
|
||||
final LanguageType lanType = ExtensionLanguageType.fromLocale(e);
|
||||
// AppLog.log('e:$e lanType:$lanType state.currentLanguageType.value:${state.currentLanguageType.value} Get.locale!.languageCode:${Get.locale!.languageCode} Get.locale!.countryCode:${Get.locale!.countryCode}');
|
||||
l.add(
|
||||
CommonItem(
|
||||
leftTitel: lanType.lanTitle,
|
||||
@ -71,7 +71,7 @@ class _MineMultiLanguagePageState extends State<MineMultiLanguagePage> {
|
||||
)
|
||||
: Container()),
|
||||
action: () {
|
||||
logic.updateUserLangInfo(e, lanType.lanTitle);
|
||||
logic.updateUserLangInfo(e);
|
||||
// eventBus.fire(ChangeLanguageBlockLastLanguageEvent(lanType.lanTitle));
|
||||
}),
|
||||
);
|
||||
|
||||
@ -16,11 +16,11 @@ class MineMultiLanguageState {
|
||||
return appDept.deptSupportedLocales;
|
||||
}
|
||||
|
||||
var currentLanguageType = ExtensionLanguageType.fromLanguageCode(Get.locale!.languageCode).obs;
|
||||
var currentLanguageType = ExtensionLanguageType.fromLocale(Get.locale!).obs;
|
||||
|
||||
void resetLan() {
|
||||
currentLanguageType.value = ExtensionLanguageType.fromLanguageCode(Get.locale!.languageCode);
|
||||
AppLog.log("currentLanguageType.value:${currentLanguageType.value}");
|
||||
StoreService.to.saveLanguageCode(Get.locale!.languageCode);
|
||||
Future<void> resetLan() async {
|
||||
currentLanguageType.value = ExtensionLanguageType.fromLocale(Get.locale!);
|
||||
// AppLog.log('currentLanguageType.value:${currentLanguageType.value} Get.locale!.languageCode:${Get.locale!.languageCode} languages:$languages');
|
||||
await StoreService.to.saveLanguageCode(Get.locale!.languageCode);
|
||||
}
|
||||
}
|
||||
@ -16,10 +16,12 @@ import 'package:star_lock/versionUndate/versionUndate_entity.dart';
|
||||
|
||||
import '../../../../network/api_repository.dart';
|
||||
import '../../../../tools/baseGetXController.dart';
|
||||
import '../../../app_settings/app_settings.dart';
|
||||
import '../../../blue/blue_manage.dart';
|
||||
import '../../../talk/udp/udp_help.dart';
|
||||
import '../../../tools/eventBusEventManage.dart';
|
||||
import '../../../tools/store_service.dart';
|
||||
import '../../../translations/app_dept.dart';
|
||||
|
||||
class MineSetLogic extends BaseGetXController {
|
||||
final MineSetState state = MineSetState();
|
||||
@ -139,16 +141,23 @@ class MineSetLogic extends BaseGetXController {
|
||||
StreamSubscription? _getNumberEvent;
|
||||
void _initLoadDataAction() {
|
||||
// 蓝牙协议通知传输跟蓝牙之外的数据传输类不一样 eventBus
|
||||
_getNumberEvent =
|
||||
eventBus.on<ChangeLanguageBlockLastLanguageEvent>().listen((event) {
|
||||
state.currentLanguage.value = event.languageTitle;
|
||||
_getNumberEvent = eventBus.on<ChangeLanguageBlockLastLanguageEvent>().listen((event) {
|
||||
state.currentLanguage.value = _getCurrentLanguage();
|
||||
});
|
||||
}
|
||||
|
||||
String _getCurrentLanguage() {
|
||||
String currentLanguage = ExtensionLanguageType.fromLocale(appDept.deptSupportedLocales.where((Locale element) =>
|
||||
element.languageCode == StoreService.to.getLanguageCode()).first).lanTitle;
|
||||
// AppLog.log('currentLanguagecurrentLanguage:$currentLanguage StoreService.to.getLanguageCode():${StoreService.to.getLanguageCode()}');
|
||||
return currentLanguage ??'';
|
||||
}
|
||||
|
||||
@override
|
||||
void onReady() {
|
||||
super.onReady();
|
||||
|
||||
state.currentLanguage.value = _getCurrentLanguage();
|
||||
_initLoadDataAction();
|
||||
}
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ class MineSetState {
|
||||
|
||||
RxInt lockScreen = 2.obs; //锁屏
|
||||
RxInt hideExpiredAccessFlag = 2.obs; //隐藏无效开锁
|
||||
RxString currentLanguage = "".obs; //隐藏无效开锁
|
||||
RxString currentLanguage = ''.obs; //隐藏无效开锁
|
||||
|
||||
late FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
|
||||
FlutterLocalNotificationsPlugin();
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
|
||||
@ -88,7 +87,7 @@ class _ValueAddedServicesHighFunctionPageState
|
||||
children: <Widget>[
|
||||
SizedBox(height: 20.h),
|
||||
Text(
|
||||
'当前状态:已开通'.tr,
|
||||
'${'当前状态'.tr}:${"已开通".tr}',
|
||||
style: TextStyle(
|
||||
fontSize: 24.sp, fontWeight: FontWeight.w600),
|
||||
),
|
||||
|
||||
@ -39,6 +39,6 @@ String getLanguageCode() {
|
||||
.where((Locale element) =>
|
||||
element.languageCode == StoreService.to.getLanguageCode())
|
||||
.first
|
||||
: const Locale('zh', 'CN');// Get.deviceLocale;
|
||||
: Get.locale!;// Get.deviceLocale;
|
||||
return locale.toLanguageTag();
|
||||
}
|
||||
@ -5,6 +5,6 @@ import 'package:star_lock/app_settings/app_settings.dart';
|
||||
|
||||
FutureOr<Request> requestLogInterceptor(Request request) async {
|
||||
// AppLog.log('GET HTTP REQUEST \n${request.url} \n${request.headers} ${request.toString()} ');
|
||||
// AppLog.log('请求头:${request.headers.toString()}');
|
||||
AppLog.log('请求头:${request.headers.toString()}');
|
||||
return request;
|
||||
}
|
||||
|
||||
@ -69,9 +69,7 @@ class ChickInAddStaffCardAndFingerprintBlockNumberEvent {
|
||||
|
||||
/// 多语言 切换之后传值到上一级界面
|
||||
class ChangeLanguageBlockLastLanguageEvent {
|
||||
ChangeLanguageBlockLastLanguageEvent(this.languageTitle);
|
||||
|
||||
String languageTitle;
|
||||
ChangeLanguageBlockLastLanguageEvent();
|
||||
}
|
||||
|
||||
/// 锁分组添加或者删除锁之后刷新首页数据
|
||||
|
||||
@ -8,25 +8,57 @@ import 'package:star_lock/translations/trans_lib.dart';
|
||||
import '../tools/app_manager.dart';
|
||||
|
||||
enum AppDept {
|
||||
cdl,
|
||||
starLock,
|
||||
}
|
||||
|
||||
extension ExtensionAppDept on AppDept {
|
||||
|
||||
static AppDept fromAppPackageName(String packageName) {
|
||||
AppDept dept = AppDept.cdl;
|
||||
AppDept dept = AppDept.starLock;
|
||||
packageName = packageName.toLowerCase();
|
||||
if(packageName.contains('cdl')){
|
||||
dept = AppDept.cdl;
|
||||
if(packageName.contains('starLock')){
|
||||
dept = AppDept.starLock;
|
||||
}
|
||||
return dept;
|
||||
}
|
||||
|
||||
List<Locale> get deptSupportedLocales {
|
||||
Locale enL = const Locale('en', 'US');
|
||||
Locale zhL = const Locale('zh', 'CN');
|
||||
const Locale enL = Locale('en', 'US');
|
||||
const Locale zhL = Locale('zh', 'CN');
|
||||
const Locale twL = Locale('zh', 'TW');
|
||||
const Locale frL = Locale('fr', 'FR');
|
||||
const Locale ruL = Locale('ru', 'RU');
|
||||
const Locale deL = Locale('de', 'DE');
|
||||
const Locale jaL = Locale('ja', 'JP');
|
||||
const Locale koL = Locale('ko', 'KR');
|
||||
const Locale itL = Locale('it', 'IT');
|
||||
const Locale ptL = Locale('pt', 'PT');
|
||||
const Locale esL = Locale('es', 'ES');
|
||||
const Locale arL = Locale('ar', 'SA');
|
||||
const Locale viL = Locale('vi', 'VN');
|
||||
const Locale msL = Locale('ms', 'MY');
|
||||
const Locale nlL = Locale('nl', 'NL');
|
||||
const Locale roL = Locale('ro', 'RO');
|
||||
const Locale ltL = Locale('lt', 'LT');
|
||||
const Locale svL = Locale('sv', 'SE');
|
||||
const Locale etL = Locale('et', 'EE');
|
||||
const Locale plL = Locale('pl', 'PL');
|
||||
const Locale skL = Locale('sk', 'SK');
|
||||
const Locale csL = Locale('cs', 'CZ');
|
||||
const Locale elL = Locale('el', 'GR');
|
||||
const Locale heL = Locale('he', 'IL');
|
||||
const Locale trL = Locale('tr', 'TR');
|
||||
const Locale huL = Locale('hu', 'HU');
|
||||
const Locale bgL = Locale('bg', 'BG');
|
||||
const Locale kkL = Locale('kk', 'KZ');
|
||||
const Locale bnL = Locale('bn', 'BD');
|
||||
const Locale hbsL = Locale('hr', 'BA');
|
||||
const Locale thL = Locale('th', 'TH');
|
||||
const Locale idL = Locale('id', 'ID');
|
||||
const Locale fiL = Locale('fi', 'FI');
|
||||
const Locale daL = Locale('da', 'DK');
|
||||
|
||||
return [enL,zhL];
|
||||
return [enL,zhL,twL,frL,ruL,deL,jaL,koL,itL,ptL,esL,arL,viL,msL,nlL,roL,ltL,svL,etL,plL,skL,csL,elL,heL,trL,huL,bgL,kkL,bnL,hbsL,thL,idL,fiL,daL];
|
||||
}
|
||||
|
||||
}
|
||||
@ -38,13 +70,75 @@ final List<Locale> appSupportedLocales = appDept.deptSupportedLocales;
|
||||
enum LanguageType {
|
||||
chinese,
|
||||
english,
|
||||
deutsch, // 德语
|
||||
francais, // 法语
|
||||
italiano, // 意大利
|
||||
dutch, // 荷兰语
|
||||
spanish, // 西班牙
|
||||
czech, // 捷克语
|
||||
slovak // 斯洛伐克语
|
||||
// 繁体中文
|
||||
traditionalChinese,
|
||||
// 法语
|
||||
french,
|
||||
// 俄语
|
||||
russian,
|
||||
// 德语
|
||||
german,
|
||||
// 日语
|
||||
japanese,
|
||||
// 韩语
|
||||
korean,
|
||||
// 意大利语
|
||||
italian,
|
||||
// 乌克兰语
|
||||
// ukrainian,
|
||||
// 葡萄牙语
|
||||
portuguese,
|
||||
// 西班牙语
|
||||
spanish,
|
||||
// 阿拉伯语
|
||||
arabic,
|
||||
// 越南语
|
||||
vietnamese,
|
||||
// 马莱语
|
||||
malay,
|
||||
// 荷兰语
|
||||
dutch,
|
||||
// 罗马尼亚语
|
||||
romanian,
|
||||
// 立陶宛语
|
||||
lithuanian,
|
||||
// 瑞典语
|
||||
swedish,
|
||||
// 爱沙尼亚语
|
||||
estonian,
|
||||
// 波兰语
|
||||
polish,
|
||||
// 斯洛伐克语
|
||||
slovak,
|
||||
// 捷克语
|
||||
czech,
|
||||
// 希腊语
|
||||
greek,
|
||||
// 希伯来语
|
||||
hebrew,
|
||||
// 塞尔维亚文
|
||||
// serbian,
|
||||
// 土耳其语
|
||||
turkish,
|
||||
// 匈牙利语
|
||||
hungarian,
|
||||
// 保加利亚语
|
||||
bulgarian,
|
||||
// 哈萨克斯坦语
|
||||
kazakh,
|
||||
// 孟加拉语
|
||||
bengali,
|
||||
// 克罗地亚语
|
||||
croatian,
|
||||
// 泰语
|
||||
thai,
|
||||
// 印度尼西亚语
|
||||
indonesian,
|
||||
// 芬兰语
|
||||
finnish,
|
||||
// 丹麦语
|
||||
danish,
|
||||
|
||||
}
|
||||
|
||||
extension ExtensionLanguageType on LanguageType {
|
||||
@ -55,25 +149,344 @@ extension ExtensionLanguageType on LanguageType {
|
||||
str = '英文'.tr;
|
||||
break;
|
||||
case LanguageType.chinese:
|
||||
str = '中文'.tr;
|
||||
str = '简体中文'.tr;
|
||||
break;
|
||||
case LanguageType.traditionalChinese:
|
||||
str = '繁体中文'.tr;
|
||||
break;
|
||||
case LanguageType.french:
|
||||
str = '法语'.tr;
|
||||
break;
|
||||
case LanguageType.russian:
|
||||
str = '俄语'.tr;
|
||||
break;
|
||||
case LanguageType.german:
|
||||
str = '德语'.tr;
|
||||
break;
|
||||
case LanguageType.japanese:
|
||||
str = '日语'.tr;
|
||||
break;
|
||||
case LanguageType.korean:
|
||||
str = '韩语'.tr;
|
||||
break;
|
||||
case LanguageType.italian:
|
||||
str = '意大利语'.tr;
|
||||
break;
|
||||
// case LanguageType.ukrainian:
|
||||
// str = '乌克兰语'.tr;
|
||||
// break;
|
||||
case LanguageType.portuguese:
|
||||
str = '葡萄牙语'.tr;
|
||||
break;
|
||||
case LanguageType.spanish:
|
||||
str = '西班牙语'.tr;
|
||||
break;
|
||||
case LanguageType.arabic:
|
||||
str = '阿拉伯语'.tr;
|
||||
break;
|
||||
case LanguageType.vietnamese:
|
||||
str = '越南语'.tr;
|
||||
break;
|
||||
case LanguageType.malay:
|
||||
str = '马莱语'.tr;
|
||||
break;
|
||||
case LanguageType.dutch:
|
||||
str = '荷兰语'.tr;
|
||||
break;
|
||||
case LanguageType.romanian:
|
||||
str = '罗马尼亚语'.tr;
|
||||
break;
|
||||
case LanguageType.lithuanian:
|
||||
str = '立陶宛语'.tr;
|
||||
break;
|
||||
case LanguageType.swedish:
|
||||
str = '瑞典语'.tr;
|
||||
break;
|
||||
case LanguageType.estonian:
|
||||
str = '爱沙尼亚语'.tr;
|
||||
break;
|
||||
case LanguageType.polish:
|
||||
str = '波兰语'.tr;
|
||||
break;
|
||||
case LanguageType.slovak:
|
||||
str = '斯洛伐克语'.tr;
|
||||
break;
|
||||
case LanguageType.czech:
|
||||
str = '捷克语'.tr;
|
||||
break;
|
||||
case LanguageType.greek:
|
||||
str = '希腊语'.tr;
|
||||
break;
|
||||
case LanguageType.hebrew:
|
||||
str = '希伯来语'.tr;
|
||||
break;
|
||||
// case LanguageType.serbian:
|
||||
// str = '塞尔维亚文'.tr;
|
||||
// break;
|
||||
case LanguageType.turkish:
|
||||
str = '土耳其语'.tr;
|
||||
break;
|
||||
case LanguageType.hungarian:
|
||||
str = '匈牙利语'.tr;
|
||||
break;
|
||||
case LanguageType.bulgarian:
|
||||
str = '保加利亚语'.tr;
|
||||
break;
|
||||
case LanguageType.kazakh:
|
||||
str = '哈萨克斯坦语'.tr;
|
||||
break;
|
||||
case LanguageType.bengali:
|
||||
str = '孟加拉语'.tr;
|
||||
break;
|
||||
case LanguageType.croatian:
|
||||
str = '克罗地亚语'.tr;
|
||||
break;
|
||||
case LanguageType.thai:
|
||||
str = '泰语'.tr;
|
||||
break;
|
||||
case LanguageType.indonesian:
|
||||
str = '印度尼西亚语'.tr;
|
||||
break;
|
||||
case LanguageType.finnish:
|
||||
str = '芬兰语'.tr;
|
||||
break;
|
||||
case LanguageType.danish:
|
||||
str = '丹麦语'.tr;
|
||||
break;
|
||||
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
static LanguageType fromLanguageCode(String code) {
|
||||
// static LanguageType fromLanguageCode(String code) {
|
||||
// LanguageType languageType = LanguageType.english;
|
||||
// switch(code.toLowerCase()){
|
||||
// case 'en':
|
||||
// languageType = LanguageType.english;
|
||||
// break;
|
||||
// case 'zh':
|
||||
// languageType = LanguageType.chinese;
|
||||
// break;
|
||||
// case 'tw':
|
||||
// languageType = LanguageType.traditionalChinese;
|
||||
// break;
|
||||
// case 'fr':
|
||||
// languageType = LanguageType.french;
|
||||
// break;
|
||||
// case 'ru':
|
||||
// languageType = LanguageType.russian;
|
||||
// break;
|
||||
// case 'de':
|
||||
// languageType = LanguageType.german;
|
||||
// break;
|
||||
// case 'ja':
|
||||
// languageType = LanguageType.japanese;
|
||||
// break;
|
||||
// case 'ko':
|
||||
// languageType = LanguageType.korean;
|
||||
// break;
|
||||
// case 'it':
|
||||
// languageType = LanguageType.italian;
|
||||
// break;
|
||||
// // case 'uk':
|
||||
// // languageType = LanguageType.ukrainian;
|
||||
// // break;
|
||||
// case 'pt':
|
||||
// languageType = LanguageType.portuguese;
|
||||
// break;
|
||||
// case 'es':
|
||||
// languageType = LanguageType.spanish;
|
||||
// break;
|
||||
// case 'ar':
|
||||
// languageType = LanguageType.arabic;
|
||||
// break;
|
||||
// case 'vi':
|
||||
// languageType = LanguageType.vietnamese;
|
||||
// break;
|
||||
// case 'ms':
|
||||
// languageType = LanguageType.malay;
|
||||
// break;
|
||||
// case 'nl':
|
||||
// languageType = LanguageType.dutch;
|
||||
// break;
|
||||
// case 'ro':
|
||||
// languageType = LanguageType.romanian;
|
||||
// break;
|
||||
// case 'lt':
|
||||
// languageType = LanguageType.lithuanian;
|
||||
// break;
|
||||
// case 'sv':
|
||||
// languageType = LanguageType.swedish;
|
||||
// break;
|
||||
// case 'et':
|
||||
// languageType = LanguageType.estonian;
|
||||
// break;
|
||||
// case 'pl':
|
||||
// languageType = LanguageType.polish;
|
||||
// break;
|
||||
// case 'sk':
|
||||
// languageType = LanguageType.slovak;
|
||||
// break;
|
||||
// case 'cs':
|
||||
// languageType = LanguageType.czech;
|
||||
// break;
|
||||
// case 'el':
|
||||
// languageType = LanguageType.greek;
|
||||
// break;
|
||||
// case 'he':
|
||||
// languageType = LanguageType.hebrew;
|
||||
// break;
|
||||
// // case 'sr':
|
||||
// // languageType = LanguageType.serbian;
|
||||
// // break;
|
||||
// case 'tr':
|
||||
// languageType = LanguageType.turkish;
|
||||
// break;
|
||||
// case 'hu':
|
||||
// languageType = LanguageType.hungarian;
|
||||
// break;
|
||||
// case 'bg':
|
||||
// languageType = LanguageType.bulgarian;
|
||||
// break;
|
||||
// case 'kk':
|
||||
// languageType = LanguageType.kazakh;
|
||||
// break;
|
||||
// case 'bn':
|
||||
// languageType = LanguageType.bengali;
|
||||
// break;
|
||||
// case 'hr':
|
||||
// languageType = LanguageType.croatian;
|
||||
// break;
|
||||
// case 'th':
|
||||
// languageType = LanguageType.thai;
|
||||
// break;
|
||||
// case 'id':
|
||||
// languageType = LanguageType.indonesian;
|
||||
// break;
|
||||
// case 'fi':
|
||||
// languageType = LanguageType.finnish;
|
||||
// break;
|
||||
// case 'da':
|
||||
// languageType = LanguageType.danish;
|
||||
// break;
|
||||
// }
|
||||
// return languageType;
|
||||
// }
|
||||
|
||||
static LanguageType fromLocale(Locale locale) {
|
||||
LanguageType languageType = LanguageType.english;
|
||||
final String code = locale.languageCode;
|
||||
final String countryCode = locale.countryCode ?? '';
|
||||
switch(code.toLowerCase()){
|
||||
case 'en':
|
||||
languageType = LanguageType.english;
|
||||
break;
|
||||
case 'zh':
|
||||
languageType = LanguageType.chinese;
|
||||
if(countryCode.toLowerCase() == 'cn'){
|
||||
languageType = LanguageType.chinese;
|
||||
}else{
|
||||
languageType = LanguageType.traditionalChinese;
|
||||
}
|
||||
break;
|
||||
case 'fr':
|
||||
languageType = LanguageType.french;
|
||||
break;
|
||||
case 'ru':
|
||||
languageType = LanguageType.russian;
|
||||
break;
|
||||
case 'de':
|
||||
languageType = LanguageType.german;
|
||||
break;
|
||||
case 'ja':
|
||||
languageType = LanguageType.japanese;
|
||||
break;
|
||||
case 'ko':
|
||||
languageType = LanguageType.korean;
|
||||
break;
|
||||
case 'it':
|
||||
languageType = LanguageType.italian;
|
||||
break;
|
||||
// case 'uk':
|
||||
// languageType = LanguageType.ukrainian;
|
||||
// break;
|
||||
case 'pt':
|
||||
languageType = LanguageType.portuguese;
|
||||
break;
|
||||
case 'es':
|
||||
languageType = LanguageType.spanish;
|
||||
break;
|
||||
case 'ar':
|
||||
languageType = LanguageType.arabic;
|
||||
break;
|
||||
case 'vi':
|
||||
languageType = LanguageType.vietnamese;
|
||||
break;
|
||||
case 'ms':
|
||||
languageType = LanguageType.malay;
|
||||
break;
|
||||
case 'nl':
|
||||
languageType = LanguageType.dutch;
|
||||
break;
|
||||
case 'ro':
|
||||
languageType = LanguageType.romanian;
|
||||
break;
|
||||
case 'lt':
|
||||
languageType = LanguageType.lithuanian;
|
||||
break;
|
||||
case 'sv':
|
||||
languageType = LanguageType.swedish;
|
||||
break;
|
||||
case 'et':
|
||||
languageType = LanguageType.estonian;
|
||||
break;
|
||||
case 'pl':
|
||||
languageType = LanguageType.polish;
|
||||
break;
|
||||
case 'sk':
|
||||
languageType = LanguageType.slovak;
|
||||
break;
|
||||
case 'cs':
|
||||
languageType = LanguageType.czech;
|
||||
break;
|
||||
case 'el':
|
||||
languageType = LanguageType.greek;
|
||||
break;
|
||||
case 'he':
|
||||
languageType = LanguageType.hebrew;
|
||||
break;
|
||||
// case 'sr':
|
||||
// languageType = LanguageType.serbian;
|
||||
// break;
|
||||
case 'tr':
|
||||
languageType = LanguageType.turkish;
|
||||
break;
|
||||
case 'hu':
|
||||
languageType = LanguageType.hungarian;
|
||||
break;
|
||||
case 'bg':
|
||||
languageType = LanguageType.bulgarian;
|
||||
break;
|
||||
case 'kk':
|
||||
languageType = LanguageType.kazakh;
|
||||
break;
|
||||
case 'bn':
|
||||
languageType = LanguageType.bengali;
|
||||
break;
|
||||
case 'hr':
|
||||
languageType = LanguageType.croatian;
|
||||
break;
|
||||
case 'th':
|
||||
languageType = LanguageType.thai;
|
||||
break;
|
||||
case 'id':
|
||||
languageType = LanguageType.indonesian;
|
||||
break;
|
||||
case 'fi':
|
||||
languageType = LanguageType.finnish;
|
||||
break;
|
||||
case 'da':
|
||||
languageType = LanguageType.danish;
|
||||
break;
|
||||
|
||||
}
|
||||
return languageType;
|
||||
}
|
||||
|
||||
}
|
||||
@ -2,28 +2,158 @@ part of lib_trans;
|
||||
|
||||
class TranslationLoader {
|
||||
|
||||
static bool get isZh => Get.locale?.languageCode.toLowerCase() == 'zh';
|
||||
static bool get isEn => Get.locale?.languageCode.toLowerCase() == 'en';
|
||||
// LAN_ZH_CN="zh" # 简体中文
|
||||
// LAN_EN_US="en" # 英文
|
||||
// LAN_ZH_TW="tw" # 繁体中文
|
||||
// LAN_Fr_FR="fr" # 法语
|
||||
// LAN_RU_RU="ru" # 俄语
|
||||
// LAN_DE_DE="de" # 德语
|
||||
// LAN_ZH_JA="ja" # 日语
|
||||
// LAN_ZH_KO="ko" # 韩语
|
||||
// LAN_ZH_IT="it" # 意大利语
|
||||
// #LAN_ZH_TW="uk" # 乌克兰语
|
||||
// LAN_ZH_PT="pt" # 葡萄牙语
|
||||
// LAN_ZH_ES="es" # 西班牙语
|
||||
// LAN_ZH_AR="ar" # 阿拉伯语
|
||||
// LAN_ZH_vi="vi" # 越南语
|
||||
// LAN_ZH_MS="ms" # 马莱语
|
||||
// LAN_ZH_NL="nl" # 荷兰语
|
||||
// LAN_ZH_RO="ro" # 罗马尼亚语
|
||||
// LAN_ZH_LT="lt" # 立陶宛语
|
||||
// LAN_ZH_SV="sv" # 瑞典语
|
||||
// LAN_ZH_ET="et" # 爱沙尼亚语
|
||||
// LAN_ZH_PL="pl" # 波兰语
|
||||
// LAN_ZH_SK="sk" # 斯洛伐克语
|
||||
// LAN_ZH_CS="cs" # 捷克语
|
||||
// LAN_ZH_EL="el" # 希腊语
|
||||
// LAN_ZH_HE="he" # 希伯来语
|
||||
// #LAN_ZH_TW="sr" # 塞尔维亚文
|
||||
// LAN_ZH_TR="tr" # 土耳其语
|
||||
// LAN_ZH_HU="hu" # 匈牙利语
|
||||
// LAN_ZH_BG="bg" # 保加利亚语
|
||||
// LAN_ZH_KK="kk" # 哈萨克斯坦语 === 哈萨克语
|
||||
// LAN_ZH_BN="bn" # 孟加拉语
|
||||
// LAN_ZH_HBS="hr" # 克罗地亚语
|
||||
// LAN_ZH_TH="th" # 泰语
|
||||
// LAN_ZH_ID="id" # 印度尼西亚语
|
||||
// LAN_ZH_FI="fi" # 芬兰语
|
||||
// LAN_ZH_DA="da" # 丹麦语
|
||||
|
||||
static Map<String,String>
|
||||
_zhMap = <String, String>{},
|
||||
_enMap = <String, String>{},
|
||||
_keyMap = <String, String>{};
|
||||
|
||||
// static bool get isZh => Get.locale?.languageCode.toLowerCase() == 'zh';
|
||||
// static bool get isEn => Get.locale?.languageCode.toLowerCase() == 'en';
|
||||
|
||||
static Map<String,String> _zhMap = <String, String>{};
|
||||
static Map<String,String> _enMap = <String, String>{};
|
||||
static Map<String,String> _twMap = <String, String>{};
|
||||
static Map<String,String> _frMap = <String, String>{};
|
||||
static Map<String,String> _ruMap = <String, String>{};
|
||||
static Map<String,String> _deMap = <String, String>{};
|
||||
static Map<String,String> _jaMap = <String, String>{};
|
||||
static Map<String,String> _koMap = <String, String>{};
|
||||
static Map<String,String> _itMap = <String, String>{};
|
||||
static Map<String,String> _ukMap = <String, String>{};
|
||||
static Map<String,String> _ptMap = <String, String>{};
|
||||
static Map<String,String> _esMap = <String, String>{};
|
||||
static Map<String,String> _arMap = <String, String>{};
|
||||
static Map<String,String> _viMap = <String, String>{};
|
||||
static Map<String,String> _msMap = <String, String>{};
|
||||
static Map<String,String> _nlMap = <String, String>{};
|
||||
static Map<String,String> _roMap = <String, String>{};
|
||||
static Map<String,String> _ltMap = <String, String>{};
|
||||
static Map<String,String> _svMap = <String, String>{};
|
||||
static Map<String,String> _etMap = <String, String>{};
|
||||
static Map<String,String> _plMap = <String, String>{};
|
||||
static Map<String,String> _skMap = <String, String>{};
|
||||
static Map<String,String> _csMap = <String, String>{};
|
||||
static Map<String,String> _elMap = <String, String>{};
|
||||
static Map<String,String> _heMap = <String, String>{};
|
||||
static Map<String,String> _srMap = <String, String>{};
|
||||
static Map<String,String> _trMap = <String, String>{};
|
||||
static Map<String,String> _huMap = <String, String>{};
|
||||
static Map<String,String> _bgMap = <String, String>{};
|
||||
static Map<String,String> _kkMap = <String, String>{};
|
||||
static Map<String,String> _bnMap = <String, String>{};
|
||||
static Map<String,String> _hrMap = <String, String>{};
|
||||
static Map<String,String> _thMap = <String, String>{};
|
||||
static Map<String,String> _idMap = <String, String>{};
|
||||
static Map<String,String> _fiMap = <String, String>{};
|
||||
static Map<String,String> _daMap = <String, String>{};
|
||||
|
||||
static Map<String,String> get zhDic => _zhMap;
|
||||
static Map<String,String> get enDic => _enMap;
|
||||
static Map<String,String> get twDic => _twMap;
|
||||
static Map<String,String> get frDic => _frMap;
|
||||
static Map<String,String> get ruDic => _ruMap;
|
||||
static Map<String,String> get deDic => _deMap;
|
||||
static Map<String,String> get jaDic => _jaMap;
|
||||
static Map<String,String> get koDic => _koMap;
|
||||
static Map<String,String> get itDic => _itMap;
|
||||
static Map<String,String> get ukDic => _ukMap;
|
||||
static Map<String,String> get ptDic => _ptMap;
|
||||
static Map<String,String> get esDic => _esMap;
|
||||
static Map<String,String> get arDic => _arMap;
|
||||
static Map<String,String> get viDic => _viMap;
|
||||
static Map<String,String> get msDic => _msMap;
|
||||
static Map<String,String> get nlDic => _nlMap;
|
||||
static Map<String,String> get roDic => _roMap;
|
||||
static Map<String,String> get ltDic => _ltMap;
|
||||
static Map<String,String> get svDic => _svMap;
|
||||
static Map<String,String> get etDic => _etMap;
|
||||
static Map<String,String> get plDic => _plMap;
|
||||
static Map<String,String> get skDic => _skMap;
|
||||
static Map<String,String> get csDic => _csMap;
|
||||
static Map<String,String> get elDic => _elMap;
|
||||
static Map<String,String> get heDic => _heMap;
|
||||
static Map<String,String> get srDic => _srMap;
|
||||
static Map<String,String> get trDic => _trMap;
|
||||
static Map<String,String> get huDic => _huMap;
|
||||
static Map<String,String> get bgDic => _bgMap;
|
||||
static Map<String,String> get kkDic => _kkMap;
|
||||
static Map<String,String> get bnDic => _bnMap;
|
||||
static Map<String,String> get hrDic => _hrMap;
|
||||
static Map<String,String> get thDic => _thMap;
|
||||
static Map<String,String> get idDic => _idMap;
|
||||
static Map<String,String> get fiDic => _fiMap;
|
||||
static Map<String,String> get daDic => _daMap;
|
||||
|
||||
// static LanKeyEntity? _lanKeyEntity;
|
||||
// static LanKeyEntity? get lanKeys => _lanKeyEntity;
|
||||
|
||||
static Future<void> loadTranslation({
|
||||
String? zhSource,
|
||||
String? enSource,
|
||||
String? keySource,}) async {
|
||||
_zhMap = await _loadJsonFile(zhSource!);
|
||||
_enMap = await _loadJsonFile(enSource!);
|
||||
_keyMap = await _loadJsonFile(keySource!);
|
||||
// _lanKeyEntity = LanKeyEntity.fromJson(_keyMap);
|
||||
static Future<void> loadTranslation() async {
|
||||
_zhMap = await _loadJsonFile('lan/lan_zh.json');
|
||||
_enMap = await _loadJsonFile('lan/lan_en.json');
|
||||
_twMap = await _loadJsonFile('lan/lan_tw.json');
|
||||
_frMap = await _loadJsonFile('lan/lan_fr.json');
|
||||
_ruMap = await _loadJsonFile('lan/lan_ru.json');
|
||||
_deMap = await _loadJsonFile('lan/lan_de.json');
|
||||
_jaMap = await _loadJsonFile('lan/lan_ja.json');
|
||||
_koMap = await _loadJsonFile('lan/lan_ko.json');
|
||||
_itMap = await _loadJsonFile('lan/lan_it.json');
|
||||
_ukMap = await _loadJsonFile('lan/lan_uk.json');
|
||||
_ptMap = await _loadJsonFile('lan/lan_pt.json');
|
||||
_esMap = await _loadJsonFile('lan/lan_es.json');
|
||||
_arMap = await _loadJsonFile('lan/lan_ar.json');
|
||||
_viMap = await _loadJsonFile('lan/lan_vi.json');
|
||||
_msMap = await _loadJsonFile('lan/lan_ms.json');
|
||||
_nlMap = await _loadJsonFile('lan/lan_nl.json');
|
||||
_roMap = await _loadJsonFile('lan/lan_ro.json');
|
||||
_ltMap = await _loadJsonFile('lan/lan_lt.json');
|
||||
_svMap = await _loadJsonFile('lan/lan_sv.json');
|
||||
_etMap = await _loadJsonFile('lan/lan_et.json');
|
||||
_plMap = await _loadJsonFile('lan/lan_pl.json');
|
||||
_skMap = await _loadJsonFile('lan/lan_sk.json');
|
||||
_csMap = await _loadJsonFile('lan/lan_cs.json');
|
||||
_elMap = await _loadJsonFile('lan/lan_el.json');
|
||||
_heMap = await _loadJsonFile('lan/lan_he.json');
|
||||
_srMap = await _loadJsonFile('lan/lan_sr.json');
|
||||
_trMap = await _loadJsonFile('lan/lan_tr.json');
|
||||
_huMap = await _loadJsonFile('lan/lan_hu.json');
|
||||
_bgMap = await _loadJsonFile('lan/lan_bg.json');
|
||||
_kkMap = await _loadJsonFile('lan/lan_kk.json');
|
||||
_bnMap = await _loadJsonFile('lan/lan_bn.json');
|
||||
_hrMap = await _loadJsonFile('lan/lan_hr.json');
|
||||
_thMap = await _loadJsonFile('lan/lan_th.json');
|
||||
_idMap = await _loadJsonFile('lan/lan_id.json');
|
||||
_fiMap = await _loadJsonFile('lan/lan_fi.json');
|
||||
_daMap = await _loadJsonFile('lan/lan_da.json');
|
||||
}
|
||||
|
||||
static Future<Map<String,String>> _loadJsonFile(String filePath) async => rootBundle.loadString(filePath).then((String jsonString){
|
||||
|
||||
@ -2,10 +2,81 @@ part of lib_trans;
|
||||
|
||||
class TranslationMessage extends Translations {
|
||||
|
||||
// LAN_ZH_CN="zh" # 简体中文
|
||||
// LAN_EN_US="en" # 英文
|
||||
// LAN_ZH_TW="tw" # 繁体中文
|
||||
// LAN_Fr_FR="fr" # 法语
|
||||
// LAN_RU_RU="ru" # 俄语
|
||||
// LAN_DE_DE="de" # 德语
|
||||
// LAN_ZH_JA="ja" # 日语
|
||||
// LAN_ZH_KO="ko" # 韩语
|
||||
// LAN_ZH_IT="it" # 意大利语
|
||||
// #LAN_ZH_TW="uk" # 乌克兰语
|
||||
// LAN_ZH_PT="pt" # 葡萄牙语
|
||||
// LAN_ZH_ES="es" # 西班牙语
|
||||
// LAN_ZH_AR="ar" # 阿拉伯语
|
||||
// LAN_ZH_vi="vi" # 越南语
|
||||
// LAN_ZH_MS="ms" # 马莱语
|
||||
// LAN_ZH_NL="nl" # 荷兰语
|
||||
// LAN_ZH_RO="ro" # 罗马尼亚语
|
||||
// LAN_ZH_LT="lt" # 立陶宛语
|
||||
// LAN_ZH_SV="sv" # 瑞典语
|
||||
// LAN_ZH_ET="et" # 爱沙尼亚语
|
||||
// LAN_ZH_PL="pl" # 波兰语
|
||||
// LAN_ZH_SK="sk" # 斯洛伐克语
|
||||
// LAN_ZH_CS="cs" # 捷克语
|
||||
// LAN_ZH_EL="el" # 希腊语
|
||||
// LAN_ZH_HE="he" # 希伯来语
|
||||
// #LAN_ZH_TW="sr" # 塞尔维亚文
|
||||
// LAN_ZH_TR="tr" # 土耳其语
|
||||
// LAN_ZH_HU="hu" # 匈牙利语
|
||||
// LAN_ZH_BG="bg" # 保加利亚语
|
||||
// LAN_ZH_KK="kk" # 哈萨克斯坦语 === 哈萨克语
|
||||
// LAN_ZH_BN="bn" # 孟加拉语
|
||||
// LAN_ZH_HBS="hr" # 克罗地亚语
|
||||
// LAN_ZH_TH="th" # 泰语
|
||||
// LAN_ZH_ID="id" # 印度尼西亚语
|
||||
// LAN_ZH_FI="fi" # 芬兰语
|
||||
// LAN_ZH_DA="da" # 丹麦语
|
||||
|
||||
@override
|
||||
Map<String, Map<String, String>> get keys => {
|
||||
'en_US' : TranslationLoader.enDic,
|
||||
'zh_CN': TranslationLoader.zhDic,
|
||||
'zh_TW': TranslationLoader.twDic,
|
||||
'fr_FR': TranslationLoader.frDic,
|
||||
'ru_RU': TranslationLoader.ruDic,
|
||||
'de_DE': TranslationLoader.deDic,
|
||||
'ja_JA': TranslationLoader.jaDic,
|
||||
'ko_KO': TranslationLoader.koDic,
|
||||
'it_IT': TranslationLoader.itDic,
|
||||
'uk_UK': TranslationLoader.ukDic,
|
||||
'pt_PT': TranslationLoader.ptDic,
|
||||
'es_ES': TranslationLoader.esDic,
|
||||
'ar_AR': TranslationLoader.arDic,
|
||||
'vi_VI': TranslationLoader.viDic,
|
||||
'ms_MS': TranslationLoader.msDic,
|
||||
'nl_NL': TranslationLoader.nlDic,
|
||||
'ro_RO': TranslationLoader.roDic,
|
||||
'lt_LT': TranslationLoader.ltDic,
|
||||
'sv_SV': TranslationLoader.svDic,
|
||||
'et_ET': TranslationLoader.etDic,
|
||||
'pl_PL': TranslationLoader.plDic,
|
||||
'sk_SK': TranslationLoader.skDic,
|
||||
'cs_CS': TranslationLoader.csDic,
|
||||
'el_EL': TranslationLoader.elDic,
|
||||
'he_HE': TranslationLoader.heDic,
|
||||
'sr_SR': TranslationLoader.srDic,
|
||||
'tr_TR': TranslationLoader.trDic,
|
||||
'hu_HU': TranslationLoader.huDic,
|
||||
'bg_BG': TranslationLoader.bgDic,
|
||||
'kk_KK': TranslationLoader.kkDic,
|
||||
'bn_BN': TranslationLoader.bnDic,
|
||||
'hr_HR': TranslationLoader.hrDic,
|
||||
'th_TH': TranslationLoader.thDic,
|
||||
'id_ID': TranslationLoader.idDic,
|
||||
'fi_FI': TranslationLoader.fiDic,
|
||||
'da_DA': TranslationLoader.daDic,
|
||||
};
|
||||
|
||||
void updateLocal(Locale l) => Get.updateLocale(l);
|
||||
|
||||
@ -105,6 +105,6 @@ echo -e "\n* 没有发现废弃 API,开始编译"
|
||||
|
||||
# 编译命令
|
||||
#flutter clean && flutter pub get
|
||||
#flutter build apk --flavor $environment -t $main_file
|
||||
flutter build apk --flavor $environment -t $main_file
|
||||
#flutter build ios --flavor $environment -t $main_file
|
||||
flutter build appbundle --flavor $environment -t $main_file
|
||||
#flutter build appbundle --flavor $environment -t $main_file
|
||||
|
||||
@ -86,8 +86,9 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||
# 1.0.74+2024080901:xhj 预发布环境,提交测试:回归 8月9号之前bug
|
||||
# 1.0.75+2024081001:锁定版本,上架商城
|
||||
# 1.0.76+2024081201:锁定版本,上架商城--最新版本
|
||||
# 1.0.78+2024082701:测试国际化功能
|
||||
|
||||
version: 1.0.76+2024081601
|
||||
version: 1.0.78+2024082701
|
||||
|
||||
environment:
|
||||
sdk: '>=2.12.0 <3.0.0'
|
||||
|
||||
@ -10,9 +10,46 @@ SOURCE_LANGUAGE="en"
|
||||
|
||||
|
||||
#项目语言常量
|
||||
LAN_ZH_CN="zh_CN"
|
||||
LAN_ZH_TW="zh_TW"
|
||||
LAN_EN_US="en_US"
|
||||
#LAN_ZH_CN="zh_CN"
|
||||
#LAN_ZH_TW="zh_TW"
|
||||
#LAN_EN_US="en_US"
|
||||
|
||||
LAN_ZH_CN="zh" # 简体中文
|
||||
LAN_EN_US="en" # 英文
|
||||
LAN_ZH_TW="tw" # 繁体中文
|
||||
LAN_Fr_FR="fr" # 法语
|
||||
LAN_RU_RU="ru" # 俄语
|
||||
LAN_DE_DE="de" # 德语
|
||||
LAN_ZH_JA="ja" # 日语
|
||||
LAN_ZH_KO="ko" # 韩语
|
||||
LAN_ZH_IT="it" # 意大利语
|
||||
#LAN_ZH_TW="tw" # 乌克兰语
|
||||
LAN_ZH_PT="pt" # 葡萄牙语
|
||||
LAN_ZH_ES="es" # 西班牙语
|
||||
LAN_ZH_AR="ar" # 阿拉伯语
|
||||
LAN_ZH_vi="vi" # 越南语
|
||||
LAN_ZH_MS="ms" # 马莱语
|
||||
LAN_ZH_NL="nl" # 荷兰语
|
||||
LAN_ZH_RO="ro" # 罗马尼亚语
|
||||
LAN_ZH_LT="lt" # 立陶宛语
|
||||
LAN_ZH_SV="sv" # 瑞典语
|
||||
LAN_ZH_ET="et" # 爱沙尼亚语
|
||||
LAN_ZH_PL="pl" # 波兰语
|
||||
LAN_ZH_SK="sk" # 斯洛伐克语
|
||||
LAN_ZH_CS="cs" # 捷克语
|
||||
LAN_ZH_EL="el" # 希腊语
|
||||
LAN_ZH_HE="he" # 希伯来语
|
||||
#LAN_ZH_TW="tw" # 塞尔维亚文
|
||||
LAN_ZH_TR="tr" # 土耳其语
|
||||
LAN_ZH_HU="hu" # 匈牙利语
|
||||
LAN_ZH_BG="bg" # 保加利亚语
|
||||
LAN_ZH_KK="kk" # 哈萨克斯坦语 === 哈萨克语
|
||||
LAN_ZH_BN="bn" # 孟加拉语
|
||||
LAN_ZH_HBS="hbs" # 克罗地亚语
|
||||
LAN_ZH_TH="th" # 泰语
|
||||
LAN_ZH_ID="id" # 印度尼西亚语
|
||||
LAN_ZH_FI="fi" # 芬兰语
|
||||
LAN_ZH_DA="da" # 丹麦语
|
||||
|
||||
declare -A LANG_LIST=(
|
||||
["$LAN_ZH_CN"]="简体中文"
|
||||
@ -25,6 +62,42 @@ declare -A ALIYUN_LANG_MAP=(
|
||||
["$LAN_ZH_CN"]="zh"
|
||||
["$LAN_ZH_TW"]="zh-tw"
|
||||
["$LAN_EN_US"]="en"
|
||||
# ["$LAN_ZH_CN"]="zh" # 简体中文
|
||||
# ["$LAN_EN_US"]="en" # 英文
|
||||
# ["$LAN_ZH_TW"]="tw" # 繁体中文
|
||||
["$LAN_Fr_FR"]="fr" # 法语
|
||||
["$LAN_RU_RU"]="ru" # 俄语
|
||||
["$LAN_DE_DE"]="de" # 德语
|
||||
["$LAN_ZH_JA"]="ja" # 日语
|
||||
["$LAN_ZH_KO"]="ko" # 韩语
|
||||
["$LAN_ZH_IT"]="it" # 意大利语
|
||||
#LAN_ZH_TW="tw" # 乌克兰语
|
||||
["$LAN_ZH_PT"]="pt" # 葡萄牙语
|
||||
["$LAN_ZH_ES"]="es" # 西班牙语
|
||||
["$LAN_ZH_AR"]="ar" # 阿拉伯语
|
||||
["$LAN_ZH_vi"]="vi" # 越南语
|
||||
["$LAN_ZH_MS"]="ms" # 马莱语
|
||||
["$LAN_ZH_NL"]="nl" # 荷兰语
|
||||
["$LAN_ZH_RO"]="ro" # 罗马尼亚语
|
||||
["$LAN_ZH_LT"]="lt" # 立陶宛语
|
||||
["$LAN_ZH_SV"]="sv" # 瑞典语
|
||||
["$LAN_ZH_ET"]="et" # 爱沙尼亚语
|
||||
["$LAN_ZH_PL"]="pl" # 波兰语
|
||||
["$LAN_ZH_SK"]="sk" # 斯洛伐克语
|
||||
["$LAN_ZH_CS"]="cs" # 捷克语
|
||||
["$LAN_ZH_EL"]="el" # 希腊语
|
||||
["$LAN_ZH_HE"]="he" # 希伯来语
|
||||
#LAN_ZH_TW="tw" # 塞尔维亚文
|
||||
["$LAN_ZH_TR"]="tr" # 土耳其语
|
||||
["$LAN_ZH_HU"]="hu" # 匈牙利语
|
||||
["$LAN_ZH_BG"]="bg" # 保加利亚语
|
||||
["$LAN_ZH_KK"]="kk" # 哈萨克斯坦语 === 哈萨克语
|
||||
["$LAN_ZH_BN"]="bn" # 孟加拉语
|
||||
["$LAN_ZH_HBS"]="hbs" # 克罗地亚语
|
||||
["$LAN_ZH_TH"]="th" # 泰语
|
||||
["$LAN_ZH_ID"]="id" # 印度尼西亚语
|
||||
["$LAN_ZH_FI"]="fi" # 芬兰语
|
||||
["$LAN_ZH_DA"]="da" # 丹麦语
|
||||
)
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user