Skip to content

Commit 8acff77

Browse files
authored
Merge pull request #766 from frknbasaran/locale-conf
[locale-conf] Added locale configurations file
2 parents 413eaa8 + a7dc910 commit 8acff77

File tree

7 files changed

+70
-97
lines changed

7 files changed

+70
-97
lines changed

frontend/express/app.js

+11-7
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ var versionInfo = require('./version.info'),
3434
log = require('../../api/utils/log.js')('core:app'),
3535
url = require('url'),
3636
authorize = require('../../api/utils/authorizer.js'), //for token validations
37+
languages = require('../../frontend/express/locale.conf'),
3738
render = require('../../api/utils/render.js'),
3839
argon2 = require('argon2');
3940

@@ -772,6 +773,7 @@ function renderDashboard(req, res, next, member, adminOfApps, userOfApps, countl
772773
_.extend(req.config, configs);
773774
var countlyGlobal = {
774775
countlyTitle: req.countly.title,
776+
languages: languages,
775777
countlyVersion: req.countly.version,
776778
countlyFavicon: req.countly.favicon,
777779
pluginsSHA: sha1Hash(plugins.getPlugins()),
@@ -791,6 +793,7 @@ function renderDashboard(req, res, next, member, adminOfApps, userOfApps, countl
791793

792794
var toDashboard = {
793795
countlyTitle: req.countly.title,
796+
languages: languages,
794797
countlyFavicon: req.countly.favicon,
795798
adminOfApps: adminOfApps,
796799
userOfApps: userOfApps,
@@ -964,7 +967,7 @@ app.get(countlyConfig.path + '/setup', function(req, res) {
964967
res.header('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0');
965968
res.header('Expires', '0');
966969
res.header('Pragma', 'no-cache');
967-
res.render('setup', {countlyFavicon: req.countly.favicon, countlyTitle: req.countly.title, countlyPage: req.countly.page, "csrf": req.csrfToken(), path: countlyConfig.path || "", cdn: countlyConfig.cdn || "", themeFiles: req.themeFiles, inject_template: req.template});
970+
res.render('setup', { languages: languages, countlyFavicon: req.countly.favicon, countlyTitle: req.countly.title, countlyPage: req.countly.page, "csrf": req.csrfToken(), path: countlyConfig.path || "", cdn: countlyConfig.cdn || "", themeFiles: req.themeFiles, inject_template: req.template});
968971
}
969972
else if (err) {
970973
res.status(500).send('Server Error');
@@ -991,7 +994,7 @@ app.get(countlyConfig.path + '/login', function(req, res) {
991994
res.header('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0');
992995
res.header('Expires', '0');
993996
res.header('Pragma', 'no-cache');
994-
res.render('login', { countlyFavicon: req.countly.favicon, countlyTitle: req.countly.title, countlyPage: req.countly.page, "message": req.flash('info'), "csrf": req.csrfToken(), path: countlyConfig.path || "", cdn: countlyConfig.cdn || "", themeFiles: req.themeFiles, inject_template: req.template });
997+
res.render('login', { languages: languages, countlyFavicon: req.countly.favicon, countlyTitle: req.countly.title, countlyPage: req.countly.page, "message": req.flash('info'), "csrf": req.csrfToken(), path: countlyConfig.path || "", cdn: countlyConfig.cdn || "", themeFiles: req.themeFiles, inject_template: req.template });
995998
}
996999
else {
9971000
res.redirect(countlyConfig.path + '/setup');
@@ -1011,7 +1014,7 @@ app.get(countlyConfig.path + '/forgot', function(req, res) {
10111014
res.header('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0');
10121015
res.header('Expires', '0');
10131016
res.header('Pragma', 'no-cache');
1014-
res.render('forgot', { countlyFavicon: req.countly.favicon, countlyTitle: req.countly.title, countlyPage: req.countly.page, "csrf": req.csrfToken(), "message": req.flash('info'), path: countlyConfig.path || "", cdn: countlyConfig.cdn || "", themeFiles: req.themeFiles, inject_template: req.template});
1017+
res.render('forgot', { languages: languages, countlyFavicon: req.countly.favicon, countlyTitle: req.countly.title, countlyPage: req.countly.page, "csrf": req.csrfToken(), "message": req.flash('info'), path: countlyConfig.path || "", cdn: countlyConfig.cdn || "", themeFiles: req.themeFiles, inject_template: req.template});
10151018
}
10161019
});
10171020

@@ -1033,7 +1036,7 @@ app.get(countlyConfig.path + '/reset/:prid', function(req, res) {
10331036
res.header('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0');
10341037
res.header('Expires', '0');
10351038
res.header('Pragma', 'no-cache');
1036-
res.render('reset', { countlyFavicon: req.countly.favicon, countlyTitle: req.countly.title, countlyPage: req.countly.page, "csrf": req.csrfToken(), "prid": req.params.prid, "message": "", path: countlyConfig.path || "", cdn: countlyConfig.cdn || "", themeFiles: req.themeFiles, inject_template: req.template });
1039+
res.render('reset', { languages: languages, countlyFavicon: req.countly.favicon, countlyTitle: req.countly.title, countlyPage: req.countly.page, "csrf": req.csrfToken(), "prid": req.params.prid, "message": "", path: countlyConfig.path || "", cdn: countlyConfig.cdn || "", themeFiles: req.themeFiles, inject_template: req.template });
10371040
}
10381041
}
10391042
else {
@@ -1069,12 +1072,13 @@ app.post(countlyConfig.path + '/reset', function(req, res, next) {
10691072
});
10701073
}
10711074
else {
1072-
res.render('reset', { countlyFavicon: req.countly.favicon, countlyTitle: req.countly.title, countlyPage: req.countly.page, "csrf": req.csrfToken(), "prid": req.body.prid, "message": "", path: countlyConfig.path || "", cdn: countlyConfig.cdn || "", themeFiles: req.themeFiles, inject_template: req.template });
1075+
res.render('reset', { languages: languages, countlyFavicon: req.countly.favicon, countlyTitle: req.countly.title, countlyPage: req.countly.page, "csrf": req.csrfToken(), "prid": req.body.prid, "message": "", path: countlyConfig.path || "", cdn: countlyConfig.cdn || "", themeFiles: req.themeFiles, inject_template: req.template });
10731076
}
10741077
}
10751078
else {
10761079
res.render('reset',
10771080
{
1081+
languages: languages,
10781082
countlyFavicon: req.countly.favicon,
10791083
countlyTitle: req.countly.title,
10801084
countlyPage: req.countly.page,
@@ -1101,11 +1105,11 @@ app.post(countlyConfig.path + '/forgot', function(req, res, next) {
11011105
countlyDb.collection('password_reset').insert({"prid": prid, "user_id": member._id, "timestamp": timestamp}, {safe: true}, function() {
11021106
countlyMail.sendPasswordResetInfo(member, prid);
11031107
plugins.callMethod("passwordRequest", {req: req, res: res, next: next, data: req.body});
1104-
res.render('forgot', { countlyFavicon: req.countly.favicon, countlyTitle: req.countly.title, countlyPage: req.countly.page, "message": "forgot.result", "csrf": req.csrfToken(), path: countlyConfig.path || "", cdn: countlyConfig.cdn || "", themeFiles: req.themeFiles, inject_template: req.template});
1108+
res.render('forgot', { languages: languages, countlyFavicon: req.countly.favicon, countlyTitle: req.countly.title, countlyPage: req.countly.page, "message": "forgot.result", "csrf": req.csrfToken(), path: countlyConfig.path || "", cdn: countlyConfig.cdn || "", themeFiles: req.themeFiles, inject_template: req.template});
11051109
});
11061110
}
11071111
else {
1108-
res.render('forgot', { countlyFavicon: req.countly.favicon, countlyTitle: req.countly.title, countlyPage: req.countly.page, "message": "forgot.result", "csrf": req.csrfToken(), path: countlyConfig.path || "", cdn: countlyConfig.cdn || "", themeFiles: req.themeFiles, inject_template: req.template});
1112+
res.render('forgot', { languages: languages, countlyFavicon: req.countly.favicon, countlyTitle: req.countly.title, countlyPage: req.countly.page, "message": "forgot.result", "csrf": req.csrfToken(), path: countlyConfig.path || "", cdn: countlyConfig.cdn || "", themeFiles: req.themeFiles, inject_template: req.template});
11091113
}
11101114
});
11111115
}

frontend/express/locale.conf.js

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
var localeConf = [
2+
{ "code": "tr", "name": "Türkçe" },
3+
{ "code": "de", "name": "Deusch" },
4+
{ "code": "et", "name": "Eesti" },
5+
{ "code": "en", "name": "English" },
6+
{ "code": "es", "name": "Español" },
7+
{ "code": "el", "name": "Ελληνικά" },
8+
{ "code": "fr", "name": "Français" },
9+
{ "code": "it", "name": "Italiano" },
10+
{ "code": "lv", "name": "Latviski" },
11+
{ "code": "hu", "name": "Magyar" },
12+
{ "code": "nl", "name": "Nederlands" },
13+
{ "code": "pt", "name": "Português" },
14+
{ "code": "ru", "name": "Русский язык" },
15+
{ "code": "vi", "name": "Tiếng Việt" },
16+
{ "code": "zh", "name": "中文" },
17+
{ "code": "ja", "name": "日本語" },
18+
{ "code": "ko", "name": "한국어" }
19+
];
20+
try {
21+
var plugins = require('../../plugins/pluginManager.js');
22+
plugins.extendModule("locale.conf", localeConf);
23+
}
24+
catch (_) {
25+
//silent try
26+
}
27+
module.exports = localeConf;

frontend/express/views/dashboard.html

+3-17
Original file line numberDiff line numberDiff line change
@@ -208,23 +208,9 @@
208208
<div class="empty-state reveal-language-menu">EN</div>
209209
<div class="menu right" style="width: 150px;">
210210
<div id="language-menu" class="list">
211-
<a data-language-code="de" class="item">Deutsch</a>
212-
<a data-language-code="et" class="item">Eesti</a>
213-
<a data-language-code="en" class="item">English</a>
214-
<a data-language-code="es" class="item">Español</a>
215-
<a data-language-code="el" class="item">Ελληνικά</a>
216-
<a data-language-code="fr" class="item">Français</a>
217-
<a data-language-code="it" class="item">Italiano</a>
218-
<a data-language-code="lv" class="item">Latviski</a>
219-
<a data-language-code="hu" class="item">Magyar</a>
220-
<a data-language-code="nl" class="item">Nederlands</a>
221-
<a data-language-code="pt" class="item">Português</a>
222-
<a data-language-code="ru" class="item">Русский язык</a>
223-
<a data-language-code="vi" class="item">Tiếng Việt</a>
224-
<a data-language-code="tr" class="item">Türkçe</a>
225-
<a data-language-code="zh" class="item">中文</a>
226-
<a data-language-code="ja" class="item">日本語</a>
227-
<a data-language-code="ko" class="item">한국어</a>
211+
<% for(var i=0, l=languages.length; i<l; i++) {%>
212+
<a data-language-code="<%=languages[i].code%>" class="item"><%=languages[i].name%></a>
213+
<% } %>
228214
</div>
229215
</div>
230216
</div>

frontend/express/views/forgot.html

+7-18
Original file line numberDiff line numberDiff line change
@@ -37,26 +37,15 @@
3737
<div class="top-button" id="select-lang">
3838
<div id="active-lang">EN</div>
3939
<div id="langs">
40-
<div class="group">
41-
<a data-language-code="de" class="item">Deutsch</a>
42-
<a data-language-code="en" class="item">English</a>
43-
<a data-language-code="es" class="item">Español</a>
44-
<a data-language-code="fr" class="item">Français</a>
45-
<a data-language-code="it" class="item">Italiano</a>
46-
<a data-language-code="nl" class="item">Nederlands</a>
47-
<a data-language-code="lv" class="item">Latviski</a>
48-
<a data-language-code="hu" class="item">Magyar</a>
49-
<a data-language-code="el" class="item">Ελληνικά</a>
40+
<div class="group">
41+
<% for(var i=0, l=(languages.length/2); i<l; i++) {%>
42+
<a data-language-code="<%=languages[i].code%>" class="item"><%=languages[i].name%></a>
43+
<% } %>
5044
</div>
5145
<div class="group">
52-
<a data-language-code="et" class="item">Eesti</a>
53-
<a data-language-code="pt" class="item">Português</a>
54-
<a data-language-code="ru" class="item">Русский язык</a>
55-
<a data-language-code="tr" class="item">Türkçe</a>
56-
<a data-language-code="zh" class="item">中文</a>
57-
<a data-language-code="ja" class="item">日本語</a>
58-
<a data-language-code="ko" class="item">한국어</a>
59-
<a data-language-code="vi" class="item">Tiếng Việt</a>
46+
<% for(var i=(parseInt(languages.length/2) + 1), l=languages.length; i<l; i++) {%>
47+
<a data-language-code="<%=languages[i].code%>" class="item"><%=languages[i].name%></a>
48+
<% } %>
6049
</div>
6150
</div>
6251
</div>

frontend/express/views/login.html

+6-17
Original file line numberDiff line numberDiff line change
@@ -38,25 +38,14 @@
3838
<div id="active-lang">EN</div>
3939
<div id="langs">
4040
<div class="group">
41-
<a data-language-code="de" class="item">Deutsch</a>
42-
<a data-language-code="en" class="item">English</a>
43-
<a data-language-code="es" class="item">Español</a>
44-
<a data-language-code="fr" class="item">Français</a>
45-
<a data-language-code="it" class="item">Italiano</a>
46-
<a data-language-code="nl" class="item">Nederlands</a>
47-
<a data-language-code="lv" class="item">Latviski</a>
48-
<a data-language-code="hu" class="item">Magyar</a>
49-
<a data-language-code="el" class="item">Ελληνικά</a>
41+
<% for(var i=0, l=(languages.length/2); i<l; i++) {%>
42+
<a data-language-code="<%=languages[i].code%>" class="item"><%=languages[i].name%></a>
43+
<% } %>
5044
</div>
5145
<div class="group">
52-
<a data-language-code="et" class="item">Eesti</a>
53-
<a data-language-code="pt" class="item">Português</a>
54-
<a data-language-code="ru" class="item">Русский язык</a>
55-
<a data-language-code="tr" class="item">Türkçe</a>
56-
<a data-language-code="zh" class="item">中文</a>
57-
<a data-language-code="ja" class="item">日本語</a>
58-
<a data-language-code="ko" class="item">한국어</a>
59-
<a data-language-code="vi" class="item">Tiếng Việt</a>
46+
<% for(var i=(parseInt(languages.length/2) + 1), l=languages.length; i<l; i++) {%>
47+
<a data-language-code="<%=languages[i].code%>" class="item"><%=languages[i].name%></a>
48+
<% } %>
6049
</div>
6150
</div>
6251
</div>

frontend/express/views/reset.html

+7-18
Original file line numberDiff line numberDiff line change
@@ -37,26 +37,15 @@
3737
<div class="top-button" id="select-lang">
3838
<div id="active-lang">EN</div>
3939
<div id="langs">
40-
<div class="group">
41-
<a data-language-code="de" class="item">Deutsch</a>
42-
<a data-language-code="en" class="item">English</a>
43-
<a data-language-code="es" class="item">Español</a>
44-
<a data-language-code="fr" class="item">Français</a>
45-
<a data-language-code="it" class="item">Italiano</a>
46-
<a data-language-code="nl" class="item">Nederlands</a>
47-
<a data-language-code="lv" class="item">Latviski</a>
48-
<a data-language-code="hu" class="item">Magyar</a>
49-
<a data-language-code="el" class="item">Ελληνικά</a>
40+
<div class="group">
41+
<% for(var i=0, l=(languages.length/2); i<l; i++) {%>
42+
<a data-language-code="<%=languages[i].code%>" class="item"><%=languages[i].name%></a>
43+
<% } %>
5044
</div>
5145
<div class="group">
52-
<a data-language-code="et" class="item">Eesti</a>
53-
<a data-language-code="pt" class="item">Português</a>
54-
<a data-language-code="ru" class="item">Русский язык</a>
55-
<a data-language-code="tr" class="item">Türkçe</a>
56-
<a data-language-code="zh" class="item">中文</a>
57-
<a data-language-code="ja" class="item">日本語</a>
58-
<a data-language-code="ko" class="item">한국어</a>
59-
<a data-language-code="vi" class="item">Tiếng Việt</a>
46+
<% for(var i=(parseInt(languages.length/2) + 1), l=languages.length; i<l; i++) {%>
47+
<a data-language-code="<%=languages[i].code%>" class="item"><%=languages[i].name%></a>
48+
<% } %>
6049
</div>
6150
</div>
6251
</div>

frontend/express/views/setup.html

+9-20
Original file line numberDiff line numberDiff line change
@@ -36,26 +36,15 @@
3636
<div id="active-lang">EN</div>
3737
<div id="langs">
3838
<div class="group">
39-
<a data-language-code="de" class="item">Deutsch</a>
40-
<a data-language-code="en" class="item">English</a>
41-
<a data-language-code="es" class="item">Español</a>
42-
<a data-language-code="fr" class="item">Français</a>
43-
<a data-language-code="it" class="item">Italiano</a>
44-
<a data-language-code="nl" class="item">Nederlands</a>
45-
<a data-language-code="lv" class="item">Latviski</a>
46-
<a data-language-code="hu" class="item">Magyar</a>
47-
<a data-language-code="el" class="item">Ελληνικά</a>
48-
</div>
49-
<div class="group">
50-
<a data-language-code="et" class="item">Eesti</a>
51-
<a data-language-code="pt" class="item">Português</a>
52-
<a data-language-code="ru" class="item">Русский язык</a>
53-
<a data-language-code="tr" class="item">Türkçe</a>
54-
<a data-language-code="zh" class="item">中文</a>
55-
<a data-language-code="ja" class="item">日本語</a>
56-
<a data-language-code="ko" class="item">한국어</a>
57-
<a data-language-code="vi" class="item">Tiếng Việt</a>
58-
</div>
39+
<% for(var i=0, l=(languages.length/2); i<l; i++) {%>
40+
<a data-language-code="<%=languages[i].code%>" class="item"><%=languages[i].name%></a>
41+
<% } %>
42+
</div>
43+
<div class="group">
44+
<% for(var i=(parseInt(languages.length/2) + 1), l=languages.length; i<l; i++) {%>
45+
<a data-language-code="<%=languages[i].code%>" class="item"><%=languages[i].name%></a>
46+
<% } %>
47+
</div>
5948
</div>
6049
</div>
6150
</div>

0 commit comments

Comments
 (0)