This commit is contained in:
Shishkevich D. 2025-03-15 08:17:16 +01:00 committed by GitHub
commit b2fc653f74
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 323 additions and 232 deletions

View file

@ -24,13 +24,35 @@
user-select: none; user-select: none;
cursor: pointer; cursor: pointer;
} }
.dark .ant-backup-list-item svg { .dark .ant-backup-list-item svg,
color: var(--dark-color-text-primary); .dark .ant-card-actions>li>*,
.dark .ant-badge-status-text,
.dark .ant-statistic-title,
.dark .ant-statistic-content,
.dark .ant-card-extra {
color: var(--dark-color-text-primary) !important;
}
.dark .ant-card-actions>li>*:hover {
color: var(--color-primary-100) !important;
} }
.dark .ant-backup-list, .dark .ant-backup-list,
.dark .ant-xray-version-list { .dark .ant-xray-version-list,
.dark .ant-card-actions,
.dark .ant-card-actions>li:not(:last-child) {
border-color: var(--dark-color-stroke); border-color: var(--dark-color-stroke);
} }
.ant-card-actions {
background: transparent !important;
}
.ant-statistic-content-prefix {
font-size: 20px;
}
.ant-statistic-content-value {
font-size: 18px;
}
.ip-hidden {
filter: blur(10px);
}
</style> </style>
<body> <body>
@ -47,7 +69,7 @@
show-icon closable> show-icon closable>
</a-alert> </a-alert>
</transition> </transition>
<transition name="list" appear> <transition v-if="status.isLoaded" name="list" appear>
<a-row> <a-row>
<a-card hoverable> <a-card hoverable>
<a-row> <a-row>
@ -100,50 +122,79 @@
</a-row> </a-row>
</transition> </transition>
<transition name="list" appear> <transition name="list" appear>
<template v-if="!status.isLoaded">
<a-card hoverable style="text-align: center; padding: 30px 0; margin-top: 10px;">
<a-spin size="large"></a-spin>
</a-card>
</template>
<template v-else>
<a-row> <a-row>
<a-col :sm="24" :lg="12"> <a-col :sm="24" :lg="12">
<a-card hoverable> <a-card title='{{ i18n "pages.index.xrayStatus" }}' hoverable>
<b>3X-UI:</b> <template #extra>
<a rel="noopener" href="https://github.com/MHSanaei/3x-ui/releases" target="_blank"><a-tag color="green">v{{ .cur_ver }}</a-tag></a> <template v-if="status.xray.state != State.Error">
<a rel="noopener" href="https://t.me/XrayUI" target="_blank"><a-tag color="green">@XrayUI</a-tag></a> <a-badge :text="status.xray.state" :color="status.xray.color" style="text-transform: capitalize;"/>
</a-card> </template>
</a-col> <template v-else>
<a-col :sm="24" :lg="12"> <a-popover :overlay-class-name="themeSwitcher.currentTheme">
<a-card hoverable>
<b>{{ i18n "pages.index.operationHours" }}:</b>
<a-tag :color="status.xray.color">Xray: [[ TimeFormatter.formatSecond(status.appStats.uptime) ]]</a-tag>
<a-tag color="green">OS: [[ TimeFormatter.formatSecond(status.uptime) ]]</a-tag>
</a-card>
</a-col>
<a-col :sm="24" :lg="12">
<a-card hoverable>
<b>{{ i18n "pages.index.xrayStatus" }}:</b>
<a-tag style="text-transform: capitalize;" :color="status.xray.color">[[ status.xray.state ]] </a-tag>
<a-popover v-if="status.xray.state === State.Error" :overlay-class-name="themeSwitcher.currentTheme">
<span slot="title" style="font-size: 12pt">An error occurred while running Xray <span slot="title" style="font-size: 12pt">An error occurred while running Xray
<a-tag color="purple" style="cursor: pointer; float: right;" @click="openLogs()">{{ i18n "pages.index.logs" }}</a-tag> <a-tag color="purple" style="cursor: pointer; float: right;" @click="openLogs()">{{ i18n "pages.index.logs" }}</a-tag>
</span> </span>
<template slot="content"> <template slot="content">
<p style="max-width: 400px" v-for="line in status.xray.errorMsg.split('\n')">[[ line ]]</p> <p style="max-width: 400px" v-for="line in status.xray.errorMsg.split('\n')">[[ line ]]</p>
</template> </template>
<a-icon type="question-circle"></a-icon> <a-badge :text="status.xray.state" :color="status.xray.color" style="text-transform: capitalize;"/>
</a-popover> </a-popover>
<a-tag color="purple" style="cursor: pointer;" @click="stopXrayService">{{ i18n "pages.index.stopXray" }}</a-tag> </template>
<a-tag color="purple" style="cursor: pointer;" @click="restartXrayService">{{ i18n "pages.index.restartXray" }}</a-tag> </template>
<a-tag color="purple" style="cursor: pointer;" @click="openSelectV2rayVersion">v[[ status.xray.version ]]</a-tag> <template #actions>
<a-space direction="horizontal" @click="stopXrayService" style="justify-content: center;">
<a-icon type="poweroff"></a-icon>
<span>{{ i18n "pages.index.stopXray" }}</span>
</a-space>
<a-space direction="horizontal" @click="restartXrayService" style="justify-content: center;">
<a-icon type="reload"></a-icon>
<span>{{ i18n "pages.index.restartXray" }}</span>
</a-space>
<a-space direction="horizontal" @click="openSelectV2rayVersion" style="justify-content: center;">
<a-icon type="tool"></a-icon>
<span>v[[ status.xray.version ]]</span>
</a-space>
</template>
</a-card> </a-card>
</a-col> </a-col>
<a-col :sm="24" :lg="12"> <a-col :sm="24" :lg="12">
<a-card hoverable> <a-card title='{{ i18n "menu.link" }}' hoverable>
<b>{{ i18n "menu.link" }}:</b> <template #actions>
<a-tag color="purple" style="cursor: pointer;" @click="openLogs()">{{ i18n "pages.index.logs" }}</a-tag> <a-space direction="horizontal" @click="openLogs()" style="justify-content: center;">
<a-tag color="purple" style="cursor: pointer;" @click="openConfig">{{ i18n "pages.index.config" }}</a-tag> <a-icon type="bars"></a-icon>
<a-tag color="purple" style="cursor: pointer;" @click="openBackup">{{ i18n "pages.index.backup" }}</a-tag> <span>{{ i18n "pages.index.logs" }}</span>
</a-space>
<a-space direction="horizontal" @click="openConfig" style="justify-content: center;">
<a-icon type="control"></a-icon>
<span>{{ i18n "pages.index.config" }}</span>
</a-space>
<a-space direction="horizontal" @click="openBackup" style="justify-content: center;">
<a-icon type="cloud-server"></a-icon>
<span>{{ i18n "pages.index.backup" }}</span>
</a-space>
</template>
</a-card> </a-card>
</a-col> </a-col>
<a-col :sm="24" :lg="12"> <a-col :sm="24" :lg="12">
<a-card hoverable> <a-card title='3X-UI' hoverable>
<b>{{ i18n "pages.index.systemLoad" }}:</b> <a rel="noopener" href="https://github.com/MHSanaei/3x-ui/releases" target="_blank"><a-tag color="green">v{{ .cur_ver }}</a-tag></a>
<a rel="noopener" href="https://t.me/XrayUI" target="_blank"><a-tag color="green">@XrayUI</a-tag></a>
</a-card>
</a-col>
<a-col :sm="24" :lg="12">
<a-card title='{{ i18n "pages.index.operationHours" }}' hoverable>
<a-tag :color="status.xray.color">Xray: [[ TimeFormatter.formatSecond(status.appStats.uptime) ]]</a-tag>
<a-tag color="green">OS: [[ TimeFormatter.formatSecond(status.uptime) ]]</a-tag>
</a-card>
</a-col>
<a-col :sm="24" :lg="12">
<a-card title='{{ i18n "pages.index.systemLoad" }}' hoverable>
<a-tag color="green"> <a-tag color="green">
<a-tooltip> <a-tooltip>
[[ status.loads[0] ]] | [[ status.loads[1] ]] | [[ status.loads[2] ]] [[ status.loads[0] ]] | [[ status.loads[1] ]] | [[ status.loads[2] ]]
@ -155,117 +206,107 @@
</a-card> </a-card>
</a-col> </a-col>
<a-col :sm="24" :lg="12"> <a-col :sm="24" :lg="12">
<a-card hoverable> <a-card title='{{ i18n "usage"}}' hoverable>
<b>{{ i18n "usage"}}:</b>
<a-tag color="green"> RAM: [[ SizeFormatter.sizeFormat(status.appStats.mem) ]] </a-tag> <a-tag color="green"> RAM: [[ SizeFormatter.sizeFormat(status.appStats.mem) ]] </a-tag>
<a-tag color="green"> Threads: [[ status.appStats.threads ]] </a-tag> <a-tag color="green"> Threads: [[ status.appStats.threads ]] </a-tag>
</a-card> </a-card>
</a-col> </a-col>
<a-col :sm="24" :lg="12"> <a-col :sm="24" :lg="12">
<a-card hoverable> <a-card title='{{ i18n "pages.index.ipAddresses" }}' hoverable>
<a-row> <template #extra>
<a-col :span="12">
<a-tag>
<a-tooltip> <a-tooltip>
<a-icon type="global"></a-icon> IPv4 <template #title>
<template slot="title"> {{ i18n "pages.index.toggleIpVisibility" }}
[[ status.publicIP.ipv4 ]]
</template> </template>
<a-icon :type="showIp ? 'eye' : 'eye-invisible'" :style="{ fontSize: '1rem' }" @click="showIp = !showIp"></a-icon>
</a-tooltip> </a-tooltip>
</a-tag> </template>
<a-row :class="showIp ? 'ip-visible' : 'ip-hidden'">
<a-col :lg="12" :sm="24" :style="{ marginTop: isMobile ? '10px' : 0 }">
<a-statistic title="IPv4" :value="status.publicIP.ipv4">
<template #prefix>
<a-icon type="global" />
</template>
</a-statistic>
</a-col> </a-col>
<a-col :span="12"> <a-col :lg="12" :sm="24" :style="{ marginTop: isMobile ? '10px' : 0 }">
<a-tag> <a-statistic title="IPv6" :value="status.publicIP.ipv6">
<a-tooltip> <template #prefix>
<a-icon type="global"></a-icon> IPv6 <a-icon type="global" />
<template slot="title">
[[ status.publicIP.ipv6 ]]
</template> </template>
</a-tooltip> </a-statistic>
</a-tag>
</a-col> </a-col>
</a-row> </a-row>
</a-card> </a-card>
</a-col> </a-col>
<a-col :sm="24" :lg="12"> <a-col :sm="24" :lg="12">
<a-card hoverable> <a-card title='{{ i18n "pages.index.connectionCount" }}' hoverable>
<a-row> <a-row>
<a-col :span="12"> <a-col :lg="12" :sm="24" :style="{ marginTop: isMobile ? '10px' : 0 }">
<a-tag> <a-statistic title="TCP" :value="status.tcpCount">
<a-tooltip> <template #prefix>
<a-icon type="swap"></a-icon> TCP: [[ status.tcpCount ]] <a-icon type="swap" />
<template slot="title">
{{ i18n "pages.index.connectionTcpCountDesc" }}
</template> </template>
</a-tooltip> </a-statistic>
</a-tag>
</a-col> </a-col>
<a-col :span="12"> <a-col :lg="12" :sm="24" :style="{ marginTop: isMobile ? '10px' : 0 }">
<a-tag> <a-statistic title="UDP" :value="status.udpCount">
<a-tooltip> <template #prefix>
<a-icon type="swap"></a-icon> UDP: [[ status.udpCount ]] <a-icon type="swap" />
<template slot="title">
{{ i18n "pages.index.connectionUdpCountDesc" }}
</template> </template>
</a-tooltip> </a-statistic>
</a-tag>
</a-col> </a-col>
</a-row> </a-row>
</a-card> </a-card>
</a-col> </a-col>
<a-col :sm="24" :lg="12"> <a-col :sm="24" :lg="12">
<a-card hoverable> <a-card title='{{ i18n "pages.index.overallSpeed" }}' hoverable>
<a-row> <a-row>
<a-col :span="12"> <a-col :lg="12" :sm="24" :style="{ marginTop: isMobile ? '10px' : 0 }">
<a-tag> <a-statistic title='{{ i18n "pages.index.upload" }}' :value="SizeFormatter.sizeFormat(status.netIO.up)">
<a-tooltip> <template #prefix>
<a-icon type="arrow-up"></a-icon> Up: [[ SizeFormatter.sizeFormat(status.netIO.up) ]]/s <a-icon type="arrow-up" />
<template slot="title">
{{ i18n "pages.index.upSpeed" }}
</template> </template>
</a-tooltip> <template #suffix>
</a-tag> /s
</template>
</a-statistic>
</a-col> </a-col>
<a-col :span="12"> <a-col :lg="12" :sm="24" :style="{ marginTop: isMobile ? '10px' : 0 }">
<a-tag> <a-statistic title='{{ i18n "pages.index.download" }}' :value="SizeFormatter.sizeFormat(status.netIO.down)">
<a-tooltip> <template #prefix>
<a-icon type="arrow-down"></a-icon> Down: [[ SizeFormatter.sizeFormat(status.netIO.down) ]]/s <a-icon type="arrow-down" />
<template slot="title">
{{ i18n "pages.index.downSpeed" }}
</template> </template>
</a-tooltip> <template #suffix>
</a-tag> /s
</template>
</a-statistic>
</a-col> </a-col>
</a-row> </a-row>
</a-card> </a-card>
</a-col> </a-col>
<a-col :sm="24" :lg="12"> <a-col :sm="24" :lg="12">
<a-card hoverable> <a-card title='{{ i18n "pages.index.totalData" }}' hoverable>
<a-row> <a-row>
<a-col :span="12"> <a-col :lg="12" :sm="24" :style="{ marginTop: isMobile ? '10px' : 0 }">
<a-tag> <a-statistic title='{{ i18n "pages.index.sent" }}' :value="SizeFormatter.sizeFormat(status.netTraffic.sent)">
<a-tooltip> <template #prefix>
<a-icon type="cloud-upload"></a-icon> <a-icon type="cloud-upload" />
<template slot="title"> </template>
{{ i18n "pages.index.totalSent" }} </a-statistic>
</template> Out: [[ SizeFormatter.sizeFormat(status.netTraffic.sent) ]]
</a-tooltip>
</a-tag>
</a-col> </a-col>
<a-col :span="12"> <a-col :lg="12" :sm="24" :style="{ marginTop: isMobile ? '10px' : 0 }">
<a-tag> <a-statistic title='{{ i18n "pages.index.received" }}' :value="SizeFormatter.sizeFormat(status.netTraffic.recv)">
<a-tooltip> <template #prefix>
<a-icon type="cloud-download"></a-icon> <a-icon type="cloud-download" />
<template slot="title"> </template>
{{ i18n "pages.index.totalReceive" }} </a-statistic>
</template> In: [[ SizeFormatter.sizeFormat(status.netTraffic.recv) ]]
</a-tooltip>
</a-tag>
</a-col> </a-col>
</a-row> </a-row>
</a-card> </a-card>
</a-col> </a-col>
</a-row> </a-row>
</template>
</transition> </transition>
</a-spin> </a-spin>
</a-layout-content> </a-layout-content>
@ -279,7 +320,7 @@
<a-list-item-meta> <a-list-item-meta>
<template #title>[[ version ]]</template> <template #title>[[ version ]]</template>
</a-list-item-meta> </a-list-item-meta>
<a-radio :checked="version === `v${status.xray.version}`" @click="switchV2rayVersion(version)"></a-radio> <a-radio :class="themeSwitcher.currentTheme" :checked="version === `v${status.xray.version}`" @click="switchV2rayVersion(version)"></a-radio>
</a-list-item> </a-list-item>
</a-list> </a-list>
</a-modal> </a-modal>
@ -393,7 +434,7 @@
} }
class Status { class Status {
constructor(data) { constructor(data, isLoaded = false) {
this.cpu = new CurTotal(0, 0); this.cpu = new CurTotal(0, 0);
this.cpuCores = 0; this.cpuCores = 0;
this.logicalPro = 0; this.logicalPro = 0;
@ -415,6 +456,8 @@
if (data == null) { if (data == null) {
return; return;
} }
this.isLoaded = isLoaded;
this.cpu = new CurTotal(data.cpu, 100); this.cpu = new CurTotal(data.cpu, 100);
this.cpuCores = data.cpuCores; this.cpuCores = data.cpuCores;
this.logicalPro = data.logicalPro; this.logicalPro = data.logicalPro;
@ -536,6 +579,8 @@
spinning: false, spinning: false,
loadingTip: '{{ i18n "loading"}}', loadingTip: '{{ i18n "loading"}}',
showAlert: false, showAlert: false,
showIp: false,
isMobile: window.innerWidth <= 768
}, },
methods: { methods: {
loading(spinning, tip = '{{ i18n "loading"}}') { loading(spinning, tip = '{{ i18n "loading"}}') {
@ -546,14 +591,14 @@
try { try {
const msg = await HttpUtil.post('/server/status'); const msg = await HttpUtil.post('/server/status');
if (msg.success) { if (msg.success) {
this.setStatus(msg.obj); this.setStatus(msg.obj, true);
} }
} catch (e) { } catch (e) {
console.error("Failed to get status:", e); console.error("Failed to get status:", e);
} }
}, },
setStatus(data) { setStatus(data, isLoaded = false) {
this.status = new Status(data); this.status = new Status(data, isLoaded);
}, },
async openSelectV2rayVersion() { async openSelectV2rayVersion() {
this.loading(true); this.loading(true);

View file

@ -99,19 +99,21 @@
"operationHours" = "Uptime" "operationHours" = "Uptime"
"systemLoad" = "System Load" "systemLoad" = "System Load"
"systemLoadDesc" = "System load average for the past 1, 5, and 15 minutes" "systemLoadDesc" = "System load average for the past 1, 5, and 15 minutes"
"connectionTcpCountDesc" = "Total TCP connections across the system"
"connectionUdpCountDesc" = "Total UDP connections across the system"
"connectionCount" = "Connection Stats" "connectionCount" = "Connection Stats"
"upSpeed" = "Overall upload speed across the system" "ipAddresses" = "IP addresses"
"downSpeed" = "Overall download speed across the system" "toggleIpVisibility" = "Toggle visibility of the IP"
"totalSent" = "Total data sent across the system since OS startup" "overallSpeed" = "Overall speed"
"totalReceive" = "Total data received across the system since OS startup" "upload" = "Upload"
"download" = "Download"
"totalData" = "Total data"
"sent" = "Sent"
"received" = "Received"
"xraySwitchVersionDialog" = "Change Xray Version" "xraySwitchVersionDialog" = "Change Xray Version"
"xraySwitchVersionDialogDesc" = "Are you sure you want to change the Xray version to" "xraySwitchVersionDialogDesc" = "Are you sure you want to change the Xray version to"
"dontRefresh" = "Installation is in progress, please do not refresh this page" "dontRefresh" = "Installation is in progress, please do not refresh this page"
"logs" = "Logs" "logs" = "Logs"
"config" = "Config" "config" = "Config"
"backup" = "Backup & Restore" "backup" = "Backup"
"backupTitle" = "Database Backup & Restore" "backupTitle" = "Database Backup & Restore"
"exportDatabase" = "Back Up" "exportDatabase" = "Back Up"
"exportDatabaseDesc" = "Click to download a .db file containing a backup of your current database to your device." "exportDatabaseDesc" = "Click to download a .db file containing a backup of your current database to your device."

View file

@ -102,16 +102,20 @@
"connectionTcpCountDesc" = "Conexiones TCP totales en todas las tarjetas de red." "connectionTcpCountDesc" = "Conexiones TCP totales en todas las tarjetas de red."
"connectionUdpCountDesc" = "Conexiones UDP totales en todas las tarjetas de red." "connectionUdpCountDesc" = "Conexiones UDP totales en todas las tarjetas de red."
"connectionCount" = "Número de Conexiones" "connectionCount" = "Número de Conexiones"
"upSpeed" = "Velocidad de Subida Total para Todas las Tarjetas de Red." "ipAddresses" = "Direcciones IP"
"downSpeed" = "Velocidad de Bajada Total para Todas las Tarjetas de Red." "toggleIpVisibility" = "Alternar visibilidad de la IP"
"totalSent" = "Tráfico Total de Subida de Todas las Tarjetas de Red desde el inicio del sistema." "overallSpeed" = "Velocidad general"
"totalReceive" = "Datos Descargados Totales en Todas las Tarjetas de Red desde el inicio del sistema." "upload" = "Subida"
"download" = "Descarga"
"totalData" = "Datos totales"
"sent" = "Enviado"
"received" = "Recibido"
"xraySwitchVersionDialog" = "Cambiar Versión de Xray" "xraySwitchVersionDialog" = "Cambiar Versión de Xray"
"xraySwitchVersionDialogDesc" = "¿Estás seguro de que deseas cambiar la versión de Xray a" "xraySwitchVersionDialogDesc" = "¿Estás seguro de que deseas cambiar la versión de Xray a"
"dontRefresh" = "La instalación está en progreso, por favor no actualices esta página." "dontRefresh" = "La instalación está en progreso, por favor no actualices esta página."
"logs" = "Registros" "logs" = "Registros"
"config" = "Configuración" "config" = "Configuración"
"backup" = "Copia de Seguridad y Restauración" "backup" = "Сopia de Seguridad"
"backupTitle" = "Copia de Seguridad y Restauración de la Base de Datos" "backupTitle" = "Copia de Seguridad y Restauración de la Base de Datos"
"exportDatabase" = "Copia de seguridad" "exportDatabase" = "Copia de seguridad"
"exportDatabaseDesc" = "Haz clic para descargar un archivo .db que contiene una copia de seguridad de tu base de datos actual en tu dispositivo." "exportDatabaseDesc" = "Haz clic para descargar un archivo .db que contiene una copia de seguridad de tu base de datos actual en tu dispositivo."

View file

@ -102,10 +102,14 @@
"connectionTcpCountDesc" = "در تمام‌شبکه‌ها TCP مجموع‌اتصالات" "connectionTcpCountDesc" = "در تمام‌شبکه‌ها TCP مجموع‌اتصالات"
"connectionUdpCountDesc" = "در تمام‌شبکه‌ها UDP مجموع‌اتصالات" "connectionUdpCountDesc" = "در تمام‌شبکه‌ها UDP مجموع‌اتصالات"
"connectionCount" = "تعداد کانکشن ها" "connectionCount" = "تعداد کانکشن ها"
"upSpeed" = "سرعت کلی آپلود در تمام‌شبکه‌ها" "ipAddresses" = "آدرس‌های IP"
"downSpeed" = "‌سرعت کلی دانلود در تمام‌شبکه‌ها" "toggleIpVisibility" = "تغییر وضعیت نمایش IP"
"totalSent" = "مجموع ترافیک ارسال‌‌شده پس‌از شروع‌به‌کار سیستم‌عامل" "overallSpeed" = "سرعت کلی"
"totalReceive" = "مجموع ترافیک دریافت‌شده پس‌از شروع‌به‌کار سیستم‌عامل" "upload" = "آپلود"
"download" = "دانلود"
"totalData" = "داده‌های کل"
"sent" = "ارسال شده"
"received" = "دریافت شده"
"xraySwitchVersionDialog" = "تغییر نسخه ایکس‌ری" "xraySwitchVersionDialog" = "تغییر نسخه ایکس‌ری"
"xraySwitchVersionDialogDesc" = "آیا از تغییر نسخه‌ مطمئن هستید؟" "xraySwitchVersionDialogDesc" = "آیا از تغییر نسخه‌ مطمئن هستید؟"
"dontRefresh" = "در حال نصب، لطفا صفحه را رفرش نکنید" "dontRefresh" = "در حال نصب، لطفا صفحه را رفرش نکنید"

View file

@ -102,16 +102,20 @@
"connectionTcpCountDesc" = "Total koneksi TCP di seluruh sistem" "connectionTcpCountDesc" = "Total koneksi TCP di seluruh sistem"
"connectionUdpCountDesc" = "Total koneksi UDP di seluruh sistem" "connectionUdpCountDesc" = "Total koneksi UDP di seluruh sistem"
"connectionCount" = "Statistik Koneksi" "connectionCount" = "Statistik Koneksi"
"upSpeed" = "Kecepatan unggah keseluruhan di seluruh sistem" "ipAddresses" = "Alamat IP"
"downSpeed" = "Kecepatan unduh keseluruhan di seluruh sistem" "toggleIpVisibility" = "Alihkan visibilitas IP"
"totalSent" = "Total data terkirim di seluruh sistem sejak startup OS" "overallSpeed" = "Kecepatan keseluruhan"
"totalReceive" = "Total data diterima di seluruh sistem sejak startup OS" "upload" = "Unggah"
"download" = "Unduh"
"totalData" = "Total data"
"sent" = "Dikirim"
"received" = "Diterima"
"xraySwitchVersionDialog" = "Ganti Versi Xray" "xraySwitchVersionDialog" = "Ganti Versi Xray"
"xraySwitchVersionDialogDesc" = "Apakah Anda yakin ingin mengubah versi Xray menjadi" "xraySwitchVersionDialogDesc" = "Apakah Anda yakin ingin mengubah versi Xray menjadi"
"dontRefresh" = "Instalasi sedang berlangsung, harap jangan menyegarkan halaman ini" "dontRefresh" = "Instalasi sedang berlangsung, harap jangan menyegarkan halaman ini"
"logs" = "Log" "logs" = "Log"
"config" = "Konfigurasi" "config" = "Konfigurasi"
"backup" = "Cadangan & Pulihkan" "backup" = "Cadangan"
"backupTitle" = "Cadangan & Pulihkan Database" "backupTitle" = "Cadangan & Pulihkan Database"
"exportDatabase" = "Cadangkan" "exportDatabase" = "Cadangkan"
"exportDatabaseDesc" = "Klik untuk mengunduh file .db yang berisi cadangan dari database Anda saat ini ke perangkat Anda." "exportDatabaseDesc" = "Klik untuk mengunduh file .db yang berisi cadangan dari database Anda saat ini ke perangkat Anda."

View file

@ -102,16 +102,20 @@
"connectionTcpCountDesc" = "システム内のすべてのTCP接続数" "connectionTcpCountDesc" = "システム内のすべてのTCP接続数"
"connectionUdpCountDesc" = "システム内のすべてのUDP接続数" "connectionUdpCountDesc" = "システム内のすべてのUDP接続数"
"connectionCount" = "接続数" "connectionCount" = "接続数"
"upSpeed" = "総アップロード速度" "ipAddresses" = "IPアドレス"
"downSpeed" = "総ダウンロード速度" "toggleIpVisibility" = "IPの表示を切り替える"
"totalSent" = "システム起動以降の送信データ量" "overallSpeed" = "全体の速度"
"totalReceive" = "システム起動以降の受信データ量" "upload" = "アップロード"
"download" = "ダウンロード"
"totalData" = "総データ量"
"sent" = "送信"
"received" = "受信"
"xraySwitchVersionDialog" = "Xrayバージョン切り替え" "xraySwitchVersionDialog" = "Xrayバージョン切り替え"
"xraySwitchVersionDialogDesc" = "Xrayのバージョンを切り替えますか" "xraySwitchVersionDialogDesc" = "Xrayのバージョンを切り替えますか"
"dontRefresh" = "インストール中、このページをリロードしないでください" "dontRefresh" = "インストール中、このページをリロードしないでください"
"logs" = "ログ" "logs" = "ログ"
"config" = "設定" "config" = "設定"
"backup" = "バックアップと復元" "backup" = "バックアップ"
"backupTitle" = "データベースのバックアップと復元" "backupTitle" = "データベースのバックアップと復元"
"exportDatabase" = "バックアップ" "exportDatabase" = "バックアップ"
"exportDatabaseDesc" = "クリックして、現在のデータベースのバックアップを含む .db ファイルをデバイスにダウンロードします。" "exportDatabaseDesc" = "クリックして、現在のデータベースのバックアップを含む .db ファイルをデバイスにダウンロードします。"

View file

@ -102,16 +102,20 @@
"connectionTcpCountDesc" = "Total de conexões TCP no sistema" "connectionTcpCountDesc" = "Total de conexões TCP no sistema"
"connectionUdpCountDesc" = "Total de conexões UDP no sistema" "connectionUdpCountDesc" = "Total de conexões UDP no sistema"
"connectionCount" = "Estatísticas de Conexão" "connectionCount" = "Estatísticas de Conexão"
"upSpeed" = "Velocidade total de upload no sistema" "ipAddresses" = "Endereços IP"
"downSpeed" = "Velocidade total de download no sistema" "toggleIpVisibility" = "Alternar visibilidade do IP"
"totalSent" = "Dados totais enviados desde a inicialização do sistema" "overallSpeed" = "Velocidade geral"
"totalReceive" = "Dados totais recebidos desde a inicialização do sistema" "upload" = "Upload"
"download" = "Download"
"totalData" = "Dados totais"
"sent" = "Enviado"
"received" = "Recebido"
"xraySwitchVersionDialog" = "Alterar Versão do Xray" "xraySwitchVersionDialog" = "Alterar Versão do Xray"
"xraySwitchVersionDialogDesc" = "Tem certeza de que deseja alterar a versão do Xray para" "xraySwitchVersionDialogDesc" = "Tem certeza de que deseja alterar a versão do Xray para"
"dontRefresh" = "Instalação em andamento, por favor não atualize a página" "dontRefresh" = "Instalação em andamento, por favor não atualize a página"
"logs" = "Logs" "logs" = "Logs"
"config" = "Configuração" "config" = "Configuração"
"backup" = "Backup e Restauração" "backup" = "Backup"
"backupTitle" = "Backup e Restauração do Banco de Dados" "backupTitle" = "Backup e Restauração do Banco de Dados"
"exportDatabase" = "Backup" "exportDatabase" = "Backup"
"exportDatabaseDesc" = "Clique para baixar um arquivo .db contendo um backup do seu banco de dados atual para o seu dispositivo." "exportDatabaseDesc" = "Clique para baixar um arquivo .db contendo um backup do seu banco de dados atual para o seu dispositivo."

View file

@ -102,16 +102,20 @@
"connectionTcpCountDesc" = "Общее количество подключений TCP по всем сетевым картам." "connectionTcpCountDesc" = "Общее количество подключений TCP по всем сетевым картам."
"connectionUdpCountDesc" = "Общее количество подключений UDP по всем сетевым картам." "connectionUdpCountDesc" = "Общее количество подключений UDP по всем сетевым картам."
"connectionCount" = "Количество соединений" "connectionCount" = "Количество соединений"
"upSpeed" = "Общая скорость отправки для всех сетей" "ipAddresses" = "IP-адреса"
"downSpeed" = "Общая скорость загрузки для всех сетей" "toggleIpVisibility" = "Переключить видимость IP"
"totalSent" = "Общий объем отправляемых данных с момента запуска системы" "overallSpeed" = "Общая скорость"
"totalReceive" = "Общий объем полученных данных для всех сетей с момента запуска системы." "upload" = "Отправка"
"download" = "Загрузка"
"totalData" = "Общий объем данных"
"sent" = "Отправлено"
"received" = "Получено"
"xraySwitchVersionDialog" = "Переключить версию Xray" "xraySwitchVersionDialog" = "Переключить версию Xray"
"xraySwitchVersionDialogDesc" = "Вы точно хотите сменить версию Xray?" "xraySwitchVersionDialogDesc" = "Вы точно хотите сменить версию Xray?"
"dontRefresh" = "Установка в процессе. Не обновляйте страницу" "dontRefresh" = "Установка в процессе. Не обновляйте страницу"
"logs" = "Логи" "logs" = "Логи"
"config" = "Конфигурация" "config" = "Конфигурация"
"backup" = "Резервное копирование и восстановление" "backup" = "Резервная копия"
"backupTitle" = "База данных резервных копий" "backupTitle" = "База данных резервных копий"
"exportDatabase" = "Экспорт базы данных" "exportDatabase" = "Экспорт базы данных"
"exportDatabaseDesc" = "Нажмите, чтобы скачать файл .db, содержащий резервную копию вашей текущей базы данных на ваше устройство." "exportDatabaseDesc" = "Нажмите, чтобы скачать файл .db, содержащий резервную копию вашей текущей базы данных на ваше устройство."

View file

@ -102,16 +102,20 @@
"connectionTcpCountDesc" = "Sistem genelinde toplam TCP bağlantıları" "connectionTcpCountDesc" = "Sistem genelinde toplam TCP bağlantıları"
"connectionUdpCountDesc" = "Sistem genelinde toplam UDP bağlantıları" "connectionUdpCountDesc" = "Sistem genelinde toplam UDP bağlantıları"
"connectionCount" = "Bağlantı İstatistikleri" "connectionCount" = "Bağlantı İstatistikleri"
"upSpeed" = "Sistem genelinde toplam yükleme hızı" "ipAddresses" = "IP adresleri"
"downSpeed" = "Sistem genelinde toplam indirme hızı" "toggleIpVisibility" = "IP görünürlüğünü değiştir"
"totalSent" = "İşletim sistemi başlatıldığından beri sistem genelinde gönderilen toplam veri" "overallSpeed" = "Genel hız"
"totalReceive" = "İşletim sistemi başlatıldığından beri sistem genelinde alınan toplam veri" "upload" = "Yükleme"
"download" = "İndirme"
"totalData" = "Toplam veri"
"sent" = "Gönderilen"
"received" = "Alınan"
"xraySwitchVersionDialog" = "Xray Sürümünü Değiştir" "xraySwitchVersionDialog" = "Xray Sürümünü Değiştir"
"xraySwitchVersionDialogDesc" = "Xray sürümünü değiştirmek istediğinizden emin misiniz" "xraySwitchVersionDialogDesc" = "Xray sürümünü değiştirmek istediğinizden emin misiniz"
"dontRefresh" = "Kurulum devam ediyor, lütfen bu sayfayı yenilemeyin" "dontRefresh" = "Kurulum devam ediyor, lütfen bu sayfayı yenilemeyin"
"logs" = "Günlükler" "logs" = "Günlükler"
"config" = "Yapılandırma" "config" = "Yapılandırma"
"backup" = "Yedekle & Geri Yükle" "backup" = "Yedek"
"backupTitle" = "Veritabanı Yedekleme & Geri Yükleme" "backupTitle" = "Veritabanı Yedekleme & Geri Yükleme"
"exportDatabase" = "Yedekle" "exportDatabase" = "Yedekle"
"exportDatabaseDesc" = "Mevcut veritabanınızın yedeğini içeren bir .db dosyasını cihazınıza indirmek için tıklayın." "exportDatabaseDesc" = "Mevcut veritabanınızın yedeğini içeren bir .db dosyasını cihazınıza indirmek için tıklayın."

View file

@ -102,16 +102,20 @@
"connectionTcpCountDesc" = "Загальна кількість TCP-з'єднань у системі" "connectionTcpCountDesc" = "Загальна кількість TCP-з'єднань у системі"
"connectionUdpCountDesc" = "Загальна кількість UDP-з'єднань у системі" "connectionUdpCountDesc" = "Загальна кількість UDP-з'єднань у системі"
"connectionCount" = "Статистика з'єднання" "connectionCount" = "Статистика з'єднання"
"upSpeed" = "Загальна швидкість завантаження в системі" "ipAddresses" = "IP-адреси"
"downSpeed" = "Загальна швидкість завантаження в системі" "toggleIpVisibility" = "Перемкнути видимість IP"
"totalSent" = "Загальна кількість даних, надісланих через систему з моменту запуску ОС" "overallSpeed" = "Загальна швидкість"
"totalReceive" = "Загальна кількість даних, отриманих системою з моменту запуску ОС" "upload" = "Відправка"
"download" = "Завантаження"
"totalData" = "Загальний обсяг даних"
"sent" = "Відправлено"
"received" = "Отримано"
"xraySwitchVersionDialog" = "Змінити версію Xray" "xraySwitchVersionDialog" = "Змінити версію Xray"
"xraySwitchVersionDialogDesc" = "Ви впевнені, що бажаєте змінити версію Xray на" "xraySwitchVersionDialogDesc" = "Ви впевнені, що бажаєте змінити версію Xray на"
"dontRefresh" = "Інсталяція триває, будь ласка, не оновлюйте цю сторінку" "dontRefresh" = "Інсталяція триває, будь ласка, не оновлюйте цю сторінку"
"logs" = "Журнали" "logs" = "Журнали"
"config" = "Конфігурація" "config" = "Конфігурація"
"backup" = "Резервне копіювання та відновлення" "backup" = "Резервна копія"
"backupTitle" = "Резервне копіювання та відновлення бази даних" "backupTitle" = "Резервне копіювання та відновлення бази даних"
"exportDatabase" = "Резервна копія" "exportDatabase" = "Резервна копія"
"exportDatabaseDesc" = "Натисніть, щоб завантажити файл .db, що містить резервну копію вашої поточної бази даних на ваш пристрій." "exportDatabaseDesc" = "Натисніть, щоб завантажити файл .db, що містить резервну копію вашої поточної бази даних на ваш пристрій."

View file

@ -102,16 +102,20 @@
"connectionTcpCountDesc" = "Tổng số kết nối TCP trên tất cả các thẻ mạng." "connectionTcpCountDesc" = "Tổng số kết nối TCP trên tất cả các thẻ mạng."
"connectionUdpCountDesc" = "Tổng số kết nối UDP trên tất cả các thẻ mạng." "connectionUdpCountDesc" = "Tổng số kết nối UDP trên tất cả các thẻ mạng."
"connectionCount" = "Số lượng kết nối" "connectionCount" = "Số lượng kết nối"
"upSpeed" = "Tổng tốc độ tải lên cho tất cả các thẻ mạng." "ipAddresses" = "Địa chỉ IP"
"downSpeed" = "Tổng tốc độ tải xuống cho tất cả các thẻ mạng." "toggleIpVisibility" = "Chuyển đổi hiển thị IP"
"totalSent" = "Tổng lưu lượng tải lên của tất cả các thẻ mạng kể từ khi hệ thống khởi động." "overallSpeed" = "Tốc độ tổng thể"
"totalReceive" = "Tổng lưu lượng tải xuống trên tất cả các thẻ mạng kể từ khi hệ thống khởi động." "upload" = "Tải lên"
"download" = "Tải xuống"
"totalData" = "Tổng dữ liệu"
"sent" = "Đã gửi"
"received" = "Đã nhận"
"xraySwitchVersionDialog" = "Chuyển đổi Phiên bản Xray" "xraySwitchVersionDialog" = "Chuyển đổi Phiên bản Xray"
"xraySwitchVersionDialogDesc" = "Bạn có chắc chắn muốn chuyển đổi phiên bản Xray sang" "xraySwitchVersionDialogDesc" = "Bạn có chắc chắn muốn chuyển đổi phiên bản Xray sang"
"dontRefresh" = "Đang tiến hành cài đặt, vui lòng không làm mới trang này." "dontRefresh" = "Đang tiến hành cài đặt, vui lòng không làm mới trang này."
"logs" = "Nhật ký" "logs" = "Nhật ký"
"config" = "Cấu hình" "config" = "Cấu hình"
"backup" = "Sao lưu & Khôi phục" "backup" = "Sao lưu"
"backupTitle" = "Sao lưu & Khôi phục Cơ sở dữ liệu" "backupTitle" = "Sao lưu & Khôi phục Cơ sở dữ liệu"
"exportDatabase" = "Sao lưu" "exportDatabase" = "Sao lưu"
"exportDatabaseDesc" = "Nhấp để tải xuống tệp .db chứa bản sao lưu cơ sở dữ liệu hiện tại của bạn vào thiết bị." "exportDatabaseDesc" = "Nhấp để tải xuống tệp .db chứa bản sao lưu cơ sở dữ liệu hiện tại của bạn vào thiết bị."

View file

@ -102,16 +102,20 @@
"connectionTcpCountDesc" = "系统中所有 TCP 连接数" "connectionTcpCountDesc" = "系统中所有 TCP 连接数"
"connectionUdpCountDesc" = "系统中所有 UDP 连接数" "connectionUdpCountDesc" = "系统中所有 UDP 连接数"
"connectionCount" = "连接数" "connectionCount" = "连接数"
"upSpeed" = "总上传速度" "ipAddresses" = "IP地址"
"downSpeed" = "总下载速度" "toggleIpVisibility" = "切换IP可见性"
"totalSent" = "系统启动以来发送的总数据量" "overallSpeed" = "整体速度"
"totalReceive" = "系统启动以来接收的总数据量" "upload" = "上传"
"download" = "下载"
"totalData" = "总数据"
"sent" = "已发送"
"received" = "已接收"
"xraySwitchVersionDialog" = "切换 Xray 版本" "xraySwitchVersionDialog" = "切换 Xray 版本"
"xraySwitchVersionDialogDesc" = "是否切换 Xray 版本至" "xraySwitchVersionDialogDesc" = "是否切换 Xray 版本至"
"dontRefresh" = "安装中,请勿刷新此页面" "dontRefresh" = "安装中,请勿刷新此页面"
"logs" = "日志" "logs" = "日志"
"config" = "配置" "config" = "配置"
"backup" = "备份和恢复" "backup" = "备份"
"backupTitle" = "备份和恢复数据库" "backupTitle" = "备份和恢复数据库"
"exportDatabase" = "备份" "exportDatabase" = "备份"
"exportDatabaseDesc" = "点击下载包含当前数据库备份的 .db 文件到您的设备。" "exportDatabaseDesc" = "点击下载包含当前数据库备份的 .db 文件到您的设备。"

View file

@ -102,10 +102,14 @@
"connectionTcpCountDesc" = "系統中所有 TCP 連線數" "connectionTcpCountDesc" = "系統中所有 TCP 連線數"
"connectionUdpCountDesc" = "系統中所有 UDP 連線數" "connectionUdpCountDesc" = "系統中所有 UDP 連線數"
"connectionCount" = "連線數" "connectionCount" = "連線數"
"upSpeed" = "總上傳速度" "ipAddresses" = "IP地址"
"downSpeed" = "總下載速度" "toggleIpVisibility" = "切換IP可見性"
"totalSent" = "系統啟動以來傳送的總資料量" "overallSpeed" = "整體速度"
"totalReceive" = "系統啟動以來接收的總資料量" "upload" = "上傳"
"download" = "下載"
"totalData" = "總數據"
"sent" = "已發送"
"received" = "已接收"
"xraySwitchVersionDialog" = "切換 Xray 版本" "xraySwitchVersionDialog" = "切換 Xray 版本"
"xraySwitchVersionDialogDesc" = "是否切換 Xray 版本至" "xraySwitchVersionDialogDesc" = "是否切換 Xray 版本至"
"dontRefresh" = "安裝中,請勿重新整理此頁面" "dontRefresh" = "安裝中,請勿重新整理此頁面"