Update translate.js

master
钟进 6 years ago
parent 4122535ed7
commit 87af03711e

@ -1,119 +1,119 @@
var systemLang = 'en';
var systemDictionary = {};
function translateWord(text, lang, dictionary) {
if (!text) return '';
lang = lang || systemLang;
dictionary = dictionary || systemDictionary;
if (dictionary[text]) {
var newText = dictionary[text][lang];
if (newText) {
return newText;
} else if (lang != 'en') {
newText = dictionary[text].en;
if (newText) {
return newText;
}
}
} else if (typeof text == 'string' && !text.match(/_tooltip$/)) {
console.log('"' + text + '": {"en": "' + text + '", "de": "' + text + '", "ru": "' + text + '"},');
} else if (typeof text !== 'string') {
console.warn('Trying to translate non-text:' + text);
}
return text;
}
function translateAll(lang, dictionary) {
lang = lang || systemLang;
dictionary = dictionary || systemDictionary;
// translate <div class="translate">textToTranslate</div>
$(".translate").each(function (idx) {
var text = $(this).attr('data-lang');
if (!text) {
text = $(this).html();
$(this).attr('data-lang', text);
}
var transText = translateWord(text, lang, dictionary);
if (transText) {
$(this).html(transText);
}
});
// translate <input type="button" class="translateV" value="textToTranslate">
$(".translateV").each(function (idx) {
var text = $(this).attr('data-lang');
if (!text) {
text = $(this).attr('value');
$(this).attr('data-lang', text);
}
var transText = translateWord(text, lang, dictionary);
if (transText) {
$(this).attr('value', transText);
}
});
$(".translateB").each(function (idx) {
//<span class="ui-button-text" >Save</span>
var text = $(this).attr('data-lang');
if (!text) {
text = $(this).html().match(/\>([\w ]+)\</);
if (text && text.length > 1) {
text = text[1];
} else {
text = $(this).html();
$(this).attr('data-lang-pure', true);
}
$(this).attr('data-lang', text);
}
var transText = translateWord(text, lang, dictionary);
if (transText) {
if ($(this).attr('data-lang-pure')) {
$(this).html(transText);
} else {
$(this).html($(this).html().replace(/>[\w ]+</, '>' + transText + '<'));
}
}
});
$(".translateT").each(function (idx) {
//<span class="ui-button-text translateT" title="TextToTranslate">Save</span>
var text = $(this).attr('data-lang');
if (!text) {
text = $(this).attr('title');
$(this).attr('data-lang', text);
}
var transText = translateWord(text, lang, dictionary);
if (transText) {
$(this).attr('title', transText);
}
});
}
// make possible _('words to translate')
var _ = function (text, arg1, arg2, arg3) {
text = translateWord(text);
var pos = text.indexOf('%s');
if (pos != -1) {
text = text.replace('%s', arg1);
} else {
return text;
}
pos = text.indexOf('%s');
if (pos != -1) {
text = text.replace('%s', arg2);
} else {
return text;
}
pos = text.indexOf('%s');
if (pos != -1) {
text = text.replace('%s', arg3);
}
return text;
};
var systemLang = 'en';
var systemDictionary = {};
function translateWord(text, lang, dictionary) {
if (!text) return '';
lang = lang || systemLang;
dictionary = dictionary || systemDictionary;
if (dictionary[text]) {
var newText = dictionary[text][lang];
if (newText) {
return newText;
} else if (lang != 'en') {
newText = dictionary[text].en;
if (newText) {
return newText;
}
}
} else if (typeof text == 'string' && !text.match(/_tooltip$/)) {
console.log('"' + text + '": {"en": "' + text + '", "cn": "' + text + '"},');
} else if (typeof text !== 'string') {
console.warn('Trying to translate non-text:' + text);
}
return text;
}
function translateAll(lang, dictionary) {
lang = lang || systemLang;
dictionary = dictionary || systemDictionary;
// translate <div class="translate">textToTranslate</div>
$(".translate").each(function (idx) {
var text = $(this).attr('data-lang');
if (!text) {
text = $(this).html();
$(this).attr('data-lang', text);
}
var transText = translateWord(text, lang, dictionary);
if (transText) {
$(this).html(transText);
}
});
// translate <input type="button" class="translateV" value="textToTranslate">
$(".translateV").each(function (idx) {
var text = $(this).attr('data-lang');
if (!text) {
text = $(this).attr('value');
$(this).attr('data-lang', text);
}
var transText = translateWord(text, lang, dictionary);
if (transText) {
$(this).attr('value', transText);
}
});
$(".translateB").each(function (idx) {
//<span class="ui-button-text" >Save</span>
var text = $(this).attr('data-lang');
if (!text) {
text = $(this).html().match(/\>([\w ]+)\</);
if (text && text.length > 1) {
text = text[1];
} else {
text = $(this).html();
$(this).attr('data-lang-pure', true);
}
$(this).attr('data-lang', text);
}
var transText = translateWord(text, lang, dictionary);
if (transText) {
if ($(this).attr('data-lang-pure')) {
$(this).html(transText);
} else {
$(this).html($(this).html().replace(/>[\w ]+</, '>' + transText + '<'));
}
}
});
$(".translateT").each(function (idx) {
//<span class="ui-button-text translateT" title="TextToTranslate">Save</span>
var text = $(this).attr('data-lang');
if (!text) {
text = $(this).attr('title');
$(this).attr('data-lang', text);
}
var transText = translateWord(text, lang, dictionary);
if (transText) {
$(this).attr('title', transText);
}
});
}
// make possible _('words to translate')
var _ = function (text, arg1, arg2, arg3) {
text = translateWord(text);
var pos = text.indexOf('%s');
if (pos != -1) {
text = text.replace('%s', arg1);
} else {
return text;
}
pos = text.indexOf('%s');
if (pos != -1) {
text = text.replace('%s', arg2);
} else {
return text;
}
pos = text.indexOf('%s');
if (pos != -1) {
text = text.replace('%s', arg3);
}
return text;
};

Loading…
Cancel
Save