Commit 1ea0925b authored by 李维's avatar 李维

添加多语言支持

parent dd361957
......@@ -10241,7 +10241,7 @@
},
{
"__type__": "cc.Node",
"_name": "New Label",
"_name": "New Label_1",
"_objFlags": 0,
"_parent": {
"__id__": 208
......@@ -10652,7 +10652,7 @@
"_groupIndex": 0,
"groupIndex": 0,
"showInEditor": false,
"_id": "5fo/Mkc2NIM5w1quAi/9l3"
"_id": "d0osMy/ZtHXoscl2w2e8hG"
},
{
"__type__": "cc.Label",
......@@ -10685,7 +10685,7 @@
"_N$fontFamily": "Arial",
"_N$overflow": 0,
"_N$cacheMode": 0,
"_id": "d1xmYILYxJmrmwnJcT+z1r"
"_id": "62xY5DmaBN97RRqNn+nwuZ"
},
{
"__type__": "cc.RichText",
......@@ -10778,7 +10778,7 @@
},
{
"__type__": "cc.Node",
"_name": "New Label",
"_name": "New Label_2",
"_objFlags": 0,
"_parent": {
"__id__": 208
......@@ -11001,7 +11001,7 @@
"_groupIndex": 0,
"groupIndex": 0,
"showInEditor": false,
"_id": "05VpeqK6FNtZ9lmJ0pTQ42"
"_id": "70EJ61P9RFeodCZvZDOyiA"
},
{
"__type__": "cc.Label",
......@@ -11034,7 +11034,7 @@
"_N$fontFamily": "Arial",
"_N$overflow": 0,
"_N$cacheMode": 0,
"_id": "5epSqtsZ9IqZ5C/YG0kpnC"
"_id": "7fzKR3dbdBypPSVLOpv5dr"
},
{
"__type__": "cc.RichText",
......
import { asyncDelay, buttonOnClick, jumpToBundle, onHomeworkFinish } from "../script/util";
import { MyCocosSceneComponent } from "../script/MyCocosSceneComponent";
import { lang as languageString, langConfig} from "../script/language_NJ_login"
const { ccclass, property } = cc._decorator;
@ccclass
export default class SceneComponent extends MyCocosSceneComponent {
async onLoadEnd() {
this.translateLanguageString()
this.initData();
this.initListener();
}
middleLayer;
orgId = 507;
localLanguage = "zh-cn"
initData() {
const middleLayer = cc.find('middleLayer')?.getComponent('middleLayer');
if (middleLayer) {
......@@ -28,21 +30,21 @@ export default class SceneComponent extends MyCocosSceneComponent {
async login(phone, password, passCode = '') {
if (!this.checkPhone(phone)) {
console.log('请输入正确的手机号码');
this.middleLayer.showTips('请输入正确的手机号码');
this.middleLayer.showTips(languageString[this.localLanguage].phone_error);
return;
}
const oldPhone = cc.sys.localStorage.getItem('phone');
if (`${phone}_x` === oldPhone) {
console.log("用户不存在,请先注册");
this.middleLayer.showTips('用户不存在,请先注册');
this.middleLayer.showTips(languageString[this.localLanguage].user_not_exist);
return;
}
const check = cc.find('Canvas/bg/ui/btnLaw/check');
if (!check.active) {
console.log('请勾选下方协议');
this.middleLayer.showTips('请勾选下方协议');
this.middleLayer.showTips(languageString[this.localLanguage].check_agreement);
return;
}
......@@ -61,6 +63,71 @@ export default class SceneComponent extends MyCocosSceneComponent {
jumpToBundle('NJ_YouLeChang');
}
translateLanguageString() {
if(!this.middleLayer || !this.middleLayer.getLocalLanguage) {
console.log("未检测到中间层,或中间层不支持getLocalLanguage, 使用默认语言")
return
}
const localLanguage = this.middleLayer.getLocalLanguage()
if(!languageString[localLanguage] || !langConfig[localLanguage]) {
console.log(`语言${localLanguage}未找到,使用默认语言`)
return
}
this.localLanguage = localLanguage;
console.log(`使用语言${this.localLanguage}`)
// 点击输入手机号
cc.find("Canvas/bg/ui/loginNode/phone/inputPhone").getComponent(cc.EditBox).placeholder = languageString[this.localLanguage].click_input_phone;
cc.find("Canvas/bg/ui/forgetNode/phone/inputPhone").getComponent(cc.EditBox).placeholder = languageString[this.localLanguage].click_input_phone;
cc.find("Canvas/bg/ui/registerNode/phone/inputPhone").getComponent(cc.EditBox).placeholder = languageString[this.localLanguage].click_input_phone;
// 点击输入密码
cc.find("Canvas/bg/ui/loginNode/password/password").getComponent(cc.EditBox).placeholder = languageString[this.localLanguage].click_input_password;
cc.find("Canvas/bg/ui/forgetNode/password/password").getComponent(cc.EditBox).placeholder = languageString[this.localLanguage].click_input_new_password;
cc.find("Canvas/bg/ui/registerNode/password/password").getComponent(cc.EditBox).placeholder = languageString[this.localLanguage].click_input_password;
// 点击输入验证码
cc.find("Canvas/bg/ui/forgetNode/passCode/passCode").getComponent(cc.EditBox).placeholder = languageString[this.localLanguage].click_input_code;
cc.find("Canvas/bg/ui/registerNode/passCode/passCode").getComponent(cc.EditBox).placeholder = languageString[this.localLanguage].click_input_code;
// 发送验证码
cc.find("Canvas/bg/ui/forgetNode/passCode/btnSendCode/label").getComponent(cc.Label).string = languageString[this.localLanguage].send_code;
cc.find("Canvas/bg/ui/registerNode/passCode/btnSendCode/label").getComponent(cc.Label).string = languageString[this.localLanguage].send_code;
// 马上登录
cc.find("Canvas/bg/ui/loginNode/btnLogin/New Label").getComponent(cc.Label).string = languageString[this.localLanguage].login_right_now;
cc.find("Canvas/bg/ui/forgetNode/btnGoToLogin/New Label").getComponent(cc.Label).string = languageString[this.localLanguage].login_right_now;
cc.find("Canvas/bg/ui/registerNode/btnGoToLogin/New Label").getComponent(cc.Label).string = languageString[this.localLanguage].login_right_now;
// 重置并登录
cc.find("Canvas/bg/ui/forgetNode/btnResetPassword/New Label").getComponent(cc.Label).string = languageString[this.localLanguage].reset_and_login;
// 注册并登录
cc.find("Canvas/bg/ui/registerNode/btnRegister/New Label").getComponent(cc.Label).string = languageString[this.localLanguage].register_and_login;
// 立即注册
cc.find("Canvas/bg/ui/loginNode/btnRegister/New Label").getComponent(cc.Label).string = languageString[this.localLanguage].register_now;
cc.find("Canvas/bg/ui/forgetNode/btnRegister/New Label").getComponent(cc.Label).string = languageString[this.localLanguage].register_now;
// 忘记密码
cc.find("Canvas/bg/ui/loginNode/btnForgetPassword/New Label").getComponent(cc.Label).string = languageString[this.localLanguage].forget_password;
cc.find("Canvas/bg/ui/registerNode/btnForgetPassword/New Label").getComponent(cc.Label).string = languageString[this.localLanguage].forget_password;
// 不想登录?去游乐场
cc.find("Canvas/bg/ui/tryatry/text").getComponent(cc.Label).string = languageString[this.localLanguage].tryatry;
// 关闭
cc.find("Canvas/bg/webContainer/closeWebbtn").getComponent(cc.Label).string = languageString[this.localLanguage].close;
// 我已阅读并同意 用户隐私保护政策 及 服务条款
cc.find("Canvas/bg/ui/btnLaw/New Label_1").getComponent(cc.Label).string = languageString[this.localLanguage].law.split("/@/")[0];
cc.find("Canvas/bg/ui/btnLaw/privacy").getComponent(cc.RichText).string = `<color=#fee60a>《${languageString[this.localLanguage].law.split("/@/")[1]}》</c>`;
cc.find("Canvas/bg/ui/btnLaw/New Label_2").getComponent(cc.Label).string = languageString[this.localLanguage].law.split("/@/")[2];
cc.find("Canvas/bg/ui/btnLaw/policy").getComponent(cc.RichText).string = `<color=#fee60a>《${languageString[this.localLanguage].law.split("/@/")[3]}》</c>`;
}
checkPhone(phone) {
const test = /^[1]([3-9])[0-9]{9}$/;
if (!test.test(phone)) {
......@@ -80,7 +147,7 @@ export default class SceneComponent extends MyCocosSceneComponent {
async sendCode(phone) {
if (!this.checkPhone(phone)) {
console.log('请输入正确的手机号码');
this.middleLayer.showTips('请输入正确的手机号码');
this.middleLayer.showTips(languageString[this.localLanguage].phone_error);
return;
}
const res = await this.middleLayer.asyncCallNetworkApiPost('/api/oxford/v1/sendcode', {
......@@ -120,7 +187,7 @@ export default class SceneComponent extends MyCocosSceneComponent {
const password = inputPassword.getComponent(cc.EditBox).string;
if(!this.checkPassword(password)) {
this.middleLayer.showTips('密码由字母大小写和数字组成,必须包含字母和数字且不得少于8位');
this.middleLayer.showTips(languageString[this.localLanguage].password_format_error);
inputPassword.getComponent(cc.EditBox).string == "";
return;
}
......@@ -141,7 +208,7 @@ export default class SceneComponent extends MyCocosSceneComponent {
const inputPassword = cc.find('Canvas/bg/ui/registerNode/password/password');
const password = inputPassword.getComponent(cc.EditBox).string;
if(!this.checkPassword(password)) {
this.middleLayer.showTips('密码由字母大小写和数字组成,必须包含字母和数字且不得少于8位');
this.middleLayer.showTips(languageString[this.localLanguage].password_format_error);
inputPassword.getComponent(cc.EditBox).string == "";
return;
}
......@@ -149,7 +216,7 @@ export default class SceneComponent extends MyCocosSceneComponent {
const inputPassCode = cc.find('Canvas/bg/ui/registerNode/passCode/passCode');
const passCode = inputPassCode.getComponent(cc.EditBox).string;
if (!passCode || passCode.length != 6) {
this.middleLayer.showTips("请填写正确的验证码");
this.middleLayer.showTips(languageString[this.localLanguage].code_error);
return;
}
......@@ -170,13 +237,13 @@ export default class SceneComponent extends MyCocosSceneComponent {
const label = btnSendCode.getChildByName('label').getComponent(cc.Label);
// 发送验证码
if (label.string == '发送验证码') {
if (label.string == languageString[this.localLanguage].send_code) {
let countDown = 60;
const tween = cc.tween(label)
.call(() => {
label.string = `${countDown}`;
if (countDown == 0) {
label.string = '发送验证码';
label.string = languageString[this.localLanguage].send_code;
tween.stop();
}
countDown--;
......@@ -193,13 +260,13 @@ export default class SceneComponent extends MyCocosSceneComponent {
const inputPhone = cc.find('Canvas/bg/ui/forgetNode/phone/inputPhone');
const phone = inputPhone.getComponent(cc.EditBox).string;
const label = btnSendCode2.getChildByName('label').getComponent(cc.Label);
if (label.string == '发送验证码') {
if (label.string == languageString[this.localLanguage].send_code) {
let countDown = 60;
const tween = cc.tween(label)
.call(() => {
label.string = `${countDown}`;
if (countDown == 0) {
label.string = '发送验证码';
label.string = languageString[this.localLanguage].send_code;
tween.stop();
}
countDown--;
......@@ -356,13 +423,13 @@ export default class SceneComponent extends MyCocosSceneComponent {
onOpenPrivacy() {
const web_container = cc.find(`Canvas/bg/webContainer`);
const web_view = cc.find(`webBg/webview`, web_container);
web_view.getComponent(cc.WebView).url = "https://appstore.iteachabc.com/application/web/privacy_policy/oxford_privacy.html?t="+Date.now();
web_view.getComponent(cc.WebView).url = langConfig[this.localLanguage].privacy_url+Date.now();
web_container.active = true;
}
onOpenPolicy() {
const web_container = cc.find(`Canvas/bg/webContainer`);
const web_view = cc.find(`webBg/webview`, web_container);
web_view.getComponent(cc.WebView).url = "https://appstore.iteachabc.com/application/web/privacy_policy/oxford_policy.html?t="+Date.now();
web_view.getComponent(cc.WebView).url = langConfig[this.localLanguage].policy_url+Date.now();
web_container.active = true;
}
closeWebView() {
......
export const lang = {
"zh-cn": {
"phone_error": "请输入正确的手机号码",
"user_not_exist": "用户不存在,请先注册",
"check_agreement": "请勾选下方协议",
"password_format_error": "密码由字母大小写和数字组成,必须包含字母和数字且不得少于8位",
"code_error": "请填写正确的验证码",
"send_code": "发送验证码",
"click_input_phone": "点击输入手机号",
"click_input_password": "点击输入密码",
"click_input_new_password": "点击输入新密码",
"click_input_code": "点击输入验证码",
"login_right_now": "马上登录",
"reset_and_login": "重置并登录",
"register_now": "立即注册",
"register_and_login": "注册并登录",
"forget_password": "忘记密码",
"tryatry": "不想登录?去游乐场...",
"law": "我已阅读并同意/@/用户隐私保护政策/@/及/@/服务条款",
"close": "关闭"
},
"ru-ru": {
"phone_error": "Пожалуйста, введите правильный номер телефона",
"user_not_exist": "Пользователя не существует, сначала зарегистрируйтесь",
"check_agreement": "Выберите протокол ниже",
"password_format_error": "Пароль состоит из букв, букв и цифр, должен содержать буквы и цифры и должен быть не менее 8 бит",
"code_error": "Пожалуйста, заполните правильный код",
"send_code": "Отправить код проверки",
"click_input_phone": "Нажмите для ввода номера телефона",
"click_input_password": "Нажмите для ввода пароля",
"click_input_new_password": "Нажмите для ввода нового пароля",
"click_input_code": "Нажмите для ввода кода проверки",
"login_right_now": "Зарегистрируйтесь прямо сейчас",
"reset_and_login": "Сбросить и войти в систему",
"register_now": "Немедленная регистрация",
"register_and_login": "Регистрация и регистрация",
"forget_password": "Забыть пароль",
"tryatry": "Не хотите регистрироваться? Иди на игровую площадку...",
"law": "Я прочитал и согласился./@/Политика конфиденциальности пользователей/@/И/@/Условия предоставления услуг",
"close": "Закрыть"
},
}
export const langConfig = {
"zh-cn": {
"privacy_url" : "https://appstore.iteachabc.com/application/web/privacy_policy/oxford_privacy.html?t=",
"policy_url" : "https://appstore.iteachabc.com/application/web/privacy_policy/oxford_policy.html?t=",
},
"ru-ru": {
"privacy_url" : "https://appstore.iteachabc.com/application/web/privacy_policy/oxford_privacy.html?t=",
"policy_url" : "https://appstore.iteachabc.com/application/web/privacy_policy/oxford_policy.html?t=",
}
}
\ No newline at end of file
{
"ver": "1.0.8",
"uuid": "54ae4465-56be-4418-aa71-e653848a70a4",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
......@@ -4,5 +4,6 @@
"name": "play",
"id": "9af72fd2-44a6-4131-8ea3-3e1b3fa22231",
"version": "2.4.5",
"isNew": false
"isNew": false,
"description": ""
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment