add JavaScript i18n files

This commit is contained in:
printempw 2016-09-15 11:04:42 +08:00
parent 8507860b15
commit 2ad59839a5
4 changed files with 176 additions and 69 deletions

View File

@ -0,0 +1,40 @@
/*!
* Blessing Skin Chinese Translations
*
* @see https://github.com/printempw/blessing-skin-server
* @author printempw <h@prinzeugen.net>
*
* NOTE: this file must be saved in UTF-8 encoding.
*/
(function ($) {
"use strict";
$.locales['zh-CN'] = {
auth: {
emptyIdentification: '你还没有填写邮箱/角色名哦',
emptyPassword: '密码要好好填哦',
emptyCaptcha: '你还没有填写验证码哦',
login: '登录',
loggingIn: '登录中',
tooManyFails: '你尝试的次数太多啦,请输入验证码',
emptyEmail: '你还没有填写邮箱哦',
invalidEmail: '邮箱格式不正确!',
invalidPassword: '无效的密码。密码长度应该大于 8 并小于 16。',
emptyConfirmPwd: '确认密码不能为空',
invalidConfirmPwd: '密码和确认的密码不一样诶?',
emptyNickname: '你还没有填写昵称哦',
register: '注册',
registering: '注册中',
send: '发送',
sending: '发送中',
reset: '重置',
resetting: '重置中'
},
general: {
confirmLogout: '确定要登出吗?',
confirm: '确定',
cancel: '取消'
}
};
})(window.jQuery);

View File

@ -2,7 +2,7 @@
* @Author: printempw
* @Date: 2016-07-17 10:54:22
* @Last Modified by: printempw
* @Last Modified time: 2016-09-11 15:26:09
* @Last Modified time: 2016-09-15 10:09:52
*/
'use strict';
@ -34,18 +34,18 @@ $('#login-button').click(function() {
data.keep = $('#keep').prop('checked') ? true : false;
if (email_or_uname == "") {
showMsg('你还没有填写邮箱/角色名哦');
showMsg(trans('auth.emptyIdentification'));
$('#email_or_username').focus();
// check valid email address
} else if (data.password == "") {
showMsg('密码要好好填哦');
showMsg(trans('auth.emptyPassword'));
$('#password').focus();
} else {
// if captcha form is shown
if ($('#captcha-form').css('display') == "block") {
data.captcha = $("#captcha").val();
if (data.captcha == "") {
showMsg('你还没有填写验证码哦');
showMsg(trans('auth.emptyCaptcha'));
$('#captcha').focus();
return false;
}
@ -57,7 +57,7 @@ $('#login-button').click(function() {
dataType: "json",
data: data,
beforeSend: function() {
$('#login-button').html('<i class="fa fa-spinner fa-spin"></i> 登录中').prop('disabled', 'disabled');
$('#login-button').html('<i class="fa fa-spinner fa-spin"></i> '+trans('auth.loggingIn')).prop('disabled', 'disabled');
},
success: function(json) {
if (json.errno == 0) {
@ -72,7 +72,7 @@ $('#login-button').click(function() {
if ($('#captcha-form').css('display') == "none") {
swal({
type: 'error',
html: '你尝试的次数太多啦,请输入验证码'
html: trans('auth.tooManyFails')
});
}
@ -82,12 +82,12 @@ $('#login-button').click(function() {
freshCaptcha();
showMsg(json.msg, 'warning');
$('#login-button').html('登录').prop('disabled', '');
$('#login-button').html(trans('auth.login')).prop('disabled', '');
}
},
error: function(json) {
showAjaxError(json);
$('#login-button').html('登录').prop('disabled', '');
$('#login-button').html(trans('auth.login')).prop('disabled', '');
}
});
}
@ -105,27 +105,27 @@ $('#register-button').click(function() {
// check valid email address
if (email == "") {
showMsg('你还没有填写邮箱哦');
showMsg(trans('auth.emptyEmail'));
$('#email').focus();
} else if (!/\S+@\S+\.\S+/.test(email)) {
showMsg('邮箱格式不正确!', 'warning');
showMsg(trans('auth.invalidEmail'), 'warning');
} else if (password == "") {
showMsg('密码要好好填哦');
showMsg(trans('auth.emptyPassword'));
$('#password').focus();
} else if (password.length < 8 || password.length > 16) {
showMsg('无效的密码。密码长度应该大于 8 并小于 16。', 'warning');
showMsg(trans('auth.invalidPassword'), 'warning');
$('#password').focus();
} else if ($('#confirm-pwd').val() == "") {
showMsg('确认密码不能为空');
showMsg(trans('auth.emptyConfirmPwd'));
$('#confirm-pwd').focus();
} else if (password != $('#confirm-pwd').val()) {
showMsg('密码和确认的密码不一样诶?', 'warning');
showMsg(trans('auth.invalidConfirmPwd'), 'warning');
$('#confirm-pwd').focus();
} else if (nickname == "") {
showMsg('你还没有填写昵称哦');
showMsg(trans('auth.emptyNickname'));
$('#nickname').focus();
} else if (captcha == "") {
showMsg('你还没有填写验证码哦');
showMsg(trans('auth.emptyCaptcha'));
$('#captcha').focus();
} else {
@ -135,7 +135,7 @@ $('#register-button').click(function() {
dataType: "json",
data: { 'email': email, 'password': password, 'nickname': nickname, 'captcha': captcha },
beforeSend: function() {
$('#register-button').html('<i class="fa fa-spinner fa-spin"></i> 注册中').prop('disabled', 'disabled');
$('#register-button').html('<i class="fa fa-spinner fa-spin"></i> '+trans('auth.registering')).prop('disabled', 'disabled');
},
success: function(json) {
if (json.errno == 0) {
@ -147,12 +147,12 @@ $('#register-button').click(function() {
} else {
showMsg(json.msg, 'warning');
freshCaptcha();
$('#register-button').html('注册').prop('disabled', '');
$('#register-button').html(trans('auth.register')).prop('disabled', '');
}
},
error: function(json) {
showAjaxError(json);
$('#register-button').html('注册').prop('disabled', '');
$('#register-button').html(trans('auth.register')).prop('disabled', '');
}
});
}
@ -167,12 +167,12 @@ $('#forgot-button').click(function() {
// check valid email address
if (email == "") {
showMsg('你还没有填写邮箱哦');
showMsg(trans('auth.emptyEmail'));
$('#email').focus();
} else if (!/\S+@\S+\.\S+/.test(email)) {
showMsg('邮箱格式不正确!', 'warning');
showMsg(trans('auth.invalidEmail'), 'warning');
} else if (captcha == "") {
showMsg('你还没有填写验证码哦');
showMsg(trans('auth.emptyCaptcha'));
$('#captcha').focus();
} else {
@ -182,21 +182,21 @@ $('#forgot-button').click(function() {
dataType: "json",
data: { 'email': email, 'captcha': captcha },
beforeSend: function() {
$('#forgot-button').html('<i class="fa fa-spinner fa-spin"></i> 发送中').prop('disabled', 'disabled');
$('#forgot-button').html('<i class="fa fa-spinner fa-spin"></i> '+trans('auth.sending')).prop('disabled', 'disabled');
},
success: function(json) {
if (json.errno == 0) {
showMsg(json.msg, 'success');
$('#forgot-button').html('发送').prop('disabled', 'disabled');
$('#forgot-button').html(trans('auth.send')).prop('disabled', 'disabled');
} else {
showMsg(json.msg, 'warning');
freshCaptcha();
$('#forgot-button').html('发送').prop('disabled', '');
$('#forgot-button').html(trans('auth.send')).prop('disabled', '');
}
},
error: function(json) {
showAjaxError(json);
$('#forgot-button').html('发送').prop('disabled', '');
$('#forgot-button').html(trans('auth.send')).prop('disabled', '');
}
});
}
@ -209,13 +209,16 @@ $('#reset-button').click(function() {
var password = $('#password').val();
if (password == "") {
showMsg('密码要好好填哦');
showMsg(trans('auth.emptyPassword'));
$('#password').focus();
} else if (password.length < 8 || password.length > 16) {
showMsg('无效的密码。密码长度应该大于 8 并小于 16。', 'warning');
showMsg(trans('auth.invalidPassword'), 'warning');
$('#password').focus();
} else if ($('#confirm-pwd').val() == "") {
showMsg('确认密码不能为空');
showMsg(trans('auth.emptyConfirmPwd'));
$('#confirm-pwd').focus();
} else if (password != $('#confirm-pwd').val()) {
showMsg(trans('auth.invalidConfirmPwd'), 'warning');
$('#confirm-pwd').focus();
} else {
@ -225,7 +228,7 @@ $('#reset-button').click(function() {
dataType: "json",
data: { 'uid': uid, 'password': password },
beforeSend: function() {
$('#reset-button').html('<i class="fa fa-spinner fa-spin"></i> 重置中').prop('disabled', 'disabled');
$('#reset-button').html('<i class="fa fa-spinner fa-spin"></i> '+trans('auth.resetting')).prop('disabled', 'disabled');
},
success: function(json) {
if (json.errno == 0) {
@ -237,12 +240,12 @@ $('#reset-button').click(function() {
});
} else {
showMsg(json.msg, 'warning');
$('#reset-button').html('重置').prop('disabled', '');
$('#reset-button').html(trans('auth.reset')).prop('disabled', '');
}
},
error: function(json) {
showAjaxError(json);
$('#reset-button').html('重置').prop('disabled', '');
$('#reset-button').html(trans('auth.reset')).prop('disabled', '');
}
});
}

View File

@ -0,0 +1,44 @@
/*
* @Author: printempw
* @Date: 2016-09-15 10:39:41
* @Last Modified by: printempw
* @Last Modified time: 2016-09-15 10:43:32
*/
'use strict';
function logout(with_out_confirm, callback) {
if (!with_out_confirm) {
swal({
text: trans('general.confirmLogout'),
type: 'warning',
showCancelButton: true,
confirmButtonText: trans('general.confirm'),
cancelButtonText: trans('general.cancel')
}).then(function() {
do_logout(function(json) {
swal({
type: 'success',
html: json.msg
});
window.setTimeout('window.location = "../"', 1000);
});
});
} else {
do_logout(function(json) {
if (callback) callback(json);
});
}
}
function do_logout(callback) {
$.ajax({
type: "POST",
url: "../auth/logout",
dataType: "json",
success: function(json) {
if (callback) callback(json);
},
error: showAjaxError
});
}

View File

@ -2,9 +2,65 @@
* @Author: printempw
* @Date: 2016-07-16 09:02:32
* @Last Modified by: printempw
* @Last Modified time: 2016-09-10 17:10:08
* @Last Modified time: 2016-09-15 10:39:49
*/
$.locales = {};
var locale = {};
function isEmpty(obj) {
// null and undefined are "empty"
if (obj == null) return true;
// Assume if it has a length property with a non-zero value
// that that property is correct.
if (obj.length > 0) return false;
if (obj.length === 0) return true;
// If it isn't an object at this point
// it is empty, but it can't be anything *but* empty
// Is it empty? Depends on your application.
if (typeof obj !== "object") return true;
// Otherwise, does it have any properties of its own?
// Note that this doesn't handle
// toString and valueOf enumeration bugs in IE < 9
for (var key in obj) {
if (hasOwnProperty.call(obj, key)) return false;
}
return true;
}
function loadLocales() {
for (lang in $.locales) {
if (!isEmpty($.locales[lang])) {
locale = $.locales[lang] || {};
}
}
}
function trans(key) {
if (isEmpty(locale)) {
loadLocales();
}
var segments = key.split('.');
var temp = locale || {};
for (i in segments) {
if (isEmpty(temp[segments[i]])) {
return key;
} else {
temp = temp[segments[i]];
}
}
return temp;
}
function showModal(msg, title, type, callback) {
title = title === undefined ? "Messgae" : title;
type = type === undefined ? "default" : type;
@ -39,39 +95,3 @@ function getQueryString(key) {
return result[1];
}
}
function logout(with_out_confirm, callback) {
if (!with_out_confirm) {
swal({
text: '确定要登出吗?',
type: 'warning',
showCancelButton: true,
confirmButtonText: '确定',
cancelButtonText: '取消'
}).then(function() {
do_logout(function(json) {
swal({
type: 'success',
html: json.msg
});
window.setTimeout('window.location = "../"', 1000);
});
});
} else {
do_logout(function(json) {
if (callback) callback(json);
});
}
}
function do_logout(callback) {
$.ajax({
type: "POST",
url: "../auth/logout",
dataType: "json",
success: function(json) {
if (callback) callback(json);
},
error: showAjaxError
});
}