Files
vps_monitoring/server/static/js/i18n.js
Андрей Бобырев cc01667879 feat: add Synology NAS, Home Assistant monitoring, multi-channel notifications
New tabs:
- Synology NAS: CPU, RAM, temp, volumes, VMs, Docker containers
- Home Assistant: sensors, automations, persons, climate, battery, doors

New features:
- Personalized PC agent download with custom name
- Notification settings: per-category Telegram/Email/WhatsApp toggles
- Email via SMTP, WhatsApp via CallMeBot API
- Test notification buttons for each channel
- Unified notifier replaces direct Telegram calls in alerter

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-20 13:59:57 +03:00

174 lines
7.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const translations = {
ru: {
title: "VPS Monitoring",
login: "Вход",
username: "Логин",
password: "Пароль",
loginBtn: "Войти",
invalidCreds: "Неверный логин или пароль",
connError: "Ошибка подключения",
total: "Всего",
online: "Online",
offline: "Offline",
addServer: "+ Добавить сервер",
refresh: "Обновить",
settings: "Настройки",
logout: "Выход",
serverName: "Название",
host: "IP / Host",
sshPort: "Порт SSH",
sshLogin: "Логин",
sshPassword: "Пароль",
description: "Описание",
add: "Добавить",
save: "Сохранить",
cancel: "Отмена",
auth: "Авторизация",
newPassword: "Новый пароль",
leaveEmpty: "Оставьте пустым, чтобы не менять",
telegram: "Telegram",
botToken: "Bot Token",
chatId: "Chat ID",
monitoring: "Мониторинг",
pollInterval: "Интервал опроса (сек)",
cpuThreshold: "Порог CPU (%)",
ramThreshold: "Порог RAM (%)",
diskThreshold: "Порог Disk (%)",
settingsSaved: "Настройки сохранены",
rebootConfirm: "Перезагрузить сервер?",
rebootSent: "Команда перезагрузки отправлена",
deleteConfirm: "Удалить сервер из мониторинга?",
noServers: "Нет серверов. Нажмите \"+ Добавить сервер\"",
noData: "Нет данных",
sshTerminal: "SSH Терминал",
instructions: "Инструкции",
quickStart: "Быстрый старт",
cheatSheet: "Шпаргалка",
uptime: "Время работы",
load: "Нагрузка",
network: "Сеть",
networkIn: "Входящий",
networkOut: "Исходящий",
status: "Статус",
theme: "Тема",
language: "Язык",
dark: "Тёмная",
light: "Светлая",
instructions_title: "Инструкции и шпаргалки",
instr_install: "Установка",
instr_install_text: "curl -sSL https://raw.githubusercontent.com/andrey271192/vps_monitoring/main/install.sh | bash",
instr_add_server: "Добавление сервера",
instr_add_server_text: "Нажмите '+ Добавить сервер', введите IP, логин и пароль SSH",
instr_ssh: "SSH подключение",
instr_ssh_text: "Нажмите кнопку 'SSH' на карточке сервера для терминала в браузере",
instr_telegram: "Telegram бот",
instr_telegram_text: "Отправьте /start боту. Получайте алерты при проблемах",
instr_reboot: "Перезагрузка",
instr_reboot_text: "Через панель: кнопка 'Reboot'. Через бот: Управление → Сервер → Перезагрузить",
instr_commands: "Команды управления сервисом",
instr_cmd_status: "systemctl status vps-monitoring",
instr_cmd_restart: "systemctl restart vps-monitoring",
instr_cmd_logs: "journalctl -u vps-monitoring -f",
instr_cmd_update: "cd /opt/vps-monitoring && git pull && systemctl restart vps-monitoring",
instr_api: "API endpoints",
instr_thresholds: "Пороги алертов",
instr_thresholds_text: "Настройки → Мониторинг. По умолчанию: CPU 90%, RAM 90%, Disk 90%",
tabServers: "Серверы",
tabPC: "ПК",
},
en: {
title: "VPS Monitoring",
login: "Login",
username: "Username",
password: "Password",
loginBtn: "Sign In",
invalidCreds: "Invalid username or password",
connError: "Connection error",
total: "Total",
online: "Online",
offline: "Offline",
addServer: "+ Add Server",
refresh: "Refresh",
settings: "Settings",
logout: "Logout",
serverName: "Name",
host: "IP / Host",
sshPort: "SSH Port",
sshLogin: "Login",
sshPassword: "Password",
description: "Description",
add: "Add",
save: "Save",
cancel: "Cancel",
auth: "Authentication",
newPassword: "New password",
leaveEmpty: "Leave empty to keep current",
telegram: "Telegram",
botToken: "Bot Token",
chatId: "Chat ID",
monitoring: "Monitoring",
pollInterval: "Poll interval (sec)",
cpuThreshold: "CPU threshold (%)",
ramThreshold: "RAM threshold (%)",
diskThreshold: "Disk threshold (%)",
settingsSaved: "Settings saved",
rebootConfirm: "Reboot server?",
rebootSent: "Reboot command sent",
deleteConfirm: "Remove server from monitoring?",
noServers: "No servers. Click \"+ Add Server\"",
noData: "No data",
sshTerminal: "SSH Terminal",
instructions: "Instructions",
quickStart: "Quick Start",
cheatSheet: "Cheat Sheet",
uptime: "Uptime",
load: "Load",
network: "Network",
networkIn: "In",
networkOut: "Out",
status: "Status",
theme: "Theme",
language: "Language",
dark: "Dark",
light: "Light",
instructions_title: "Instructions & Cheat Sheet",
instr_install: "Installation",
instr_install_text: "curl -sSL https://raw.githubusercontent.com/andrey271192/vps_monitoring/main/install.sh | bash",
instr_add_server: "Adding a server",
instr_add_server_text: "Click '+ Add Server', enter IP, SSH login and password",
instr_ssh: "SSH connection",
instr_ssh_text: "Click 'SSH' button on server card for browser terminal",
instr_telegram: "Telegram bot",
instr_telegram_text: "Send /start to the bot. Get alerts when issues arise",
instr_reboot: "Reboot",
instr_reboot_text: "Panel: 'Reboot' button. Bot: Manage → Server → Reboot",
instr_commands: "Service management commands",
instr_cmd_status: "systemctl status vps-monitoring",
instr_cmd_restart: "systemctl restart vps-monitoring",
instr_cmd_logs: "journalctl -u vps-monitoring -f",
instr_cmd_update: "cd /opt/vps-monitoring && git pull && systemctl restart vps-monitoring",
instr_api: "API endpoints",
instr_thresholds: "Alert thresholds",
instr_thresholds_text: "Settings → Monitoring. Default: CPU 90%, RAM 90%, Disk 90%",
tabServers: "Servers",
tabPC: "PC",
}
};
let currentLang = localStorage.getItem('vps_lang') || 'ru';
function t(key) {
return translations[currentLang]?.[key] || translations['en']?.[key] || key;
}
function setLang(lang) {
currentLang = lang;
localStorage.setItem('vps_lang', lang);
document.documentElement.lang = lang;
if (typeof renderPage === 'function') renderPage();
}
function toggleLang() {
setLang(currentLang === 'ru' ? 'en' : 'ru');
}