component-sanzhizhou 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,16 +7,19 @@ import { SafetyOutlined } from '@ant-design/icons';
7
7
  import Tool from "../lib/Tool";
8
8
  import formatMessage from "../lib/formatMessage";
9
9
  import * as AuthController from "../service/api/AuthController";
10
- import { solvePow } from "./pow";
10
+ import HumanVerify from "./human-verify";
11
+ import styles from "./index.module.less";
11
12
  var phoneReg = /^1\d{10}$/;
12
- /** 手机号 + 验证码 + 发送按钮(含倒计时与工作量证明)。 */
13
+ /** 人机验证 + 手机验证码 + 发送按钮(含倒计时)。 */
13
14
  var PhoneCode = function PhoneCode(_ref) {
14
- var form = _ref.form,
15
+ var formSpan = _ref.formSpan,
16
+ form = _ref.form,
15
17
  scene = _ref.scene,
16
18
  env = _ref.env,
17
19
  apiUrl = _ref.apiUrl,
18
20
  disabledFormItemLabel = _ref.disabledFormItemLabel;
19
21
  var accountName = Form.useWatch('accountName', form);
22
+ var phone = (accountName || '').replace(/\s+/g, '');
20
23
  var _useState = useState(0),
21
24
  _useState2 = _slicedToArray(_useState, 2),
22
25
  countdown = _useState2[0],
@@ -25,6 +28,14 @@ var PhoneCode = function PhoneCode(_ref) {
25
28
  _useState4 = _slicedToArray(_useState3, 2),
26
29
  sending = _useState4[0],
27
30
  setSending = _useState4[1];
31
+ var _useState5 = useState(''),
32
+ _useState6 = _slicedToArray(_useState5, 2),
33
+ challenge = _useState6[0],
34
+ setChallenge = _useState6[1];
35
+ var _useState7 = useState(''),
36
+ _useState8 = _slicedToArray(_useState7, 2),
37
+ nonce = _useState8[0],
38
+ setNonce = _useState8[1];
28
39
  useEffect(function () {
29
40
  if (countdown <= 0) {
30
41
  return;
@@ -38,72 +49,85 @@ var PhoneCode = function PhoneCode(_ref) {
38
49
  return clearTimeout(timer);
39
50
  };
40
51
  }, [countdown]);
52
+
53
+ // 手机号变化时,之前的验证结果失效
54
+ useEffect(function () {
55
+ setChallenge('');
56
+ setNonce('');
57
+ }, [phone]);
58
+ var onVerified = function onVerified(c, n) {
59
+ setChallenge(c);
60
+ setNonce(n);
61
+ };
41
62
  var onSendCode = /*#__PURE__*/function () {
42
63
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
43
- var phone, challengeData, nonce;
44
64
  return _regeneratorRuntime().wrap(function _callee$(_context) {
45
65
  while (1) switch (_context.prev = _context.next) {
46
66
  case 0:
47
- phone = (accountName || '').replace(/\s+/g, '');
48
67
  if (phoneReg.test(phone)) {
49
- _context.next = 4;
68
+ _context.next = 3;
50
69
  break;
51
70
  }
52
71
  Tool.toastError(formatMessage('请输入正确的手机号码'));
53
72
  return _context.abrupt("return");
54
- case 4:
73
+ case 3:
74
+ if (!(!challenge || !nonce)) {
75
+ _context.next = 6;
76
+ break;
77
+ }
78
+ Tool.toastError(formatMessage('请先完成人机验证'));
79
+ return _context.abrupt("return");
80
+ case 6:
55
81
  setSending(true);
56
- _context.prev = 5;
57
- _context.next = 8;
58
- return AuthController.powChallenge({
59
- accountName: phone,
60
- scene: scene
61
- }, {
62
- env: env,
63
- apiUrl: apiUrl
64
- });
65
- case 8:
66
- challengeData = _context.sent;
67
- _context.next = 11;
68
- return solvePow(challengeData.challenge, challengeData.difficulty);
69
- case 11:
70
- nonce = _context.sent;
71
- _context.next = 14;
82
+ _context.prev = 7;
83
+ _context.next = 10;
72
84
  return AuthController.sendSmsCode({
73
85
  accountName: phone,
74
86
  scene: scene,
75
- challenge: challengeData.challenge,
87
+ challenge: challenge,
76
88
  nonce: nonce
77
89
  }, {
78
90
  env: env,
79
91
  apiUrl: apiUrl
80
92
  });
81
- case 14:
93
+ case 10:
82
94
  setCountdown(60);
83
95
  Tool.toast(formatMessage('验证码已发送'));
84
- _context.next = 20;
96
+ _context.next = 16;
85
97
  break;
86
- case 18:
87
- _context.prev = 18;
88
- _context.t0 = _context["catch"](5);
89
- case 20:
90
- _context.prev = 20;
98
+ case 14:
99
+ _context.prev = 14;
100
+ _context.t0 = _context["catch"](7);
101
+ case 16:
102
+ _context.prev = 16;
91
103
  setSending(false);
92
- return _context.finish(20);
93
- case 23:
104
+ return _context.finish(16);
105
+ case 19:
94
106
  case "end":
95
107
  return _context.stop();
96
108
  }
97
- }, _callee, null, [[5, 18, 20, 23]]);
109
+ }, _callee, null, [[7, 14, 16, 19]]);
98
110
  }));
99
111
  return function onSendCode() {
100
112
  return _ref2.apply(this, arguments);
101
113
  };
102
114
  }();
103
- return /*#__PURE__*/React.createElement(Form.Item, {
115
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Form.Item, {
116
+ wrapperCol: {
117
+ offset: formSpan
118
+ },
119
+ className: styles.humanVerifyItem
120
+ }, /*#__PURE__*/React.createElement(HumanVerify, {
121
+ key: phone,
122
+ phone: phone,
123
+ scene: scene,
124
+ env: env,
125
+ apiUrl: apiUrl,
126
+ onVerified: onVerified
127
+ })), /*#__PURE__*/React.createElement(Form.Item, {
104
128
  label: disabledFormItemLabel ? undefined : formatMessage('验证码'),
105
129
  labelCol: {
106
- span: 8
130
+ span: formSpan
107
131
  }
108
132
  }, /*#__PURE__*/React.createElement(Space.Compact, {
109
133
  style: {
@@ -128,7 +152,7 @@ var PhoneCode = function PhoneCode(_ref) {
128
152
  })), /*#__PURE__*/React.createElement(Button, {
129
153
  onClick: onSendCode,
130
154
  loading: sending,
131
- disabled: countdown > 0
132
- }, countdown > 0 ? "".concat(countdown, "s") : formatMessage('获取验证码'))));
155
+ disabled: countdown > 0 || !nonce
156
+ }, countdown > 0 ? "".concat(countdown, "s") : formatMessage('获取验证码')))));
133
157
  };
134
158
  export default PhoneCode;
@@ -120,37 +120,49 @@ function _solvePow() {
120
120
  return _regeneratorRuntime().wrap(function _callee$(_context) {
121
121
  while (1) switch (_context.prev = _context.next) {
122
122
  case 0:
123
+ if (!(difficulty <= 0)) {
124
+ _context.next = 2;
125
+ break;
126
+ }
127
+ return _context.abrupt("return", '0');
128
+ case 2:
129
+ if (!(difficulty > 64)) {
130
+ _context.next = 4;
131
+ break;
132
+ }
133
+ throw new Error('pow difficulty too high');
134
+ case 4:
123
135
  nonce = Math.floor(Math.random() * 0x100000000);
124
136
  count = 0; // eslint-disable-next-line no-constant-condition
125
- case 2:
137
+ case 6:
126
138
  if (!true) {
127
- _context.next = 14;
139
+ _context.next = 18;
128
140
  break;
129
141
  }
130
142
  candidate = nonce.toString(36);
131
143
  hash = sha256Hex("".concat(challenge, ".").concat(candidate));
132
144
  if (!(leadingZeroBits(hash) >= difficulty)) {
133
- _context.next = 7;
145
+ _context.next = 11;
134
146
  break;
135
147
  }
136
148
  return _context.abrupt("return", candidate);
137
- case 7:
149
+ case 11:
138
150
  nonce = nonce + 1 >>> 0;
139
151
  count++;
140
152
 
141
153
  // 每 3000 次让出主线程,避免卡 UI
142
154
  if (!(count % 3000 === 0)) {
143
- _context.next = 12;
155
+ _context.next = 16;
144
156
  break;
145
157
  }
146
- _context.next = 12;
158
+ _context.next = 16;
147
159
  return new Promise(function (resolve) {
148
160
  return setTimeout(resolve, 0);
149
161
  });
150
- case 12:
151
- _context.next = 2;
162
+ case 16:
163
+ _context.next = 6;
152
164
  break;
153
- case 14:
165
+ case 18:
154
166
  case "end":
155
167
  return _context.stop();
156
168
  }
@@ -42,9 +42,7 @@ var Register = function Register(_ref) {
42
42
  values.accountName = (values.accountName || '').replace(/\s+/g, '');
43
43
  run(values);
44
44
  };
45
- return /*#__PURE__*/React.createElement("section", {
46
- className: "authMainReg"
47
- }, /*#__PURE__*/React.createElement(Form, {
45
+ return /*#__PURE__*/React.createElement("section", null, /*#__PURE__*/React.createElement(Form, {
48
46
  form: form,
49
47
  onFinish: onFinish,
50
48
  disabled: loading,
@@ -68,6 +66,7 @@ var Register = function Register(_ref) {
68
66
  className: "input-prefix-icon"
69
67
  })
70
68
  })), /*#__PURE__*/React.createElement(PhoneCode, {
69
+ formSpan: 8,
71
70
  form: form,
72
71
  scene: "reg",
73
72
  env: env,
@@ -130,8 +129,10 @@ var Register = function Register(_ref) {
130
129
  iconRender: function iconRender(visible) {
131
130
  return visible ? /*#__PURE__*/React.createElement(EyeTwoTone, null) : /*#__PURE__*/React.createElement(EyeInvisibleOutlined, null);
132
131
  }
133
- })), /*#__PURE__*/React.createElement("div", {
134
- className: "auth-submits"
132
+ })), /*#__PURE__*/React.createElement(Form.Item, {
133
+ wrapperCol: {
134
+ offset: 8
135
+ }
135
136
  }, /*#__PURE__*/React.createElement(Button, {
136
137
  type: "primary",
137
138
  loading: loading,
@@ -8,6 +8,8 @@ export interface AccountAuthData {
8
8
  nickname: string;
9
9
  avatarUrl: string;
10
10
  gender: number;
11
+ isSubAccount: boolean;
12
+ powerKindList: string[];
11
13
  }
12
14
  /** PoW 挑战。 */
13
15
  export interface PowChallengeData {
@@ -14,7 +14,7 @@ import { getApiEnv } from "../lib/getApiUrl";
14
14
  import Tool from "../lib/Tool";
15
15
  import formatMessage from "../lib/formatMessage";
16
16
  import h5WePublicLogin from "../AuthClient/qr/h5-we-public-login";
17
- import styles from "./index.css";
17
+ import styles from "./index.module.less";
18
18
  var reTryMaxCount = 120;
19
19
  var reTryTimeLoop = 1000; // ms
20
20
  var FromWhere = 'web';
@@ -196,27 +196,29 @@ var WechatQr = function WechatQr(_ref) {
196
196
  onReload: function onReload() {
197
197
  return onRetryWeQr();
198
198
  }
199
- }, /*#__PURE__*/React.createElement(styles.WeQrUrlBox, null, /*#__PURE__*/React.createElement("div", {
200
- className: "qr wechat ".concat(isNextTry ? '' : 'noTry')
199
+ }, /*#__PURE__*/React.createElement("div", {
200
+ className: styles.WeQrUrlBox
201
+ }, /*#__PURE__*/React.createElement("div", {
202
+ className: styles.qr
201
203
  }, !isNextTry && /*#__PURE__*/React.createElement("div", {
202
- className: "reTry",
204
+ className: styles.reTry,
203
205
  onClick: onRetryWeQr
204
206
  }, /*#__PURE__*/React.createElement("a", null, /*#__PURE__*/React.createElement(RedoOutlined, null))), /*#__PURE__*/React.createElement("div", {
205
- className: "weQrUrl"
207
+ className: styles.weQrUrl
206
208
  }, /*#__PURE__*/React.createElement(QRCode, {
207
209
  value: weQrUrl,
208
210
  fgColor: "#0bc160",
209
211
  size: 230
210
212
  }))), Platform.isH5 ? /*#__PURE__*/React.createElement("div", {
211
- className: "altWeb"
213
+ className: styles.altWeb
212
214
  }, /*#__PURE__*/React.createElement("div", {
213
- className: "titles"
214
- }, "\u4E0B\u9762\u4EFB\u9009\u4E00\u4E2A\u65B9\u6CD5\u90FD\u53EF\u4EE5\u767B\u5F55\uFF1A"), /*#__PURE__*/React.createElement("ul", null, /*#__PURE__*/React.createElement("li", null, "1\u3001\u628A\u672C\u9875\u7F51\u5740\u590D\u5236\u5230\u5FAE\u4FE1\u91CC\u9762\u6253\u5F00"), /*#__PURE__*/React.createElement("li", null, "2\u3001\u8BF7\u7528\u5FAE\u4FE1\u626B\u7801\u767B\u5F55"), /*#__PURE__*/React.createElement("li", null, "3\u3001\u628A\u672C\u9875\u7F51\u5740\u590D\u5236\u5230\u5FAE\u4FE1\u91CC\u9762\u6253\u5F00"))) : /*#__PURE__*/React.createElement("div", {
215
- className: "alt"
215
+ className: styles.titles
216
+ }, formatMessage('下面任选一个方法都可以登录:')), /*#__PURE__*/React.createElement("ul", null, /*#__PURE__*/React.createElement("li", null, formatMessage('1、把本页网址复制到微信里面打开')), /*#__PURE__*/React.createElement("li", null, formatMessage('2、请用微信扫码登录')), /*#__PURE__*/React.createElement("li", null, formatMessage('3、把本页网址复制到微信里面打开')))) : /*#__PURE__*/React.createElement("div", {
217
+ className: styles.alt
216
218
  }))), /*#__PURE__*/React.createElement("div", {
217
- className: "percent"
219
+ className: styles.percent
218
220
  }, /*#__PURE__*/React.createElement("div", {
219
- className: "warp",
221
+ className: styles.warp,
220
222
  style: {
221
223
  width: "".concat(reTryCount / reTryMaxCount * 100, "%")
222
224
  }
@@ -33,5 +33,28 @@
33
33
  "重试": "إعادة المحاولة",
34
34
  "充值就送": "عروض الشحن",
35
35
  "送": "هدية",
36
- "选择": "اختر"
36
+ "选择": "اختر",
37
+ "微信": "WeChat",
38
+ "忘记密码": "نسيت كلمة المرور",
39
+ "找回密码": "استعادة كلمة المرور",
40
+ "新密码": "كلمة مرور جديدة",
41
+ "重置密码": "إعادة تعيين كلمة المرور",
42
+ "验证码": "رمز التحقق",
43
+ "获取验证码": "الحصول على الرمز",
44
+ "请输入验证码": "يرجى إدخال رمز التحقق",
45
+ "验证码为6位数字": "رمز التحقق يتكون من 6 أرقام",
46
+ "验证码已发送": "تم إرسال رمز التحقق",
47
+ "请输入正确的手机号码": "يرجى إدخال رقم هاتف صحيح",
48
+ "请先完成人机验证": "يرجى إكمال التحقق أولاً",
49
+ "我不是机器人": "لست روبوتًا",
50
+ "人机校验中": "جارٍ التحقق",
51
+ "验证通过": "تم التحقق",
52
+ "密码已重置,请登录": "تمت إعادة تعيين كلمة المرور، يرجى تسجيل الدخول",
53
+ "两次输入的密码不一致": "كلمتا المرور غير متطابقتين",
54
+ "下面任选一个方法都可以登录:": "اختر أي طريقة أدناه لتسجيل الدخول:",
55
+ "1、把本页网址复制到微信里面打开": "1. انسخ رابط هذه الصفحة وافتحه في WeChat",
56
+ "2、请用微信扫码登录": "2. امسح رمز QR باستخدام WeChat لتسجيل الدخول",
57
+ "3、把本页网址复制到微信里面打开": "3. انسخ رابط هذه الصفحة وافتحه في WeChat",
58
+ "名称": "الاسم",
59
+ "优惠券": "قسيمة"
37
60
  }
@@ -33,5 +33,28 @@
33
33
  "重试": "Wiederholen",
34
34
  "充值就送": "Auflade-Bonus",
35
35
  "送": "Bonus",
36
- "选择": "Auswählen"
36
+ "选择": "Auswählen",
37
+ "微信": "WeChat",
38
+ "忘记密码": "Passwort vergessen",
39
+ "找回密码": "Passwort zurücksetzen",
40
+ "新密码": "Neues Passwort",
41
+ "重置密码": "Passwort zurücksetzen",
42
+ "验证码": "Bestätigungscode",
43
+ "获取验证码": "Code anfordern",
44
+ "请输入验证码": "Bitte Bestätigungscode eingeben",
45
+ "验证码为6位数字": "Der Bestätigungscode besteht aus 6 Ziffern",
46
+ "验证码已发送": "Bestätigungscode gesendet",
47
+ "请输入正确的手机号码": "Bitte gültige Mobilnummer eingeben",
48
+ "请先完成人机验证": "Bitte zuerst die Sicherheitsprüfung abschließen",
49
+ "我不是机器人": "Ich bin kein Roboter",
50
+ "人机校验中": "Wird überprüft",
51
+ "验证通过": "Verifiziert",
52
+ "密码已重置,请登录": "Passwort zurückgesetzt, bitte anmelden",
53
+ "两次输入的密码不一致": "Die beiden Passwörter stimmen nicht überein",
54
+ "下面任选一个方法都可以登录:": "Wähle eine der folgenden Methoden zum Anmelden:",
55
+ "1、把本页网址复制到微信里面打开": "1. URL dieser Seite kopieren und in WeChat öffnen",
56
+ "2、请用微信扫码登录": "2. QR-Code mit WeChat scannen, um sich anzumelden",
57
+ "3、把本页网址复制到微信里面打开": "3. URL dieser Seite kopieren und in WeChat öffnen",
58
+ "名称": "Name",
59
+ "优惠券": "Gutschein"
37
60
  }
@@ -33,5 +33,28 @@
33
33
  "重试": "Retry",
34
34
  "充值就送": "Recharge Bonus",
35
35
  "送": "Bonus",
36
- "选择": "Select"
36
+ "选择": "Select",
37
+ "微信": "WeChat",
38
+ "忘记密码": "Forgot Password",
39
+ "找回密码": "Reset Password",
40
+ "新密码": "New Password",
41
+ "重置密码": "Reset Password",
42
+ "验证码": "Verification Code",
43
+ "获取验证码": "Get Code",
44
+ "请输入验证码": "Please enter the verification code",
45
+ "验证码为6位数字": "Verification code is 6 digits",
46
+ "验证码已发送": "Verification code sent",
47
+ "请输入正确的手机号码": "Please enter a valid mobile number",
48
+ "请先完成人机验证": "Please complete the human verification first",
49
+ "我不是机器人": "I'm not a robot",
50
+ "人机校验中": "Verifying",
51
+ "验证通过": "Verified",
52
+ "密码已重置,请登录": "Password reset, please log in",
53
+ "两次输入的密码不一致": "The two passwords do not match",
54
+ "下面任选一个方法都可以登录:": "Use any method below to log in:",
55
+ "1、把本页网址复制到微信里面打开": "1. Copy this page URL and open it in WeChat",
56
+ "2、请用微信扫码登录": "2. Scan the QR code with WeChat to log in",
57
+ "3、把本页网址复制到微信里面打开": "3. Copy this page URL and open it in WeChat",
58
+ "名称": "Name",
59
+ "优惠券": "Coupon"
37
60
  }
@@ -33,5 +33,28 @@
33
33
  "重试": "Reintentar",
34
34
  "充值就送": "Recarga con Regalo",
35
35
  "送": "Regalo",
36
- "选择": "Seleccionar"
36
+ "选择": "Seleccionar",
37
+ "微信": "WeChat",
38
+ "忘记密码": "Olvidé mi contraseña",
39
+ "找回密码": "Recuperar contraseña",
40
+ "新密码": "Nueva contraseña",
41
+ "重置密码": "Restablecer contraseña",
42
+ "验证码": "Código de verificación",
43
+ "获取验证码": "Obtener código",
44
+ "请输入验证码": "Introduce el código de verificación",
45
+ "验证码为6位数字": "El código de verificación tiene 6 dígitos",
46
+ "验证码已发送": "Código de verificación enviado",
47
+ "请输入正确的手机号码": "Introduce un número de móvil válido",
48
+ "请先完成人机验证": "Completa primero la verificación de seguridad",
49
+ "我不是机器人": "No soy un robot",
50
+ "人机校验中": "Verificando",
51
+ "验证通过": "Verificado",
52
+ "密码已重置,请登录": "Contraseña restablecida, inicia sesión",
53
+ "两次输入的密码不一致": "Las contraseñas no coinciden",
54
+ "下面任选一个方法都可以登录:": "Elige cualquier método de abajo para iniciar sesión:",
55
+ "1、把本页网址复制到微信里面打开": "1. Copia la URL de esta página y ábrela en WeChat",
56
+ "2、请用微信扫码登录": "2. Escanea el código QR con WeChat para iniciar sesión",
57
+ "3、把本页网址复制到微信里面打开": "3. Copia la URL de esta página y ábrela en WeChat",
58
+ "名称": "Nombre",
59
+ "优惠券": "Cupón"
37
60
  }
@@ -33,5 +33,28 @@
33
33
  "重试": "Réessayer",
34
34
  "充值就送": "Recharge Bonus",
35
35
  "送": "Bonus",
36
- "选择": "Sélectionner"
36
+ "选择": "Sélectionner",
37
+ "微信": "WeChat",
38
+ "忘记密码": "Mot de passe oublié",
39
+ "找回密码": "Récupérer le mot de passe",
40
+ "新密码": "Nouveau mot de passe",
41
+ "重置密码": "Réinitialiser le mot de passe",
42
+ "验证码": "Code de vérification",
43
+ "获取验证码": "Obtenir le code",
44
+ "请输入验证码": "Veuillez saisir le code de vérification",
45
+ "验证码为6位数字": "Le code de vérification comporte 6 chiffres",
46
+ "验证码已发送": "Code de vérification envoyé",
47
+ "请输入正确的手机号码": "Veuillez saisir un numéro de mobile valide",
48
+ "请先完成人机验证": "Veuillez d'abord terminer la vérification",
49
+ "我不是机器人": "Je ne suis pas un robot",
50
+ "人机校验中": "Vérification",
51
+ "验证通过": "Vérifié",
52
+ "密码已重置,请登录": "Mot de passe réinitialisé, veuillez vous connecter",
53
+ "两次输入的密码不一致": "Les deux mots de passe ne correspondent pas",
54
+ "下面任选一个方法都可以登录:": "Choisissez l'une des méthodes ci-dessous pour vous connecter :",
55
+ "1、把本页网址复制到微信里面打开": "1. Copiez l'URL de cette page et ouvrez-la dans WeChat",
56
+ "2、请用微信扫码登录": "2. Scannez le QR code avec WeChat pour vous connecter",
57
+ "3、把本页网址复制到微信里面打开": "3. Copiez l'URL de cette page et ouvrez-la dans WeChat",
58
+ "名称": "Nom",
59
+ "优惠券": "Coupon"
37
60
  }
@@ -33,5 +33,28 @@
33
33
  "重试": "Riprova",
34
34
  "充值就送": "Bonus Ricarica",
35
35
  "送": "Bonus",
36
- "选择": "Seleziona"
36
+ "选择": "Seleziona",
37
+ "微信": "WeChat",
38
+ "忘记密码": "Password dimenticata",
39
+ "找回密码": "Recupera password",
40
+ "新密码": "Nuova password",
41
+ "重置密码": "Reimposta password",
42
+ "验证码": "Codice di verifica",
43
+ "获取验证码": "Ottieni codice",
44
+ "请输入验证码": "Inserisci il codice di verifica",
45
+ "验证码为6位数字": "Il codice di verifica è di 6 cifre",
46
+ "验证码已发送": "Codice di verifica inviato",
47
+ "请输入正确的手机号码": "Inserisci un numero di cellulare valido",
48
+ "请先完成人机验证": "Completa prima la verifica",
49
+ "我不是机器人": "Non sono un robot",
50
+ "人机校验中": "Verifica in corso",
51
+ "验证通过": "Verificato",
52
+ "密码已重置,请登录": "Password reimpostata, accedi",
53
+ "两次输入的密码不一致": "Le due password non coincidono",
54
+ "下面任选一个方法都可以登录:": "Scegli uno dei metodi qui sotto per accedere:",
55
+ "1、把本页网址复制到微信里面打开": "1. Copia l'URL di questa pagina e aprilo in WeChat",
56
+ "2、请用微信扫码登录": "2. Scansiona il QR code con WeChat per accedere",
57
+ "3、把本页网址复制到微信里面打开": "3. Copia l'URL di questa pagina e aprilo in WeChat",
58
+ "名称": "Nome",
59
+ "优惠券": "Coupon"
37
60
  }
@@ -33,5 +33,28 @@
33
33
  "重试": "再試行",
34
34
  "充值就送": "チャージ特典",
35
35
  "送": "特典",
36
- "选择": "選択"
36
+ "选择": "選択",
37
+ "微信": "WeChat",
38
+ "忘记密码": "パスワードをお忘れですか",
39
+ "找回密码": "パスワード再設定",
40
+ "新密码": "新しいパスワード",
41
+ "重置密码": "パスワードを再設定",
42
+ "验证码": "認証コード",
43
+ "获取验证码": "認証コードを取得",
44
+ "请输入验证码": "認証コードを入力してください",
45
+ "验证码为6位数字": "認証コードは6桁の数字です",
46
+ "验证码已发送": "認証コードを送信しました",
47
+ "请输入正确的手机号码": "正しい携帯電話番号を入力してください",
48
+ "请先完成人机验证": "先に本人確認を完了してください",
49
+ "我不是机器人": "私はロボットではありません",
50
+ "人机校验中": "確認中",
51
+ "验证通过": "確認済み",
52
+ "密码已重置,请登录": "パスワードを再設定しました。ログインしてください",
53
+ "两次输入的密码不一致": "2つのパスワードが一致しません",
54
+ "下面任选一个方法都可以登录:": "以下のいずれかの方法でログインできます:",
55
+ "1、把本页网址复制到微信里面打开": "1、このページのURLをコピーしてWeChatで開く",
56
+ "2、请用微信扫码登录": "2、WeChatでQRコードをスキャンしてログイン",
57
+ "3、把本页网址复制到微信里面打开": "3、このページのURLをコピーしてWeChatで開く",
58
+ "名称": "名称",
59
+ "优惠券": "クーポン"
37
60
  }
@@ -33,5 +33,28 @@
33
33
  "重试": "재시도",
34
34
  "充值就送": "충전 보너스",
35
35
  "送": "보너스",
36
- "选择": "선택"
36
+ "选择": "선택",
37
+ "微信": "WeChat",
38
+ "忘记密码": "비밀번호 찾기",
39
+ "找回密码": "비밀번호 재설정",
40
+ "新密码": "새 비밀번호",
41
+ "重置密码": "비밀번호 재설정",
42
+ "验证码": "인증번호",
43
+ "获取验证码": "인증번호 받기",
44
+ "请输入验证码": "인증번호를 입력하세요",
45
+ "验证码为6位数字": "인증번호는 6자리 숫자입니다",
46
+ "验证码已发送": "인증번호를 보냈습니다",
47
+ "请输入正确的手机号码": "올바른 휴대폰 번호를 입력하세요",
48
+ "请先完成人机验证": "먼저 본인 확인을 완료하세요",
49
+ "我不是机器人": "저는 로봇이 아닙니다",
50
+ "人机校验中": "확인 중",
51
+ "验证通过": "확인 완료",
52
+ "密码已重置,请登录": "비밀번호가 재설정되었습니다. 로그인하세요",
53
+ "两次输入的密码不一致": "두 비밀번호가 일치하지 않습니다",
54
+ "下面任选一个方法都可以登录:": "아래 방법 중 하나로 로그인하세요:",
55
+ "1、把本页网址复制到微信里面打开": "1. 이 페이지 URL을 복사해 WeChat에서 열기",
56
+ "2、请用微信扫码登录": "2. WeChat으로 QR 코드를 스캔해 로그인",
57
+ "3、把本页网址复制到微信里面打开": "3. 이 페이지 URL을 복사해 WeChat에서 열기",
58
+ "名称": "이름",
59
+ "优惠券": "쿠폰"
37
60
  }
@@ -33,5 +33,28 @@
33
33
  "重试": "Tentar Novamente",
34
34
  "充值就送": "Bónus de Recarga",
35
35
  "送": "Bónus",
36
- "选择": "Selecionar"
36
+ "选择": "Selecionar",
37
+ "微信": "WeChat",
38
+ "忘记密码": "Esqueci a senha",
39
+ "找回密码": "Recuperar senha",
40
+ "新密码": "Nova senha",
41
+ "重置密码": "Redefinir senha",
42
+ "验证码": "Código de verificação",
43
+ "获取验证码": "Obter código",
44
+ "请输入验证码": "Introduza o código de verificação",
45
+ "验证码为6位数字": "O código de verificação tem 6 dígitos",
46
+ "验证码已发送": "Código de verificação enviado",
47
+ "请输入正确的手机号码": "Introduza um número de telemóvel válido",
48
+ "请先完成人机验证": "Conclua primeiro a verificação",
49
+ "我不是机器人": "Não sou um robô",
50
+ "人机校验中": "A verificar",
51
+ "验证通过": "Verificado",
52
+ "密码已重置,请登录": "Senha redefinida, inicie sessão",
53
+ "两次输入的密码不一致": "As duas senhas não coincidem",
54
+ "下面任选一个方法都可以登录:": "Escolha qualquer método abaixo para iniciar sessão:",
55
+ "1、把本页网址复制到微信里面打开": "1. Copie o URL desta página e abra no WeChat",
56
+ "2、请用微信扫码登录": "2. Digitalize o QR code com o WeChat para iniciar sessão",
57
+ "3、把本页网址复制到微信里面打开": "3. Copie o URL desta página e abra no WeChat",
58
+ "名称": "Nome",
59
+ "优惠券": "Cupão"
37
60
  }
@@ -33,5 +33,28 @@
33
33
  "重试": "Повторить",
34
34
  "充值就送": "Бонус за пополнение",
35
35
  "送": "Бонус",
36
- "选择": "Выбрать"
36
+ "选择": "Выбрать",
37
+ "微信": "WeChat",
38
+ "忘记密码": "Забыли пароль",
39
+ "找回密码": "Восстановить пароль",
40
+ "新密码": "Новый пароль",
41
+ "重置密码": "Сбросить пароль",
42
+ "验证码": "Код подтверждения",
43
+ "获取验证码": "Получить код",
44
+ "请输入验证码": "Введите код подтверждения",
45
+ "验证码为6位数字": "Код подтверждения состоит из 6 цифр",
46
+ "验证码已发送": "Код подтверждения отправлен",
47
+ "请输入正确的手机号码": "Введите корректный номер телефона",
48
+ "请先完成人机验证": "Сначала пройдите проверку",
49
+ "我不是机器人": "Я не робот",
50
+ "人机校验中": "Проверка",
51
+ "验证通过": "Проверено",
52
+ "密码已重置,请登录": "Пароль сброшен, войдите в систему",
53
+ "两次输入的密码不一致": "Пароли не совпадают",
54
+ "下面任选一个方法都可以登录:": "Выберите любой способ входа ниже:",
55
+ "1、把本页网址复制到微信里面打开": "1. Скопируйте URL страницы и откройте в WeChat",
56
+ "2、请用微信扫码登录": "2. Отсканируйте QR-код в WeChat для входа",
57
+ "3、把本页网址复制到微信里面打开": "3. Скопируйте URL страницы и откройте в WeChat",
58
+ "名称": "Название",
59
+ "优惠券": "Купон"
37
60
  }