feat: add ru locale (#280)
* feat: add ru locale * feat: add russian lang to readme
This commit is contained in:
committed by
GitHub
parent
6f0df2d555
commit
bdad92fe01
@@ -161,6 +161,7 @@ To run backend (from root folder of repository):
|
|||||||
- Vietnamese
|
- Vietnamese
|
||||||
- Chinese (Simplified)
|
- Chinese (Simplified)
|
||||||
- Chinese (Traditional)
|
- Chinese (Traditional)
|
||||||
|
- Russian
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import fa from './fa'
|
|||||||
import vi from './vi'
|
import vi from './vi'
|
||||||
import zhcn from './zhcn'
|
import zhcn from './zhcn'
|
||||||
import zhtw from './zhtw'
|
import zhtw from './zhtw'
|
||||||
|
import ru from './ru'
|
||||||
|
|
||||||
export const i18n = createI18n({
|
export const i18n = createI18n({
|
||||||
legacy: false,
|
legacy: false,
|
||||||
@@ -14,7 +15,8 @@ export const i18n = createI18n({
|
|||||||
fa: fa,
|
fa: fa,
|
||||||
vi: vi,
|
vi: vi,
|
||||||
zhHans: zhcn,
|
zhHans: zhcn,
|
||||||
zhHant: zhtw
|
zhHant: zhtw,
|
||||||
|
ru: ru
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -24,4 +26,5 @@ export const languages = [
|
|||||||
{ title: 'Tiếng Việt', value: 'vi' },
|
{ title: 'Tiếng Việt', value: 'vi' },
|
||||||
{ title: '简体中文', value: 'zhHans' },
|
{ title: '简体中文', value: 'zhHans' },
|
||||||
{ title: '繁體中文', value: 'zhHant' },
|
{ title: '繁體中文', value: 'zhHant' },
|
||||||
|
{ title: 'Русский', value: 'ru' },
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -0,0 +1,411 @@
|
|||||||
|
export default {
|
||||||
|
message: "Добро пожаловать",
|
||||||
|
success: "успех",
|
||||||
|
failed: "ошибка",
|
||||||
|
enable: "Включить",
|
||||||
|
disable: "Отключить",
|
||||||
|
none: "Никакие",
|
||||||
|
all: "Все",
|
||||||
|
filter: "Фильтр",
|
||||||
|
loading: "Загрузка...",
|
||||||
|
confirm: "Вы уверены?",
|
||||||
|
yes: "да",
|
||||||
|
no: "нет",
|
||||||
|
unlimited: "бесконечный",
|
||||||
|
remained: "Осталось",
|
||||||
|
type: "Тип",
|
||||||
|
protocol: "Протокол",
|
||||||
|
submit: "Отправить",
|
||||||
|
reset: "Сбросить",
|
||||||
|
now: "Сейчас",
|
||||||
|
network: "Сеть",
|
||||||
|
copyToClipboard: "Копировать в буфер обмена",
|
||||||
|
noData: "Нет данных!",
|
||||||
|
invalidLogin: "Неверный логин!",
|
||||||
|
online: "В сети",
|
||||||
|
version: "Версия",
|
||||||
|
email: "Электронная почта",
|
||||||
|
commaSeparated: "(разделено запятыми)",
|
||||||
|
count: "Количество",
|
||||||
|
template: "Шаблон",
|
||||||
|
error: {
|
||||||
|
dplData: "Дублирующие данные",
|
||||||
|
core: "Ошибка Sing-Box",
|
||||||
|
},
|
||||||
|
pages: {
|
||||||
|
login: "Вход",
|
||||||
|
home: "Главная",
|
||||||
|
inbounds: "Входящие",
|
||||||
|
outbounds: "Исходящие",
|
||||||
|
clients: "Клиенты",
|
||||||
|
rules: "Правила",
|
||||||
|
tls: "Настройки TLS",
|
||||||
|
basics: "Основы",
|
||||||
|
admins: "Администраторы",
|
||||||
|
settings: "Настройки",
|
||||||
|
},
|
||||||
|
main: {
|
||||||
|
tiles: "Плитки",
|
||||||
|
gauges: "Датчики",
|
||||||
|
charts: "Графики",
|
||||||
|
infos: "Информация",
|
||||||
|
gauge: {
|
||||||
|
cpu: "Загрузка ЦП",
|
||||||
|
mem: "Загрузка ОЗУ",
|
||||||
|
},
|
||||||
|
chart: {
|
||||||
|
cpu: "Мониторинг ЦП",
|
||||||
|
mem: "Мониторинг ОЗУ",
|
||||||
|
net: "Сетевой трафик",
|
||||||
|
pnet: "Сетевые пакеты",
|
||||||
|
},
|
||||||
|
info: {
|
||||||
|
sys: "Информация о системе",
|
||||||
|
sbd: "Информация о Sing-Box",
|
||||||
|
host: "Хост",
|
||||||
|
cpu: "ЦП",
|
||||||
|
core: "Ядро",
|
||||||
|
uptime: "Время работы",
|
||||||
|
threads: "Потоки",
|
||||||
|
memory: "Память",
|
||||||
|
running: "Работает"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
objects: {
|
||||||
|
inbound: "Входящий",
|
||||||
|
client: "Клиент",
|
||||||
|
outbound: "Исходящий",
|
||||||
|
rule: "Правило",
|
||||||
|
user: "Пользователь",
|
||||||
|
tag: "Тег",
|
||||||
|
listen: "Прослушивание",
|
||||||
|
dial: "Звонок",
|
||||||
|
tls: "TLS",
|
||||||
|
multiplex: "Мультиплекс",
|
||||||
|
transport: "Транспорт",
|
||||||
|
method: "Метод",
|
||||||
|
headers: "Заголовки",
|
||||||
|
key: "Ключ",
|
||||||
|
value: "Значение",
|
||||||
|
},
|
||||||
|
actions: {
|
||||||
|
action: "Действие",
|
||||||
|
add: "Добавить",
|
||||||
|
new: "Новый",
|
||||||
|
edit: "Редактировать",
|
||||||
|
del: "Удалить",
|
||||||
|
clone: "Клонировать",
|
||||||
|
save: "Сохранить",
|
||||||
|
update: "Обновить",
|
||||||
|
submit: "Отправить",
|
||||||
|
set: "Установить",
|
||||||
|
generate: "Генерировать",
|
||||||
|
disable: "Отключить",
|
||||||
|
close: "Закрыть",
|
||||||
|
restartApp: "Перезапустить приложение",
|
||||||
|
},
|
||||||
|
login: {
|
||||||
|
title: "Вход",
|
||||||
|
username: "Имя пользователя",
|
||||||
|
unRules: "Имя пользователя не может быть пустым",
|
||||||
|
password: "Пароль",
|
||||||
|
pwRules: "Пароль не может быть пустым",
|
||||||
|
},
|
||||||
|
menu: {
|
||||||
|
logout: "Выйти",
|
||||||
|
},
|
||||||
|
admin: {
|
||||||
|
changeCred: "Изменить учетные данные",
|
||||||
|
oldPass: "Текущий пароль",
|
||||||
|
newUname: "Новое имя пользователя",
|
||||||
|
newPass: "Новый пароль",
|
||||||
|
lastLogin: "Последний вход",
|
||||||
|
date: "Дата",
|
||||||
|
time: "Время",
|
||||||
|
changes: "Изменения",
|
||||||
|
actor: "Исполнитель",
|
||||||
|
key: "Ключ",
|
||||||
|
action: "Действие",
|
||||||
|
},
|
||||||
|
setting: {
|
||||||
|
interface: "Интерфейс",
|
||||||
|
sub: "Подписка",
|
||||||
|
addr: "Адрес",
|
||||||
|
port: "Порт",
|
||||||
|
webPath: "Базовый URI",
|
||||||
|
domain: "Домен",
|
||||||
|
sslKey: "Путь к SSL ключу",
|
||||||
|
sslCert: "Путь к SSL сертификату",
|
||||||
|
webUri: "URI панели",
|
||||||
|
sessionAge: "Максимальная длительность сессии",
|
||||||
|
trafficAge: "Максимальная длительность трафика",
|
||||||
|
timeLoc: "Часовой пояс",
|
||||||
|
subEncode: "Включить кодирование",
|
||||||
|
subInfo: "Включить информацию о клиенте",
|
||||||
|
path: "Путь по умолчанию",
|
||||||
|
update: "Время автоматического обновления",
|
||||||
|
subUri: "URI подписки",
|
||||||
|
jsonSub: "JSON подписка",
|
||||||
|
toDirect: "Маршрутизация на Direct",
|
||||||
|
toBlock: "Маршрутизация на Block",
|
||||||
|
timestamp: "Метка времени",
|
||||||
|
globalDns: "Глобальный DNS",
|
||||||
|
directDns: "Прямой DNS",
|
||||||
|
toDirectDns: "Маршрутизация на Direct DNS",
|
||||||
|
jsonSubOptions: "Другие параметры",
|
||||||
|
},
|
||||||
|
client: {
|
||||||
|
name: "Имя",
|
||||||
|
desc: "Описание",
|
||||||
|
group: "Группа",
|
||||||
|
inboundTags: "Теги входящих",
|
||||||
|
basics: "Основы",
|
||||||
|
config: "Конфигурация",
|
||||||
|
links: "Ссылки",
|
||||||
|
external: "Внешняя ссылка",
|
||||||
|
sub: "Внешняя подписка",
|
||||||
|
},
|
||||||
|
types: {
|
||||||
|
un: "Имя пользователя",
|
||||||
|
pw: "Пароль",
|
||||||
|
direct: {
|
||||||
|
overrideAddr: "Переопределить адрес",
|
||||||
|
overridePort: "Переопределить порт",
|
||||||
|
},
|
||||||
|
hy: {
|
||||||
|
obfs: "Обфусцированный пароль",
|
||||||
|
auth: "Пароль аутентификации",
|
||||||
|
hyOptions: "Параметры Hysteria",
|
||||||
|
hy2Options: "Параметры Hysteria2",
|
||||||
|
ignoreBw: "Игнорировать пропускную способность клиента",
|
||||||
|
},
|
||||||
|
shdwTls: {
|
||||||
|
hs: "Сервер рукопожатий",
|
||||||
|
addHS: "Добавить сервер рукопожатий",
|
||||||
|
},
|
||||||
|
ssh: {
|
||||||
|
passphrase: "Парольная фраза",
|
||||||
|
hostKey: "Ключи хоста",
|
||||||
|
algorithm: "Алгоритмы ключей",
|
||||||
|
clientVer: "Версия клиента",
|
||||||
|
options: "Параметры SSH",
|
||||||
|
},
|
||||||
|
tor: {
|
||||||
|
execPath: "Путь к исполняемому файлу",
|
||||||
|
dataDir: "Каталог данных",
|
||||||
|
extArgs: "Дополнительные аргументы",
|
||||||
|
},
|
||||||
|
tuic: {
|
||||||
|
congControl: "Контроль перегрузок",
|
||||||
|
authTimeout: "Таймаут аутентификации",
|
||||||
|
hb: "Сердцебиение",
|
||||||
|
},
|
||||||
|
vless: {
|
||||||
|
flow: "Поток",
|
||||||
|
udpEnc: "Кодирование UDP пакетов",
|
||||||
|
},
|
||||||
|
vmess: {
|
||||||
|
security: "Безопасность",
|
||||||
|
globalPadding: "Глобальная подкладка",
|
||||||
|
authLen: "Длина шифрования",
|
||||||
|
},
|
||||||
|
wg: {
|
||||||
|
privKey: "Приватный ключ",
|
||||||
|
pubKey: "Публичный ключ пира",
|
||||||
|
psk: "Предварительно разделенный ключ",
|
||||||
|
localIp: "Локальные IP",
|
||||||
|
worker: "Работники",
|
||||||
|
ifName: "Имя интерфейса",
|
||||||
|
sysIf: "Системный интерфейс",
|
||||||
|
gso: "Отключение сегментации",
|
||||||
|
options: "Параметры Wireguard",
|
||||||
|
multiPeer: "Множественный пир",
|
||||||
|
allowedIp: "Разрешенные IP",
|
||||||
|
peer: "Пир",
|
||||||
|
peers: "Пиры",
|
||||||
|
},
|
||||||
|
lb: {
|
||||||
|
defaultOut: "Исходящий по умолчанию",
|
||||||
|
interruptConn: "Прервать существующие соединения",
|
||||||
|
testUrl: "Тестовый URL",
|
||||||
|
interval: "Интервал",
|
||||||
|
tolerance: "Толерантность",
|
||||||
|
urlTestOptions: "Параметры теста URL"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
in: {
|
||||||
|
addr: "Адрес",
|
||||||
|
port: "Порт",
|
||||||
|
clients: "Включить клиентов",
|
||||||
|
ssMethod: "Метод",
|
||||||
|
sSide: "Сторона сервера",
|
||||||
|
cSide: "Сторона клиента",
|
||||||
|
multiDomain: "Мультидомен",
|
||||||
|
remark: "Примечание",
|
||||||
|
mdOption: "Параметры мультидомена",
|
||||||
|
},
|
||||||
|
listen: {
|
||||||
|
sniffing: "Обнаружение",
|
||||||
|
sniffingTimeout: "Таймаут обнаружения",
|
||||||
|
sniffingOverride: "Переопределение назначения",
|
||||||
|
options: "Параметры прослушивания",
|
||||||
|
tcpOptions: "Параметры TCP",
|
||||||
|
udpOptions: "Параметры UDP",
|
||||||
|
detour: "Обход",
|
||||||
|
detourText: "Переадресация на входящий",
|
||||||
|
domainStrategy: "Стратегия домена",
|
||||||
|
},
|
||||||
|
dial: {
|
||||||
|
bindIf: "Привязка к сетевому интерфейсу",
|
||||||
|
bindIp4: "Привязка к IPv4",
|
||||||
|
bindIp6: "Привязка к IPv6",
|
||||||
|
reuseAddr: "Повторное использование адреса слушателя",
|
||||||
|
connTimeout: "Таймаут подключения",
|
||||||
|
fbTimeout: "Таймаут возврата",
|
||||||
|
options: "Параметры вызова",
|
||||||
|
detourText: "Переадресация на исходящий",
|
||||||
|
},
|
||||||
|
transport: {
|
||||||
|
enable: "Включить транспорт",
|
||||||
|
host: "Хост",
|
||||||
|
hosts: "Хосты",
|
||||||
|
path: "Путь",
|
||||||
|
httpMethod: "Метод запроса",
|
||||||
|
idleTimeout: "Таймаут бездействия",
|
||||||
|
pingTimeout: "Таймаут пинга",
|
||||||
|
grpcServiceName: "Имя службы",
|
||||||
|
grpcPws: "Разрешить без потока",
|
||||||
|
},
|
||||||
|
mux: {
|
||||||
|
enable: "Включить мультиплекс",
|
||||||
|
maxConn: "Максимальное количество соединений",
|
||||||
|
minStr: "Минимальное количество потоков",
|
||||||
|
maxStr: "Максимальное количество потоков",
|
||||||
|
padding: "Только подкладка",
|
||||||
|
enableBrutal: "Включить Brutal",
|
||||||
|
},
|
||||||
|
out: {
|
||||||
|
addr: "Адрес сервера",
|
||||||
|
port: "Порт сервера",
|
||||||
|
},
|
||||||
|
rule: {
|
||||||
|
add: "Добавить правило",
|
||||||
|
simple: "Простое",
|
||||||
|
logical: "Логическое",
|
||||||
|
mode: "Режим",
|
||||||
|
invert: "Инвертировать",
|
||||||
|
ipVer: "Версия IP",
|
||||||
|
domain: "Домены",
|
||||||
|
domainSufix: "Суффиксы доменов",
|
||||||
|
domainKw: "Ключевые слова домена",
|
||||||
|
domainRgx: "Регулярные выражения домена",
|
||||||
|
ip: "CIDR IP",
|
||||||
|
privateIp: "Недействительные диапазоны IP",
|
||||||
|
port: "Порты",
|
||||||
|
portRange: "Диапазоны портов",
|
||||||
|
srcCidr: "CIDR исходного IP",
|
||||||
|
srcPrivateIp: "Недействительные исходные IP",
|
||||||
|
srcPort: "Исходные порты",
|
||||||
|
srcPortRange: "Диапазоны исходных портов",
|
||||||
|
ruleset: "Наборы правил",
|
||||||
|
rulesetMatchSrc: "Набор правил для соответствия источника IPcidr",
|
||||||
|
options: "Параметры правила",
|
||||||
|
domainRules: "Домен/IP",
|
||||||
|
srcIpRules: "Источник IP",
|
||||||
|
srcPortRules: "Источник порта",
|
||||||
|
},
|
||||||
|
ruleset: {
|
||||||
|
add: "Добавить набор правил",
|
||||||
|
format: "Формат данных",
|
||||||
|
interval: "Интервалы обновления",
|
||||||
|
remote: "Удаленный",
|
||||||
|
local: "Локальный",
|
||||||
|
},
|
||||||
|
basic: {
|
||||||
|
log: {
|
||||||
|
title: "Журналы",
|
||||||
|
level: "Уровень",
|
||||||
|
output: "Вывод",
|
||||||
|
timestamp: "Включить метку времени",
|
||||||
|
},
|
||||||
|
dns: {
|
||||||
|
final: "Итоговый",
|
||||||
|
server: "Сервер",
|
||||||
|
firstServer: "Первый сервер",
|
||||||
|
addrResolver: "Разрешение адреса",
|
||||||
|
},
|
||||||
|
routing: {
|
||||||
|
title: "Маршрутизация",
|
||||||
|
defaultOut: "Исходящий по умолчанию",
|
||||||
|
defaultIf: "Сетевой интерфейс по умолчанию",
|
||||||
|
defaultRm: "Маршрут по умолчанию",
|
||||||
|
autoBind: "Автопривязка сетевого интерфейса",
|
||||||
|
},
|
||||||
|
exp: {
|
||||||
|
storeFakeIp: "Хранить поддельный IP",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
tls: {
|
||||||
|
enable: "Включить TLS",
|
||||||
|
usePath: "Использовать путь",
|
||||||
|
useText: "Использовать текст",
|
||||||
|
certPath: "Путь к файлу сертификата",
|
||||||
|
keyPath: "Путь к файлу ключа",
|
||||||
|
cert: "Сертификат",
|
||||||
|
key: "Ключ",
|
||||||
|
options: "Параметры TLS",
|
||||||
|
minVer: "Минимальная версия",
|
||||||
|
maxVer: "Максимальная версия",
|
||||||
|
cs: "Наборы шифров",
|
||||||
|
privKey: "Приватный ключ",
|
||||||
|
pubKey: "Публичный ключ",
|
||||||
|
disableSni: "Отключить SNI",
|
||||||
|
insecure: "Разрешить небезопасное",
|
||||||
|
acme: {
|
||||||
|
options: "Параметры ACME",
|
||||||
|
dataDir: "Каталог данных",
|
||||||
|
defaultDomain: "Домен по умолчанию",
|
||||||
|
disableChallenges: "Отключить вызовы",
|
||||||
|
httpChallenge: "Отключить HTTP вызов",
|
||||||
|
tlsChallenge: "Отключить TLS вызов",
|
||||||
|
altPorts: "Альтернативные порты",
|
||||||
|
altHport: "Альтернативный HTTP порт",
|
||||||
|
altTport: "Альтернативный TLS порт",
|
||||||
|
caProvider: "Поставщик CA",
|
||||||
|
customCa: "Пользовательский поставщик CA",
|
||||||
|
extAcc: "Внешний аккаунт",
|
||||||
|
dns01: "DNS01 вызов",
|
||||||
|
dns01Provider: "Поставщик DNS01 вызова",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
stats: {
|
||||||
|
upload: "Загрузка",
|
||||||
|
download: "Скачивание",
|
||||||
|
volume: "Объем",
|
||||||
|
usage: "Использование",
|
||||||
|
enable: "Включить статистику",
|
||||||
|
graphTitle: "График трафика",
|
||||||
|
B: "Б",
|
||||||
|
KB: "КБ",
|
||||||
|
MB: "МБ",
|
||||||
|
GB: "ГБ",
|
||||||
|
TB: "ТБ",
|
||||||
|
PB: "ПБ",
|
||||||
|
p: "п",
|
||||||
|
Kp: "Кп",
|
||||||
|
Mp: "Мп",
|
||||||
|
Gb: "Гб",
|
||||||
|
bps: "б/с",
|
||||||
|
Kbps: "Кб/с",
|
||||||
|
Mbps: "Мб/с",
|
||||||
|
},
|
||||||
|
date: {
|
||||||
|
expiry: "Срок действия",
|
||||||
|
expired: "Истек",
|
||||||
|
d: "д",
|
||||||
|
h: "ч",
|
||||||
|
m: "м",
|
||||||
|
s: "с",
|
||||||
|
ms: "мс",
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@ import '@mdi/font/css/materialdesignicons.css'
|
|||||||
import 'vuetify/styles'
|
import 'vuetify/styles'
|
||||||
|
|
||||||
import colors from 'vuetify/util/colors'
|
import colors from 'vuetify/util/colors'
|
||||||
import { fa, en, vi, zhHans, zhHant } from 'vuetify/locale'
|
import { fa, en, vi, zhHans, zhHant, ru } from 'vuetify/locale'
|
||||||
|
|
||||||
// Composables
|
// Composables
|
||||||
import { createVuetify } from 'vuetify'
|
import { createVuetify } from 'vuetify'
|
||||||
@@ -53,6 +53,6 @@ export default createVuetify({
|
|||||||
locale: {
|
locale: {
|
||||||
locale: localStorage.getItem("locale") ?? 'en',
|
locale: localStorage.getItem("locale") ?? 'en',
|
||||||
fallback: 'en',
|
fallback: 'en',
|
||||||
messages: { en, fa, vi, zhHans, zhHant },
|
messages: { en, fa, vi, zhHans, zhHant, ru },
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user