码迷,mamicode.com
首页 > Web开发 > 详细

translation.js

时间:2015-06-09 23:35:48      阅读:369      评论:0      收藏:0      [点我收藏+]

标签:

/**
* Global Config variables
*/
supportLanguage1 = "en-US";
supportLanguage1Alias = encodeURI("English Version");

supportLanguage2 ="zh-CN";
supportLanguage2Alias = encodeURI("中文版");


var cookie = new JSCookie();


/**
* Auto translates the entire page when document is ready .
*
* @Author overseas
*/
$(document).ready(function(){


//language_complete = navigator.language.split("-");
//language = (language_complete[0]);
//console.log("Sprache (root): %s", language);
//$(window).load(function(){

var currentLanguage = cookie.GetCookie("power7000Language");

if ( (!currentLanguage && typeof(currentLanguage)!="undefined" && currentLanguage!=0) || (currentLanguage=="") )
{
currentLanguage = supportLanguage1;//"en-US";
changeLanguage();
}

var resPath = getRootPath_web() + ‘/locales/__lng__/__ns__.json‘;



i18n.init({
lng: currentLanguage,
ns: { namespaces: [‘power7000.jsp‘], defaultNs:‘power7000.jsp‘},
resGetPath: resPath,
fallbackLng: false,
useLocalStorage:false
}, function() {
// save to use translation function as resources are fetched
$("*").i18n();

//alert(currentLanguage);
//alert(i18n.t("app.name")+":114");

//后置翻译方法 2015-01-21 lkg
//检测方法postTranslate是否存在
if(window.loadData)
{
window.loadData();
}

// In order to display HTML page after loading complete 2015-01-20 lkg
document.body.style.visibility="visible";

//调整窗体布局 2015-01-21 lkg
///检测方法adjustLayout是否存在
if(window.adjustLayout)
{
window.adjustLayout();
}

//div #hideAll: in order to display HTML page after loading complete
//document.getElementById("hideAll").style.display = "none";

});
});


/**
* Read cookie value by name .
*
* @Author overseas
*/
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(‘;‘);
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ‘ ‘) c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) {
return decodeURIComponent(c.substring(nameEQ.length, c.length))
}
} return null
}

/**
* Set cookie value .
*
* @Author overseas
*/
function setCookie(name, value, expires, path, domain) {
if (!expires) expires = -1;
if (!path) path = "/";
var d = "" + name + "=" + value;
var e;

if (expires < 0) {
e = "";
}
else if (expires == 0) {
var f = new Date(1970, 1, 1);
e = ";expires=" + f.toUTCString();
}
else {
var now = new Date();
var f = new Date(now.getTime() + expires * 1000);
e = ";expires=" + f.toUTCString();
}
var dm;
if (!domain) {
dm = "";
}
else {
dm = ";domain=" + domain;
}
document.cookie = name + "=" + value + ";path=" + path + e + dm;

};

 

/**
* Change language via cookie.
*/
function changeLanguage(){
var currentLanguage = cookie.GetCookie("power7000Language");
var currentLanguageAlias = cookie.GetCookie("power7000LanguageAlias");
var nextLanguageAlias = cookie.GetCookie("power7000NextLanguageAlias");


//var supportLanguage1 = "en-US";
//var supportLanguage1Alias = encodeURI("English Version");

//var supportLanguage2 ="zh-CN";
//var supportLanguage2Alias = encodeURI("中文版");

var newLanguage = supportLanguage1;
var newLanguageAlias = supportLanguage1Alias;

var path = "/";


if (!currentLanguage && typeof(currentLanguage)!="undefined" && currentLanguage!=0){
//null
newLanguage = supportLanguage1;
newLanguageAlias = supportLanguage1Alias;
nextLanguageAlias = supportLanguage2Alias;
}
else if(currentLanguage==supportLanguage1){

newLanguage = supportLanguage2;
newLanguageAlias = supportLanguage2Alias;
nextLanguageAlias = supportLanguage1Alias;
}
else if(currentLanguage==supportLanguage2){
newLanguage = supportLanguage1;
newLanguageAlias = supportLanguage1Alias;
nextLanguageAlias = supportLanguage2Alias;
}
else{
//other
newLanguage = supportLanguage1;
newLanguageAlias = supportLanguage1Alias;
nextLanguageAlias = supportLanguage2Alias;
}

//alert(currentLanguage +"-->"+newLanguage);

var expire_time = new Date();
expire_time.setFullYear(expire_time.getFullYear() + 100);

cookie.SetCookie(‘power7000Language‘, newLanguage, expire_time);
cookie.SetCookie(‘power7000LanguageAlias‘, newLanguageAlias, expire_time);
cookie.SetCookie(‘power7000NextLanguageAlias‘, nextLanguageAlias, expire_time);

//alert(readCookie("power7000Language"));
i18n.setLng(newLanguage);
$("*").i18n();
}

 

/**
* Format a message with placeholder.
*
* Examples:
* var addr = "{0}省, {1}市, {2}区";
* alert(addr.format("广东","深圳"));
* alert("{0}省, {1}市, {2}区".format("广东","深圳"));
* @Author overseas
*/
String.prototype.format = function(){
var args = arguments;
return this.replace(/\{(\d+)\}/g,
function(m,i){
return args[i];
});
};


/**
* Get web root path .
*
* @Author overseas
*/
function getRootPath_web() {
//获取当前网址,如: http://localhost:8083/uimcardprj/share/meun.jsp
var curWwwPath = window.document.location.href;
//获取主机地址之后的目录,如: uimcardprj/share/meun.jsp
var pathName = window.document.location.pathname;
var pos = curWwwPath.indexOf(pathName);
//获取主机地址,如: http://localhost:8083
var localhostPaht = curWwwPath.substring(0, pos);
//获取带"/"的项目名,如:/uimcardprj
var projectName = pathName.substring(0, pathName.substr(1).indexOf(‘/‘) + 1);
return (localhostPaht + projectName);
}


/**
* Get top most element by z-index .
*
* @Author overseas
*/
$.fn.topmost = function () {
var positionedDivs = this.filter( function() {
return !isNaN( parseInt( $(this).css("z-index"), 10 ) );
});
var topElem = positionedDivs.first();

positionedDivs.each( function() {
if ( $(this).css(‘z-index‘) > +topElem.css("z-index") ) {
topElem = $(this);
}
});

return topElem.get(0) || this.get(0);
};

 

translation.js

标签:

原文地址:http://www.cnblogs.com/zhu-java/p/4564734.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!