mirror of
https://github.com/woodchen-ink/nezha-dash-v1.git
synced 2025-07-18 17:41:56 +08:00
commit
40e186714f
12
package.json
12
package.json
@ -24,8 +24,8 @@
|
|||||||
"@radix-ui/react-separator": "^1.1.1",
|
"@radix-ui/react-separator": "^1.1.1",
|
||||||
"@radix-ui/react-slot": "^1.1.1",
|
"@radix-ui/react-slot": "^1.1.1",
|
||||||
"@radix-ui/react-switch": "^1.1.2",
|
"@radix-ui/react-switch": "^1.1.2",
|
||||||
"@tanstack/react-query": "^5.62.8",
|
"@tanstack/react-query": "^5.62.11",
|
||||||
"@tanstack/react-query-devtools": "^5.62.8",
|
"@tanstack/react-query-devtools": "^5.62.11",
|
||||||
"@tanstack/react-table": "^8.20.6",
|
"@tanstack/react-table": "^8.20.6",
|
||||||
"@trivago/prettier-plugin-sort-imports": "^5.2.0",
|
"@trivago/prettier-plugin-sort-imports": "^5.2.0",
|
||||||
"@types/d3-geo": "^3.1.0",
|
"@types/d3-geo": "^3.1.0",
|
||||||
@ -43,10 +43,10 @@
|
|||||||
"react": "^19.0.0",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^19.0.0",
|
"react-dom": "^19.0.0",
|
||||||
"react-i18next": "^15.2.0",
|
"react-i18next": "^15.2.0",
|
||||||
"react-router-dom": "^7.1.0",
|
"react-router-dom": "^7.1.1",
|
||||||
"recharts": "^2.15.0",
|
"recharts": "^2.15.0",
|
||||||
"sonner": "^1.7.1",
|
"sonner": "^1.7.1",
|
||||||
"tailwind-merge": "^2.5.5",
|
"tailwind-merge": "^2.6.0",
|
||||||
"tailwindcss-animate": "^1.0.7"
|
"tailwindcss-animate": "^1.0.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@ -63,7 +63,7 @@
|
|||||||
"postcss": "^8.4.49",
|
"postcss": "^8.4.49",
|
||||||
"tailwindcss": "^3.4.17",
|
"tailwindcss": "^3.4.17",
|
||||||
"typescript": "~5.6.3",
|
"typescript": "~5.6.3",
|
||||||
"typescript-eslint": "^8.18.1",
|
"typescript-eslint": "^8.18.2",
|
||||||
"vite": "^6.0.5"
|
"vite": "^6.0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
12
src/App.tsx
12
src/App.tsx
@ -32,11 +32,11 @@ const App: React.FC = () => {
|
|||||||
(window.ForceTheme as string) !== "" ? window.ForceTheme : undefined
|
(window.ForceTheme as string) !== "" ? window.ForceTheme : undefined
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (settingData?.data?.custom_code) {
|
if (settingData?.data?.config?.custom_code) {
|
||||||
InjectContext(settingData?.data?.custom_code)
|
InjectContext(settingData?.data?.config?.custom_code)
|
||||||
setIsCustomCodeInjected(true)
|
setIsCustomCodeInjected(true)
|
||||||
}
|
}
|
||||||
}, [settingData?.data?.custom_code])
|
}, [settingData?.data?.config?.custom_code])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (forceTheme === "dark" || forceTheme === "light") {
|
if (forceTheme === "dark" || forceTheme === "light") {
|
||||||
@ -52,12 +52,12 @@ const App: React.FC = () => {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
if (settingData?.data?.custom_code && !isCustomCodeInjected) {
|
if (settingData?.data?.config?.custom_code && !isCustomCodeInjected) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
if (settingData?.data?.language && !localStorage.getItem("language")) {
|
if (settingData?.data?.config?.language && !localStorage.getItem("language")) {
|
||||||
i18n.changeLanguage(settingData?.data?.language)
|
i18n.changeLanguage(settingData?.data?.config?.language)
|
||||||
}
|
}
|
||||||
|
|
||||||
const customBackgroundImage =
|
const customBackgroundImage =
|
||||||
|
@ -30,7 +30,7 @@ function Header() {
|
|||||||
|
|
||||||
const onlineCount = connected ? (lastMessage ? JSON.parse(lastMessage.data).online || 0 : 0) : "..."
|
const onlineCount = connected ? (lastMessage ? JSON.parse(lastMessage.data).online || 0 : 0) : "..."
|
||||||
|
|
||||||
const siteName = settingData?.data?.site_name
|
const siteName = settingData?.data?.config?.site_name
|
||||||
|
|
||||||
// @ts-expect-error CustomLogo is a global variable
|
// @ts-expect-error CustomLogo is a global variable
|
||||||
const customLogo = window.CustomLogo || "/apple-touch-icon.png"
|
const customLogo = window.CustomLogo || "/apple-touch-icon.png"
|
||||||
|
119
src/locales/de/translation.json
Normal file
119
src/locales/de/translation.json
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
{
|
||||||
|
"refreshing": "Aktualisieren",
|
||||||
|
"serviceTracker": {
|
||||||
|
"uptime": "Uptime",
|
||||||
|
"today": "Heute",
|
||||||
|
"noService": "Keine Servicedaten",
|
||||||
|
"daysAgo": "vor Tagen",
|
||||||
|
"loading": "Laden..."
|
||||||
|
},
|
||||||
|
"serverCard": {
|
||||||
|
"uptime": "Uptime",
|
||||||
|
"mem": "MEM",
|
||||||
|
"upload": "Upload",
|
||||||
|
"download": "Download",
|
||||||
|
"system": "System",
|
||||||
|
"stg": "STG",
|
||||||
|
"totalDownload": "Download",
|
||||||
|
"days": "Tage",
|
||||||
|
"hours": "Stunden",
|
||||||
|
"totalUpload": "Upload"
|
||||||
|
},
|
||||||
|
"serverDetail": {
|
||||||
|
"unknown": "Unbekannt",
|
||||||
|
"arch": "Arch",
|
||||||
|
"status": "Status",
|
||||||
|
"online": "Online",
|
||||||
|
"days": "Tage",
|
||||||
|
"upload": "Upload",
|
||||||
|
"download": "Download",
|
||||||
|
"offline": "Offline",
|
||||||
|
"uptime": "Uptime",
|
||||||
|
"version": "Version",
|
||||||
|
"mem": "Speicher",
|
||||||
|
"disk": "Festplatte",
|
||||||
|
"region": "Region",
|
||||||
|
"system": "System",
|
||||||
|
"lastActive": "Letzte Aktivität",
|
||||||
|
"temperature": "Temperatur"
|
||||||
|
},
|
||||||
|
"theme": {
|
||||||
|
"system": "Folgen Sie dem System",
|
||||||
|
"light": "Hell",
|
||||||
|
"dark": "Dunkel"
|
||||||
|
},
|
||||||
|
"monitor": {
|
||||||
|
"monitorCount": "Services",
|
||||||
|
"noData": "Kein Server Monitoring Daten, bitte fügen sie zuerst einen Monitor hinzu",
|
||||||
|
"avgDelay": "Latenz"
|
||||||
|
},
|
||||||
|
"billingInfo": {
|
||||||
|
"error": "Fehler",
|
||||||
|
"remaining": "Verbleibend",
|
||||||
|
"indefinite": "Unbestimmt",
|
||||||
|
"expired": "Verfallen",
|
||||||
|
"days": "tage",
|
||||||
|
"price": "Preis",
|
||||||
|
"free": "Kostenlos",
|
||||||
|
"usage-baseed": "Verwendungsbasiert"
|
||||||
|
},
|
||||||
|
"overview": "Überblick",
|
||||||
|
"map": {
|
||||||
|
"Regions": "Regionen",
|
||||||
|
"Servers": "server",
|
||||||
|
"Distributions": "Server sind verteilt in"
|
||||||
|
},
|
||||||
|
"pwa": {
|
||||||
|
"reload": "Update",
|
||||||
|
"newContent": "Neue Inhalte verfügbar",
|
||||||
|
"offlineReady": "Anwendung bereit, offline zu verwenden"
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"pageNotFound": "Seite nicht gefunden",
|
||||||
|
"backToHome": "Zurück zur Startseite"
|
||||||
|
},
|
||||||
|
"whereTheTimeIs": "Wo die Zeit ist",
|
||||||
|
"info": {
|
||||||
|
"websocketConnecting": "WebSocket verbindet",
|
||||||
|
"websocketConnected": "WebSocket verbunden",
|
||||||
|
"websocketDisconnected": "WebSocket getrennt",
|
||||||
|
"processing": "Verarbeiten..."
|
||||||
|
},
|
||||||
|
"tabSwitch": {
|
||||||
|
"Network": "Netzwerk",
|
||||||
|
"Detail": "Detail"
|
||||||
|
},
|
||||||
|
"nezha": "Nezha Monitoring",
|
||||||
|
"dashboard": "Dashboard",
|
||||||
|
"serverDetailChart": {
|
||||||
|
"upload": "Upload",
|
||||||
|
"download": "Download",
|
||||||
|
"process": "Prozess",
|
||||||
|
"disk": "Festplatte",
|
||||||
|
"mem": "Speicher",
|
||||||
|
"swap": "Swap"
|
||||||
|
},
|
||||||
|
"language": {
|
||||||
|
"zh-TW": "Traditionelles Chinesisch",
|
||||||
|
"en-US": "Englisch",
|
||||||
|
"zh-CN": "vereinfachtes Chinesisch"
|
||||||
|
},
|
||||||
|
"online": "Online",
|
||||||
|
"offline": "Offline",
|
||||||
|
"serverOverview": {
|
||||||
|
"totalServers": "Server insgesamt",
|
||||||
|
"onlineServers": "Online Server",
|
||||||
|
"offlineServers": "Offline Server",
|
||||||
|
"totalBandwidth": "Gesamte Bandbreite",
|
||||||
|
"speed": "Geschwindigkeit",
|
||||||
|
"network": "Netzwerk"
|
||||||
|
},
|
||||||
|
"cycleTransfer": {
|
||||||
|
"used": "benutzt",
|
||||||
|
"total": "gesamt",
|
||||||
|
"nextUpdate": "nächstes update"
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"themeBy": "Design von "
|
||||||
|
}
|
||||||
|
}
|
@ -140,12 +140,19 @@ export interface CycleTransferData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type SettingConfig = {
|
||||||
|
debug: boolean
|
||||||
|
language: string
|
||||||
|
site_name: string
|
||||||
|
user_template: string
|
||||||
|
admin_template: string
|
||||||
|
custom_code: string
|
||||||
|
}
|
||||||
|
|
||||||
export interface SettingResponse {
|
export interface SettingResponse {
|
||||||
success: boolean
|
success: boolean
|
||||||
data: {
|
data: {
|
||||||
language: string
|
config: SettingConfig
|
||||||
site_name: string
|
|
||||||
custom_code: string
|
|
||||||
version: string
|
version: string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user