Updates: updated desktop available languages page
This commit is contained in:
parent
47b3f5e80c
commit
462f17e2a0
1
.gitignore
vendored
1
.gitignore
vendored
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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
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
BIN
Web/images/macos.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 983 B |
BIN
Web/images/windows.png
Normal file
BIN
Web/images/windows.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 603 B |
638
Web/js/help/language_table.js
Normal file
638
Web/js/help/language_table.js
Normal 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
Loading…
Reference in New Issue
Block a user