530 lines
28 KiB
JavaScript
530 lines
28 KiB
JavaScript
|
var allLanguageArray=[
|
|||
|
"af-ZA","af",0,0,0,0,0,
|
|||
|
"ar-AE","ar-AE",0,0,0,0,0,
|
|||
|
"ar-TN","ar-TN",0,0,0,0,0,
|
|||
|
"be-BY","be",0,0,0,0,0,
|
|||
|
"bg-BG","bg",0,0,0,0,0,
|
|||
|
"ca-ES","ca",0,0,0,0,0,
|
|||
|
"cs-CZ","cs",1,1,1,1,0,
|
|||
|
"Cy-sr-SP","sr-Cyrl-CS",0,0,0,0,0,
|
|||
|
"Cy-uz-UZ","uz-Cyrl-UZ",0,0,0,0,0,
|
|||
|
"da-DK","da",0,0,0,0,0,
|
|||
|
"de-DE","de",1,1,1,1,1,
|
|||
|
"el-GR","el",1,1,0,0,0,
|
|||
|
"en-US","Neutral",1,1,1,1,1,
|
|||
|
"es-ES","es",1,1,1,1,1,
|
|||
|
"et-EE","et",0,0,0,0,0,
|
|||
|
"eu-ES","eu-ES",0,0,0,0,0,
|
|||
|
"fa-IR","fa",0,0,0,0,0,
|
|||
|
"fi-FI","fi",1,1,0,0,0,
|
|||
|
"fr-FR","fr",1,1,1,1,1,
|
|||
|
"gl-ES","gl",0,0,0,0,0,
|
|||
|
"he-IL","he",0,0,0,0,0,
|
|||
|
"hi-IN","hi",0,0,0,0,0,
|
|||
|
"hr-HR","hr",0,0,0,0,0,
|
|||
|
"hu-HU","hu",0,0,0,0,0,
|
|||
|
"hy-AM","hy",0,0,0,0,0,
|
|||
|
"id-ID","id",0,0,0,0,0,
|
|||
|
"is-IS","is",0,0,0,0,0,
|
|||
|
"it-IT","it",1,1,1,1,1,
|
|||
|
"ja-JP","ja",1,1,1,0,0,
|
|||
|
"ka-GE","ka",0,0,0,0,0,
|
|||
|
"kk-KZ","kk",0,0,0,0,0,
|
|||
|
"ko-KR","ko",1,1,1,0,0,
|
|||
|
"Lt-az-AZ","az-Latn-AZ",1,0,0,0,0,
|
|||
|
"lt-LT","lt",0,0,0,0,0,
|
|||
|
"Lt-sr-SP","sr-Latn-CS",0,0,0,0,0,
|
|||
|
"lv-LV","lv",1,1,1,0,0,
|
|||
|
"mk-MK","mk",0,0,0,0,0,
|
|||
|
"mn-MN","mn",0,0,0,0,0,
|
|||
|
"nb-NO","nb-NO",0,0,0,0,0,
|
|||
|
"nl-NL","nl",1,1,1,0,0,
|
|||
|
"pl-PL","pl",1,1,1,0,0,
|
|||
|
"pt-BR","pt-BR",1,1,1,1,2,
|
|||
|
"pt-PT","pt",1,1,0,0,0,
|
|||
|
"ro-RO","ro",0,0,0,0,0,
|
|||
|
"ru-RU","ru",1,1,1,1,1,
|
|||
|
"sk-SK","sk",1,1,1,1,0,
|
|||
|
"sl-SI","sl",1,1,1,0,0,
|
|||
|
"sq-AL","sq",0,0,0,0,0,
|
|||
|
"sv-SE","sv",0,0,0,0,0,
|
|||
|
"sw-KE","sw",0,0,0,0,0,
|
|||
|
"th-TH","th",0,0,0,0,0,
|
|||
|
"tr-TR","tr",1,1,1,0,0,
|
|||
|
"uk-UA","uk",1,1,1,0,0,
|
|||
|
"vi-VN","vi",1,1,1,0,0,
|
|||
|
"zh-CN","zh-CN",1,1,1,0,0,
|
|||
|
"zh-TW","zh-TW",0,0,0,0,0
|
|||
|
];
|
|||
|
var
|
|||
|
d=new Date,
|
|||
|
currentDate=d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate(),
|
|||
|
updateDate='2018-08-03',
|
|||
|
sinceDate ='2018-07-27';
|
|||
|
newLanguage='';
|
|||
|
var engTotal=0,
|
|||
|
engTotalAndroid=0,
|
|||
|
engTotalOld=0,
|
|||
|
engTotalAndroidOld=0,
|
|||
|
langTotal=0,
|
|||
|
languageAllNumber=0,
|
|||
|
languageEditorsNumber=0,
|
|||
|
languageDesktopNumber=0,
|
|||
|
languageAndroidNumber=0,
|
|||
|
languageCommunityNumber=0,
|
|||
|
languagesArray = [],
|
|||
|
languagesAndroidArray = [],
|
|||
|
modulesLangArray = [],
|
|||
|
neutralLangArray = [],
|
|||
|
neutralLangAndroidArray = [],
|
|||
|
translatorUniqueNameArray = [],
|
|||
|
translatorNameArray = [], translatorByLangArray = [], transLangArray = [], newTransArray = [],
|
|||
|
newstrNameArray = [],newstrUniqueNameArray = [],newstrModule = [],newNewstrArray = [],
|
|||
|
saasLang = 0,
|
|||
|
serverLang = 0,
|
|||
|
dateOfTable = new Date(updateDate).toLocaleDateString(),
|
|||
|
sinceDateOfTable = new Date(sinceDate).toLocaleDateString(),
|
|||
|
i = 0, x = 0, languageCorrLength = languageCorr.length;
|
|||
|
$.when(
|
|||
|
$.getJSON('/js/data/newstr.json', function(data) {
|
|||
|
var newstrArray = data.rows;
|
|||
|
if (newstrArray.length == 0) {
|
|||
|
$('#translatorAttention_block').css('display', 'none');
|
|||
|
}
|
|||
|
for (var x = 0, length = newstrArray.length; x < length; x += 1) {
|
|||
|
var moduleName = newstrArray[x].projectName, sectionName = newstrArray[x].moduleName;
|
|||
|
if (moduleName == 'TeamLab Editors') {
|
|||
|
moduleName = 'ONLYOFFICE Editors';
|
|||
|
}
|
|||
|
newstrNameArray.push(moduleName);
|
|||
|
}
|
|||
|
$.each(newstrNameArray, function(i, el){
|
|||
|
if($.inArray(el, newstrUniqueNameArray) === -1) newstrUniqueNameArray.push(el);
|
|||
|
});
|
|||
|
for(var i = 0, lengthi = newstrArray.length; i < lengthi; i += 1) {
|
|||
|
var newstrCount = newstrArray[i]["count(*)"],moduleName = newstrArray[i].projectName,sectionName = newstrArray[i].moduleName,moduleDate = newstrArray[i].timeChanges;
|
|||
|
var sectionNewstrArray = [];
|
|||
|
if (moduleName == 'TeamLab Editors') {
|
|||
|
moduleName = 'ONLYOFFICE Editors';
|
|||
|
}
|
|||
|
if (moduleName != 'ONLYOFFICEORG') {
|
|||
|
sectionNewstrArray = [sectionName, newstrCount, moduleDate];
|
|||
|
}
|
|||
|
if (sectionNewstrArray[1].length != 0) {
|
|||
|
newstrModule.push(moduleName, sectionNewstrArray);
|
|||
|
}
|
|||
|
}
|
|||
|
for(var y=0, lengthy = newstrUniqueNameArray.length; y<lengthy; y += 1) {
|
|||
|
var newstrModuleArray = [];
|
|||
|
for(var i = 0, lengthi = newstrModule.length; i < lengthi; i += 2) {
|
|||
|
var temp = newstrModule[i];
|
|||
|
if(newstrUniqueNameArray[y] == newstrModule[i]) {
|
|||
|
newstrModuleArray.push(newstrModule[i+1]);
|
|||
|
}
|
|||
|
}
|
|||
|
newNewstrArray.push(newstrUniqueNameArray[y], newstrModuleArray);
|
|||
|
}
|
|||
|
var tableModuleDateLatest = '', tableModuleDateEarliest = currentDate, moduleTotalCount = 0;
|
|||
|
for(var i = 0, lengthi = newNewstrArray.length; i<lengthi; i+=2) {
|
|||
|
var tableModuleTD = newNewstrArray[i], tableModuleCount = 0, tableSectionTD = '', ttp = '', tableModuleDateBiggest = '';
|
|||
|
for (var x = 0, lengthx = newNewstrArray[i+1].length; x<lengthx; x += 1) {
|
|||
|
var tableSectionID = newNewstrArray[i+1][x][0], tableSectionCount = newNewstrArray[i+1][x][1], tableModuleDate = newNewstrArray[i+1][x][2];
|
|||
|
ttp += tableSectionID + ': <b>' + tableSectionCount + '</b><br />';
|
|||
|
tableModuleCount += tableSectionCount;
|
|||
|
if (tableModuleDate > tableModuleDateBiggest) {
|
|||
|
tableModuleDateBiggest = tableModuleDate;
|
|||
|
}
|
|||
|
if (tableModuleDate < tableModuleDateEarliest) {
|
|||
|
tableModuleDateEarliest = tableModuleDate;
|
|||
|
}
|
|||
|
}
|
|||
|
tableModuleDateLocale = new Date(tableModuleDateBiggest).toLocaleDateString();
|
|||
|
$('#newstrList').append('<tr class="tdwttp" id="tdtp_' + 'i' + i + '" title="' + ttp + '"><td>' + tableModuleTD + '</td><td>' + tableModuleCount + '</td><td>' + tableModuleDateLocale + '</td></tr>');
|
|||
|
moduleTotalCount += tableModuleCount;
|
|||
|
if (tableModuleDateBiggest > tableModuleDateLatest) {
|
|||
|
tableModuleDateLatest = tableModuleDateBiggest;
|
|||
|
}
|
|||
|
}
|
|||
|
var attentionDateDelta = Math.abs((new Date(currentDate)).getTime() - (new Date(tableModuleDateLatest)).getTime()), attentionDaysDelta = Math.ceil(attentionDateDelta / (1000 * 3600 * 24)), attentionCookieValue = getCookie('attention'), neverShowTranslatorsCookie = getCookie('neverShow');
|
|||
|
if(neverShowTranslatorsCookie == 'never') {
|
|||
|
$('#translatorAttention_block').css('display', 'none');
|
|||
|
} else if (attentionCookieValue == 'visible' || attentionCookieValue == 'time2Show' || attentionCookieValue == undefined && neverShowTranslatorsCookie !== 'never') {
|
|||
|
$('#translatorAttention_block').fadeIn();
|
|||
|
} else if (attentionDaysDelta < 7 && neverShowTranslatorsCookie !== 'never') {
|
|||
|
setCookie('attention', 'time2Show', {path: "/"});
|
|||
|
$('#translatorAttention_block').fadeIn();
|
|||
|
} else if (attentionCookieValue == 'hidden') {
|
|||
|
$('#translatorAttention_block').css('display', 'none');
|
|||
|
}
|
|||
|
$('#neverShowTranslators').on('click', function(){
|
|||
|
$('#translatorAttention_block').fadeOut();
|
|||
|
setCookie('neverShow', 'never', {path: "/"});
|
|||
|
});
|
|||
|
if ($('#neverShowTranslators').prop('checked')) {
|
|||
|
$('#translatorAttention_block').fadeOut();
|
|||
|
setCookie('neverShow', 'never', {path: "/"});
|
|||
|
}
|
|||
|
$('#translatorAttention_block .close_cross').on('click', function(){
|
|||
|
$('#translatorAttention_block').fadeOut();
|
|||
|
setCookie('attention', 'hidden', {expires: 7*60*60*24, path: "/"});
|
|||
|
});
|
|||
|
var sinceNewstrDate = new Date(tableModuleDateEarliest).toLocaleDateString();
|
|||
|
$('#moduleTotalCount').append(moduleTotalCount),
|
|||
|
$('#newstrDate').append(sinceNewstrDate);
|
|||
|
}),
|
|||
|
$.getJSON('/js/data/translators.json', function(data) {
|
|||
|
var translatorsArray = data.rows;
|
|||
|
for (var x = 0, length = translatorsArray.length; x < length; x += 1) {
|
|||
|
var translatorName = translatorsArray[x].authorLogin, langLocale = translatorsArray[x].cultureTitle;
|
|||
|
translatorNameArray.push(translatorName);
|
|||
|
}
|
|||
|
$.each(translatorNameArray, function(i, el){
|
|||
|
if($.inArray(el, translatorUniqueNameArray) === -1) translatorUniqueNameArray.push(el);
|
|||
|
});
|
|||
|
for(var i = 0, lengthi = translatorsArray.length; i < lengthi; i += 1) {
|
|||
|
var langCount = translatorsArray[i]["count(*)"],langProjectName = translatorsArray[i].projectName,translatorName = translatorsArray[i].authorLogin,langLocale = translatorsArray[i].cultureTitle;
|
|||
|
var modulesLangArray = [];
|
|||
|
if (langProjectName == 'TeamLab Editors') {
|
|||
|
langProjectName = 'ONLYOFFICE Editors';
|
|||
|
}
|
|||
|
if (langProjectName != 'ONLYOFFICEORG') {
|
|||
|
modulesLangArray = [langProjectName, langCount];
|
|||
|
}
|
|||
|
var trLocale = [langLocale, modulesLangArray];
|
|||
|
for(var x = (i+1), lengthx = translatorsArray.length; x < lengthx; x += 1) {
|
|||
|
if (translatorsArray[x].authorLogin == translatorName && translatorsArray[x].cultureTitle == langLocale) {
|
|||
|
var langCount1 = translatorsArray[x]["count(*)"],langProjectName1 = translatorsArray[x].projectName, i = x, b = 1;
|
|||
|
if (langProjectName1 == 'TeamLab Editors') {
|
|||
|
langProjectName1 = 'ONLYOFFICE Editors';
|
|||
|
}
|
|||
|
if (langProjectName1 != 'ONLYOFFICEORG') {
|
|||
|
modulesLangArray.push(langProjectName1, langCount1);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if (trLocale[1].length != 0) {
|
|||
|
translatorByLangArray.push(translatorName, trLocale);
|
|||
|
}
|
|||
|
}
|
|||
|
for(var y=0, lengthy = translatorUniqueNameArray.length; y<lengthy; y += 1) {
|
|||
|
var transLangArray = [];
|
|||
|
for(var i = 0, lengthi = translatorByLangArray.length; i < lengthi; i += 2) {
|
|||
|
var temp = translatorByLangArray[i];
|
|||
|
if(translatorUniqueNameArray[y] == translatorByLangArray[i]) {
|
|||
|
transLangArray.push(translatorByLangArray[i+1]);
|
|||
|
}
|
|||
|
}
|
|||
|
newTransArray.push(translatorUniqueNameArray[y], transLangArray);
|
|||
|
}
|
|||
|
for(var i = 0, lengthi = newTransArray.length; i<lengthi; i+=2) {
|
|||
|
var tableTranslator = newTransArray[i];
|
|||
|
var transLangTD = '';
|
|||
|
for (var x = 0, lengthx = newTransArray[i+1].length; x<lengthx; x += 1) {
|
|||
|
var tableLanguageID = newTransArray[i+1][x][0];
|
|||
|
var ttp = '';
|
|||
|
for(var q = 0, lengthq = newTransArray[i+1][x][1].length; q<lengthq; q +=2) {
|
|||
|
ttp += '<b>' + newTransArray[i+1][x][1][q] + '</b>: ' + newTransArray[i+1][x][1][q+1] + ' <br />';
|
|||
|
}
|
|||
|
for (y = 0, length2 = languageCorr.length; y < length2; y += 2) {
|
|||
|
var n = tableLanguageID.localeCompare(languageCorr[y]);
|
|||
|
if (n === 0) {
|
|||
|
var languageName = languageCorr[y + 1];
|
|||
|
}
|
|||
|
}
|
|||
|
for (z = 1, lengthz = allLanguageArray.length; z < lengthz; z += 7) {
|
|||
|
if (allLanguageArray[z] == tableLanguageID) {
|
|||
|
var arrayElementTitle = allLanguageArray[z-1];
|
|||
|
} else {
|
|||
|
continue;
|
|||
|
}
|
|||
|
}
|
|||
|
transLangTD += '<span class="tdwttp locale_lng language_' + arrayElementTitle + '" id="tdtp_' + x + 'i' + i + '" title="' + ttp + '">' + languageName + '</span>';
|
|||
|
}
|
|||
|
$('#translatorList').append('<tr><td>' + tableTranslator + '</td><td>' + transLangTD + '</td></tr>');
|
|||
|
}
|
|||
|
}),
|
|||
|
$.getJSON('/js/data/stats_prev.json', function(data) {
|
|||
|
var langPrevArray = data.rows;
|
|||
|
$.getJSON('/js/data/stats.json', function(data) {
|
|||
|
var langArray = data.rows;
|
|||
|
for (i = 1, length = allLanguageArray.length; i < length; i += 7) {
|
|||
|
var modulesLangArray = [],modulesLangAndroidArray = [],langTotal=0,langAndroidTotal=0,comingSoonSaasLabel='',comingSoonServerLabel='',comingSoonDocLabel='';
|
|||
|
for (x = 0, length1 = langArray.length; x < length1; x += 1) {
|
|||
|
var lang1title = langArray[x].title;
|
|||
|
if (allLanguageArray[i] == lang1title) {
|
|||
|
var lang1count = langArray[x]["count(*)"],
|
|||
|
localeCode = langArray[x].title,
|
|||
|
arrayElementTitle = allLanguageArray[i-1],
|
|||
|
lang1projectName = langArray[x].projectName
|
|||
|
if (lang1projectName == 'TeamLab Editors') {
|
|||
|
lang1projectName = 'ONLYOFFICE Editors';
|
|||
|
}
|
|||
|
} else {
|
|||
|
continue;
|
|||
|
}
|
|||
|
if (lang1projectName != 'ONLYOFFICEORG' && lang1projectName != 'Mobile Applications') {
|
|||
|
modulesLangArray.push(lang1projectName, lang1count);
|
|||
|
langTotal += lang1count;
|
|||
|
}
|
|||
|
if (lang1projectName == 'Mobile Applications') {
|
|||
|
modulesLangAndroidArray.push(lang1projectName, lang1count);
|
|||
|
langAndroidTotal += lang1count;
|
|||
|
}
|
|||
|
}
|
|||
|
if(allLanguageArray[i+1] == 1) {
|
|||
|
saasLang = 'yes';
|
|||
|
} else if (allLanguageArray[i+1] == 2) {
|
|||
|
saasLang = 'yes new_language';
|
|||
|
} else if (allLanguageArray[i+1] == 3) {
|
|||
|
comingSoonSaasLabel = 'title="' + comingSoonLabel + '"';
|
|||
|
saasLang = 'no comsoon';
|
|||
|
} else {
|
|||
|
saasLang = 'no';
|
|||
|
}
|
|||
|
if (allLanguageArray[i+2] == 1) {
|
|||
|
serverLang = 'yes';
|
|||
|
} else if (allLanguageArray[i+2] == 2) {
|
|||
|
serverLang = 'yes new_language';
|
|||
|
} else if (allLanguageArray[i+2] == 3) {
|
|||
|
comingSoonServerLabel = 'title="' + comingSoonLabel + '"';
|
|||
|
serverLang = 'no comsoon';
|
|||
|
} else {
|
|||
|
serverLang = 'no';
|
|||
|
}
|
|||
|
if (allLanguageArray[i+3] == 1) {
|
|||
|
docServerLang = 'yes';
|
|||
|
} else if (allLanguageArray[i+3] == 2) {
|
|||
|
docServerLang = 'yes new_language';
|
|||
|
} else if (allLanguageArray[i+3] == 3) {
|
|||
|
comingSoonDocLabel = 'title="' + comingSoonLabel + '"';
|
|||
|
docServerLang = 'no comsoon';
|
|||
|
} else {
|
|||
|
docServerLang = 'no';
|
|||
|
}
|
|||
|
if (allLanguageArray[i+4] == 1) {
|
|||
|
desktopLang = 'yes';
|
|||
|
} else if (allLanguageArray[i+4] == 2) {
|
|||
|
desktopLang = 'yes new_language';
|
|||
|
} else if (allLanguageArray[i+4] == 3) {
|
|||
|
desktopLang = 'no comsoon';
|
|||
|
} else {
|
|||
|
desktopLang = 'no';
|
|||
|
}
|
|||
|
if (allLanguageArray[i+5] == 1) {
|
|||
|
androidLang = 'yes';
|
|||
|
} else if (allLanguageArray[i+5] == 2) {
|
|||
|
androidLang = 'yes new_language';
|
|||
|
} else if (allLanguageArray[i+5] == 3) {
|
|||
|
androidLang = 'no comsoon';
|
|||
|
} else {
|
|||
|
androidLang = 'no';
|
|||
|
}
|
|||
|
for (y = 0, length2 = languageCorr.length; y < length2; y += 2) {
|
|||
|
var n = allLanguageArray[i].localeCompare(languageCorr[y]);
|
|||
|
if (n === 0) {
|
|||
|
var languageName = languageCorr[y + 1];
|
|||
|
}
|
|||
|
}
|
|||
|
var languageTotalOld=0,languageTotalAndroidOld=0;
|
|||
|
for (x = 0, length3 = langPrevArray.length; x < length3; x += 1) {
|
|||
|
var langPrevTitle = langPrevArray[x].title;
|
|||
|
if (langPrevTitle == localeCode) {
|
|||
|
var langPrevCount = langPrevArray[x]["count(*)"],
|
|||
|
langPrevProjectName = langPrevArray[x].projectName;
|
|||
|
} else {
|
|||
|
continue;
|
|||
|
}
|
|||
|
if (langPrevTitle == 'Neutral' && langPrevProjectName != 'ONLYOFFICEORG' && langPrevProjectName != 'Mobile Applications') {
|
|||
|
engTotalOld += langPrevCount;
|
|||
|
}
|
|||
|
if (langPrevProjectName != 'ONLYOFFICEORG' && langPrevProjectName != 'Mobile Applications') {
|
|||
|
languageTotalOld += langPrevCount;
|
|||
|
}
|
|||
|
if (langPrevTitle == 'Neutral' && langPrevProjectName == 'Mobile Applications') {
|
|||
|
engTotalAndroidOld += langPrevCount;
|
|||
|
}
|
|||
|
if (langPrevProjectName == 'Mobile Applications') {
|
|||
|
languageTotalAndroidOld += langPrevCount;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (modulesLangArray.length != 0) {
|
|||
|
languagesArray.push(saasLang, serverLang, docServerLang, localeCode, languageName, arrayElementTitle, langTotal, languageTotalOld, modulesLangArray, desktopLang, comingSoonSaasLabel, comingSoonServerLabel, comingSoonDocLabel);
|
|||
|
}
|
|||
|
if (modulesLangAndroidArray.length != 0) {
|
|||
|
languagesAndroidArray.push(localeCode, languageName, arrayElementTitle, langAndroidTotal, languageTotalAndroidOld, modulesLangAndroidArray, androidLang);
|
|||
|
}
|
|||
|
}
|
|||
|
for (i = 0, length4 = languagesArray.length; i < length4; i += 13) {
|
|||
|
if (languagesArray[i+3] == 'Neutral') {
|
|||
|
var engTotal = languagesArray[i+6],
|
|||
|
totalPercentDifference = ((engTotal * 100 / engTotalOld - 100).toFixed(2)).toLocaleString();
|
|||
|
neutralLangArray.push(languagesArray[i], languagesArray[i+1], languagesArray[i+2], languagesArray[i+3], languagesArray[i+4], languagesArray[i+5], languagesArray[i+6], languagesArray[i+7], languagesArray[i+8], languagesArray[i+9]);
|
|||
|
}
|
|||
|
}
|
|||
|
for (i = 0, length4 = languagesAndroidArray.length; i < length4; i += 7) {
|
|||
|
if (languagesAndroidArray[i] == 'Neutral') {
|
|||
|
var engTotalAndroid = languagesAndroidArray[i+3],
|
|||
|
totalPercentAndroidDifference = ((engTotalAndroid * 100 / engTotalAndroidOld - 100).toFixed(2)).toLocaleString();
|
|||
|
neutralLangAndroidArray.push(languagesAndroidArray[i], languagesAndroidArray[i+1], languagesAndroidArray[i+2], languagesAndroidArray[i+3], languagesAndroidArray[i+4], languagesAndroidArray[i+5], languagesAndroidArray[i+6]);
|
|||
|
}
|
|||
|
}
|
|||
|
if (totalPercentDifference > 0) {
|
|||
|
totalPercentDifference = '<span class="progress_rate">(<span class="progress_up"><span class="up_arrow"></span>' + totalPercentDifference + '%</span>)</span>';
|
|||
|
} else if (totalPercentDifference < 0) {
|
|||
|
totalPercentDifference = '<span class="progress_rate">(<span class="progress_down"><span class="down_arrow"></span>' + totalPercentDifference + '%</span>)</span>';
|
|||
|
} else {
|
|||
|
var totalPercentDifference = '';
|
|||
|
}
|
|||
|
|
|||
|
$.fn.buildModuleTableLanguages = function (moduleID, tableID, languageIndex, newLanguageMark) {
|
|||
|
for (var z= 0, length5 = languagesArray[languageIndex+8].length; z<length5; z += 2) {
|
|||
|
for (var w=0, length6 = neutralLangArray[8].length; w<length6; w += 2) {
|
|||
|
if (languagesArray[languageIndex+8][z] == neutralLangArray[8][w] && languagesArray[languageIndex+8][z] == moduleID) {
|
|||
|
var ttpcent = Math.round(languagesArray[languageIndex+8][z+1] * 100 / neutralLangArray[8][w+1]);
|
|||
|
if (ttpcent > 100) {
|
|||
|
var ttpcent = 100;
|
|||
|
}
|
|||
|
var completionRate = ttpcent.toString() + '%';
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
$(tableID).append('<tr><td><span class="locale_lng language_' + languagesArray[languageIndex+5] + newLanguageMark + '">' + languagesArray[languageIndex+4] + '</span></td><td>' + languagesArray[languageIndex+5] + '</td><td>' + completionRate + '</td></tr>');
|
|||
|
}
|
|||
|
|
|||
|
$.fn.buildServerLanguages = function (tableID, languageIndex) {
|
|||
|
var languageEditors = 0, neutralLanguageEditors = 0;
|
|||
|
if (languagesArray[languageIndex+1] == 'yes new_language') {
|
|||
|
var newLanguageMark = ' new_language';
|
|||
|
} else {
|
|||
|
var newLanguageMark = '';
|
|||
|
}
|
|||
|
for (var z= 0, length5 = languagesArray[languageIndex+8].length; z<length5; z += 2) {
|
|||
|
for (var w=0, length6 = neutralLangArray[8].length; w<length6; w += 2) {
|
|||
|
if (languagesArray[languageIndex+8][z] == neutralLangArray[8][w] && languagesArray[languageIndex+8][z] == 'ONLYOFFICE Editors') {
|
|||
|
languageEditors = languagesArray[languageIndex+8][z+1], neutralLanguageEditors += neutralLangArray[8][w+1];
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
var languagePercent = Math.round((languagesArray[languageIndex + 6]-languageEditors) * 100 / (engTotal-neutralLanguageEditors));
|
|||
|
if (languagePercent > 100) {
|
|||
|
var languagePercent = 100;
|
|||
|
}
|
|||
|
$(tableID).append('<tr><td><span class="locale_lng language_' + languagesArray[languageIndex+5] + newLanguageMark + '">' + languagesArray[languageIndex+4] + '</span></td><td>' + languagesArray[languageIndex+5] + '</td><td>' + languagePercent + '% ' + '</td></tr>');
|
|||
|
}
|
|||
|
|
|||
|
$.fn.buildAndroidLanguages = function (tableID, languageIndex) {
|
|||
|
var languageAndroid = 0, neutralLanguageAndroid = 0;
|
|||
|
if (languagesAndroidArray[languageIndex+6] == 'yes new_language') {
|
|||
|
var newLanguageAndroidMark = ' new_language';
|
|||
|
} else if (languagesAndroidArray[languageIndex+6] == 'no comsoon') {
|
|||
|
var newLanguageAndroidMark = ' comsoon';
|
|||
|
} else {
|
|||
|
var newLanguageAndroidMark = '';
|
|||
|
}
|
|||
|
var languageAndroidPercent = Math.round((languagesAndroidArray[languageIndex + 3]) * 100 / (engTotalAndroid));
|
|||
|
if (languageAndroidPercent > 100) {
|
|||
|
var languageAndroidPercent = 100;
|
|||
|
}
|
|||
|
$(tableID).append('<tr><td><span class="locale_lng language_' + languagesAndroidArray[languageIndex+2] + newLanguageAndroidMark + '">' + languagesAndroidArray[languageIndex+1] + '</span></td><td>' + languagesAndroidArray[languageIndex+2] + '</td><td>' + languageAndroidPercent + '% ' + '</td></tr>');
|
|||
|
}
|
|||
|
|
|||
|
$.fn.buildTableLanguages = function (tableID, languageIndex) {
|
|||
|
var languagePercent = Math.round(languagesArray[languageIndex + 6] * 100 / engTotal);
|
|||
|
var languagePercentOld = Math.round(languagesArray[languageIndex + 7] * 100 / engTotalOld);
|
|||
|
if (languagePercent > 100) {
|
|||
|
var languagePercent = 100;
|
|||
|
}
|
|||
|
if (languagePercentOld > 100) {
|
|||
|
var languagePercentOld = 100;
|
|||
|
}
|
|||
|
var progress = languagePercent - languagePercentOld;
|
|||
|
if (progress > 0) {
|
|||
|
var progress = '<span class="progress_rate">(<span class="progress_up"><span class="up_arrow"></span>' + (languagePercent - languagePercentOld).toString() + '%</span>)</span>';
|
|||
|
} else if (progress < 0) {
|
|||
|
var progress = '<span class="progress_rate">(<span class="progress_down"><span class="down_arrow"></span>' + (languagePercent - languagePercentOld).toString() + '%</span>)</span>';
|
|||
|
} else {
|
|||
|
var progress = '';
|
|||
|
}
|
|||
|
var ttp = '';
|
|||
|
var ttpspan = '';
|
|||
|
for (var z= 0, length5 = languagesArray[languageIndex+8].length; z<length5; z += 2) {
|
|||
|
for (var w=0, length6 = neutralLangArray[8].length; w<length6; w += 2) {
|
|||
|
if (languagesArray[languageIndex+8][z] == neutralLangArray[8][w]) {
|
|||
|
var ttpcent = Math.round(languagesArray[languageIndex+8][z+1] * 100 / neutralLangArray[8][w+1]);
|
|||
|
if (ttpcent >= 75) {
|
|||
|
ttpspan = '<span class=ttp_great>' + ttpcent + '%</span>';
|
|||
|
} else if (ttpcent < 75 && ttpcent >= 25) {
|
|||
|
ttpspan = '<span class=ttp_norm>' + ttpcent + '%</span>';
|
|||
|
} else if (ttpcent < 25) {
|
|||
|
ttpspan = '<b class=ttp_bad>' + ttpcent + '%</b>';
|
|||
|
}
|
|||
|
ttp += '<b>' + languagesArray[languageIndex+8][z] + '</b>: ' + languagesArray[languageIndex+8][z+1] + ' (' + ttpspan + ')<br />';
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if (languagesArray[languageIndex+8].length < neutralLangArray[8].length) {
|
|||
|
ttp += otherModules + ': 0 (<b class=ttp_bad>0%</b>)';
|
|||
|
}
|
|||
|
$(tableID).append('<tr><td><span class="locale_lng language_' + languagesArray[languageIndex+5] + '">' + languagesArray[languageIndex+4] + '</span></td><td>' + languagesArray[languageIndex+5] + '</td><td class="tdwttp" id="tdwttp_' + languagesArray[languageIndex+3] + '" title="' + ttp + '">' + languagePercent + '% ' + progress + '</td><td class="tdwttp" id="tpyn_' + (languageIndex*101) + '"' + languagesArray[languageIndex+10] + '><span class="' + languagesArray[languageIndex] + '"></span></td><td class="tdwttp" id="tpyn_' + (languageIndex*102) + '"' + languagesArray[languageIndex+11] + '><span class="' + languagesArray[languageIndex + 1] + '"></span></td><td class="tdwttp" id="tpyn_' + (languageIndex*103) + '"' + languagesArray[languageIndex+12] + '><span class="' + languagesArray[languageIndex + 2] + '"></span></td></tr>');
|
|||
|
}
|
|||
|
for (var i = 0, length7 = languagesArray.length; i < length7; i += 13) {
|
|||
|
if (languagesArray[i] == 'yes' || languagesArray[i+1] == 'yes' || languagesArray[i+2] == 'yes' || languagesArray[i] == 'yes new_language' || languagesArray[i+1] == 'yes new_language' || languagesArray[i+2] == 'yes new_language') {
|
|||
|
$('.table_versionlist').buildTableLanguages('#languagesTable', i);
|
|||
|
languageAllNumber+=1;
|
|||
|
} else {
|
|||
|
$('.table_versionlist').buildTableLanguages('#languagesTableNotyet', i);
|
|||
|
}
|
|||
|
}
|
|||
|
for (var i = 0, length8 = languagesArray.length; i < length8; i += 13) {
|
|||
|
if (languagesArray[i+2] == 'yes' || languagesArray[i+2] == 'yes new_language') {
|
|||
|
if (languagesArray[i+2] == 'yes new_language') {
|
|||
|
var newLanguageMark = ' new_language';
|
|||
|
} else {
|
|||
|
var newLanguageMark = '';
|
|||
|
}
|
|||
|
languageEditorsNumber+=1;
|
|||
|
$('.table_versionlist').buildModuleTableLanguages('ONLYOFFICE Editors', '#languagesEditorsTable', i, newLanguageMark);
|
|||
|
}
|
|||
|
}
|
|||
|
for (var i = 0, length8 = languagesArray.length; i < length8; i += 13) {
|
|||
|
if (languagesArray[i+9] == 'yes' || languagesArray[i+9] == 'yes new_language') {
|
|||
|
if (languagesArray[i+9] == 'yes new_language') {
|
|||
|
var newLanguageMark = ' new_language';
|
|||
|
} else {
|
|||
|
var newLanguageMark = '';
|
|||
|
}
|
|||
|
languageDesktopNumber+=1;
|
|||
|
$('.table_versionlist').buildModuleTableLanguages('ONLYOFFICE Editors', '#languagesDesktopEditorsTable', i, newLanguageMark);
|
|||
|
}
|
|||
|
}
|
|||
|
for (var i = 0, length8 = languagesAndroidArray.length; i < length8; i += 7) {
|
|||
|
if (languagesAndroidArray[i+6] == 'yes' || languagesAndroidArray[i+6] == 'yes new_language' || languagesAndroidArray[i+6] == 'no comsoon') {
|
|||
|
languageAndroidNumber+=1;
|
|||
|
$('.table_versionlist').buildAndroidLanguages('#languagesAndroidTable', i);
|
|||
|
}
|
|||
|
}
|
|||
|
for (var i = 0, length8 = languagesArray.length; i < length8; i += 13) {
|
|||
|
if (languagesArray[i+1] == 'yes' || languagesArray[i+1] == 'yes new_language') {
|
|||
|
languageCommunityNumber+=1;
|
|||
|
$('.table_versionlist').buildServerLanguages('#languagesCommunityTable', i);
|
|||
|
}
|
|||
|
}
|
|||
|
$('#languageAllNumber').append(languageAllNumber),
|
|||
|
$('#languageEditorsNumber').append(languageEditorsNumber),
|
|||
|
$('#languageDesktopNumber').append(languageDesktopNumber),
|
|||
|
$('#languageCommunityNumber').append(languageCommunityNumber),
|
|||
|
$('#languageAndroidNumber').append(languageAndroidNumber),
|
|||
|
$('#totalChange').append('<b>' + engTotal.toLocaleString() + '</b> ' + totalPercentDifference);
|
|||
|
});
|
|||
|
}),
|
|||
|
|
|||
|
$('#lastUpdate').append(dateOfTable),
|
|||
|
$('#sinceDate').append(sinceDateOfTable)
|
|||
|
|
|||
|
).done(window.setTimeout(tooltipLoader, 1000));
|
|||
|
|
|||
|
function tooltipLoader() {
|
|||
|
tooltip(".tdwttp","tooltip_languages");
|
|||
|
};
|