Updates: updated desktop available languages page

This commit is contained in:
alexandervnuchkov 2019-02-28 14:47:23 +03:00
parent 47b3f5e80c
commit 462f17e2a0
9 changed files with 677 additions and 2 deletions

1
.gitignore vendored
View File

@ -8,7 +8,6 @@
/Web/js/data/history/stats_2017.07.28.json
/Web/js/data/history/stats_2017.08.04.json
/Web/js/help/chart_builder.js
/Web/js/help/language_table.js
/Web/js/help/temp.js
Thumbs.db
history

View File

@ -25,6 +25,7 @@
<th><span>Language</span></th>
<th><span>Locale</span></th>
<th><span>Completion Rate<sup>1</sup></span></th>
<th><span>OS</span></th>
</tr>
</thead>
<tbody></tbody>

View File

@ -25,6 +25,7 @@
<th><span>Язык</span></th>
<th><span>Языковой стандарт</span></th>
<th><span>Степень завершенности<sup>1</sup></span></th>
<th><span>ОС</span></th>
</tr>
</thead>
<tbody></tbody>

View File

@ -4178,4 +4178,40 @@ dd {
}
.fq_collapse {
display: none;
}
.windows, .linux, .macos {
display: inline-block;
width: 24px;
height: 24px;
background-repeat: no-repeat;
background-size: 24px 24px;
background-position-y: 50%;
background-position-x: 50%;
}
.windows, .linux, .macos {
background-image: url(/images/windows.png);
}
.linux {
background-image: url(/images/linux.png);
}
.macos {
background-image: url(/images/macos.png);
}
.windows.linux, .windows.macos, .linux.macos {
width: 50px;
background-position-x: 0%, 100%
}
.windows.linux {
background-image: url(/images/windows.png), url(/images/linux.png);
}
.windows.macos {
background-image: url(/images/windows.png), url(/images/macos.png);
}
.linux.macos {
background-image: url(/images/linux.png), url(/images/macos.png);
}
.windows.linux.macos {
width: 78px;
background-position-x: 0%, 50%, 100%;
background-image: url(/images/windows.png), url(/images/linux.png), url(/images/macos.png);
}

BIN
Web/images/linux.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
Web/images/macos.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 983 B

BIN
Web/images/windows.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

View File

@ -0,0 +1,638 @@
var allLanguageArray=[
"af-ZA", "af", 0,0,0,0,0,0,0,
"ar-AE", "ar-AE", 0,0,0,0,0,0,0,
"ar-TN", "ar-TN", 0,0,0,0,0,0,0,
"be-BY", "be", 0,0,0,0,0,0,0,
"bg-BG", "bg", 3,3,3,0,0,0,0,
"ca-ES", "ca", 0,0,0,0,0,0,0,
"cs-CZ", "cs", 1,1,1,21,0,1,0,
"Cy-sr-SP", "sr-Cyrl-CS", 0,0,0,0,0,0,0,
"Cy-uz-UZ", "uz-Cyrl-UZ", 0,0,0,0,0,0,0,
"da-DK", "da", 0,0,0,0,0,0,0,
"de-DE", "de", 1,1,1,21,1,1,1,
"el-GR", "el", 1,1,0,0,0,0,0,
"en-US", "Neutral", 1,1,1,21,1,1,1,
"es-ES", "es", 1,1,1,21,1,1,1,
"et-EE", "et", 0,0,0,0,0,0,0,
"eu-ES", "eu-ES", 0,0,0,0,0,0,0,
"fa-IR", "fa", 0,0,0,0,0,0,0,
"fi-FI", "fi", 1,1,0,0,0,0,0,
"fr-FR", "fr", 1,1,1,21,1,1,1,
"gl-ES", "gl", 0,0,0,0,0,0,0,
"he-IL", "he", 0,0,0,0,0,0,0,
"hi-IN", "hi", 0,0,0,0,0,0,0,
"hr-HR", "hr", 0,0,0,0,0,0,0,
"hu-HU", "hu", 0,0,3,0,0,0,0,
"hy-AM", "hy", 0,0,0,0,0,0,0,
"id-ID", "id", 0,0,0,0,0,0,0,
"is-IS", "is", 0,0,0,0,0,0,0,
"it-IT", "it", 1,1,1,21,1,0,0,
"ja-JP", "ja", 1,1,1,0,0,0,0,
"ka-GE", "ka", 0,0,0,0,0,0,0,
"kk-KZ", "kk", 0,0,0,0,0,0,0,
"ko-KR", "ko", 1,1,1,0,0,0,0,
"Lt-az-AZ", "az-Latn-AZ", 1,0,0,0,0,0,0,
"lt-LT", "lt", 0,0,0,0,0,0,0,
"Lt-sr-SP", "sr-Latn-CS", 0,0,0,0,0,0,0,
"lv-LV", "lv", 1,1,1,0,0,0,0,
"mk-MK", "mk", 0,0,0,0,0,0,0,
"mn-MN", "mn", 0,0,0,0,0,0,0,
"nb-NO", "nb-NO", 0,0,0,0,0,0,0,
"nl-NL", "nl", 1,1,1,0,0,0,0,
"pl-PL", "pl", 1,1,1,21,0,0,0,
"pt-BR", "pt-BR", 1,1,1,21,1,0,0,
"pt-PT", "pt", 1,1,0,0,0,0,0,
"ro-RO", "ro", 0,0,0,0,0,0,0,
"ru-RU", "ru", 1,1,1,21,1,1,1,
"sk-SK", "sk", 1,1,1,21,0,0,0,
"sl-SI", "sl", 1,1,1,0,0,0,0,
"sq-AL", "sq", 0,0,0,0,0,0,0,
"sv-SE", "sv", 0,0,0,0,0,0,0,
"sw-KE", "sw", 0,0,0,0,0,0,0,
"th-TH", "th", 0,0,0,0,0,0,0,
"tr-TR", "tr", 1,1,1,0,0,0,0,
"uk-UA", "uk", 1,1,1,0,0,0,0,
"vi-VN", "vi", 1,1,1,0,0,0,0,
"zh-CN", "zh-CN", 1,1,1,0,0,0,0,
"zh-TW", "zh-TW", 0,0,0,0,0,0,0
];
var
d=new Date,
currentDate=d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate(),
updateDate='2019-03-01',
sinceDate ='2019-02-22';
newLanguage='';
var engTotal=0,
engTotalDesktop=0,
engTotalAndroid=0,
engTotalOld=0,
engTotalAndroidOld=0,
engTotalDesktopOld=0,
langTotal=0,
languageAllNumber=0,
languageEditorsNumber=0,
languageDesktopNumber=0,
languageAndroidNumber=0,
languageiOSNumber=0,
languageCommunityNumber=0,
languagesArray = [],
languagesiOSArray = [],
languagesAndroidArray = [],
languagesDesktopArray = [],
modulesLangArray = [],
neutralLangArray = [],
neutralLangAndroidArray = [],
neutralLangDesktopArray = [],
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,
OSArray = ['windows', 'linux', 'macos', 'windows linux', 'windows macos', 'linux macos', 'windows linux macos'],
OSArrayHint = ['Windows', 'Linux', 'Mac OS', 'Windows, Linux', 'Windows, Mac OS', 'Linux, Mac OS', 'Windows, Linux, Mac OS'],
OSmarkArray = [4, 7, 10, 11, 14, 17, 21];
function getLanguageName(currentLanguageID) {
for (y = 0, length2 = languageCorr.length; y < length2; y += 2) {
var n = currentLanguageID.localeCompare(languageCorr[y]);
if (n === 0) {
var languageName = languageCorr[y + 1];
return languageName;
}
}
}
function buildTableiOS(pageTopDivID, pageTableID, languageNumberID, langNumeral) {
for (i = 1, length = allLanguageArray.length; i < length; i += 9) {
var iOSLang = '',
languageName = getLanguageName(allLanguageArray[i]);
if (allLanguageArray[i+langNumeral] == 1) {
iOSLang = 'yes';
} else if (allLanguageArray[i+langNumeral] == 2) {
iOSLang = 'yes new_language';
}
if (iOSLang !== '') {
languagesiOSArray.push(allLanguageArray[i - 1], languageName, iOSLang);
}
}
$.fn.buildiOSTableLanguages = function (tableID, languageIndex, newLanguageMark) {
$(tableID).append('<tr><td><span class="locale_lng language_' + languagesiOSArray[languageIndex] + newLanguageMark + '">' + languagesiOSArray[languageIndex+1] + '</span></td><td>' + languagesiOSArray[languageIndex] + '</td><td><span class="yes"></span></td></tr>');
}
for (var x = 0, length8 = languagesiOSArray.length; x < length8; x += 3) {
if (languagesiOSArray[x+2] == 'yes' || languagesiOSArray[x+2] == 'yes new_language') {
if (languagesiOSArray[x+2] == 'yes new_language') {
var newLanguageMark = ' new_language';
} else {
var newLanguageMark = '';
}
languageiOSNumber+=1;
$('.table_versionlist').buildiOSTableLanguages(pageTableID, x, newLanguageMark);
}
}
$(languageNumberID).append(languageiOSNumber);
}
function buildLargeTables(pageTopDivID) {
$.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 += 9) {
var modulesLangArray = [],modulesLangAndroidArray = [],modulesLangDesktopArray = [],langTotal=0,langAndroidTotal=0,langDesktopTotal=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 != 'Mobile Applications' && lang1projectName != 'Desktop editors') {
modulesLangArray.push(lang1projectName, lang1count);
langTotal += lang1count;
}
if (lang1projectName == 'Mobile Applications') {
modulesLangAndroidArray.push(lang1projectName, lang1count);
langAndroidTotal += lang1count;
}
if (lang1projectName == 'Desktop editors' || lang1projectName == 'ONLYOFFICE Editors') {
modulesLangDesktopArray.push(lang1projectName, lang1count);
langDesktopTotal += 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] == 4) {
desktopLang = 'yes windows';
} else if (allLanguageArray[i+4] == 7) {
desktopLang = 'yes linux';
} else if (allLanguageArray[i+4] == 10) {
desktopLang = 'yes macos';
} else if (allLanguageArray[i+4] == 6) {
desktopLang = 'yes windows new_language';
} else if (allLanguageArray[i+4] == 9) {
desktopLang = 'yes linux new_language';
} else if (allLanguageArray[i+4] == 12) {
desktopLang = 'yes macos new_language';
} else if (allLanguageArray[i+4] == 11) {
desktopLang = 'yes windows linux';
} else if (allLanguageArray[i+4] == 14) {
desktopLang = 'yes windows macos';
} else if (allLanguageArray[i+4] == 17) {
desktopLang = 'yes linux macos';
} else if (allLanguageArray[i+4] == 21) {
desktopLang = 'yes windows linux macos';
} else if (allLanguageArray[i+4] == 13) {
desktopLang = 'yes windows linux new_language';
} else if (allLanguageArray[i+4] == 16) {
desktopLang = 'yes windows macos new_language';
} else if (allLanguageArray[i+4] == 19) {
desktopLang = 'yes linux macos new_language';
} else if (allLanguageArray[i+4] == 23) {
desktopLang = 'yes windows linux macos new_language';
} 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';
}
var languageName = getLanguageName(allLanguageArray[i]);
var languageTotalOld=0,languageTotalAndroidOld=0,languageTotalDesktopOld=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 != 'Mobile Applications' && lang1projectName != 'Desktop editors') {
engTotalOld += langPrevCount;
}
if (langPrevProjectName != 'Mobile Applications' && lang1projectName != 'Desktop editors') {
languageTotalOld += langPrevCount;
}
if (langPrevTitle == 'Neutral' && langPrevProjectName == 'Mobile Applications') {
engTotalAndroidOld += langPrevCount;
}
if (langPrevProjectName == 'Mobile Applications') {
languageTotalAndroidOld += langPrevCount;
}
if (langPrevTitle == 'Neutral' && langPrevProjectName == 'Desktop editors') {
engTotalDesktopOld += langPrevCount;
}
if (langPrevProjectName == 'Desktop editors') {
languageTotalDesktopOld += 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);
}
if (modulesLangDesktopArray.length != 0) {
languagesDesktopArray.push(localeCode, languageName, arrayElementTitle, langDesktopTotal, desktopLang);
}
}
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];
}
}
for (i = 0, length4 = languagesDesktopArray.length; i < length4; i += 5) {
if (languagesDesktopArray[i] == 'Neutral') {
var engTotalDesktop = languagesDesktopArray[i+3];
neutralLangDesktopArray.push(languagesDesktopArray[i], languagesDesktopArray[i+1], languagesDesktopArray[i+2], languagesDesktopArray[i+3], languagesDesktopArray[i+4]);
}
}
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.buildDesktopTableLanguages = function (tableID, languageIndex, newLanguageMark, OSmark) {
var ttpcent = Math.round(languagesDesktopArray[languageIndex+3] * 100 / neutralLangDesktopArray[3]);
if (ttpcent > 100) {
var ttpcent = 100;
}
var completionRate = ttpcent.toString() + '%';
for (os = 0; os < OSmarkArray.length; ++os) {
if(OSmark == OSmarkArray[os]) {
var OSspan = '<span id="tdwttp_' + languagesDesktopArray[languageIndex] + OSmark + '" title="' + OSArrayHint[os] + '" class="tdwttp ' + OSArray[os] + '"></span>';
}
}
$(tableID).append('<tr><td><span class="locale_lng language_' + languagesDesktopArray[languageIndex+2] + newLanguageMark + '">' + languagesDesktopArray[languageIndex+1] + '</span></td><td>' + languagesDesktopArray[languageIndex+2] + '</td><td>' + completionRate + '</td><td>' + OSspan + '</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>');
}
if(pageTopDivID === 'languageTablePage_portals' || pageTopDivID === 'languageNumberPage_faq' || pageTopDivID === 'languageNumberPage_become') {
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);
if (languagesArray[i] == 'yes' || languagesArray[i] == 'yes new_language') {
languageAllNumber+=1;
}
} else {
$('.table_versionlist').buildTableLanguages('#languagesTableNotyet', i);
}
}
$('#languageAllNumber').append(languageAllNumber);
}
if(pageTopDivID === 'languageTablePage_docServer'){
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);
}
}
$('#languageEditorsNumber').append(languageEditorsNumber);
}
if(pageTopDivID === 'languageTablePage_androidDocuments'){
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);
}
}
$('#languageAndroidNumber').append(languageAndroidNumber);
}
if(pageTopDivID === 'languageTablePage_desktop'){
for (var i = 0, length8 = languagesDesktopArray.length; i < length8; i += 5) {
if (languagesDesktopArray[i+4] !== 'no') {
var OSmark = 0;
if (languagesDesktopArray[i+4].includes('windows')) {
OSmark += 4;
}
if (languagesDesktopArray[i+4].includes('linux')) {
OSmark += 7;
}
if (languagesDesktopArray[i+4].includes('macos')) {
OSmark += 10;
}
if (languagesDesktopArray[i+4].includes('new_language')) {
var newLanguageMark = ' new_language';
} else {
var newLanguageMark = '';
}
languageDesktopNumber+=1;
$('.table_versionlist').buildDesktopTableLanguages('#languagesDesktopEditorsTable', i, newLanguageMark, OSmark);
}
}
$('#languageDesktopNumber').append(languageDesktopNumber);
}
if(pageTopDivID === 'languageTablePage_commServer'){
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);
}
}
$('#languageCommunityNumber').append(languageCommunityNumber);
}
$('#totalChange').append('<b>' + engTotal.toLocaleString() + '</b> ' + totalPercentDifference);
});
});
}
function buildTableOfTranslators(){
$.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';
}
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';
}
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 />';
}
var languageName = getLanguageName(tableLanguageID);
for (z = 1, lengthz = allLanguageArray.length; z < lengthz; z += 9) {
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>');
}
});
};
function buildNewstrTable() {
$.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';
}
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);
});
};
function tooltipLoader() {
tooltip(".tdwttp","tooltip_languages");
};

File diff suppressed because one or more lines are too long