mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-11 02:15:48 +02:00
Clean up analytic code, update Simplified Chinese translations.
This commit is contained in:
parent
46e86d2a3d
commit
42417e806d
17 changed files with 638 additions and 286 deletions
|
@ -8,6 +8,9 @@ import Vue from 'vue'
|
||||||
|
|
||||||
Vue.use(VueApexCharts)
|
Vue.use(VueApexCharts)
|
||||||
Vue.component('apexchart', VueApexCharts)
|
Vue.component('apexchart', VueApexCharts)
|
||||||
|
const fontColor = () => {
|
||||||
|
return window.matchMedia('(prefers-color-scheme: dark)').matches ? '#b4b4b4' : undefined
|
||||||
|
}
|
||||||
export default {
|
export default {
|
||||||
name: 'CPUChart',
|
name: 'CPUChart',
|
||||||
props: {
|
props: {
|
||||||
|
@ -21,6 +24,47 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
mounted() {
|
||||||
|
let media = window.matchMedia('(prefers-color-scheme: dark)')
|
||||||
|
let callback = () => {
|
||||||
|
this.chartOptions.xaxis = {
|
||||||
|
type: 'datetime',
|
||||||
|
labels: {
|
||||||
|
datetimeUTC: false,
|
||||||
|
style: {
|
||||||
|
colors: fontColor()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.chartOptions.yaxis = {
|
||||||
|
max: 100,
|
||||||
|
tickAmount: 4,
|
||||||
|
min: 0,
|
||||||
|
labels: {
|
||||||
|
style: {
|
||||||
|
colors: fontColor()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.chartOptions.legend = {
|
||||||
|
labels: {
|
||||||
|
colors: fontColor()
|
||||||
|
},
|
||||||
|
onItemClick: {
|
||||||
|
toggleDataSeries: false
|
||||||
|
},
|
||||||
|
onItemHover: {
|
||||||
|
highlightDataSeries: false
|
||||||
|
},
|
||||||
|
}
|
||||||
|
this.$refs.chart.updateOptions(this.chartOptions)
|
||||||
|
}
|
||||||
|
if (typeof media.addEventListener === 'function') {
|
||||||
|
media.addEventListener('change', callback)
|
||||||
|
} else if (typeof media.addListener === 'function') {
|
||||||
|
media.addListener(callback)
|
||||||
|
}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
chartOptions: {
|
chartOptions: {
|
||||||
|
@ -54,7 +98,12 @@ export default {
|
||||||
},
|
},
|
||||||
xaxis: {
|
xaxis: {
|
||||||
type: 'datetime',
|
type: 'datetime',
|
||||||
labels: {datetimeUTC: false},
|
labels: {
|
||||||
|
datetimeUTC: false,
|
||||||
|
style: {
|
||||||
|
colors: fontColor()
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -63,8 +112,16 @@ export default {
|
||||||
max: 100,
|
max: 100,
|
||||||
tickAmount: 4,
|
tickAmount: 4,
|
||||||
min: 0,
|
min: 0,
|
||||||
|
labels: {
|
||||||
|
style: {
|
||||||
|
colors: fontColor()
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
legend: {
|
legend: {
|
||||||
|
labels: {
|
||||||
|
colors: fontColor()
|
||||||
|
},
|
||||||
onItemClick: {
|
onItemClick: {
|
||||||
toggleDataSeries: false
|
toggleDataSeries: false
|
||||||
},
|
},
|
||||||
|
|
|
@ -8,6 +8,10 @@ import Vue from 'vue'
|
||||||
|
|
||||||
Vue.use(VueApexCharts)
|
Vue.use(VueApexCharts)
|
||||||
Vue.component('apexchart', VueApexCharts)
|
Vue.component('apexchart', VueApexCharts)
|
||||||
|
|
||||||
|
const fontColor = () => {
|
||||||
|
return window.matchMedia('(prefers-color-scheme: dark)').matches ? '#b4b4b4' : null
|
||||||
|
}
|
||||||
export default {
|
export default {
|
||||||
name: 'DiskChart',
|
name: 'DiskChart',
|
||||||
props: {
|
props: {
|
||||||
|
@ -19,6 +23,46 @@ export default {
|
||||||
handler() {
|
handler() {
|
||||||
this.$refs.chart.updateSeries(this.series)
|
this.$refs.chart.updateSeries(this.series)
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
let media = window.matchMedia('(prefers-color-scheme: dark)')
|
||||||
|
let callback = () => {
|
||||||
|
this.chartOptions.xaxis = {
|
||||||
|
type: 'datetime',
|
||||||
|
labels: {
|
||||||
|
datetimeUTC: false,
|
||||||
|
style: {
|
||||||
|
colors: fontColor()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.chartOptions.yaxis = {
|
||||||
|
tickAmount: 3,
|
||||||
|
min: 0,
|
||||||
|
labels: {
|
||||||
|
style: {
|
||||||
|
colors: fontColor()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.chartOptions.legend = {
|
||||||
|
labels: {
|
||||||
|
colors: fontColor()
|
||||||
|
},
|
||||||
|
onItemClick: {
|
||||||
|
toggleDataSeries: false
|
||||||
|
},
|
||||||
|
onItemHover: {
|
||||||
|
highlightDataSeries: false
|
||||||
|
},
|
||||||
|
}
|
||||||
|
this.$refs.chart.updateOptions(this.chartOptions)
|
||||||
|
}
|
||||||
|
if (typeof media.addEventListener === 'function') {
|
||||||
|
media.addEventListener('change', callback)
|
||||||
|
} else if (typeof media.addListener === 'function') {
|
||||||
|
media.addListener(callback)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
@ -54,7 +98,12 @@ export default {
|
||||||
},
|
},
|
||||||
xaxis: {
|
xaxis: {
|
||||||
type: 'datetime',
|
type: 'datetime',
|
||||||
labels: {datetimeUTC: false},
|
labels: {
|
||||||
|
datetimeUTC: false,
|
||||||
|
style: {
|
||||||
|
colors: fontColor()
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -62,8 +111,16 @@ export default {
|
||||||
yaxis: {
|
yaxis: {
|
||||||
tickAmount: 3,
|
tickAmount: 3,
|
||||||
min: 0,
|
min: 0,
|
||||||
|
labels: {
|
||||||
|
style: {
|
||||||
|
colors: fontColor()
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
legend: {
|
legend: {
|
||||||
|
labels: {
|
||||||
|
colors: fontColor()
|
||||||
|
},
|
||||||
onItemClick: {
|
onItemClick: {
|
||||||
toggleDataSeries: false
|
toggleDataSeries: false
|
||||||
},
|
},
|
||||||
|
|
|
@ -8,6 +8,9 @@ import Vue from 'vue'
|
||||||
|
|
||||||
Vue.use(VueApexCharts)
|
Vue.use(VueApexCharts)
|
||||||
Vue.component('apexchart', VueApexCharts)
|
Vue.component('apexchart', VueApexCharts)
|
||||||
|
const fontColor = () => {
|
||||||
|
return window.matchMedia('(prefers-color-scheme: dark)').matches ? '#b4b4b4' : undefined
|
||||||
|
}
|
||||||
export default {
|
export default {
|
||||||
name: 'NetChart',
|
name: 'NetChart',
|
||||||
props: {
|
props: {
|
||||||
|
@ -21,6 +24,49 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
mounted() {
|
||||||
|
let media = window.matchMedia('(prefers-color-scheme: dark)')
|
||||||
|
let callback = () => {
|
||||||
|
this.chartOptions.xaxis = {
|
||||||
|
type: 'datetime',
|
||||||
|
labels: {
|
||||||
|
datetimeUTC: false,
|
||||||
|
style: {
|
||||||
|
colors: fontColor()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.chartOptions.yaxis = {
|
||||||
|
tickAmount: 3,
|
||||||
|
min: 0,
|
||||||
|
labels: {
|
||||||
|
style: {
|
||||||
|
colors: fontColor()
|
||||||
|
},
|
||||||
|
formatter: (bytes) => {
|
||||||
|
return this.bytesToSize(bytes) + '/s'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.chartOptions.legend = {
|
||||||
|
labels: {
|
||||||
|
colors: fontColor()
|
||||||
|
},
|
||||||
|
onItemClick: {
|
||||||
|
toggleDataSeries: false
|
||||||
|
},
|
||||||
|
onItemHover: {
|
||||||
|
highlightDataSeries: false
|
||||||
|
},
|
||||||
|
}
|
||||||
|
this.$refs.chart.updateOptions(this.chartOptions)
|
||||||
|
}
|
||||||
|
if (typeof media.addEventListener === 'function') {
|
||||||
|
media.addEventListener('change', callback)
|
||||||
|
} else if (typeof media.addListener === 'function') {
|
||||||
|
media.addListener(callback)
|
||||||
|
}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
chartOptions: {
|
chartOptions: {
|
||||||
|
@ -54,7 +100,12 @@ export default {
|
||||||
},
|
},
|
||||||
xaxis: {
|
xaxis: {
|
||||||
type: 'datetime',
|
type: 'datetime',
|
||||||
labels: {datetimeUTC: false},
|
labels: {
|
||||||
|
datetimeUTC: false,
|
||||||
|
style: {
|
||||||
|
colors: fontColor()
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -63,12 +114,18 @@ export default {
|
||||||
tickAmount: 3,
|
tickAmount: 3,
|
||||||
min: 0,
|
min: 0,
|
||||||
labels: {
|
labels: {
|
||||||
|
style: {
|
||||||
|
colors: fontColor()
|
||||||
|
},
|
||||||
formatter: (bytes) => {
|
formatter: (bytes) => {
|
||||||
return this.bytesToSize(bytes) + '/s'
|
return this.bytesToSize(bytes) + '/s'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
legend: {
|
legend: {
|
||||||
|
labels: {
|
||||||
|
colors: fontColor()
|
||||||
|
},
|
||||||
onItemClick: {
|
onItemClick: {
|
||||||
toggleDataSeries: false
|
toggleDataSeries: false
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<p class="text">{{ centerText }}</p>
|
<p class="text">{{ centerText }}</p>
|
||||||
|
<p class="bottom_text">{{ bottomText }}</p>
|
||||||
<apexchart type="radialBar" height="205" :options="chartOptions" :series="series" ref="chart"/>
|
<apexchart type="radialBar" height="205" :options="chartOptions" :series="series" ref="chart"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -18,6 +19,7 @@ export default {
|
||||||
centerText: String,
|
centerText: String,
|
||||||
colors: String,
|
colors: String,
|
||||||
name: String,
|
name: String,
|
||||||
|
bottomText: String,
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
series: {
|
series: {
|
||||||
|
@ -49,9 +51,7 @@ export default {
|
||||||
offsetY: 60,
|
offsetY: 60,
|
||||||
fontSize: '14px',
|
fontSize: '14px',
|
||||||
color: undefined,
|
color: undefined,
|
||||||
formatter: function (val) {
|
formatter: () => {return ''}
|
||||||
return val + "%";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -87,7 +87,13 @@ export default {
|
||||||
top: calc(72px);
|
top: calc(72px);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
}
|
||||||
|
.bottom_text {
|
||||||
|
position: absolute;
|
||||||
|
top: calc(142px);
|
||||||
|
font-weight: 600;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -10,11 +10,15 @@ msgstr ""
|
||||||
"Generated-By: easygettext\n"
|
"Generated-By: easygettext\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: src/router/index.js:100
|
#: src/views/other/Install.vue:50
|
||||||
|
msgid "<translate>Install</translate>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/router/index.js:99
|
||||||
msgid "404 Not Found"
|
msgid "404 Not Found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/router/index.js:78
|
#: src/router/index.js:77
|
||||||
msgid "About"
|
msgid "About"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -24,7 +28,7 @@ msgid "Action"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/router/index.js:47 src/views/domain/DomainAdd.vue:18
|
#: src/router/index.js:47 src/views/domain/DomainAdd.vue:18
|
||||||
#: src/views/domain/DomainEdit.vue:45
|
#: src/views/domain/DomainEdit.vue:46
|
||||||
msgid "Add Site"
|
msgid "Add Site"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -77,6 +81,14 @@ msgstr ""
|
||||||
msgid "Configurations"
|
msgid "Configurations"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:204
|
||||||
|
msgid "CPU Status"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:22
|
||||||
|
msgid "CPU:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/user/User.vue:23
|
#: src/views/user/User.vue:23
|
||||||
msgid "Created at"
|
msgid "Created at"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -85,11 +97,11 @@ msgstr ""
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/other/Install.vue:105
|
#: src/views/other/Install.vue:106
|
||||||
msgid "Database (Optional, default: database)"
|
msgid "Database (Optional, default: database)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/router/index.js:126
|
#: src/router/index.js:125
|
||||||
msgid "Detected version update, this page will refresh."
|
msgid "Detected version update, this page will refresh."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -110,19 +122,23 @@ msgstr ""
|
||||||
msgid "Disabled successfully"
|
msgid "Disabled successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:282
|
||||||
|
msgid "Disk IO"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/domain/DomainEdit.vue:133
|
#: src/views/domain/DomainEdit.vue:133
|
||||||
msgid "Do you want to change the template to support the TLS?"
|
msgid "Do you want to change the template to support the TLS?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/domain/DomainEdit.vue:45
|
#: src/views/domain/DomainEdit.vue:46
|
||||||
msgid "Edit %{n}"
|
msgid "Edit %{n}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/router/index.js:68 src/views/config/ConfigEdit.vue:15
|
#: src/router/index.js:69 src/views/config/ConfigEdit.vue:15
|
||||||
msgid "Edit Configuration"
|
msgid "Edit Configuration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/domain/DomainEdit.vue:91
|
#: src/views/domain/DomainEdit.vue:92
|
||||||
msgid "Edit Configuration File"
|
msgid "Edit Configuration File"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -130,7 +146,7 @@ msgstr ""
|
||||||
msgid "Edit Site"
|
msgid "Edit Site"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/other/Install.vue:31
|
#: src/views/other/Install.vue:32
|
||||||
msgid "Email (*)"
|
msgid "Email (*)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -195,7 +211,7 @@ msgstr ""
|
||||||
msgid "Index (index)"
|
msgid "Index (index)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/router/index.js:88 src/views/other/Install.vue:50
|
#: src/router/index.js:87 src/views/other/Install.vue:51
|
||||||
msgid "Install"
|
msgid "Install"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -203,7 +219,7 @@ msgstr ""
|
||||||
msgid "Intermediate Certification Authorities: %{issuer}"
|
msgid "Intermediate Certification Authorities: %{issuer}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/other/Install.vue:46
|
#: src/views/other/Install.vue:47
|
||||||
msgid "Invalid E-mail!"
|
msgid "Invalid E-mail!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -216,11 +232,11 @@ msgctxt "Project"
|
||||||
msgid "License"
|
msgid "License"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:13
|
#: src/views/dashboard/DashBoard.vue:10
|
||||||
msgid "Load Averages:"
|
msgid "Load Averages:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/router/index.js:94 src/views/other/Login.vue:24
|
#: src/router/index.js:93 src/views/other/Login.vue:24
|
||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -251,7 +267,7 @@ msgstr ""
|
||||||
msgid "Manage Users"
|
msgid "Manage Users"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:24
|
#: src/views/dashboard/DashBoard.vue:100
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -259,7 +275,19 @@ msgstr ""
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/router/index.js:106
|
#: src/views/dashboard/DashBoard.vue:231
|
||||||
|
msgid "Network"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:165
|
||||||
|
msgid "Network Total Receive"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:174
|
||||||
|
msgid "Network Total Send"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/router/index.js:105
|
||||||
msgid "Not Found"
|
msgid "Not Found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -273,27 +301,31 @@ msgid ""
|
||||||
"you need to get the certificate."
|
"you need to get the certificate."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/router/index.js:130
|
#: src/router/index.js:129
|
||||||
msgid "OK"
|
msgid "OK"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:16
|
||||||
|
msgid "OS:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/other/Login.vue:56 src/views/user/User.vue:13
|
#: src/views/other/Login.vue:56 src/views/user/User.vue:13
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/other/Install.vue:83
|
#: src/views/other/Install.vue:84
|
||||||
msgid "Password (*)"
|
msgid "Password (*)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/other/Install.vue:50
|
#: src/views/other/Install.vue:51
|
||||||
msgid "Please input your E-mail!"
|
msgid "Please input your E-mail!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/other/Install.vue:96 src/views/other/Login.vue:69
|
#: src/views/other/Install.vue:97 src/views/other/Login.vue:69
|
||||||
msgid "Please input your password!"
|
msgid "Please input your password!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/other/Install.vue:73 src/views/other/Login.vue:46
|
#: src/views/other/Install.vue:74 src/views/other/Login.vue:46
|
||||||
msgid "Please input your username!"
|
msgid "Please input your username!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -305,6 +337,14 @@ msgstr ""
|
||||||
msgid "Project Team"
|
msgid "Project Team"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:61 src/views/dashboard/DashBoard.vue:305
|
||||||
|
msgid "Reads"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:51 src/views/dashboard/DashBoard.vue:240
|
||||||
|
msgid "Receive"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/domain/columns.js:16
|
#: src/views/domain/columns.js:16
|
||||||
msgid "Root Directory (root)"
|
msgid "Root Directory (root)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -324,17 +364,21 @@ msgstr ""
|
||||||
msgid "Saved successfully"
|
msgid "Saved successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:54 src/views/dashboard/DashBoard.vue:254
|
||||||
|
msgid "Send"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:71
|
#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:71
|
||||||
#: src/views/other/Login.vue:35
|
#: src/views/other/Login.vue:35
|
||||||
msgid "Server error"
|
msgid "Server error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/domain/columns.js:10
|
#: src/views/dashboard/DashBoard.vue:37
|
||||||
msgid "Server Names (server_name)"
|
msgid "Server Info"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:38
|
#: src/views/domain/columns.js:10
|
||||||
msgid "Server Status"
|
msgid "Server Names (server_name)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/router/index.js:43
|
#: src/router/index.js:43
|
||||||
|
@ -345,7 +389,7 @@ msgstr ""
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:33
|
#: src/views/dashboard/DashBoard.vue:132
|
||||||
msgid "Storage"
|
msgid "Storage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -353,7 +397,11 @@ msgstr ""
|
||||||
msgid "Subject Name: %{name}"
|
msgid "Subject Name: %{name}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/router/index.js:125
|
#: src/views/dashboard/DashBoard.vue:116
|
||||||
|
msgid "Swap"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/router/index.js:124
|
||||||
msgid "System message"
|
msgid "System message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -365,7 +413,7 @@ msgid ""
|
||||||
"from Let's Encrypt\" first."
|
"from Let's Encrypt\" first."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/other/Install.vue:120
|
#: src/views/other/Install.vue:121
|
||||||
msgid "The filename cannot contain the following characters: %{c}"
|
msgid "The filename cannot contain the following characters: %{c}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -385,22 +433,18 @@ msgstr ""
|
||||||
msgid "Updated at"
|
msgid "Updated at"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:12
|
#: src/views/dashboard/DashBoard.vue:6
|
||||||
msgid "Uptime"
|
msgid "Uptime:"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:95
|
|
||||||
msgid "Used: %{u}, Cached: %{c}, Free: %{f}, Physical Memory: %{p}"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:123
|
|
||||||
msgid "Used: %{used} / Total: %{total}"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/other/Login.vue:33 src/views/user/User.vue:5
|
#: src/views/other/Login.vue:33 src/views/user/User.vue:5
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/other/Install.vue:60
|
#: src/views/other/Install.vue:61
|
||||||
msgid "Username (*)"
|
msgid "Username (*)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:58 src/views/dashboard/DashBoard.vue:291
|
||||||
|
msgid "Writes"
|
||||||
|
msgstr ""
|
||||||
|
|
BIN
frontend/src/locale/zh_CN/LC_MESSAGES/app.mo
Normal file
BIN
frontend/src/locale/zh_CN/LC_MESSAGES/app.mo
Normal file
Binary file not shown.
|
@ -10,13 +10,17 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: easygettext\n"
|
"Generated-By: easygettext\n"
|
||||||
"X-Generator: Poedit 2.2\n"
|
"X-Generator: Poedit 3.0.1\n"
|
||||||
|
|
||||||
#: src/router/index.js:100
|
#: src/views/other/Install.vue:50
|
||||||
|
msgid "<translate>Install</translate>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/router/index.js:99
|
||||||
msgid "404 Not Found"
|
msgid "404 Not Found"
|
||||||
msgstr "404 未找到页面"
|
msgstr "404 未找到页面"
|
||||||
|
|
||||||
#: src/router/index.js:78
|
#: src/router/index.js:77
|
||||||
msgid "About"
|
msgid "About"
|
||||||
msgstr "关于"
|
msgstr "关于"
|
||||||
|
|
||||||
|
@ -26,7 +30,7 @@ msgid "Action"
|
||||||
msgstr "操作"
|
msgstr "操作"
|
||||||
|
|
||||||
#: src/router/index.js:47 src/views/domain/DomainAdd.vue:18
|
#: src/router/index.js:47 src/views/domain/DomainAdd.vue:18
|
||||||
#: src/views/domain/DomainEdit.vue:45
|
#: src/views/domain/DomainEdit.vue:46
|
||||||
msgid "Add Site"
|
msgid "Add Site"
|
||||||
msgstr "添加站点"
|
msgstr "添加站点"
|
||||||
|
|
||||||
|
@ -79,6 +83,14 @@ msgstr "配置名称"
|
||||||
msgid "Configurations"
|
msgid "Configurations"
|
||||||
msgstr "配置"
|
msgstr "配置"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:204
|
||||||
|
msgid "CPU Status"
|
||||||
|
msgstr "CPU 状态"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:22
|
||||||
|
msgid "CPU:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/user/User.vue:23
|
#: src/views/user/User.vue:23
|
||||||
msgid "Created at"
|
msgid "Created at"
|
||||||
msgstr "创建时间"
|
msgstr "创建时间"
|
||||||
|
@ -87,11 +99,11 @@ msgstr "创建时间"
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "仪表盘"
|
msgstr "仪表盘"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:105
|
#: src/views/other/Install.vue:106
|
||||||
msgid "Database (Optional, default: database)"
|
msgid "Database (Optional, default: database)"
|
||||||
msgstr "数据库 (可选,默认: database)"
|
msgstr "数据库 (可选,默认: database)"
|
||||||
|
|
||||||
#: src/router/index.js:126
|
#: src/router/index.js:125
|
||||||
msgid "Detected version update, this page will refresh."
|
msgid "Detected version update, this page will refresh."
|
||||||
msgstr "检测到版本更新,页面将会刷新。"
|
msgstr "检测到版本更新,页面将会刷新。"
|
||||||
|
|
||||||
|
@ -112,19 +124,23 @@ msgstr "禁用"
|
||||||
msgid "Disabled successfully"
|
msgid "Disabled successfully"
|
||||||
msgstr "禁用成功"
|
msgstr "禁用成功"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:282
|
||||||
|
msgid "Disk IO"
|
||||||
|
msgstr "磁盘 IO"
|
||||||
|
|
||||||
#: src/views/domain/DomainEdit.vue:133
|
#: src/views/domain/DomainEdit.vue:133
|
||||||
msgid "Do you want to change the template to support the TLS?"
|
msgid "Do you want to change the template to support the TLS?"
|
||||||
msgstr "你想要改变模板以支持 TLS 吗?"
|
msgstr "你想要改变模板以支持 TLS 吗?"
|
||||||
|
|
||||||
#: src/views/domain/DomainEdit.vue:45
|
#: src/views/domain/DomainEdit.vue:46
|
||||||
msgid "Edit %{n}"
|
msgid "Edit %{n}"
|
||||||
msgstr "编辑 %{n}"
|
msgstr "编辑 %{n}"
|
||||||
|
|
||||||
#: src/router/index.js:68 src/views/config/ConfigEdit.vue:15
|
#: src/router/index.js:69 src/views/config/ConfigEdit.vue:15
|
||||||
msgid "Edit Configuration"
|
msgid "Edit Configuration"
|
||||||
msgstr "编辑配置"
|
msgstr "编辑配置"
|
||||||
|
|
||||||
#: src/views/domain/DomainEdit.vue:91
|
#: src/views/domain/DomainEdit.vue:92
|
||||||
msgid "Edit Configuration File"
|
msgid "Edit Configuration File"
|
||||||
msgstr "编辑配置文件"
|
msgstr "编辑配置文件"
|
||||||
|
|
||||||
|
@ -132,7 +148,7 @@ msgstr "编辑配置文件"
|
||||||
msgid "Edit Site"
|
msgid "Edit Site"
|
||||||
msgstr "编辑站点"
|
msgstr "编辑站点"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:31
|
#: src/views/other/Install.vue:32
|
||||||
msgid "Email (*)"
|
msgid "Email (*)"
|
||||||
msgstr "邮箱 (*)"
|
msgstr "邮箱 (*)"
|
||||||
|
|
||||||
|
@ -197,7 +213,7 @@ msgstr "HTTPS 监听端口"
|
||||||
msgid "Index (index)"
|
msgid "Index (index)"
|
||||||
msgstr "网站首页 (index)"
|
msgstr "网站首页 (index)"
|
||||||
|
|
||||||
#: src/router/index.js:88 src/views/other/Install.vue:50
|
#: src/router/index.js:87 src/views/other/Install.vue:51
|
||||||
msgid "Install"
|
msgid "Install"
|
||||||
msgstr "安装"
|
msgstr "安装"
|
||||||
|
|
||||||
|
@ -205,7 +221,7 @@ msgstr "安装"
|
||||||
msgid "Intermediate Certification Authorities: %{issuer}"
|
msgid "Intermediate Certification Authorities: %{issuer}"
|
||||||
msgstr "中级证书颁发机构: %{issuer}"
|
msgstr "中级证书颁发机构: %{issuer}"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:46
|
#: src/views/other/Install.vue:47
|
||||||
msgid "Invalid E-mail!"
|
msgid "Invalid E-mail!"
|
||||||
msgstr "无效的邮箱!"
|
msgstr "无效的邮箱!"
|
||||||
|
|
||||||
|
@ -218,11 +234,11 @@ msgctxt "Project"
|
||||||
msgid "License"
|
msgid "License"
|
||||||
msgstr "开源许可"
|
msgstr "开源许可"
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:13
|
#: src/views/dashboard/DashBoard.vue:10
|
||||||
msgid "Load Averages:"
|
msgid "Load Averages:"
|
||||||
msgstr "系统负载:"
|
msgstr "系统负载:"
|
||||||
|
|
||||||
#: src/router/index.js:94 src/views/other/Login.vue:24
|
#: src/router/index.js:93 src/views/other/Login.vue:24
|
||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "登录"
|
msgstr "登录"
|
||||||
|
|
||||||
|
@ -240,8 +256,8 @@ msgid ""
|
||||||
"directory to <code>HTTPChallengePort</code> (default: 9180) before getting "
|
"directory to <code>HTTPChallengePort</code> (default: 9180) before getting "
|
||||||
"the certificate."
|
"the certificate."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"在获取签发证书前,请确保配置文件中已将 <code>.well-known</code> 目录反向代理"
|
"在获取签发证书前,请确保配置文件中已将 <code>.well-known</code> 目录反向代"
|
||||||
"到<code>HTTPChallengePort</code> (默认: 9180)"
|
"理到<code>HTTPChallengePort</code> (默认: 9180)"
|
||||||
|
|
||||||
#: src/router/index.js:60
|
#: src/router/index.js:60
|
||||||
msgid "Manage Configs"
|
msgid "Manage Configs"
|
||||||
|
@ -255,7 +271,7 @@ msgstr "网站管理"
|
||||||
msgid "Manage Users"
|
msgid "Manage Users"
|
||||||
msgstr "用户管理"
|
msgstr "用户管理"
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:24
|
#: src/views/dashboard/DashBoard.vue:100
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "内存"
|
msgstr "内存"
|
||||||
|
|
||||||
|
@ -263,7 +279,19 @@ msgstr "内存"
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "名称"
|
msgstr "名称"
|
||||||
|
|
||||||
#: src/router/index.js:106
|
#: src/views/dashboard/DashBoard.vue:231
|
||||||
|
msgid "Network"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:165
|
||||||
|
msgid "Network Total Receive"
|
||||||
|
msgstr "下载流量"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:174
|
||||||
|
msgid "Network Total Send"
|
||||||
|
msgstr "上传流量"
|
||||||
|
|
||||||
|
#: src/router/index.js:105
|
||||||
msgid "Not Found"
|
msgid "Not Found"
|
||||||
msgstr "找不到页面"
|
msgstr "找不到页面"
|
||||||
|
|
||||||
|
@ -277,27 +305,31 @@ msgid ""
|
||||||
"you need to get the certificate."
|
"you need to get the certificate."
|
||||||
msgstr "注意:当前配置中的 server_name 必须为需要申请证书的域名。"
|
msgstr "注意:当前配置中的 server_name 必须为需要申请证书的域名。"
|
||||||
|
|
||||||
#: src/router/index.js:130
|
#: src/router/index.js:129
|
||||||
msgid "OK"
|
msgid "OK"
|
||||||
msgstr "确定"
|
msgstr "确定"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:16
|
||||||
|
msgid "OS:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/other/Login.vue:56 src/views/user/User.vue:13
|
#: src/views/other/Login.vue:56 src/views/user/User.vue:13
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "密码"
|
msgstr "密码"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:83
|
#: src/views/other/Install.vue:84
|
||||||
msgid "Password (*)"
|
msgid "Password (*)"
|
||||||
msgstr "密码 (*)"
|
msgstr "密码 (*)"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:50
|
#: src/views/other/Install.vue:51
|
||||||
msgid "Please input your E-mail!"
|
msgid "Please input your E-mail!"
|
||||||
msgstr "请输入您的邮箱!"
|
msgstr "请输入您的邮箱!"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:96 src/views/other/Login.vue:69
|
#: src/views/other/Install.vue:97 src/views/other/Login.vue:69
|
||||||
msgid "Please input your password!"
|
msgid "Please input your password!"
|
||||||
msgstr "请输入您的密码!"
|
msgstr "请输入您的密码!"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:73 src/views/other/Login.vue:46
|
#: src/views/other/Install.vue:74 src/views/other/Login.vue:46
|
||||||
msgid "Please input your username!"
|
msgid "Please input your username!"
|
||||||
msgstr "请输入您的用户名!"
|
msgstr "请输入您的用户名!"
|
||||||
|
|
||||||
|
@ -309,6 +341,14 @@ msgstr "私钥路径 (ssl_certificate_key)"
|
||||||
msgid "Project Team"
|
msgid "Project Team"
|
||||||
msgstr "项目团队"
|
msgstr "项目团队"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:61 src/views/dashboard/DashBoard.vue:305
|
||||||
|
msgid "Reads"
|
||||||
|
msgstr "读"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:51 src/views/dashboard/DashBoard.vue:240
|
||||||
|
msgid "Receive"
|
||||||
|
msgstr "下载"
|
||||||
|
|
||||||
#: src/views/domain/columns.js:16
|
#: src/views/domain/columns.js:16
|
||||||
msgid "Root Directory (root)"
|
msgid "Root Directory (root)"
|
||||||
msgstr "网站根目录 (root)"
|
msgstr "网站根目录 (root)"
|
||||||
|
@ -328,19 +368,23 @@ msgstr "保存错误 %{msg}"
|
||||||
msgid "Saved successfully"
|
msgid "Saved successfully"
|
||||||
msgstr "保存成功"
|
msgstr "保存成功"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:54 src/views/dashboard/DashBoard.vue:254
|
||||||
|
msgid "Send"
|
||||||
|
msgstr "上传"
|
||||||
|
|
||||||
#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:71
|
#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:71
|
||||||
#: src/views/other/Login.vue:35
|
#: src/views/other/Login.vue:35
|
||||||
msgid "Server error"
|
msgid "Server error"
|
||||||
msgstr "服务器错误"
|
msgstr "服务器错误"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:37
|
||||||
|
msgid "Server Info"
|
||||||
|
msgstr "服务器信息"
|
||||||
|
|
||||||
#: src/views/domain/columns.js:10
|
#: src/views/domain/columns.js:10
|
||||||
msgid "Server Names (server_name)"
|
msgid "Server Names (server_name)"
|
||||||
msgstr "网站域名 (server_name)"
|
msgstr "网站域名 (server_name)"
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:38
|
|
||||||
msgid "Server Status"
|
|
||||||
msgstr "服务器状态"
|
|
||||||
|
|
||||||
#: src/router/index.js:43
|
#: src/router/index.js:43
|
||||||
msgid "Sites List"
|
msgid "Sites List"
|
||||||
msgstr "站点列表"
|
msgstr "站点列表"
|
||||||
|
@ -349,7 +393,7 @@ msgstr "站点列表"
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "状态"
|
msgstr "状态"
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:33
|
#: src/views/dashboard/DashBoard.vue:132
|
||||||
msgid "Storage"
|
msgid "Storage"
|
||||||
msgstr "存储"
|
msgstr "存储"
|
||||||
|
|
||||||
|
@ -357,7 +401,11 @@ msgstr "存储"
|
||||||
msgid "Subject Name: %{name}"
|
msgid "Subject Name: %{name}"
|
||||||
msgstr "主体名称: %{name}"
|
msgstr "主体名称: %{name}"
|
||||||
|
|
||||||
#: src/router/index.js:125
|
#: src/views/dashboard/DashBoard.vue:116
|
||||||
|
msgid "Swap"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/router/index.js:124
|
||||||
msgid "System message"
|
msgid "System message"
|
||||||
msgstr "系统消息"
|
msgstr "系统消息"
|
||||||
|
|
||||||
|
@ -371,7 +419,7 @@ msgstr ""
|
||||||
"系统将会每小时检测一次该域名证书,若距离上次签发已超过1个月,则将自动续签。"
|
"系统将会每小时检测一次该域名证书,若距离上次签发已超过1个月,则将自动续签。"
|
||||||
"<br/>如果您之前没有证书,请先点击 \"从 Let's Encrypt 获取证书\"。"
|
"<br/>如果您之前没有证书,请先点击 \"从 Let's Encrypt 获取证书\"。"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:120
|
#: src/views/other/Install.vue:121
|
||||||
msgid "The filename cannot contain the following characters: %{c}"
|
msgid "The filename cannot contain the following characters: %{c}"
|
||||||
msgstr "文件名不能包含以下字符: %{c}"
|
msgstr "文件名不能包含以下字符: %{c}"
|
||||||
|
|
||||||
|
@ -381,8 +429,8 @@ msgid ""
|
||||||
"fields in your configuration file. The configuration filename cannot be "
|
"fields in your configuration file. The configuration filename cannot be "
|
||||||
"changed after it has been created."
|
"changed after it has been created."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"只有在您的配置文件中有相应字段时,下列的配置才能生效。配置文件名称创建后不可"
|
"只有在您的配置文件中有相应字段时,下列的配置才能生效。配置文件名称创建后不"
|
||||||
"修改。"
|
"可修改。"
|
||||||
|
|
||||||
#: src/views/domain/DomainEdit.vue:134
|
#: src/views/domain/DomainEdit.vue:134
|
||||||
msgid "This operation will lose the custom configuration."
|
msgid "This operation will lose the custom configuration."
|
||||||
|
@ -393,25 +441,30 @@ msgstr "该操作将会丢失自定义配置。"
|
||||||
msgid "Updated at"
|
msgid "Updated at"
|
||||||
msgstr "修改时间"
|
msgstr "修改时间"
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:12
|
#: src/views/dashboard/DashBoard.vue:6
|
||||||
msgid "Uptime"
|
msgid "Uptime:"
|
||||||
msgstr "运行时间"
|
msgstr "运行时间:"
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:95
|
|
||||||
msgid "Used: %{u}, Cached: %{c}, Free: %{f}, Physical Memory: %{p}"
|
|
||||||
msgstr "已使用: %{u}, 缓存: %{c}, 空闲: %{f}, 物理内存: %{p}"
|
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:123
|
|
||||||
msgid "Used: %{used} / Total: %{total}"
|
|
||||||
msgstr "已使用: %{used} / 总共: %{total}"
|
|
||||||
|
|
||||||
#: src/views/other/Login.vue:33 src/views/user/User.vue:5
|
#: src/views/other/Login.vue:33 src/views/user/User.vue:5
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "用户名"
|
msgstr "用户名"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:60
|
#: src/views/other/Install.vue:61
|
||||||
msgid "Username (*)"
|
msgid "Username (*)"
|
||||||
msgstr "用户名 (*)"
|
msgstr "用户名 (*)"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:58 src/views/dashboard/DashBoard.vue:291
|
||||||
|
msgid "Writes"
|
||||||
|
msgstr "写"
|
||||||
|
|
||||||
|
#~ msgid "Server Status"
|
||||||
|
#~ msgstr "服务器状态"
|
||||||
|
|
||||||
|
#~ msgid "Used: %{u}, Cached: %{c}, Free: %{f}, Physical Memory: %{p}"
|
||||||
|
#~ msgstr "已使用: %{u}, 缓存: %{c}, 空闲: %{f}, 物理内存: %{p}"
|
||||||
|
|
||||||
|
#~ msgid "Used: %{used} / Total: %{total}"
|
||||||
|
#~ msgstr "已使用: %{used} / 总共: %{total}"
|
||||||
|
|
||||||
#~ msgid "CPU"
|
#~ msgid "CPU"
|
||||||
#~ msgstr "CPU"
|
#~ msgstr "CPU"
|
||||||
|
|
|
@ -13,11 +13,15 @@ msgstr ""
|
||||||
"Generated-By: easygettext\n"
|
"Generated-By: easygettext\n"
|
||||||
"X-Generator: Poedit 2.2\n"
|
"X-Generator: Poedit 2.2\n"
|
||||||
|
|
||||||
#: src/router/index.js:100
|
#: src/views/other/Install.vue:50
|
||||||
|
msgid "<translate>Install</translate>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/router/index.js:99
|
||||||
msgid "404 Not Found"
|
msgid "404 Not Found"
|
||||||
msgstr "404 未找到頁面"
|
msgstr "404 未找到頁面"
|
||||||
|
|
||||||
#: src/router/index.js:78
|
#: src/router/index.js:77
|
||||||
msgid "About"
|
msgid "About"
|
||||||
msgstr "關於"
|
msgstr "關於"
|
||||||
|
|
||||||
|
@ -27,7 +31,7 @@ msgid "Action"
|
||||||
msgstr "操作"
|
msgstr "操作"
|
||||||
|
|
||||||
#: src/router/index.js:47 src/views/domain/DomainAdd.vue:18
|
#: src/router/index.js:47 src/views/domain/DomainAdd.vue:18
|
||||||
#: src/views/domain/DomainEdit.vue:45
|
#: src/views/domain/DomainEdit.vue:46
|
||||||
msgid "Add Site"
|
msgid "Add Site"
|
||||||
msgstr "新增站點"
|
msgstr "新增站點"
|
||||||
|
|
||||||
|
@ -80,6 +84,15 @@ msgstr "配置名稱"
|
||||||
msgid "Configurations"
|
msgid "Configurations"
|
||||||
msgstr "配置"
|
msgstr "配置"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:204
|
||||||
|
#, fuzzy
|
||||||
|
msgid "CPU Status"
|
||||||
|
msgstr "狀態"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:22
|
||||||
|
msgid "CPU:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/user/User.vue:23
|
#: src/views/user/User.vue:23
|
||||||
msgid "Created at"
|
msgid "Created at"
|
||||||
msgstr "建立時間"
|
msgstr "建立時間"
|
||||||
|
@ -88,11 +101,11 @@ msgstr "建立時間"
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "儀表盤"
|
msgstr "儀表盤"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:105
|
#: src/views/other/Install.vue:106
|
||||||
msgid "Database (Optional, default: database)"
|
msgid "Database (Optional, default: database)"
|
||||||
msgstr "資料庫 (可選,預設: database)"
|
msgstr "資料庫 (可選,預設: database)"
|
||||||
|
|
||||||
#: src/router/index.js:126
|
#: src/router/index.js:125
|
||||||
msgid "Detected version update, this page will refresh."
|
msgid "Detected version update, this page will refresh."
|
||||||
msgstr "檢測到版本更新,頁面將會重新整理。"
|
msgstr "檢測到版本更新,頁面將會重新整理。"
|
||||||
|
|
||||||
|
@ -113,19 +126,23 @@ msgstr "禁用"
|
||||||
msgid "Disabled successfully"
|
msgid "Disabled successfully"
|
||||||
msgstr "禁用成功"
|
msgstr "禁用成功"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:282
|
||||||
|
msgid "Disk IO"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/domain/DomainEdit.vue:133
|
#: src/views/domain/DomainEdit.vue:133
|
||||||
msgid "Do you want to change the template to support the TLS?"
|
msgid "Do you want to change the template to support the TLS?"
|
||||||
msgstr "你想要改變模板以支援 TLS 嗎?"
|
msgstr "你想要改變模板以支援 TLS 嗎?"
|
||||||
|
|
||||||
#: src/views/domain/DomainEdit.vue:45
|
#: src/views/domain/DomainEdit.vue:46
|
||||||
msgid "Edit %{n}"
|
msgid "Edit %{n}"
|
||||||
msgstr "編輯 %{n}"
|
msgstr "編輯 %{n}"
|
||||||
|
|
||||||
#: src/router/index.js:68 src/views/config/ConfigEdit.vue:15
|
#: src/router/index.js:69 src/views/config/ConfigEdit.vue:15
|
||||||
msgid "Edit Configuration"
|
msgid "Edit Configuration"
|
||||||
msgstr "編輯配置"
|
msgstr "編輯配置"
|
||||||
|
|
||||||
#: src/views/domain/DomainEdit.vue:91
|
#: src/views/domain/DomainEdit.vue:92
|
||||||
msgid "Edit Configuration File"
|
msgid "Edit Configuration File"
|
||||||
msgstr "編輯配置檔案"
|
msgstr "編輯配置檔案"
|
||||||
|
|
||||||
|
@ -133,7 +150,7 @@ msgstr "編輯配置檔案"
|
||||||
msgid "Edit Site"
|
msgid "Edit Site"
|
||||||
msgstr "編輯站點"
|
msgstr "編輯站點"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:31
|
#: src/views/other/Install.vue:32
|
||||||
msgid "Email (*)"
|
msgid "Email (*)"
|
||||||
msgstr "郵箱 (*)"
|
msgstr "郵箱 (*)"
|
||||||
|
|
||||||
|
@ -198,7 +215,7 @@ msgstr "HTTPS 監聽埠"
|
||||||
msgid "Index (index)"
|
msgid "Index (index)"
|
||||||
msgstr "網站首頁 (index)"
|
msgstr "網站首頁 (index)"
|
||||||
|
|
||||||
#: src/router/index.js:88 src/views/other/Install.vue:50
|
#: src/router/index.js:87 src/views/other/Install.vue:51
|
||||||
msgid "Install"
|
msgid "Install"
|
||||||
msgstr "安裝"
|
msgstr "安裝"
|
||||||
|
|
||||||
|
@ -206,7 +223,7 @@ msgstr "安裝"
|
||||||
msgid "Intermediate Certification Authorities: %{issuer}"
|
msgid "Intermediate Certification Authorities: %{issuer}"
|
||||||
msgstr "中級證書頒發機構: %{issuer}"
|
msgstr "中級證書頒發機構: %{issuer}"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:46
|
#: src/views/other/Install.vue:47
|
||||||
msgid "Invalid E-mail!"
|
msgid "Invalid E-mail!"
|
||||||
msgstr "無效的郵箱!"
|
msgstr "無效的郵箱!"
|
||||||
|
|
||||||
|
@ -219,11 +236,11 @@ msgctxt "Project"
|
||||||
msgid "License"
|
msgid "License"
|
||||||
msgstr "開源許可"
|
msgstr "開源許可"
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:13
|
#: src/views/dashboard/DashBoard.vue:10
|
||||||
msgid "Load Averages:"
|
msgid "Load Averages:"
|
||||||
msgstr "系統負載:"
|
msgstr "系統負載:"
|
||||||
|
|
||||||
#: src/router/index.js:94 src/views/other/Login.vue:24
|
#: src/router/index.js:93 src/views/other/Login.vue:24
|
||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "登入"
|
msgstr "登入"
|
||||||
|
|
||||||
|
@ -256,7 +273,7 @@ msgstr "網站管理"
|
||||||
msgid "Manage Users"
|
msgid "Manage Users"
|
||||||
msgstr "使用者管理"
|
msgstr "使用者管理"
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:24
|
#: src/views/dashboard/DashBoard.vue:100
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "記憶體"
|
msgstr "記憶體"
|
||||||
|
|
||||||
|
@ -264,7 +281,19 @@ msgstr "記憶體"
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "名稱"
|
msgstr "名稱"
|
||||||
|
|
||||||
#: src/router/index.js:106
|
#: src/views/dashboard/DashBoard.vue:231
|
||||||
|
msgid "Network"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:165
|
||||||
|
msgid "Network Total Receive"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:174
|
||||||
|
msgid "Network Total Send"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/router/index.js:105
|
||||||
msgid "Not Found"
|
msgid "Not Found"
|
||||||
msgstr "找不到頁面"
|
msgstr "找不到頁面"
|
||||||
|
|
||||||
|
@ -278,27 +307,31 @@ msgid ""
|
||||||
"you need to get the certificate."
|
"you need to get the certificate."
|
||||||
msgstr "注意:當前配置中的 server_name 必須為需要申請證書的域名。"
|
msgstr "注意:當前配置中的 server_name 必須為需要申請證書的域名。"
|
||||||
|
|
||||||
#: src/router/index.js:130
|
#: src/router/index.js:129
|
||||||
msgid "OK"
|
msgid "OK"
|
||||||
msgstr "確定"
|
msgstr "確定"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:16
|
||||||
|
msgid "OS:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/other/Login.vue:56 src/views/user/User.vue:13
|
#: src/views/other/Login.vue:56 src/views/user/User.vue:13
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "密碼"
|
msgstr "密碼"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:83
|
#: src/views/other/Install.vue:84
|
||||||
msgid "Password (*)"
|
msgid "Password (*)"
|
||||||
msgstr "密碼 (*)"
|
msgstr "密碼 (*)"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:50
|
#: src/views/other/Install.vue:51
|
||||||
msgid "Please input your E-mail!"
|
msgid "Please input your E-mail!"
|
||||||
msgstr "請輸入您的郵箱!"
|
msgstr "請輸入您的郵箱!"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:96 src/views/other/Login.vue:69
|
#: src/views/other/Install.vue:97 src/views/other/Login.vue:69
|
||||||
msgid "Please input your password!"
|
msgid "Please input your password!"
|
||||||
msgstr "請輸入您的密碼!"
|
msgstr "請輸入您的密碼!"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:73 src/views/other/Login.vue:46
|
#: src/views/other/Install.vue:74 src/views/other/Login.vue:46
|
||||||
msgid "Please input your username!"
|
msgid "Please input your username!"
|
||||||
msgstr "請輸入您的使用者名稱!"
|
msgstr "請輸入您的使用者名稱!"
|
||||||
|
|
||||||
|
@ -310,6 +343,14 @@ msgstr "私鑰路徑 (ssl_certificate_key)"
|
||||||
msgid "Project Team"
|
msgid "Project Team"
|
||||||
msgstr "專案團隊"
|
msgstr "專案團隊"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:61 src/views/dashboard/DashBoard.vue:305
|
||||||
|
msgid "Reads"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:51 src/views/dashboard/DashBoard.vue:240
|
||||||
|
msgid "Receive"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/domain/columns.js:16
|
#: src/views/domain/columns.js:16
|
||||||
msgid "Root Directory (root)"
|
msgid "Root Directory (root)"
|
||||||
msgstr "網站根目錄 (root)"
|
msgstr "網站根目錄 (root)"
|
||||||
|
@ -329,19 +370,24 @@ msgstr "儲存錯誤 %{msg}"
|
||||||
msgid "Saved successfully"
|
msgid "Saved successfully"
|
||||||
msgstr "儲存成功"
|
msgstr "儲存成功"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:54 src/views/dashboard/DashBoard.vue:254
|
||||||
|
msgid "Send"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:71
|
#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:71
|
||||||
#: src/views/other/Login.vue:35
|
#: src/views/other/Login.vue:35
|
||||||
msgid "Server error"
|
msgid "Server error"
|
||||||
msgstr "伺服器錯誤"
|
msgstr "伺服器錯誤"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:37
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Server Info"
|
||||||
|
msgstr "伺服器錯誤"
|
||||||
|
|
||||||
#: src/views/domain/columns.js:10
|
#: src/views/domain/columns.js:10
|
||||||
msgid "Server Names (server_name)"
|
msgid "Server Names (server_name)"
|
||||||
msgstr "網站域名 (server_name)"
|
msgstr "網站域名 (server_name)"
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:38
|
|
||||||
msgid "Server Status"
|
|
||||||
msgstr "伺服器狀態"
|
|
||||||
|
|
||||||
#: src/router/index.js:43
|
#: src/router/index.js:43
|
||||||
msgid "Sites List"
|
msgid "Sites List"
|
||||||
msgstr "站點列表"
|
msgstr "站點列表"
|
||||||
|
@ -350,7 +396,7 @@ msgstr "站點列表"
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "狀態"
|
msgstr "狀態"
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:33
|
#: src/views/dashboard/DashBoard.vue:132
|
||||||
msgid "Storage"
|
msgid "Storage"
|
||||||
msgstr "儲存"
|
msgstr "儲存"
|
||||||
|
|
||||||
|
@ -358,7 +404,11 @@ msgstr "儲存"
|
||||||
msgid "Subject Name: %{name}"
|
msgid "Subject Name: %{name}"
|
||||||
msgstr "主體名稱: %{name}"
|
msgstr "主體名稱: %{name}"
|
||||||
|
|
||||||
#: src/router/index.js:125
|
#: src/views/dashboard/DashBoard.vue:116
|
||||||
|
msgid "Swap"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/router/index.js:124
|
||||||
msgid "System message"
|
msgid "System message"
|
||||||
msgstr "系統訊息"
|
msgstr "系統訊息"
|
||||||
|
|
||||||
|
@ -372,7 +422,7 @@ msgstr ""
|
||||||
"系統將會每小時檢測一次該域名證書,若距離上次簽發已超過1個月,則將自動續簽。"
|
"系統將會每小時檢測一次該域名證書,若距離上次簽發已超過1個月,則將自動續簽。"
|
||||||
"<br/>如果您之前沒有證書,請先點選「從 Let's Encrypt 獲取證書」。"
|
"<br/>如果您之前沒有證書,請先點選「從 Let's Encrypt 獲取證書」。"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:120
|
#: src/views/other/Install.vue:121
|
||||||
msgid "The filename cannot contain the following characters: %{c}"
|
msgid "The filename cannot contain the following characters: %{c}"
|
||||||
msgstr "檔名不能包含以下字元: %{c}"
|
msgstr "檔名不能包含以下字元: %{c}"
|
||||||
|
|
||||||
|
@ -394,25 +444,31 @@ msgstr "該操作將會丟失自定義配置。"
|
||||||
msgid "Updated at"
|
msgid "Updated at"
|
||||||
msgstr "修改時間"
|
msgstr "修改時間"
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:12
|
#: src/views/dashboard/DashBoard.vue:6
|
||||||
msgid "Uptime"
|
#, fuzzy
|
||||||
|
msgid "Uptime:"
|
||||||
msgstr "執行時間"
|
msgstr "執行時間"
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:95
|
|
||||||
msgid "Used: %{u}, Cached: %{c}, Free: %{f}, Physical Memory: %{p}"
|
|
||||||
msgstr "已使用: %{u}, 快取: %{c}, 空閒: %{f}, 物理記憶體: %{p}"
|
|
||||||
|
|
||||||
#: src/views/dashboard/DashBoard.vue:123
|
|
||||||
msgid "Used: %{used} / Total: %{total}"
|
|
||||||
msgstr "已使用: %{used} / 總共: %{total}"
|
|
||||||
|
|
||||||
#: src/views/other/Login.vue:33 src/views/user/User.vue:5
|
#: src/views/other/Login.vue:33 src/views/user/User.vue:5
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "使用者名稱"
|
msgstr "使用者名稱"
|
||||||
|
|
||||||
#: src/views/other/Install.vue:60
|
#: src/views/other/Install.vue:61
|
||||||
msgid "Username (*)"
|
msgid "Username (*)"
|
||||||
msgstr "使用者名稱 (*)"
|
msgstr "使用者名稱 (*)"
|
||||||
|
|
||||||
|
#: src/views/dashboard/DashBoard.vue:58 src/views/dashboard/DashBoard.vue:291
|
||||||
|
msgid "Writes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#~ msgid "Server Status"
|
||||||
|
#~ msgstr "伺服器狀態"
|
||||||
|
|
||||||
|
#~ msgid "Used: %{u}, Cached: %{c}, Free: %{f}, Physical Memory: %{p}"
|
||||||
|
#~ msgstr "已使用: %{u}, 快取: %{c}, 空閒: %{f}, 物理記憶體: %{p}"
|
||||||
|
|
||||||
|
#~ msgid "Used: %{used} / Total: %{total}"
|
||||||
|
#~ msgstr "已使用: %{used} / 總共: %{total}"
|
||||||
|
|
||||||
#~ msgid "CPU"
|
#~ msgid "CPU"
|
||||||
#~ msgstr "CPU"
|
#~ msgstr "CPU"
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<a-row :gutter="[16,16]" class="first-row">
|
<a-row :gutter="[16,16]" class="first-row">
|
||||||
<a-col :lg="7" :md="24">
|
<a-col :xl="6" :lg="24" :md="24">
|
||||||
<a-card :title="$gettext('Server Info')">
|
<a-card :title="$gettext('Server Info')">
|
||||||
<p>
|
<p>
|
||||||
<translate>Uptime:</translate>
|
<translate>Uptime:</translate>
|
||||||
|
@ -23,37 +23,28 @@
|
||||||
<translate>CPU:</translate>
|
<translate>CPU:</translate>
|
||||||
{{ cpu_info[0]?.modelName }} * {{ cpu_info.length }}
|
{{ cpu_info[0]?.modelName }} * {{ cpu_info.length }}
|
||||||
</p>
|
</p>
|
||||||
<!-- <p><translate>Memory</translate>: {{-->
|
|
||||||
<!-- $gettextInterpolate(-->
|
|
||||||
<!-- $gettext('Used: %{u}, Cached: %{c}, Free: %{f}, Physical Memory: %{p}'),-->
|
|
||||||
<!-- {u: memory_used, c: memory_cached, f: memory_free, p: memory_total})-->
|
|
||||||
<!-- }}</p>-->
|
|
||||||
<!-- <p><translate>Storage</translate>: {{-->
|
|
||||||
<!-- $gettextInterpolate($gettext('Used: %{used} / Total: %{total}'),-->
|
|
||||||
<!-- {used: disk_used, total: disk_total})-->
|
|
||||||
<!-- }}-->
|
|
||||||
<!-- </p>-->
|
|
||||||
</a-card>
|
</a-card>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="12" :md="24" class="chart_dashboard">
|
<a-col :xl="12" :lg="18" :md="24" class="chart_dashboard">
|
||||||
<a-card>
|
<a-card>
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :xs="24" :sm="24" :md="8">
|
<a-col :xs="24" :sm="24" :md="8">
|
||||||
<radial-bar-chart :name="$gettext('Memory')" :series="[memory_pressure]"
|
<radial-bar-chart :name="$gettext('Memory')" :series="[memory_pressure]"
|
||||||
:centerText="memory_used" colors="#36a3eb"/>
|
:centerText="memory_used" :bottom-text="memory_total" colors="#36a3eb"/>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :xs="24" :sm="12" :md="8">
|
<a-col :xs="24" :sm="12" :md="8">
|
||||||
<radial-bar-chart :name="$gettext('Swap')" :series="[memory_swap_percent]"
|
<radial-bar-chart :name="$gettext('Swap')" :series="[memory_swap_percent]"
|
||||||
:centerText="memory_swap_used" colors="#ff6385"/>
|
:centerText="memory_swap_used"
|
||||||
|
:bottom-text="memory_swap_total" colors="#ff6385"/>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :xs="24" :sm="12" :md="8">
|
<a-col :xs="24" :sm="12" :md="8">
|
||||||
<radial-bar-chart :name="$gettext('Storage')" :series="[disk_percentage]"
|
<radial-bar-chart :name="$gettext('Storage')" :series="[disk_percentage]"
|
||||||
:centerText="disk_used" colors="#87d068"/>
|
:centerText="disk_used" :bottom-text="disk_total" colors="#87d068"/>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-card>
|
</a-card>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="5" :sm="24" class="chart_dashboard">
|
<a-col :xl="6" :lg="6" :sm="24" class="chart_dashboard">
|
||||||
<a-card>
|
<a-card>
|
||||||
<a-row :gutter="16">
|
<a-row :gutter="16">
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
|
@ -62,14 +53,14 @@
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-statistic :value="bytesToSize(net.last_sent)"
|
<a-statistic :value="bytesToSize(net.last_sent)"
|
||||||
:title="$gettext('Network Total Send')" />
|
:title="$gettext('Network Total Send')"/>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-card>
|
</a-card>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<a-row class="row-two" :gutter="[16,32]">
|
<a-row class="row-two" :gutter="[16,32]">
|
||||||
<a-col :lg="8" :md="24" :sm="24">
|
<a-col :xl="7" :lg="24" :md="24" :sm="24">
|
||||||
<a-card :title="$gettext('CPU Status')">
|
<a-card :title="$gettext('CPU Status')">
|
||||||
<a-statistic :value="cpu" title="CPU">
|
<a-statistic :value="cpu" title="CPU">
|
||||||
<template v-slot:suffix>
|
<template v-slot:suffix>
|
||||||
|
@ -79,7 +70,7 @@
|
||||||
<c-p-u-chart :series="cpu_analytic_series"/>
|
<c-p-u-chart :series="cpu_analytic_series"/>
|
||||||
</a-card>
|
</a-card>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="8" :md="24" :sm="24">
|
<a-col :xl="10" :lg="12" :md="24" :sm="24">
|
||||||
<a-card :title="$gettext('Network')">
|
<a-card :title="$gettext('Network')">
|
||||||
<a-row :gutter="16">
|
<a-row :gutter="16">
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
@ -101,7 +92,7 @@
|
||||||
<net-chart :series="net_analytic"/>
|
<net-chart :series="net_analytic"/>
|
||||||
</a-card>
|
</a-card>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="8" :md="24" :sm="24">
|
<a-col :xl="7" :lg="12" :md="24" :sm="24">
|
||||||
<a-card :title="$gettext('Disk IO')">
|
<a-card :title="$gettext('Disk IO')">
|
||||||
<a-row :gutter="16">
|
<a-row :gutter="16">
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
@ -163,6 +154,7 @@ export default {
|
||||||
}],
|
}],
|
||||||
cpu: 0,
|
cpu: 0,
|
||||||
memory_swap_used: '',
|
memory_swap_used: '',
|
||||||
|
memory_swap_total: '',
|
||||||
memory_swap_percent: 0,
|
memory_swap_percent: 0,
|
||||||
disk_percentage: 0,
|
disk_percentage: 0,
|
||||||
disk_total: '',
|
disk_total: '',
|
||||||
|
@ -253,6 +245,7 @@ export default {
|
||||||
this.memory_total = r.memory_total
|
this.memory_total = r.memory_total
|
||||||
this.memory_swap_percent = r.memory_swap_percent
|
this.memory_swap_percent = r.memory_swap_percent
|
||||||
this.memory_swap_used = r.memory_swap_used
|
this.memory_swap_used = r.memory_swap_used
|
||||||
|
this.memory_swap_total = r.memory_swap_total
|
||||||
|
|
||||||
// disk
|
// disk
|
||||||
this.disk_percentage = r.disk_percentage
|
this.disk_percentage = r.disk_percentage
|
||||||
|
@ -277,8 +270,8 @@ export default {
|
||||||
this.net_analytic[1].data.push([time, this.net.sent])
|
this.net_analytic[1].data.push([time, this.net.sent])
|
||||||
|
|
||||||
if (this.net_analytic[0].data.length > 100) {
|
if (this.net_analytic[0].data.length > 100) {
|
||||||
this.net_analytic[1].data.shift()
|
|
||||||
this.net_analytic[0].data.shift()
|
this.net_analytic[0].data.shift()
|
||||||
|
this.net_analytic[1].data.shift()
|
||||||
}
|
}
|
||||||
|
|
||||||
// diskIO
|
// diskIO
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
<p>Vue</p>
|
<p>Vue</p>
|
||||||
<p>Websocket</p>
|
<p>Websocket</p>
|
||||||
<h3 v-translate translate-context="Project">License</h3>
|
<h3 v-translate translate-context="Project">License</h3>
|
||||||
<p>GNU General Public License v2.0</p>
|
<p>GNU General Public License v3.0</p>
|
||||||
<p>Copyright © 2020 - {{ this_year }} Nginx UI </p>
|
<p>Copyright © 2020 - {{ this_year }} Nginx UI </p>
|
||||||
</a-card>
|
</a-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
3
main.go
3
main.go
|
@ -3,6 +3,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"flag"
|
"flag"
|
||||||
|
"github.com/0xJacky/Nginx-UI/server/analytic"
|
||||||
"github.com/0xJacky/Nginx-UI/server/model"
|
"github.com/0xJacky/Nginx-UI/server/model"
|
||||||
"github.com/0xJacky/Nginx-UI/server/router"
|
"github.com/0xJacky/Nginx-UI/server/router"
|
||||||
"github.com/0xJacky/Nginx-UI/server/settings"
|
"github.com/0xJacky/Nginx-UI/server/settings"
|
||||||
|
@ -36,7 +37,7 @@ func main() {
|
||||||
if "" != settings.ServerSettings.JwtSecret {
|
if "" != settings.ServerSettings.JwtSecret {
|
||||||
model.Init()
|
model.Init()
|
||||||
go tool.AutoCert()
|
go tool.AutoCert()
|
||||||
go tool.RecordServerAnalytic()
|
go analytic.RecordServerAnalytic()
|
||||||
}
|
}
|
||||||
|
|
||||||
srv := &http.Server{
|
srv := &http.Server{
|
||||||
|
|
58
server/analytic/analytic.go
Normal file
58
server/analytic/analytic.go
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
package analytic
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/shirou/gopsutil/v3/net"
|
||||||
|
"log"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
type usage struct {
|
||||||
|
Time time.Time `json:"x"`
|
||||||
|
Usage interface{} `json:"y"`
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
CpuUserRecord []usage
|
||||||
|
CpuTotalRecord []usage
|
||||||
|
NetRecvRecord []usage
|
||||||
|
NetSentRecord []usage
|
||||||
|
DiskWriteRecord []usage
|
||||||
|
DiskReadRecord []usage
|
||||||
|
LastDiskWrites uint64
|
||||||
|
LastDiskReads uint64
|
||||||
|
LastNetSent uint64
|
||||||
|
LastNetRecv uint64
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
network, _ := net.IOCounters(false)
|
||||||
|
|
||||||
|
if len(network) > 0 {
|
||||||
|
LastNetRecv = network[0].BytesRecv
|
||||||
|
LastNetSent = network[0].BytesSent
|
||||||
|
}
|
||||||
|
|
||||||
|
LastDiskReads, LastDiskWrites = getTotalDiskIO()
|
||||||
|
|
||||||
|
now := time.Now()
|
||||||
|
// init record slices
|
||||||
|
for i := 100; i > 0; i-- {
|
||||||
|
u := usage{Time: now.Add(time.Duration(-i) * time.Second), Usage: 0}
|
||||||
|
CpuUserRecord = append(CpuUserRecord, u)
|
||||||
|
CpuTotalRecord = append(CpuTotalRecord, u)
|
||||||
|
NetRecvRecord = append(NetRecvRecord, u)
|
||||||
|
NetSentRecord = append(NetSentRecord, u)
|
||||||
|
DiskWriteRecord = append(DiskWriteRecord, u)
|
||||||
|
DiskReadRecord = append(DiskReadRecord, u)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func RecordServerAnalytic() {
|
||||||
|
log.Println("[Nginx UI] RecordServerAnalytic Started")
|
||||||
|
for {
|
||||||
|
now := time.Now()
|
||||||
|
recordCpu(now) // this func will spend more than 1 second.
|
||||||
|
recordNetwork(now)
|
||||||
|
recordDiskIO(now)
|
||||||
|
}
|
||||||
|
}
|
96
server/analytic/record.go
Normal file
96
server/analytic/record.go
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
package analytic
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/shirou/gopsutil/v3/cpu"
|
||||||
|
"github.com/shirou/gopsutil/v3/disk"
|
||||||
|
"github.com/shirou/gopsutil/v3/net"
|
||||||
|
"runtime"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func getTotalDiskIO() (read, write uint64) {
|
||||||
|
diskIOCounters, _ := disk.IOCounters()
|
||||||
|
for _, v := range diskIOCounters {
|
||||||
|
write += v.WriteCount
|
||||||
|
read += v.ReadCount
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func recordCpu(now time.Time) {
|
||||||
|
cpuTimesBefore, _ := cpu.Times(false)
|
||||||
|
time.Sleep(1000 * time.Millisecond)
|
||||||
|
cpuTimesAfter, _ := cpu.Times(false)
|
||||||
|
threadNum := runtime.GOMAXPROCS(0)
|
||||||
|
|
||||||
|
cpuUserUsage := (cpuTimesAfter[0].User - cpuTimesBefore[0].User) / (float64(1000*threadNum) / 1000)
|
||||||
|
cpuUserUsage *= 100
|
||||||
|
cpuSystemUsage := (cpuTimesAfter[0].System - cpuTimesBefore[0].System) / (float64(1000*threadNum) / 1000)
|
||||||
|
cpuSystemUsage *= 100
|
||||||
|
|
||||||
|
u := usage{
|
||||||
|
Time: now,
|
||||||
|
Usage: cpuUserUsage,
|
||||||
|
}
|
||||||
|
|
||||||
|
CpuUserRecord = append(CpuUserRecord, u)
|
||||||
|
|
||||||
|
s := usage{
|
||||||
|
Time: now,
|
||||||
|
Usage: cpuUserUsage + cpuSystemUsage,
|
||||||
|
}
|
||||||
|
|
||||||
|
CpuTotalRecord = append(CpuTotalRecord, s)
|
||||||
|
|
||||||
|
if len(CpuUserRecord) > 100 {
|
||||||
|
CpuUserRecord = CpuUserRecord[1:]
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(CpuTotalRecord) > 100 {
|
||||||
|
CpuTotalRecord = CpuTotalRecord[1:]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func recordNetwork(now time.Time) {
|
||||||
|
network, _ := net.IOCounters(false)
|
||||||
|
if len(network) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
NetRecvRecord = append(NetRecvRecord, usage{
|
||||||
|
Time: now,
|
||||||
|
Usage: network[0].BytesRecv - LastNetRecv,
|
||||||
|
})
|
||||||
|
NetSentRecord = append(NetSentRecord, usage{
|
||||||
|
Time: now,
|
||||||
|
Usage: network[0].BytesSent - LastNetSent,
|
||||||
|
})
|
||||||
|
LastNetRecv = network[0].BytesRecv
|
||||||
|
LastNetSent = network[0].BytesSent
|
||||||
|
if len(NetRecvRecord) > 100 {
|
||||||
|
NetRecvRecord = NetRecvRecord[1:]
|
||||||
|
}
|
||||||
|
if len(NetSentRecord) > 100 {
|
||||||
|
NetSentRecord = NetSentRecord[1:]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func recordDiskIO(now time.Time) {
|
||||||
|
readCount, writeCount := getTotalDiskIO()
|
||||||
|
|
||||||
|
DiskReadRecord = append(DiskReadRecord, usage{
|
||||||
|
Time: now,
|
||||||
|
Usage: readCount - LastDiskReads,
|
||||||
|
})
|
||||||
|
DiskWriteRecord = append(DiskWriteRecord, usage{
|
||||||
|
Time: now,
|
||||||
|
Usage: writeCount - LastDiskWrites,
|
||||||
|
})
|
||||||
|
if len(DiskReadRecord) > 100 {
|
||||||
|
DiskReadRecord = DiskReadRecord[1:]
|
||||||
|
}
|
||||||
|
if len(DiskWriteRecord) > 100 {
|
||||||
|
DiskWriteRecord = DiskWriteRecord[1:]
|
||||||
|
}
|
||||||
|
LastDiskWrites = writeCount
|
||||||
|
LastDiskReads = readCount
|
||||||
|
}
|
|
@ -3,7 +3,7 @@ package api
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/0xJacky/Nginx-UI/server/tool"
|
"github.com/0xJacky/Nginx-UI/server/analytic"
|
||||||
"github.com/shirou/gopsutil/v3/cpu"
|
"github.com/shirou/gopsutil/v3/cpu"
|
||||||
"github.com/shirou/gopsutil/v3/disk"
|
"github.com/shirou/gopsutil/v3/disk"
|
||||||
"github.com/shirou/gopsutil/v3/host"
|
"github.com/shirou/gopsutil/v3/host"
|
||||||
|
@ -89,8 +89,8 @@ func Analytic(c *gin.Context) {
|
||||||
response["disk_percentage"], _ = strconv.ParseFloat(fmt.Sprintf("%.2f", diskUsage.UsedPercent), 64)
|
response["disk_percentage"], _ = strconv.ParseFloat(fmt.Sprintf("%.2f", diskUsage.UsedPercent), 64)
|
||||||
|
|
||||||
response["diskIO"] = gin.H{
|
response["diskIO"] = gin.H{
|
||||||
"writes": tool.DiskWriteBuffer[len(tool.DiskWriteBuffer)-1],
|
"writes": analytic.DiskWriteRecord[len(analytic.DiskWriteRecord)-1],
|
||||||
"reads": tool.DiskReadBuffer[len(tool.DiskReadBuffer)-1],
|
"reads": analytic.DiskReadRecord[len(analytic.DiskReadRecord)-1],
|
||||||
}
|
}
|
||||||
|
|
||||||
network, _ := net.IOCounters(false)
|
network, _ := net.IOCounters(false)
|
||||||
|
@ -125,17 +125,17 @@ func GetAnalyticInit(c *gin.Context) {
|
||||||
"host": hostInfo,
|
"host": hostInfo,
|
||||||
"cpu": gin.H{
|
"cpu": gin.H{
|
||||||
"info": cpuInfo,
|
"info": cpuInfo,
|
||||||
"user": tool.CpuUserBuffer,
|
"user": analytic.CpuUserRecord,
|
||||||
"total": tool.CpuTotalBuffer,
|
"total": analytic.CpuTotalRecord,
|
||||||
},
|
},
|
||||||
"network": gin.H{
|
"network": gin.H{
|
||||||
"init": _net,
|
"init": _net,
|
||||||
"bytesRecv": tool.NetRecvBuffer,
|
"bytesRecv": analytic.NetRecvRecord,
|
||||||
"bytesSent": tool.NetSentBuffer,
|
"bytesSent": analytic.NetSentRecord,
|
||||||
},
|
},
|
||||||
"diskIO": gin.H{
|
"diskIO": gin.H{
|
||||||
"writes": tool.DiskWriteBuffer,
|
"writes": analytic.DiskWriteRecord,
|
||||||
"reads": tool.DiskReadBuffer,
|
"reads": analytic.DiskReadRecord,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,6 @@ type Server struct {
|
||||||
HTTPChallengePort string
|
HTTPChallengePort string
|
||||||
Email string
|
Email string
|
||||||
Database string
|
Database string
|
||||||
DiskName string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var ServerSettings = &Server{
|
var ServerSettings = &Server{
|
||||||
|
@ -23,7 +22,6 @@ var ServerSettings = &Server{
|
||||||
RunMode: "debug",
|
RunMode: "debug",
|
||||||
HTTPChallengePort: "9180",
|
HTTPChallengePort: "9180",
|
||||||
Database: "database",
|
Database: "database",
|
||||||
DiskName: "vda",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var ConfPath string
|
var ConfPath string
|
||||||
|
|
|
@ -1,124 +0,0 @@
|
||||||
package tool
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/0xJacky/Nginx-UI/server/settings"
|
|
||||||
"github.com/shirou/gopsutil/v3/cpu"
|
|
||||||
"github.com/shirou/gopsutil/v3/disk"
|
|
||||||
"github.com/shirou/gopsutil/v3/net"
|
|
||||||
"runtime"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
type usage struct {
|
|
||||||
Time time.Time `json:"x"`
|
|
||||||
Usage float64 `json:"y"`
|
|
||||||
}
|
|
||||||
|
|
||||||
var CpuUserBuffer []usage
|
|
||||||
var CpuTotalBuffer []usage
|
|
||||||
var NetRecvBuffer []usage
|
|
||||||
var NetSentBuffer []usage
|
|
||||||
var DiskWriteBuffer []usage
|
|
||||||
var DiskReadBuffer []usage
|
|
||||||
|
|
||||||
var LastDiskWrites uint64
|
|
||||||
var LastDiskReads uint64
|
|
||||||
|
|
||||||
var LastNetRecv uint64
|
|
||||||
var LastNetSent uint64
|
|
||||||
|
|
||||||
func RecordServerAnalytic() {
|
|
||||||
network, _ := net.IOCounters(false)
|
|
||||||
diskIOCounters, _ := disk.IOCounters(settings.ServerSettings.DiskName)
|
|
||||||
diskIO, ok := diskIOCounters[settings.ServerSettings.DiskName]
|
|
||||||
|
|
||||||
if ok {
|
|
||||||
LastDiskWrites = diskIO.WriteCount
|
|
||||||
LastDiskReads = diskIO.ReadCount
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(network) > 0 {
|
|
||||||
LastNetRecv = network[0].BytesRecv
|
|
||||||
LastNetSent = network[0].BytesSent
|
|
||||||
}
|
|
||||||
|
|
||||||
now := time.Now()
|
|
||||||
// 初始化记录数组
|
|
||||||
for i := 100; i > 0; i-- {
|
|
||||||
u := usage{Time: now.Add(time.Duration(-i) * time.Second)}
|
|
||||||
CpuUserBuffer = append(CpuUserBuffer, u)
|
|
||||||
CpuTotalBuffer = append(CpuTotalBuffer, u)
|
|
||||||
NetRecvBuffer = append(NetRecvBuffer, u)
|
|
||||||
NetSentBuffer = append(NetSentBuffer, u)
|
|
||||||
DiskWriteBuffer = append(DiskWriteBuffer, u)
|
|
||||||
DiskReadBuffer = append(DiskReadBuffer, u)
|
|
||||||
}
|
|
||||||
for {
|
|
||||||
cpuTimesBefore, _ := cpu.Times(false)
|
|
||||||
time.Sleep(1000 * time.Millisecond)
|
|
||||||
cpuTimesAfter, _ := cpu.Times(false)
|
|
||||||
threadNum := runtime.GOMAXPROCS(0)
|
|
||||||
|
|
||||||
cpuUserUsage := (cpuTimesAfter[0].User - cpuTimesBefore[0].User) / (float64(1000*threadNum) / 1000)
|
|
||||||
cpuUserUsage *= 100
|
|
||||||
cpuSystemUsage := (cpuTimesAfter[0].System - cpuTimesBefore[0].System) / (float64(1000*threadNum) / 1000)
|
|
||||||
cpuSystemUsage *= 100
|
|
||||||
now := time.Now()
|
|
||||||
u := usage{
|
|
||||||
Time: now,
|
|
||||||
Usage: cpuUserUsage,
|
|
||||||
}
|
|
||||||
CpuUserBuffer = append(CpuUserBuffer, u)
|
|
||||||
s := usage{
|
|
||||||
Time: now,
|
|
||||||
Usage: cpuUserUsage + cpuSystemUsage,
|
|
||||||
}
|
|
||||||
CpuTotalBuffer = append(CpuTotalBuffer, s)
|
|
||||||
if len(CpuUserBuffer) > 100 {
|
|
||||||
CpuUserBuffer = CpuUserBuffer[1:]
|
|
||||||
}
|
|
||||||
if len(CpuTotalBuffer) > 100 {
|
|
||||||
CpuTotalBuffer = CpuTotalBuffer[1:]
|
|
||||||
}
|
|
||||||
network, _ = net.IOCounters(false)
|
|
||||||
if len(network) == 0 {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
NetRecvBuffer = append(NetRecvBuffer, usage{
|
|
||||||
Time: now,
|
|
||||||
Usage: float64(network[0].BytesRecv - LastNetRecv),
|
|
||||||
})
|
|
||||||
NetSentBuffer = append(NetRecvBuffer, usage{
|
|
||||||
Time: now,
|
|
||||||
Usage: float64(network[0].BytesSent - LastNetSent),
|
|
||||||
})
|
|
||||||
LastNetRecv = network[0].BytesRecv
|
|
||||||
LastNetSent = network[0].BytesSent
|
|
||||||
if len(NetRecvBuffer) > 100 {
|
|
||||||
NetRecvBuffer = NetRecvBuffer[1:]
|
|
||||||
}
|
|
||||||
if len(NetSentBuffer) > 100 {
|
|
||||||
NetSentBuffer = NetSentBuffer[1:]
|
|
||||||
}
|
|
||||||
diskIOCounters, _ = disk.IOCounters(settings.ServerSettings.DiskName)
|
|
||||||
diskIO, ok = diskIOCounters[settings.ServerSettings.DiskName]
|
|
||||||
if ok {
|
|
||||||
DiskReadBuffer = append(DiskReadBuffer, usage{
|
|
||||||
Time: now,
|
|
||||||
Usage: float64(diskIO.ReadCount - LastDiskReads),
|
|
||||||
})
|
|
||||||
DiskWriteBuffer = append(DiskWriteBuffer, usage{
|
|
||||||
Time: now,
|
|
||||||
Usage: float64(diskIO.WriteCount - LastDiskWrites),
|
|
||||||
})
|
|
||||||
if len(DiskReadBuffer) > 100 {
|
|
||||||
DiskReadBuffer = DiskReadBuffer[1:]
|
|
||||||
}
|
|
||||||
if len(DiskWriteBuffer) > 100 {
|
|
||||||
DiskWriteBuffer = DiskWriteBuffer[1:]
|
|
||||||
}
|
|
||||||
LastDiskWrites = diskIO.WriteCount
|
|
||||||
LastDiskReads = diskIO.ReadCount
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Add table
Add a link
Reference in a new issue