More internal re-arranging and support for new config options
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1464 eee81c28-f429-11dd-99c0-75d572ba1ddd
This commit is contained in:
@@ -3,74 +3,82 @@
|
||||
*
|
||||
* Licensed under the Apache License, Version 2
|
||||
*
|
||||
* Copyright(c) 2009 Narendra Sisodya
|
||||
* Copyright(c) 2010 Narendra Sisodya
|
||||
* Copyright(c) 2010 Alexis Deveria
|
||||
*
|
||||
*/
|
||||
var put_locale = function(svgEditor, given_param, good_langs){
|
||||
var lang_param;
|
||||
|
||||
if(given_param) {
|
||||
lang_param = given_param;
|
||||
} else {
|
||||
lang_param = $.pref('lang');
|
||||
if(!lang_param) {
|
||||
if (navigator.userLanguage) // Explorer
|
||||
lang_param = navigator.userLanguage;
|
||||
else if (navigator.language) // FF, Opera, ...
|
||||
lang_param = navigator.language;
|
||||
if (lang_param == "")
|
||||
return;
|
||||
|
||||
var svgEditor = (function($, Editor) {
|
||||
Editor.putLocale = function(given_param, good_langs){
|
||||
var lang_param;
|
||||
|
||||
if(given_param) {
|
||||
lang_param = given_param;
|
||||
} else {
|
||||
lang_param = $.pref('lang');
|
||||
if(!lang_param) {
|
||||
if (navigator.userLanguage) // Explorer
|
||||
lang_param = navigator.userLanguage;
|
||||
else if (navigator.language) // FF, Opera, ...
|
||||
lang_param = navigator.language;
|
||||
if (lang_param == "")
|
||||
return;
|
||||
}
|
||||
|
||||
// Set to English if language is not in list of good langs
|
||||
if($.inArray(lang_param, good_langs) == -1) {
|
||||
lang_param = "en";
|
||||
}
|
||||
|
||||
// don't bother on first run if language is English
|
||||
if(lang_param.indexOf("en") == 0) return;
|
||||
}
|
||||
|
||||
// Set to English if language is not in list of good langs
|
||||
if($.inArray(lang_param, good_langs) == -1) {
|
||||
lang_param = "en";
|
||||
}
|
||||
|
||||
// don't bother on first run if language is English
|
||||
if(lang_param.indexOf("en") == 0) return;
|
||||
}
|
||||
|
||||
var url = "locale/lang." + lang_param + ".js";
|
||||
|
||||
var processFile = function(data){
|
||||
var LangData = eval(data), js_strings;
|
||||
var more = svgEditor.canvas.runExtensions("addLangData", lang_param, true);
|
||||
$.each(more, function(i, m) {
|
||||
if(m.data) {
|
||||
LangData = $.merge(LangData, m.data);
|
||||
}
|
||||
});
|
||||
$.each(LangData, function(i, data) {
|
||||
if(data.id) {
|
||||
var elem = $('#svg_editor').parent().find('#'+data.id)[0];
|
||||
if(elem) {
|
||||
if(data.title)
|
||||
elem.title = data.title;
|
||||
if(data.textContent) {
|
||||
// Only replace non-empty text nodes, not elements
|
||||
$.each(elem.childNodes, function(j, node) {
|
||||
if(node.nodeType == 3 && $.trim(node.textContent)) {
|
||||
node.textContent = data.textContent;
|
||||
}
|
||||
});
|
||||
}
|
||||
var conf = Editor.curConfig;
|
||||
|
||||
var url = conf.langPath + "lang." + lang_param + ".js";
|
||||
|
||||
var processFile = function(data){
|
||||
var LangData = eval(data), js_strings;
|
||||
var more = Editor.canvas.runExtensions("addLangData", lang_param, true);
|
||||
$.each(more, function(i, m) {
|
||||
if(m.data) {
|
||||
LangData = $.merge(LangData, m.data);
|
||||
}
|
||||
});
|
||||
$.each(LangData, function(i, data) {
|
||||
if(data.id) {
|
||||
var elem = $('#svg_editor').parent().find('#'+data.id)[0];
|
||||
if(elem) {
|
||||
if(data.title)
|
||||
elem.title = data.title;
|
||||
if(data.textContent) {
|
||||
// Only replace non-empty text nodes, not elements
|
||||
$.each(elem.childNodes, function(j, node) {
|
||||
if(node.nodeType == 3 && $.trim(node.textContent)) {
|
||||
node.textContent = data.textContent;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
} else if(data.js_strings) {
|
||||
js_strings = data.js_strings;
|
||||
}
|
||||
});
|
||||
Editor.setLang(lang_param, js_strings);
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
'url': url,
|
||||
'dataType': "text",
|
||||
success: processFile,
|
||||
error: function(xhr) {
|
||||
if(xhr.responseText) {
|
||||
processFile(xhr.responseText);
|
||||
}
|
||||
} else if(data.js_strings) {
|
||||
js_strings = data.js_strings;
|
||||
}
|
||||
});
|
||||
svgEditor.setLang(lang_param, js_strings);
|
||||
}
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
'url': url,
|
||||
'dataType': "text",
|
||||
success: processFile,
|
||||
error: function(xhr) {
|
||||
if(xhr.responseText) {
|
||||
processFile(xhr.responseText);
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
return Editor;
|
||||
}(jQuery, svgEditor));
|
||||
|
||||
Reference in New Issue
Block a user