Skip to content

Commit a7e53e0

Browse files
committed
Fix #46
1 parent bb98aa8 commit a7e53e0

File tree

3 files changed

+118
-61
lines changed

3 files changed

+118
-61
lines changed

html/assets/js/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ function renderGamesPage() {
243243
gamesHtml += '<div href="#" class="list-group-item list-group-item-action flex-column align-items-start">';
244244
gamesHtml += ' <div class="d-flex w-100 justify-content-between">';
245245
gamesHtml += ' <h5 class="mb-1">#' + game_info.id + '</h5>';
246-
gamesHtml += ' <button type="button" class="btn btn-info">Game result</button>';
246+
gamesHtml += ' <button type="button" class="btn btn-info">' + tr('Результаты игры') + '</button>';
247247
gamesHtml += ' <small>' + getHumanTimeHasPassed(new Date(game_info.end_time)) + '</small>';
248248
gamesHtml += ' </div>';
249249
gamesHtml += ' <p class="mb-1">' + escapeHtml(game_info.description) + '</p>';
@@ -784,6 +784,8 @@ function showMyTeams(userId) {
784784

785785
$(document).ready(function() {
786786
console.log("Ready");
787+
translateHtml();
788+
787789
renderPage(window.location.pathname);
788790

789791
window.ctf01d_tp_api.auth_session().fail(function(res) {

html/assets/js/translates.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
window._tr = {
2+
"Игры": {"ru": "Игры", "en": "Games"},
3+
"Сервисы": {"ru": "Сервисы", "en": "Services"},
4+
"Команды": {"ru": "Команды", "en": "Teams"},
5+
"Войти": {"ru": "Войти", "en": "Sgin-in"},
6+
"Выйти": {"ru": "Выйти", "en": "Sign-out"},
7+
"Пользователи": {"ru": "Пользователи", "en": "Users"},
8+
"Мои команды": {"ru": "Мои команды", "en": "My Team(s)"},
9+
"Мои сервисы": {"ru": "Мои сервисы", "en": "My Service(s)"},
10+
"Что-то пошло не так...": {"ru": "Что-то пошло не так...", "en": "Something went wrong"},
11+
"Закрыть": {"ru": "Закрыть", "en": "Close"},
12+
"Результаты игры": {"ru": "Результаты игры", "en": "Game result"},
13+
"Добро пожаловать на тренировочную площадку ctf01d!": {
14+
"ru": "Добро пожаловать на тренировочную площадку ctf01d!",
15+
"en": "Welcome to ctf01d training platform!",
16+
"": ""
17+
},
18+
"Этот сервис может подготовить учебную игру 'атака-защита' на основе системы жюри ctf01d.": {
19+
"ru": "Этот сервис может подготовить учебную игру 'атака-защита' на основе системы жюри ctf01d.",
20+
"en": "This service can prepare training attack-defense game, based on ctf01d jury system",
21+
"ch": "该服务可以基于ctf01d陪审团系统准备训练攻防游戏",
22+
"by": "Гэты сэрвіс можа падрыхтаваць трэніровачную гульню ў атаку-абарону, заснаваную на сістэме журы ctf01d",
23+
"": ""
24+
},
25+
"Новая игра": {"ru": "Новая игра", "en": "New game"},
26+
"Такая страница не нашлась!": {
27+
"ru": "Такая страница не нашлась!",
28+
"en": "Page did not found!",
29+
"ch": "页面未找到!",
30+
"by": "Старонка не знойдзена!",
31+
"": ""
32+
},
33+
"Новый сервис": {"ru": "Новый сервис", "en": "New sevice"},
34+
"": {"ru": "", "en": ""}
35+
};
36+
37+
function tr(cap) {
38+
var ret = window._tr[cap];
39+
if (ret === undefined) {
40+
console.warn("Not found translate for '" + cap + "'");
41+
return cap;
42+
}
43+
ret = ret['ru']; // TODO choose language
44+
return ret ? ret : cap;
45+
}
46+
47+
function translateHtml() {
48+
var elems = document.querySelectorAll('[translate]');
49+
for (var i = 0; i < elems.length; i++) {
50+
var el = elems[i];
51+
var cap = el.getAttribute('translate');
52+
elems[i].innerHTML = tr(cap);
53+
}
54+
}

0 commit comments

Comments
 (0)