feat(node): Move the node configuration to the server module

This commit is contained in:
web@ppanel 2025-01-14 14:41:34 +07:00
parent f90d4d2ce6
commit 7f0f5ce9db
49 changed files with 544 additions and 500 deletions

View File

@ -14,8 +14,8 @@ import { Table, TableBody, TableCell, TableRow } from '@workspace/ui/components/
import { ArrayInput } from '@workspace/ui/custom-components/dynamic-Inputs';
import { EnhancedInput } from '@workspace/ui/custom-components/enhanced-input';
import { DicesIcon } from 'lucide-react';
import { nanoid } from 'nanoid';
import { useTranslations } from 'next-intl';
import { uid } from 'radash';
import { useMemo, useState } from 'react';
import { Cell, Legend, Pie, PieChart } from 'recharts';
import { toast } from 'sonner';
@ -28,8 +28,52 @@ const COLORS = [
'hsl(var(--chart-5))',
];
export default function Node() {
const t = useTranslations('system.node');
const MINUTES_IN_DAY = 1440; // 24 * 60
function getTimeRangeData(slots: API.TimePeriod[]) {
const timePoints = slots
.flatMap((slot) => {
const [startH = 0, startM = 0] = slot.start_time.split(':').map(Number);
const [endH = 0, endM = 0] = slot.end_time.split(':').map(Number);
const start = startH * 60 + startM;
let end = endH * 60 + endM;
if (end < start) end += MINUTES_IN_DAY;
return { start, end, multiplier: slot.multiplier };
})
.sort((a, b) => a.start - b.start);
const result = [];
let currentMinute = 0;
timePoints.forEach((point) => {
if (point.start > currentMinute) {
result.push({
name: `${Math.floor(currentMinute / 60)}:${String(currentMinute % 60).padStart(2, '0')} - ${Math.floor(point.start / 60)}:${String(point.start % 60).padStart(2, '0')}`,
value: point.start - currentMinute,
multiplier: 1,
});
}
result.push({
name: `${Math.floor(point.start / 60)}:${String(point.start % 60).padStart(2, '0')} - ${Math.floor((point.end / 60) % 24)}:${String(point.end % 60).padStart(2, '0')}`,
value: point.end - point.start,
multiplier: point.multiplier,
});
currentMinute = point.end % MINUTES_IN_DAY;
});
if (currentMinute < MINUTES_IN_DAY) {
result.push({
name: `${Math.floor(currentMinute / 60)}:${String(currentMinute % 60).padStart(2, '0')} - 24:00`,
value: MINUTES_IN_DAY - currentMinute,
multiplier: 1,
});
}
return result;
}
export default function NodeConfig() {
const t = useTranslations('server.config');
const { data, refetch } = useQuery({
queryKey: ['getNodeConfig'],
@ -68,10 +112,7 @@ export default function Node() {
});
const chartTimeSlots = useMemo(() => {
return timeSlots.map((slot) => ({
name: `${slot.start_time} - ${slot.end_time}`,
value: slot.multiplier,
}));
return getTimeRangeData(timeSlots);
}, [timeSlots]);
const chartConfig = useMemo(() => {
@ -104,7 +145,9 @@ export default function Node() {
suffix={
<DicesIcon
onClick={() => {
updateConfig('node_secret', nanoid());
const id = uid(32).toLowerCase();
const formatted = `${id.slice(0, 8)}-${id.slice(8, 12)}-${id.slice(12, 16)}-${id.slice(16, 20)}-${id.slice(20)}`;
updateConfig('node_secret', formatted);
}}
/>
}
@ -136,6 +179,7 @@ export default function Node() {
<EnhancedInput
type='number'
min={0}
step={0.1}
value={data?.node_push_interval}
onValueBlur={(value) => updateConfig('node_push_interval', value)}
placeholder={t('inputPlaceholder')}
@ -187,8 +231,8 @@ export default function Node() {
outerRadius='80%'
fill='#8884d8'
dataKey='value'
label={({ name, percent, value }) =>
`${value?.toFixed(2)}x (${(percent * 100).toFixed(0)}%)`
label={({ name, percent, multiplier }) =>
`${multiplier?.toFixed(2)}x (${(percent * 100).toFixed(0)}%)`
}
>
{chartTimeSlots.map((entry, index) => (
@ -214,7 +258,7 @@ export default function Node() {
<span className='text-muted-foreground text-[0.70rem] uppercase'>
{t('multiplier')}
</span>
<span className='font-bold'>{data.value.toFixed(2)}x</span>
<span className='font-bold'>{data.multiplier.toFixed(2)}x</span>
</div>
</div>
</div>
@ -236,7 +280,7 @@ export default function Node() {
type: 'time',
},
{ name: 'end_time', prefix: t('endTime'), type: 'time' },
{ name: 'multiplier', prefix: t('multiplier'), type: 'number' },
{ name: 'multiplier', prefix: t('multiplier'), type: 'number', placeholder: '0' },
]}
value={timeSlots}
onChange={setTimeSlots}

View File

@ -2,6 +2,7 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from '@workspace/ui/componen
import { getTranslations } from 'next-intl/server';
import GroupTable from './group-table';
import NodeConfig from './node-config';
import NodeTable from './node-table';
export default async function Page() {
@ -12,6 +13,7 @@ export default async function Page() {
<TabsList>
<TabsTrigger value='node'>{t('tabs.node')}</TabsTrigger>
<TabsTrigger value='group'>{t('tabs.nodeGroup')}</TabsTrigger>
<TabsTrigger value='config'>{t('tabs.nodeConfig')}</TabsTrigger>
</TabsList>
<TabsContent value='node'>
<NodeTable />
@ -19,6 +21,9 @@ export default async function Page() {
<TabsContent value='group'>
<GroupTable />
</TabsContent>
<TabsContent value='config'>
<NodeConfig />
</TabsContent>
</Tabs>
);
}

View File

@ -3,7 +3,6 @@ import { getTranslations } from 'next-intl/server';
import Currency from './currency';
import Invite from './invite';
import Node from './node';
import Site from './site';
import Telegram from './telegram';
import Tos from './tos';
@ -18,7 +17,6 @@ export default async function Page() {
<TabsTrigger value='site'>{t('tabs.site')}</TabsTrigger>
<TabsTrigger value='currency'>{t('tabs.currency')}</TabsTrigger>
<TabsTrigger value='verify'>{t('tabs.verify')}</TabsTrigger>
<TabsTrigger value='node'>{t('tabs.node')}</TabsTrigger>
<TabsTrigger value='invite'>{t('tabs.invite')}</TabsTrigger>
<TabsTrigger value='telegram'>{t('tabs.telegram')}</TabsTrigger>
<TabsTrigger value='tos'>{t('tabs.tos')}</TabsTrigger>
@ -32,9 +30,6 @@ export default async function Page() {
<TabsContent value='verify'>
<Verify />
</TabsContent>
<TabsContent value='node'>
<Node />
</TabsContent>
<TabsContent value='invite'>
<Invite />
</TabsContent>

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Přidat časový úsek",
"communicationKey": "Komunikační klíč",
"communicationKeyDescription": "Klíč pro komunikaci uzlů k zajištění bezpečnosti dat",
"delete": "Smazat",
"dynamicMultiplier": "Dynamický multiplikátor",
"dynamicMultiplierDescription": "Dynamický multiplikátor označuje zpracování posílaných dat s různými multiplikátory pro různé uzly během různých časových období.",
"endTime": "Konec",
"inputPlaceholder": "Zadejte",
"multiplier": "Multiplikátor",
"nodePullInterval": "Interval stahování uzlu",
"nodePullIntervalDescription": "Frekvence (v sekundách) pro stahování dat uzly z panelu",
"nodePushInterval": "Interval odesílání uzlu",
"nodePushIntervalDescription": "Frekvence odesílání dat uzly do panelu",
"reset": "Resetovat",
"save": "Uložit",
"saveSuccess": "Úspěšně uloženo",
"startTime": "Začátek",
"timeSlot": "Časový úsek"
},
"group": {
"actions": "Akce",
"cancel": "Zrušit",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Uzlu",
"nodeConfig": "Konfigurace uzlu",
"nodeGroup": "Skupina uzlů"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Výchozí globální procento rozdělení provize, můžete konfigurovat jednotlivé procento ve správě uživatelů.",
"saveSuccess": "Úspěšně uloženo"
},
"node": {
"addTimeSlot": "Přidat časový úsek",
"communicationKey": "Komunikační klíč",
"communicationKeyDescription": "Klíč pro komunikaci uzlu, aby se zajistilo, že data nebudou zachycena jinými osobami",
"delete": "Smazat",
"dynamicMultiplier": "Dynamický násobitel",
"dynamicMultiplierDescription": "Dynamický násobitel označuje zpracování posunutých dat s různými násobiteli pro různé uzly během různých časových období.",
"endTime": "Čas konce",
"inputPlaceholder": "Prosím zadejte",
"multiplier": "Násobitel",
"nodePullInterval": "Interval stahování uzlu",
"nodePullIntervalDescription": "Frekvence, s jakou uzel získává data z panelu (v sekundách)",
"nodePushInterval": "Interval odesílání uzlu",
"nodePushIntervalDescription": "Frekvence, s jakou uzel odesílá data do panelu",
"reset": "Resetovat",
"save": "Uložit",
"saveSuccess": "Úspěšně uloženo",
"startTime": "Čas začátku",
"timeSlot": "Časový úsek"
},
"site": {
"logo": "LOGO",
"logoDescription": "Používá se k zobrazení místa, kde je potřeba zobrazit LOGO",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Měna",
"invite": "Pozvat",
"node": "Uzlový bod",
"site": "Stránka",
"telegram": "Telegram",
"tos": "Podmínky služby",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Zeitfenster hinzufügen",
"communicationKey": "Kommunikationsschlüssel",
"communicationKeyDescription": "Schlüssel für die Knotenkommunikation zur Gewährleistung der Datensicherheit",
"delete": "Löschen",
"dynamicMultiplier": "Dynamischer Multiplikator",
"dynamicMultiplierDescription": "Dynamischer Multiplikator bezieht sich auf die Verarbeitung von übertragenen Daten mit unterschiedlichen Multiplikatoren für verschiedene Knoten während unterschiedlicher Zeiträume.",
"endTime": "Endzeit",
"inputPlaceholder": "Eingeben",
"multiplier": "Multiplikator",
"nodePullInterval": "Knotenabfrageintervall",
"nodePullIntervalDescription": "Häufigkeit (in Sekunden), mit der Knoten Daten vom Panel abrufen",
"nodePushInterval": "Knotenübertragungsintervall",
"nodePushIntervalDescription": "Häufigkeit, mit der Knoten Daten an das Panel übertragen",
"reset": "Zurücksetzen",
"save": "Speichern",
"saveSuccess": "Erfolgreich gespeichert",
"startTime": "Startzeit",
"timeSlot": "Zeitfenster"
},
"group": {
"actions": "Aktionen",
"cancel": "Abbrechen",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Knoten",
"nodeConfig": "Knoten-Konfiguration",
"nodeGroup": "Knotengruppe"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Standardmäßiger globaler Provisionsverteilungssatz. Sie können in der Benutzerverwaltung einen individuellen Satz konfigurieren.",
"saveSuccess": "Erfolgreich gespeichert"
},
"node": {
"addTimeSlot": "Zeitfenster hinzufügen",
"communicationKey": "Kommunikationsschlüssel",
"communicationKeyDescription": "Schlüssel für die Kommunikation des Knotens, um sicherzustellen, dass Daten nicht von anderen abgefangen werden",
"delete": "Löschen",
"dynamicMultiplier": "Dynamischer Multiplikator",
"dynamicMultiplierDescription": "Dynamischer Multiplikator bezieht sich auf die Verarbeitung von übermittelten Daten mit unterschiedlichen Multiplikatoren für verschiedene Knoten während unterschiedlicher Zeiträume.",
"endTime": "Endzeit",
"inputPlaceholder": "Bitte eingeben",
"multiplier": "Multiplikator",
"nodePullInterval": "Knotenabfrageintervall",
"nodePullIntervalDescription": "Häufigkeit, mit der der Knoten Daten vom Panel abruft (Sekunden)",
"nodePushInterval": "Knotenübertragungsintervall",
"nodePushIntervalDescription": "Häufigkeit, mit der der Knoten Daten an das Panel überträgt",
"reset": "Zurücksetzen",
"save": "Speichern",
"saveSuccess": "Erfolgreich gespeichert",
"startTime": "Startzeit",
"timeSlot": "Zeitfenster"
},
"site": {
"logo": "LOGO",
"logoDescription": "Position zur Anzeige des LOGOs",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Währung",
"invite": "Einladen",
"node": "Knoten",
"site": "Seite",
"telegram": "Telegram",
"tos": "Nutzungsbedingungen",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Add Time Slot",
"communicationKey": "Communication Key",
"communicationKeyDescription": "Key for node communication to ensure data security",
"delete": "Delete",
"dynamicMultiplier": "Dynamic Multiplier",
"dynamicMultiplierDescription": "Dynamic Multiplier refers to processing pushed data with different multipliers for different nodes during different time periods.",
"endTime": "End Time",
"inputPlaceholder": "Enter",
"multiplier": "Multiplier",
"nodePullInterval": "Node Pull Interval",
"nodePullIntervalDescription": "Frequency (in seconds) for nodes to fetch data from the panel",
"nodePushInterval": "Node Push Interval",
"nodePushIntervalDescription": "Frequency for nodes to push data to the panel",
"reset": "Reset",
"save": "Save",
"saveSuccess": "Save Successful",
"startTime": "Start Time",
"timeSlot": "Time Slot"
},
"group": {
"actions": "Actions",
"cancel": "Cancel",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Node",
"nodeConfig": "Node Configuration",
"nodeGroup": "Node Group"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Default global commission distribution ratio; you can configure individual ratios in user management",
"saveSuccess": "Save Successful"
},
"node": {
"addTimeSlot": "Add Time Slot",
"communicationKey": "Communication Key",
"communicationKeyDescription": "Key for node communication to ensure data security",
"delete": "Delete",
"dynamicMultiplier": "Dynamic Multiplier",
"dynamicMultiplierDescription": "Dynamic Multiplier refers to processing pushed data with different multipliers for different nodes during different time periods.",
"endTime": "End Time",
"inputPlaceholder": "Enter",
"multiplier": "Multiplier",
"nodePullInterval": "Node Pull Interval",
"nodePullIntervalDescription": "Frequency (in seconds) for nodes to fetch data from the panel",
"nodePushInterval": "Node Push Interval",
"nodePushIntervalDescription": "Frequency for nodes to push data to the panel",
"reset": "Reset",
"save": "Save",
"saveSuccess": "Save Successful",
"startTime": "Start Time",
"timeSlot": "Time Slot"
},
"site": {
"logo": "Logo",
"logoDescription": "Used for displaying the logo in designated locations",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Currency",
"invite": "Invite",
"node": "Node",
"site": "Site",
"telegram": "Telegram",
"tos": "Terms of Service",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Agregar Franja Horaria",
"communicationKey": "Clave de Comunicación",
"communicationKeyDescription": "Clave para la comunicación de nodos para garantizar la seguridad de los datos",
"delete": "Eliminar",
"dynamicMultiplier": "Multiplicador Dinámico",
"dynamicMultiplierDescription": "El Multiplicador Dinámico se refiere al procesamiento de datos enviados con diferentes multiplicadores para diferentes nodos durante distintos períodos de tiempo.",
"endTime": "Hora de Fin",
"inputPlaceholder": "Ingresar",
"multiplier": "Multiplicador",
"nodePullInterval": "Intervalo de Extracción de Nodo",
"nodePullIntervalDescription": "Frecuencia (en segundos) para que los nodos obtengan datos del panel",
"nodePushInterval": "Intervalo de Envío de Nodo",
"nodePushIntervalDescription": "Frecuencia para que los nodos envíen datos al panel",
"reset": "Restablecer",
"save": "Guardar",
"saveSuccess": "Guardado Exitoso",
"startTime": "Hora de Inicio",
"timeSlot": "Franja Horaria"
},
"group": {
"actions": "Acciones",
"cancel": "Cancelar",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Nodo",
"nodeConfig": "Configuración del Nodo",
"nodeGroup": "Grupo de nodos"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Proporción de comisión global predeterminada. Puede configurar proporciones individuales en la gestión de usuarios.",
"saveSuccess": "Guardado exitosamente"
},
"node": {
"addTimeSlot": "Agregar Franja Horaria",
"communicationKey": "Clave de comunicación",
"communicationKeyDescription": "Clave para la comunicación del nodo, para asegurar que los datos no sean interceptados por otros",
"delete": "Eliminar",
"dynamicMultiplier": "Multiplicador Dinámico",
"dynamicMultiplierDescription": "El Multiplicador Dinámico se refiere al procesamiento de datos enviados con diferentes multiplicadores para diferentes nodos durante distintos períodos de tiempo.",
"endTime": "Hora de Fin",
"inputPlaceholder": "Por favor, ingrese",
"multiplier": "Multiplicador",
"nodePullInterval": "Intervalo de extracción del nodo",
"nodePullIntervalDescription": "Frecuencia con la que el nodo obtiene datos del panel (segundos)",
"nodePushInterval": "Intervalo de envío del nodo",
"nodePushIntervalDescription": "Frecuencia con la que el nodo envía datos al panel",
"reset": "Restablecer",
"save": "Guardar",
"saveSuccess": "Guardado exitosamente",
"startTime": "Hora de Inicio",
"timeSlot": "Franja Horaria"
},
"site": {
"logo": "LOGO",
"logoDescription": "Se utiliza para mostrar la ubicación donde se debe mostrar el LOGO",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Moneda",
"invite": "Invitar",
"node": "Nodo",
"site": "Sitio",
"telegram": "Telegram",
"tos": "Términos de servicio",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Agregar Franja Horaria",
"communicationKey": "Clave de Comunicación",
"communicationKeyDescription": "Clave para la comunicación de nodos para garantizar la seguridad de los datos",
"delete": "Eliminar",
"dynamicMultiplier": "Multiplicador Dinámico",
"dynamicMultiplierDescription": "El Multiplicador Dinámico se refiere al procesamiento de datos enviados con diferentes multiplicadores para diferentes nodos durante distintos períodos de tiempo.",
"endTime": "Hora de Fin",
"inputPlaceholder": "Ingresar",
"multiplier": "Multiplicador",
"nodePullInterval": "Intervalo de Extracción de Nodo",
"nodePullIntervalDescription": "Frecuencia (en segundos) para que los nodos obtengan datos del panel",
"nodePushInterval": "Intervalo de Envío de Nodo",
"nodePushIntervalDescription": "Frecuencia para que los nodos envíen datos al panel",
"reset": "Restablecer",
"save": "Guardar",
"saveSuccess": "Guardado Exitoso",
"startTime": "Hora de Inicio",
"timeSlot": "Franja Horaria"
},
"group": {
"actions": "Acciones",
"cancel": "Cancelar",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Nodo",
"nodeConfig": "Configuración del Nodo",
"nodeGroup": "Grupo de nodos"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Proporción de comisión global predeterminada. Puede configurar proporciones individuales en la gestión de usuarios.",
"saveSuccess": "Guardado exitosamente"
},
"node": {
"addTimeSlot": "Agregar Franja Horaria",
"communicationKey": "Clave de comunicación",
"communicationKeyDescription": "Clave para la comunicación del nodo, para asegurar que los datos no sean interceptados por otros",
"delete": "Eliminar",
"dynamicMultiplier": "Multiplicador Dinámico",
"dynamicMultiplierDescription": "El Multiplicador Dinámico se refiere al procesamiento de datos enviados con diferentes multiplicadores para diferentes nodos durante distintos períodos de tiempo.",
"endTime": "Hora de Fin",
"inputPlaceholder": "Por favor ingrese",
"multiplier": "Multiplicador",
"nodePullInterval": "Intervalo de extracción del nodo",
"nodePullIntervalDescription": "Frecuencia con la que el nodo obtiene datos del panel (segundos)",
"nodePushInterval": "Intervalo de envío del nodo",
"nodePushIntervalDescription": "Frecuencia con la que el nodo envía datos al panel",
"reset": "Restablecer",
"save": "Guardar",
"saveSuccess": "Guardado exitosamente",
"startTime": "Hora de Inicio",
"timeSlot": "Franja Horaria"
},
"site": {
"logo": "LOGO",
"logoDescription": "Usado para mostrar la ubicación donde se debe exhibir el LOGO",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Moneda",
"invite": "Invitar",
"node": "Nodo",
"site": "Sitio",
"telegram": "Telegram",
"tos": "Términos del servicio",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "افزودن بازه زمانی",
"communicationKey": "کلید ارتباطی",
"communicationKeyDescription": "کلید برای ارتباط گره‌ها به منظور اطمینان از امنیت داده‌ها",
"delete": "حذف",
"dynamicMultiplier": "ضریب پویا",
"dynamicMultiplierDescription": "ضریب پویا به پردازش داده‌های ارسال شده با ضرایب مختلف برای گره‌های مختلف در دوره‌های زمانی مختلف اشاره دارد.",
"endTime": "زمان پایان",
"inputPlaceholder": "وارد کنید",
"multiplier": "ضریب",
"nodePullInterval": "فاصله زمانی کشیدن گره",
"nodePullIntervalDescription": "فرکانس (بر حسب ثانیه) برای گره‌ها جهت دریافت داده از پنل",
"nodePushInterval": "فاصله زمانی ارسال گره",
"nodePushIntervalDescription": "فرکانس برای گره‌ها جهت ارسال داده به پنل",
"reset": "بازنشانی",
"save": "ذخیره",
"saveSuccess": "ذخیره با موفقیت انجام شد",
"startTime": "زمان شروع",
"timeSlot": "بازه زمانی"
},
"group": {
"actions": "اقدامات",
"cancel": "لغو",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "نود",
"nodeConfig": "پیکربندی نود",
"nodeGroup": "گروه نود"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "نسبت توزیع کمیسیون جهانی پیش‌فرض؛ شما می‌توانید نسبت‌های فردی را در مدیریت کاربران پیکربندی کنید",
"saveSuccess": "ذخیره‌سازی موفقیت‌آمیز"
},
"node": {
"addTimeSlot": "افزودن بازه زمانی",
"communicationKey": "کلید ارتباطی",
"communicationKeyDescription": "کلید برای ارتباط گره به منظور اطمینان از امنیت داده‌ها",
"delete": "حذف",
"dynamicMultiplier": "ضریب پویا",
"dynamicMultiplierDescription": "ضریب پویا به پردازش داده‌های ارسال شده با ضرایب مختلف برای گره‌های مختلف در دوره‌های زمانی مختلف اشاره دارد.",
"endTime": "زمان پایان",
"inputPlaceholder": "وارد کنید",
"multiplier": "ضریب",
"nodePullInterval": "فاصله زمانی کشیدن گره",
"nodePullIntervalDescription": "فرکانس (به ثانیه) برای گره‌ها جهت دریافت داده از پنل",
"nodePushInterval": "فاصله زمانی فشار گره",
"nodePushIntervalDescription": "فرکانس برای گره‌ها جهت ارسال داده به پنل",
"reset": "بازنشانی",
"save": "ذخیره",
"saveSuccess": "ذخیره با موفقیت انجام شد",
"startTime": "زمان شروع",
"timeSlot": "بازه زمانی"
},
"site": {
"logo": "لوگو",
"logoDescription": "برای نمایش لوگو در مکان‌های تعیین‌شده استفاده می‌شود",
@ -56,7 +36,6 @@
"tabs": {
"currency": "ارز",
"invite": "دعوت",
"node": "گره",
"site": "سایت",
"telegram": "تلگرام",
"tos": "شرایط خدمات",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Lisää Aikaväli",
"communicationKey": "Viestintäavain",
"communicationKeyDescription": "Avain solmujen viestintään tietoturvan varmistamiseksi",
"delete": "Poista",
"dynamicMultiplier": "Dynaaminen Kerroin",
"dynamicMultiplierDescription": "Dynaaminen kerroin tarkoittaa työnnetyn datan käsittelyä eri kertoimilla eri solmuille eri ajanjaksoina.",
"endTime": "Lopetusaika",
"inputPlaceholder": "Syötä",
"multiplier": "Kerroin",
"nodePullInterval": "Solmun Noutoväli",
"nodePullIntervalDescription": "Taajuus (sekunteina), jolla solmut hakevat dataa paneelista",
"nodePushInterval": "Solmun Työntövälit",
"nodePushIntervalDescription": "Taajuus, jolla solmut työntävät dataa paneeliin",
"reset": "Nollaa",
"save": "Tallenna",
"saveSuccess": "Tallennus Onnistui",
"startTime": "Aloitusaika",
"timeSlot": "Aikaväli"
},
"group": {
"actions": "Toiminnot",
"cancel": "Peruuta",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Solmu",
"nodeConfig": "Solmun asetukset",
"nodeGroup": "Solmuryhmä"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Oletusarvoinen globaali provisiojakosuhde, voit määrittää yksittäisen suhteen käyttäjähallinnassa.",
"saveSuccess": "Tallennus onnistui"
},
"node": {
"addTimeSlot": "Lisää aikaväli",
"communicationKey": "Viestintäavain",
"communicationKeyDescription": "Solmun viestinnän avain, joka varmistaa, että tiedot eivät joudu muiden sieppaamiksi",
"delete": "Poista",
"dynamicMultiplier": "Dynaaminen Kerroin",
"dynamicMultiplierDescription": "Dynaaminen Kerroin viittaa siihen, että käsitellään siirrettyä dataa eri kertoimilla eri solmuille eri ajanjaksoina.",
"endTime": "Lopetusaika",
"inputPlaceholder": "Ole hyvä ja syötä",
"multiplier": "Kerroin",
"nodePullInterval": "Solmun noutoväli",
"nodePullIntervalDescription": "Kuinka usein solmu hakee tietoja paneelista (sekunteina)",
"nodePushInterval": "Solmun lähetysväli",
"nodePushIntervalDescription": "Kuinka usein solmu lähettää tietoja paneeliin",
"reset": "Nollaa",
"save": "Tallenna",
"saveSuccess": "Tallennus onnistui",
"startTime": "Aloitusaika",
"timeSlot": "Aikaväli"
},
"site": {
"logo": "LOGO",
"logoDescription": "Näyttääksesi paikan, jossa LOGO tulee näkyä",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Valuutta",
"invite": "Kutsu",
"node": "Solmu",
"site": "Sivusto",
"telegram": "Telegram",
"tos": "Käyttöehdot",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Ajouter un créneau horaire",
"communicationKey": "Clé de communication",
"communicationKeyDescription": "Clé pour la communication des nœuds afin d'assurer la sécurité des données",
"delete": "Supprimer",
"dynamicMultiplier": "Multiplicateur dynamique",
"dynamicMultiplierDescription": "Le multiplicateur dynamique fait référence au traitement des données poussées avec différents multiplicateurs pour différents nœuds pendant différentes périodes.",
"endTime": "Heure de fin",
"inputPlaceholder": "Entrer",
"multiplier": "Multiplicateur",
"nodePullInterval": "Intervalle de récupération des nœuds",
"nodePullIntervalDescription": "Fréquence (en secondes) à laquelle les nœuds récupèrent les données du panneau",
"nodePushInterval": "Intervalle de poussée des nœuds",
"nodePushIntervalDescription": "Fréquence à laquelle les nœuds poussent les données vers le panneau",
"reset": "Réinitialiser",
"save": "Enregistrer",
"saveSuccess": "Enregistrement réussi",
"startTime": "Heure de début",
"timeSlot": "Créneau horaire"
},
"group": {
"actions": "Actions",
"cancel": "Annuler",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Nœud",
"nodeConfig": "Configuration du nœud",
"nodeGroup": "Groupe de nœuds"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Pourcentage de commission global par défaut, vous pouvez configurer un pourcentage individuel dans la gestion des utilisateurs.",
"saveSuccess": "Enregistrement réussi"
},
"node": {
"addTimeSlot": "Ajouter un créneau horaire",
"communicationKey": "Clé de communication",
"communicationKeyDescription": "Clé pour la communication du nœud, afin de garantir que les données ne soient pas interceptées par d'autres",
"delete": "Supprimer",
"dynamicMultiplier": "Multiplicateur Dynamique",
"dynamicMultiplierDescription": "Le Multiplicateur Dynamique fait référence au traitement des données poussées avec différents multiplicateurs pour différents nœuds pendant différentes périodes.",
"endTime": "Heure de Fin",
"inputPlaceholder": "Veuillez entrer",
"multiplier": "Multiplicateur",
"nodePullInterval": "Intervalle de récupération du nœud",
"nodePullIntervalDescription": "Fréquence à laquelle le nœud récupère les données du panneau (en secondes)",
"nodePushInterval": "Intervalle de poussée du nœud",
"nodePushIntervalDescription": "Fréquence à laquelle le nœud pousse les données vers le panneau",
"reset": "Réinitialiser",
"save": "Enregistrer",
"saveSuccess": "Enregistrement réussi",
"startTime": "Heure de Début",
"timeSlot": "Créneau horaire"
},
"site": {
"logo": "LOGO",
"logoDescription": "Utilisé pour afficher l'emplacement où le LOGO doit être montré",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Devise",
"invite": "Inviter",
"node": "Nœud",
"site": "Site",
"telegram": "Telegram",
"tos": "Conditions de service",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "समय स्लॉट जोड़ें",
"communicationKey": "संचार कुंजी",
"communicationKeyDescription": "डेटा सुरक्षा सुनिश्चित करने के लिए नोड संचार की कुंजी",
"delete": "हटाएं",
"dynamicMultiplier": "गतिशील गुणक",
"dynamicMultiplierDescription": "गतिशील गुणक का अर्थ है विभिन्न समय अवधियों के दौरान विभिन्न नोड्स के लिए विभिन्न गुणकों के साथ धकेले गए डेटा को संसाधित करना।",
"endTime": "समाप्ति समय",
"inputPlaceholder": "दर्ज करें",
"multiplier": "गुणक",
"nodePullInterval": "नोड पुल अंतराल",
"nodePullIntervalDescription": "पैनल से डेटा प्राप्त करने के लिए नोड्स की आवृत्ति (सेकंड में)",
"nodePushInterval": "नोड पुश अंतराल",
"nodePushIntervalDescription": "पैनल को डेटा धकेलने के लिए नोड्स की आवृत्ति",
"reset": "रीसेट",
"save": "सहेजें",
"saveSuccess": "सहेजना सफल",
"startTime": "प्रारंभ समय",
"timeSlot": "समय स्लॉट"
},
"group": {
"actions": "क्रियाएँ",
"cancel": "रद्द करें",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "नोड",
"nodeConfig": "नोड कॉन्फ़िगरेशन",
"nodeGroup": "नोड समूह"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "डिफ़ॉल्ट वैश्विक कमीशन वितरण अनुपात, आप उपयोगकर्ता प्रबंधन में व्यक्तिगत अनुपात को कॉन्फ़िगर कर सकते हैं।",
"saveSuccess": "सफलतापूर्वक सहेजा गया"
},
"node": {
"addTimeSlot": "समय स्लॉट जोड़ें",
"communicationKey": "संचार कुंजी",
"communicationKeyDescription": "डेटा को अन्य लोगों द्वारा अवरोधित होने से बचाने के लिए नोड संचार की कुंजी",
"delete": "हटाएं",
"dynamicMultiplier": "डायनामिक मल्टीप्लायर",
"dynamicMultiplierDescription": "डायनामिक मल्टीप्लायर का मतलब है विभिन्न समय अवधियों के दौरान विभिन्न नोड्स के लिए अलग-अलग मल्टीप्लायर के साथ प्रोसेस किए गए डेटा को प्रोसेस करना।",
"endTime": "समाप्ति समय",
"inputPlaceholder": "कृपया दर्ज करें",
"multiplier": "मल्टीप्लायर",
"nodePullInterval": "नोड पुल अंतराल",
"nodePullIntervalDescription": "पैनल से डेटा प्राप्त करने के लिए नोड की आवृत्ति (सेकंड में)",
"nodePushInterval": "नोड पुश अंतराल",
"nodePushIntervalDescription": "नोड द्वारा डेटा को पैनल पर भेजने की आवृत्ति",
"reset": "रीसेट",
"save": "सहेजें",
"saveSuccess": "सफलतापूर्वक सहेजा गया",
"startTime": "प्रारंभ समय",
"timeSlot": "समय स्लॉट"
},
"site": {
"logo": "लोगो",
"logoDescription": "लोगो प्रदर्शित करने के लिए आवश्यक स्थान",
@ -56,7 +36,6 @@
"tabs": {
"currency": "मुद्रा",
"invite": "आमंत्रण",
"node": "नोड",
"site": "साइट",
"telegram": "टेलीग्राम",
"tos": "सेवा की शर्तें",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Idősáv hozzáadása",
"communicationKey": "Kommunikációs kulcs",
"communicationKeyDescription": "Kulcs a csomópontok közötti kommunikációhoz az adatok biztonságának biztosítása érdekében",
"delete": "Törlés",
"dynamicMultiplier": "Dinamikus szorzó",
"dynamicMultiplierDescription": "A dinamikus szorzó azt jelenti, hogy a különböző csomópontok különböző időszakokban különböző szorzókkal dolgozzák fel a továbbított adatokat.",
"endTime": "Befejezési idő",
"inputPlaceholder": "Adja meg",
"multiplier": "Szorzó",
"nodePullInterval": "Csomópont lehívási intervallum",
"nodePullIntervalDescription": "Gyakoriság (másodpercben), amellyel a csomópontok adatokat kérnek le a panelről",
"nodePushInterval": "Csomópont feltöltési intervallum",
"nodePushIntervalDescription": "Gyakoriság, amellyel a csomópontok adatokat küldenek a panelre",
"reset": "Visszaállítás",
"save": "Mentés",
"saveSuccess": "Sikeres mentés",
"startTime": "Kezdési idő",
"timeSlot": "Idősáv"
},
"group": {
"actions": "Műveletek",
"cancel": "Mégse",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "csomópont",
"nodeConfig": "Csomópont konfiguráció",
"nodeGroup": "csomópontcsoport"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Alapértelmezett globális jutalék elosztási arány, az egyes arányokat a felhasználókezelésben konfigurálhatja.",
"saveSuccess": "Sikeres mentés"
},
"node": {
"addTimeSlot": "Időrés hozzáadása",
"communicationKey": "Kommunikációs kulcs",
"communicationKeyDescription": "A csomópontok közötti kommunikáció kulcsa, amely biztosítja, hogy az adatokat ne lehessen elfogni mások által",
"delete": "Törlés",
"dynamicMultiplier": "Dinamikus Szorzó",
"dynamicMultiplierDescription": "A Dinamikus Szorzó arra utal, hogy a különböző csomópontoknál különböző szorzókkal dolgozzák fel a továbbított adatokat különböző időszakokban.",
"endTime": "Befejezési Idő",
"inputPlaceholder": "Kérjük, írja be",
"multiplier": "Szorzó",
"nodePullInterval": "Csomópont lehívási intervallum",
"nodePullIntervalDescription": "A csomópont milyen gyakran kér le adatokat a panelről (másodpercben)",
"nodePushInterval": "Csomópont küldési intervallum",
"nodePushIntervalDescription": "A csomópont milyen gyakran küld adatokat a panelre",
"reset": "Visszaállítás",
"save": "Mentés",
"saveSuccess": "Sikeres mentés",
"startTime": "Kezdési Idő",
"timeSlot": "Időpont"
},
"site": {
"logo": "LOGÓ",
"logoDescription": "A LOGÓ megjelenítésére szolgáló hely",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Pénznem",
"invite": "Meghívás",
"node": "Csomópont",
"site": "Webhely",
"telegram": "Telegram",
"tos": "Szolgáltatási feltételek",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "時間枠を追加",
"communicationKey": "通信キー",
"communicationKeyDescription": "データの安全性を確保するためのノード通信キー",
"delete": "削除",
"dynamicMultiplier": "動的乗数",
"dynamicMultiplierDescription": "動的乗数は、異なるノードが異なる時間帯に異なる乗数でプッシュされたデータを処理することを指します。",
"endTime": "終了時間",
"inputPlaceholder": "入力してください",
"multiplier": "乗数",
"nodePullInterval": "ノードプル間隔",
"nodePullIntervalDescription": "ノードがパネルからデータを取得する頻度(秒単位)",
"nodePushInterval": "ノードプッシュ間隔",
"nodePushIntervalDescription": "ノードがデータをパネルにプッシュする頻度",
"reset": "リセット",
"save": "保存",
"saveSuccess": "保存に成功しました",
"startTime": "開始時間",
"timeSlot": "時間枠"
},
"group": {
"actions": "操作",
"cancel": "キャンセル",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "ノード",
"nodeConfig": "ノード構成",
"nodeGroup": "ノードグループ"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "デフォルトのグローバルコミッション配分率です。ユーザー管理で個別の割合を設定できます。",
"saveSuccess": "保存に成功しました"
},
"node": {
"addTimeSlot": "時間枠を追加",
"communicationKey": "通信キー",
"communicationKeyDescription": "ノード通信のためのキーで、データが他人に傍受されないようにします",
"delete": "削除",
"dynamicMultiplier": "動的乗数",
"dynamicMultiplierDescription": "動的乗数は、異なる時間帯に異なるノードに対して異なる乗数でプッシュされたデータを処理することを指します。",
"endTime": "終了時間",
"inputPlaceholder": "入力してください",
"multiplier": "乗数",
"nodePullInterval": "ノード取得間隔",
"nodePullIntervalDescription": "ノードがパネルからデータを取得する頻度(秒)",
"nodePushInterval": "ノード送信間隔",
"nodePushIntervalDescription": "ノードがデータをパネルに送信する頻度",
"reset": "リセット",
"save": "保存",
"saveSuccess": "保存成功",
"startTime": "開始時間",
"timeSlot": "時間枠"
},
"site": {
"logo": "LOGO",
"logoDescription": "LOGOを表示する必要がある場所に使用されます",
@ -56,7 +36,6 @@
"tabs": {
"currency": "通貨",
"invite": "招待",
"node": "ノード",
"site": "サイト",
"telegram": "Telegram",
"tos": "利用規約",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "시간 슬롯 추가",
"communicationKey": "통신 키",
"communicationKeyDescription": "데이터 보안을 보장하기 위한 노드 통신 키",
"delete": "삭제",
"dynamicMultiplier": "동적 배수",
"dynamicMultiplierDescription": "동적 배수는 서로 다른 시간대에 서로 다른 노드에 대해 서로 다른 배수로 푸시된 데이터를 처리하는 것을 의미합니다.",
"endTime": "종료 시간",
"inputPlaceholder": "입력",
"multiplier": "배수",
"nodePullInterval": "노드 풀 간격",
"nodePullIntervalDescription": "노드가 패널에서 데이터를 가져오는 빈도(초 단위)",
"nodePushInterval": "노드 푸시 간격",
"nodePushIntervalDescription": "노드가 데이터를 패널로 푸시하는 빈도",
"reset": "재설정",
"save": "저장",
"saveSuccess": "저장 성공",
"startTime": "시작 시간",
"timeSlot": "시간 슬롯"
},
"group": {
"actions": "작업",
"cancel": "취소",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "노드",
"nodeConfig": "노드 구성",
"nodeGroup": "노드 그룹"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "기본 전역 커미션 배분 비율입니다. 사용자 관리에서 개별 비율을 구성할 수 있습니다.",
"saveSuccess": "저장 성공"
},
"node": {
"addTimeSlot": "시간 슬롯 추가",
"communicationKey": "통신 키",
"communicationKeyDescription": "데이터가 다른 사람에게 가로채이지 않도록 보장하는 노드 통신 키",
"delete": "삭제",
"dynamicMultiplier": "동적 배수",
"dynamicMultiplierDescription": "동적 배수는 서로 다른 시간대에 서로 다른 노드에 대해 다른 배수를 사용하여 처리된 데이터를 의미합니다.",
"endTime": "종료 시간",
"inputPlaceholder": "입력하세요",
"multiplier": "배수",
"nodePullInterval": "노드 가져오기 간격",
"nodePullIntervalDescription": "노드가 패널에서 데이터를 가져오는 빈도(초)",
"nodePushInterval": "노드 푸시 간격",
"nodePushIntervalDescription": "노드가 데이터를 패널로 푸시하는 빈도",
"reset": "재설정",
"save": "저장",
"saveSuccess": "저장 성공",
"startTime": "시작 시간",
"timeSlot": "시간대"
},
"site": {
"logo": "LOGO",
"logoDescription": "LOGO를 표시해야 하는 위치에 사용됩니다",
@ -56,7 +36,6 @@
"tabs": {
"currency": "통화",
"invite": "초대",
"node": "노드",
"site": "사이트",
"telegram": "텔레그램",
"tos": "서비스 약관",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Legg til tidsluke",
"communicationKey": "Kommunikasjonsnøkkel",
"communicationKeyDescription": "Nøkkel for nodekommunikasjon for å sikre datasikkerhet",
"delete": "Slett",
"dynamicMultiplier": "Dynamisk multiplikator",
"dynamicMultiplierDescription": "Dynamisk multiplikator refererer til behandling av dyttet data med forskjellige multiplikatorer for forskjellige noder i ulike tidsperioder.",
"endTime": "Sluttid",
"inputPlaceholder": "Skriv inn",
"multiplier": "Multiplikator",
"nodePullInterval": "Node hentingsintervall",
"nodePullIntervalDescription": "Frekvens (i sekunder) for noder å hente data fra panelet",
"nodePushInterval": "Node dyttingsintervall",
"nodePushIntervalDescription": "Frekvens for noder å dytte data til panelet",
"reset": "Tilbakestill",
"save": "Lagre",
"saveSuccess": "Lagret vellykket",
"startTime": "Starttid",
"timeSlot": "Tidsluke"
},
"group": {
"actions": "Handlinger",
"cancel": "Avbryt",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Node",
"nodeConfig": "Node-konfigurasjon",
"nodeGroup": "Nodegruppe"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Standard global kommisjonsfordelingsprosent, du kan konfigurere individuelle prosenter i brukerstyring",
"saveSuccess": "Lagret vellykket"
},
"node": {
"addTimeSlot": "Legg til tidsluke",
"communicationKey": "Kommunikasjonsnøkkel",
"communicationKeyDescription": "Nøkkelen for kommunikasjon mellom noder, for å sikre at data ikke blir avlyttet av andre",
"delete": "Slett",
"dynamicMultiplier": "Dynamisk Multiplikator",
"dynamicMultiplierDescription": "Dynamisk Multiplikator refererer til behandling av dyttet data med forskjellige multiplikatorer for forskjellige noder i ulike tidsperioder.",
"endTime": "Sluttid",
"inputPlaceholder": "Vennligst skriv inn",
"multiplier": "Multiplikator",
"nodePullInterval": "Node hentingsintervall",
"nodePullIntervalDescription": "Frekvensen (i sekunder) som noden henter data fra panelet",
"nodePushInterval": "Node push-intervall",
"nodePushIntervalDescription": "Frekvensen som noden sender data til panelet",
"reset": "Tilbakestill",
"save": "Lagre",
"saveSuccess": "Lagring vellykket",
"startTime": "Starttid",
"timeSlot": "Tidsluke"
},
"site": {
"logo": "LOGO",
"logoDescription": "Brukes til å vise hvor LOGO skal vises",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Valuta",
"invite": "Invitasjon",
"node": "Node",
"site": "Nettsted",
"telegram": "Telegram",
"tos": "Vilkår for bruk",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Dodaj przedział czasowy",
"communicationKey": "Klucz komunikacyjny",
"communicationKeyDescription": "Klucz do komunikacji węzłów w celu zapewnienia bezpieczeństwa danych",
"delete": "Usuń",
"dynamicMultiplier": "Mnożnik dynamiczny",
"dynamicMultiplierDescription": "Mnożnik dynamiczny odnosi się do przetwarzania przesyłanych danych z różnymi mnożnikami dla różnych węzłów w różnych okresach czasu.",
"endTime": "Czas zakończenia",
"inputPlaceholder": "Wprowadź",
"multiplier": "Mnożnik",
"nodePullInterval": "Interwał pobierania węzła",
"nodePullIntervalDescription": "Częstotliwość (w sekundach) pobierania danych przez węzły z panelu",
"nodePushInterval": "Interwał przesyłania węzła",
"nodePushIntervalDescription": "Częstotliwość przesyłania danych przez węzły do panelu",
"reset": "Resetuj",
"save": "Zapisz",
"saveSuccess": "Zapisano pomyślnie",
"startTime": "Czas rozpoczęcia",
"timeSlot": "Przedział czasowy"
},
"group": {
"actions": "Operacje",
"cancel": "Anuluj",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Węzeł",
"nodeConfig": "Konfiguracja Węzła",
"nodeGroup": "Grupa węzłów"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Domyślny globalny procent podziału prowizji, możesz skonfigurować indywidualny procent w zarządzaniu użytkownikami.",
"saveSuccess": "Zapisano pomyślnie"
},
"node": {
"addTimeSlot": "Dodaj przedział czasowy",
"communicationKey": "Klucz komunikacyjny",
"communicationKeyDescription": "Klucz do komunikacji węzła, aby zapewnić, że dane nie zostaną przechwycone przez inne osoby",
"delete": "Usuń",
"dynamicMultiplier": "Mnożnik dynamiczny",
"dynamicMultiplierDescription": "Mnożnik dynamiczny odnosi się do przetwarzania przesyłanych danych z różnymi mnożnikami dla różnych węzłów w różnych okresach czasu.",
"endTime": "Czas zakończenia",
"inputPlaceholder": "Proszę wprowadzić",
"multiplier": "Mnożnik",
"nodePullInterval": "Interwał pobierania węzła",
"nodePullIntervalDescription": "Częstotliwość, z jaką węzeł pobiera dane z panelu (w sekundach)",
"nodePushInterval": "Interwał wysyłania węzła",
"nodePushIntervalDescription": "Częstotliwość, z jaką węzeł wysyła dane do panelu",
"reset": "Resetuj",
"save": "Zapisz",
"saveSuccess": "Zapisano pomyślnie",
"startTime": "Czas rozpoczęcia",
"timeSlot": "Przedział czasowy"
},
"site": {
"logo": "LOGO",
"logoDescription": "Miejsce do wyświetlania LOGO",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Waluta",
"invite": "Zaproszenie",
"node": "Węzeł",
"site": "Strona",
"telegram": "Telegram",
"tos": "Warunki usługi",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Adicionar Faixa de Horário",
"communicationKey": "Chave de Comunicação",
"communicationKeyDescription": "Chave para comunicação entre nós para garantir a segurança dos dados",
"delete": "Excluir",
"dynamicMultiplier": "Multiplicador Dinâmico",
"dynamicMultiplierDescription": "Multiplicador Dinâmico refere-se ao processamento de dados enviados com diferentes multiplicadores para diferentes nós durante diferentes períodos de tempo.",
"endTime": "Hora de Término",
"inputPlaceholder": "Digite",
"multiplier": "Multiplicador",
"nodePullInterval": "Intervalo de Busca do Nó",
"nodePullIntervalDescription": "Frequência (em segundos) para os nós buscarem dados do painel",
"nodePushInterval": "Intervalo de Envio do Nó",
"nodePushIntervalDescription": "Frequência para os nós enviarem dados ao painel",
"reset": "Redefinir",
"save": "Salvar",
"saveSuccess": "Salvo com Sucesso",
"startTime": "Hora de Início",
"timeSlot": "Faixa de Horário"
},
"group": {
"actions": "Ações",
"cancel": "Cancelar",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Nó",
"nodeConfig": "Configuração do Nó",
"nodeGroup": "Grupo de Nós"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Proporção padrão de comissão global. Você pode configurar individualmente no gerenciamento de usuários.",
"saveSuccess": "Salvo com sucesso"
},
"node": {
"addTimeSlot": "Adicionar Faixa de Horário",
"communicationKey": "Chave de Comunicação",
"communicationKeyDescription": "Chave para comunicação do nó, garantindo que os dados não sejam interceptados por terceiros",
"delete": "Excluir",
"dynamicMultiplier": "Multiplicador Dinâmico",
"dynamicMultiplierDescription": "Multiplicador Dinâmico refere-se ao processamento de dados enviados com diferentes multiplicadores para diferentes nós durante diferentes períodos de tempo.",
"endTime": "Hora de Término",
"inputPlaceholder": "Por favor, insira",
"multiplier": "Multiplicador",
"nodePullInterval": "Intervalo de Extração do Nó",
"nodePullIntervalDescription": "Frequência com que o nó obtém dados do painel (segundos)",
"nodePushInterval": "Intervalo de Envio do Nó",
"nodePushIntervalDescription": "Frequência com que o nó envia dados para o painel",
"reset": "Redefinir",
"save": "Salvar",
"saveSuccess": "Salvo com sucesso",
"startTime": "Hora de Início",
"timeSlot": "Horário"
},
"site": {
"logo": "LOGO",
"logoDescription": "Usado para exibir a posição onde o LOGO precisa ser mostrado",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Moeda",
"invite": "Convite",
"node": "Nó",
"site": "Site",
"telegram": "Telegram",
"tos": "Termos de Serviço",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Adaugă Interval de Timp",
"communicationKey": "Cheie de Comunicare",
"communicationKeyDescription": "Cheie pentru comunicarea nodului pentru a asigura securitatea datelor",
"delete": "Șterge",
"dynamicMultiplier": "Multiplicator Dinamic",
"dynamicMultiplierDescription": "Multiplicatorul Dinamic se referă la procesarea datelor transmise cu multiplicatori diferiți pentru noduri diferite în perioade de timp diferite.",
"endTime": "Ora de Sfârșit",
"inputPlaceholder": "Introduceți",
"multiplier": "Multiplicator",
"nodePullInterval": "Interval de Extracție Nod",
"nodePullIntervalDescription": "Frecvența (în secunde) cu care nodurile extrag date de la panou",
"nodePushInterval": "Interval de Transmitere Nod",
"nodePushIntervalDescription": "Frecvența cu care nodurile transmit date către panou",
"reset": "Resetează",
"save": "Salvează",
"saveSuccess": "Salvare Reușită",
"startTime": "Ora de Început",
"timeSlot": "Interval de Timp"
},
"group": {
"actions": "Acțiuni",
"cancel": "Anulează",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Nod",
"nodeConfig": "Configurare Nod",
"nodeGroup": "Grup de noduri"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Procentul implicit de distribuire a comisionului la nivel global. Puteți configura un procent individual în gestionarea utilizatorilor.",
"saveSuccess": "Salvare reușită"
},
"node": {
"addTimeSlot": "Adaugă Interval Orar",
"communicationKey": "Cheie de comunicare",
"communicationKeyDescription": "Cheia de comunicare a nodului, pentru a asigura că datele nu sunt interceptate de alții",
"delete": "Ștergere",
"dynamicMultiplier": "Multiplicator Dinamic",
"dynamicMultiplierDescription": "Multiplicatorul Dinamic se referă la procesarea datelor transmise cu multiplicatori diferiți pentru noduri diferite în perioade de timp diferite.",
"endTime": "Ora de Sfârșit",
"inputPlaceholder": "Vă rugăm să introduceți",
"multiplier": "Multiplicator",
"nodePullInterval": "Interval de extragere a nodului",
"nodePullIntervalDescription": "Frecvența cu care nodul obține date de la panou (secunde)",
"nodePushInterval": "Interval de împingere a nodului",
"nodePushIntervalDescription": "Frecvența cu care nodul trimite date către panou",
"reset": "Resetare",
"save": "Salvare",
"saveSuccess": "Salvare reușită",
"startTime": "Ora de Începere",
"timeSlot": "Interval de timp"
},
"site": {
"logo": "LOGO",
"logoDescription": "Utilizat pentru a afișa locația unde trebuie să fie prezentat LOGO-ul",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Monedă",
"invite": "Invitație",
"node": "Nod",
"site": "Site",
"telegram": "Telegram",
"tos": "Termeni de serviciu",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Добавить временной интервал",
"communicationKey": "Ключ связи",
"communicationKeyDescription": "Ключ для связи узлов для обеспечения безопасности данных",
"delete": "Удалить",
"dynamicMultiplier": "Динамический множитель",
"dynamicMultiplierDescription": "Динамический множитель относится к обработке переданных данных с различными множителями для разных узлов в разные периоды времени.",
"endTime": "Время окончания",
"inputPlaceholder": "Введите",
"multiplier": "Множитель",
"nodePullInterval": "Интервал опроса узла",
"nodePullIntervalDescription": "Частота (в секундах) опроса узлами данных с панели",
"nodePushInterval": "Интервал отправки узла",
"nodePushIntervalDescription": "Частота отправки данных узлами на панель",
"reset": "Сбросить",
"save": "Сохранить",
"saveSuccess": "Сохранение успешно",
"startTime": "Время начала",
"timeSlot": "Временной интервал"
},
"group": {
"actions": "Действия",
"cancel": "Отмена",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Узел",
"nodeConfig": "Конфигурация узла",
"nodeGroup": "Группа узлов"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Глобальный процент распределения комиссии по умолчанию. Вы можете настроить индивидуальный процент в управлении пользователями.",
"saveSuccess": "Успешно сохранено"
},
"node": {
"addTimeSlot": "Добавить временной интервал",
"communicationKey": "Ключ связи",
"communicationKeyDescription": "Ключ для связи узла, чтобы гарантировать, что данные не будут перехвачены другими",
"delete": "Удалить",
"dynamicMultiplier": "Динамический множитель",
"dynamicMultiplierDescription": "Динамический множитель относится к обработке переданных данных с различными множителями для разных узлов в разные периоды времени.",
"endTime": "Время окончания",
"inputPlaceholder": "Пожалуйста, введите",
"multiplier": "Множитель",
"nodePullInterval": "Интервал извлечения узла",
"nodePullIntervalDescription": "Частота, с которой узел получает данные с панели (в секундах)",
"nodePushInterval": "Интервал отправки узла",
"nodePushIntervalDescription": "Частота, с которой узел отправляет данные на панель",
"reset": "Сбросить",
"save": "Сохранить",
"saveSuccess": "Успешно сохранено",
"startTime": "Время начала",
"timeSlot": "Временной интервал"
},
"site": {
"logo": "ЛОГОТИП",
"logoDescription": "Используется для отображения места, где необходимо показать ЛОГОТИП",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Валюта",
"invite": "Пригласить",
"node": "Узел",
"site": "Сайт",
"telegram": "Telegram",
"tos": "Условия обслуживания",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "เพิ่มช่วงเวลา",
"communicationKey": "คีย์การสื่อสาร",
"communicationKeyDescription": "คีย์สำหรับการสื่อสารของโหนดเพื่อความปลอดภัยของข้อมูล",
"delete": "ลบ",
"dynamicMultiplier": "ตัวคูณแบบไดนามิก",
"dynamicMultiplierDescription": "ตัวคูณแบบไดนามิกหมายถึงการประมวลผลข้อมูลที่ถูกส่งด้วยตัวคูณที่แตกต่างกันสำหรับโหนดต่างๆ ในช่วงเวลาที่แตกต่างกัน",
"endTime": "เวลาสิ้นสุด",
"inputPlaceholder": "กรอก",
"multiplier": "ตัวคูณ",
"nodePullInterval": "ช่วงเวลาการดึงของโหนด",
"nodePullIntervalDescription": "ความถี่ (เป็นวินาที) ที่โหนดจะดึงข้อมูลจากแผงควบคุม",
"nodePushInterval": "ช่วงเวลาการส่งของโหนด",
"nodePushIntervalDescription": "ความถี่ที่โหนดจะส่งข้อมูลไปยังแผงควบคุม",
"reset": "รีเซ็ต",
"save": "บันทึก",
"saveSuccess": "บันทึกสำเร็จ",
"startTime": "เวลาเริ่มต้น",
"timeSlot": "ช่วงเวลา"
},
"group": {
"actions": "การดำเนินการ",
"cancel": "ยกเลิก",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "โหนด",
"nodeConfig": "การกำหนดค่าโหนด",
"nodeGroup": "กลุ่มโหนด"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "อัตราการแบ่งปันค่าคอมมิชชั่นทั่วโลกเริ่มต้น คุณสามารถกำหนดค่าอัตราเฉพาะในระบบจัดการผู้ใช้",
"saveSuccess": "บันทึกสำเร็จ"
},
"node": {
"addTimeSlot": "เพิ่มช่วงเวลา",
"communicationKey": "คีย์การสื่อสาร",
"communicationKeyDescription": "คีย์สำหรับการสื่อสารของโหนด เพื่อให้มั่นใจว่าข้อมูลจะไม่ถูกดักจับโดยผู้อื่น",
"delete": "ลบ",
"dynamicMultiplier": "ตัวคูณแบบไดนามิก",
"dynamicMultiplierDescription": "ตัวคูณแบบไดนามิกหมายถึงการประมวลผลข้อมูลที่ถูกส่งด้วยตัวคูณที่แตกต่างกันสำหรับโหนดต่างๆ ในช่วงเวลาที่แตกต่างกัน",
"endTime": "เวลาสิ้นสุด",
"inputPlaceholder": "กรุณาใส่ข้อมูล",
"multiplier": "ตัวคูณ",
"nodePullInterval": "ช่วงเวลาการดึงข้อมูลของโหนด",
"nodePullIntervalDescription": "ความถี่ที่โหนดดึงข้อมูลจากแผงควบคุม (วินาที)",
"nodePushInterval": "ช่วงเวลาการส่งข้อมูลของโหนด",
"nodePushIntervalDescription": "ความถี่ที่โหนดส่งข้อมูลไปยังแผงควบคุม",
"reset": "รีเซ็ต",
"save": "บันทึก",
"saveSuccess": "บันทึกสำเร็จ",
"startTime": "เวลาเริ่มต้น",
"timeSlot": "ช่วงเวลา"
},
"site": {
"logo": "LOGO",
"logoDescription": "ใช้สำหรับแสดงตำแหน่งที่ต้องการแสดง LOGO",
@ -56,7 +36,6 @@
"tabs": {
"currency": "สกุลเงิน",
"invite": "เชิญ",
"node": "โหนด",
"site": "เว็บไซต์",
"telegram": "Telegram",
"tos": "ข้อกำหนดการให้บริการ",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Zaman Dilimi Ekle",
"communicationKey": "İletişim Anahtarı",
"communicationKeyDescription": "Veri güvenliğini sağlamak için düğüm iletişim anahtarı",
"delete": "Sil",
"dynamicMultiplier": "Dinamik Çarpan",
"dynamicMultiplierDescription": "Dinamik Çarpan, farklı zaman dilimlerinde farklı düğümler için farklı çarpanlarla işlenen verileri ifade eder.",
"endTime": "Bitiş Zamanı",
"inputPlaceholder": "Giriniz",
"multiplier": "Çarpan",
"nodePullInterval": "Düğüm Çekme Aralığı",
"nodePullIntervalDescription": "Düğümlerin panelden veri çekme sıklığı (saniye cinsinden)",
"nodePushInterval": "Düğüm İtme Aralığı",
"nodePushIntervalDescription": "Düğümlerin panele veri itme sıklığı",
"reset": "Sıfırla",
"save": "Kaydet",
"saveSuccess": "Başarıyla Kaydedildi",
"startTime": "Başlangıç Zamanı",
"timeSlot": "Zaman Dilimi"
},
"group": {
"actions": "İşlemler",
"cancel": "İptal",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Düğüm",
"nodeConfig": "Düğüm Yapılandırması",
"nodeGroup": "Düğüm Grubu"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Varsayılan küresel komisyon dağıtım oranı, kullanıcı yönetiminde tek bir oran yapılandırabilirsiniz.",
"saveSuccess": "Başarıyla kaydedildi"
},
"node": {
"addTimeSlot": "Zaman Dilimi Ekle",
"communicationKey": "İletişim Anahtarı",
"communicationKeyDescription": "Verilerin başkaları tarafından ele geçirilmemesini sağlamak için düğüm iletişim anahtarı",
"delete": "Sil",
"dynamicMultiplier": "Dinamik Çarpan",
"dynamicMultiplierDescription": "Dinamik Çarpan, farklı zaman dilimlerinde farklı düğümler için farklı çarpanlarla işlenen veriyi ifade eder.",
"endTime": "Bitiş Zamanı",
"inputPlaceholder": "Lütfen giriniz",
"multiplier": "Çarpan",
"nodePullInterval": "Düğüm Çekme Aralığı",
"nodePullIntervalDescription": "Düğümün panelden veri alma sıklığı (saniye)",
"nodePushInterval": "Düğüm Gönderme Aralığı",
"nodePushIntervalDescription": "Düğümün verileri panele gönderme sıklığı",
"reset": "Sıfırla",
"save": "Kaydet",
"saveSuccess": "Başarıyla kaydedildi",
"startTime": "Başlangıç Zamanı",
"timeSlot": "Zaman Dilimi"
},
"site": {
"logo": "LOGO",
"logoDescription": "LOGO'nun gösterilmesi gereken yeri belirtir",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Para Birimi",
"invite": "Davet Et",
"node": "Düğüm",
"site": "Site",
"telegram": "Telegram",
"tos": "Hizmet Şartları",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Додати часовий інтервал",
"communicationKey": "Ключ зв'язку",
"communicationKeyDescription": "Ключ для зв'язку вузлів для забезпечення безпеки даних",
"delete": "Видалити",
"dynamicMultiplier": "Динамічний множник",
"dynamicMultiplierDescription": "Динамічний множник означає обробку переданих даних з різними множниками для різних вузлів у різні періоди часу.",
"endTime": "Час завершення",
"inputPlaceholder": "Введіть",
"multiplier": "Множник",
"nodePullInterval": "Інтервал запиту вузла",
"nodePullIntervalDescription": "Частота (в секундах) запиту даних вузлами з панелі",
"nodePushInterval": "Інтервал передачі вузла",
"nodePushIntervalDescription": "Частота передачі даних вузлами на панель",
"reset": "Скинути",
"save": "Зберегти",
"saveSuccess": "Успішно збережено",
"startTime": "Час початку",
"timeSlot": "Часовий інтервал"
},
"group": {
"actions": "Дії",
"cancel": "Скасувати",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Вузол",
"nodeConfig": "Конфігурація вузла",
"nodeGroup": "Група вузлів"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Загальний відсоток розподілу комісії за замовчуванням, ви можете налаштувати окремий відсоток в управлінні користувачами",
"saveSuccess": "Успішно збережено"
},
"node": {
"addTimeSlot": "Додати часовий проміжок",
"communicationKey": "Ключ зв'язку",
"communicationKeyDescription": "Ключ для зв'язку вузла, щоб забезпечити захист даних від перехоплення",
"delete": "Видалити",
"dynamicMultiplier": "Динамічний Множник",
"dynamicMultiplierDescription": "Динамічний множник відноситься до обробки переданих даних з різними множниками для різних вузлів протягом різних періодів часу.",
"endTime": "Час Закінчення",
"inputPlaceholder": "Будь ласка, введіть",
"multiplier": "Множник",
"nodePullInterval": "Інтервал отримання вузла",
"nodePullIntervalDescription": "Частота отримання даних вузлом з панелі (в секундах)",
"nodePushInterval": "Інтервал відправки вузла",
"nodePushIntervalDescription": "Частота відправки даних вузлом на панель",
"reset": "Скинути",
"save": "Зберегти",
"saveSuccess": "Збережено успішно",
"startTime": "Час Початку",
"timeSlot": "Часовий проміжок"
},
"site": {
"logo": "ЛОГО",
"logoDescription": "Використовується для відображення місця, де потрібно показати ЛОГО",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Валюта",
"invite": "Запрошення",
"node": "Вузол",
"site": "Сайт",
"telegram": "Telegram",
"tos": "Умови обслуговування",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "Thêm Khung Giờ",
"communicationKey": "Khóa Giao Tiếp",
"communicationKeyDescription": "Khóa cho giao tiếp giữa các nút để đảm bảo an toàn dữ liệu",
"delete": "Xóa",
"dynamicMultiplier": "Hệ Số Động",
"dynamicMultiplierDescription": "Hệ Số Động đề cập đến việc xử lý dữ liệu đẩy với các hệ số khác nhau cho các nút khác nhau trong các khoảng thời gian khác nhau.",
"endTime": "Thời Gian Kết Thúc",
"inputPlaceholder": "Nhập",
"multiplier": "Hệ Số",
"nodePullInterval": "Khoảng Thời Gian Kéo Nút",
"nodePullIntervalDescription": "Tần suất (tính bằng giây) để các nút lấy dữ liệu từ bảng điều khiển",
"nodePushInterval": "Khoảng Thời Gian Đẩy Nút",
"nodePushIntervalDescription": "Tần suất để các nút đẩy dữ liệu lên bảng điều khiển",
"reset": "Đặt Lại",
"save": "Lưu",
"saveSuccess": "Lưu Thành Công",
"startTime": "Thời Gian Bắt Đầu",
"timeSlot": "Khung Giờ"
},
"group": {
"actions": "Hành động",
"cancel": "Hủy bỏ",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "Nút",
"nodeConfig": "Cấu Hình Nút",
"nodeGroup": "Nhóm nút"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "Tỷ lệ phân chia hoa hồng toàn cầu mặc định, bạn có thể cấu hình tỷ lệ riêng cho từng người dùng trong quản lý người dùng",
"saveSuccess": "Lưu thành công"
},
"node": {
"addTimeSlot": "Thêm Khung Giờ",
"communicationKey": "Khóa giao tiếp",
"communicationKeyDescription": "Khóa giao tiếp của nút để đảm bảo dữ liệu không bị chặn bởi người khác",
"delete": "Xóa",
"dynamicMultiplier": "Hệ số động",
"dynamicMultiplierDescription": "Hệ số động đề cập đến việc xử lý dữ liệu đẩy với các hệ số khác nhau cho các nút khác nhau trong các khoảng thời gian khác nhau.",
"endTime": "Thời gian kết thúc",
"inputPlaceholder": "Vui lòng nhập",
"multiplier": "Hệ số",
"nodePullInterval": "Khoảng thời gian kéo nút",
"nodePullIntervalDescription": "Tần suất nút lấy dữ liệu từ bảng điều khiển (giây)",
"nodePushInterval": "Khoảng thời gian đẩy nút",
"nodePushIntervalDescription": "Tần suất nút đẩy dữ liệu lên bảng điều khiển",
"reset": "Đặt lại",
"save": "Lưu",
"saveSuccess": "Lưu thành công",
"startTime": "Thời gian bắt đầu",
"timeSlot": "Khung giờ"
},
"site": {
"logo": "LOGO",
"logoDescription": "Dùng để hiển thị vị trí cần hiển thị LOGO",
@ -56,7 +36,6 @@
"tabs": {
"currency": "Tiền tệ",
"invite": "Mời",
"node": "Nút",
"site": "Trang web",
"telegram": "Telegram",
"tos": "Điều khoản dịch vụ",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "添加时间段",
"communicationKey": "通信密钥",
"communicationKeyDescription": "节点通信的密钥,以确保数据安全",
"delete": "删除",
"dynamicMultiplier": "动态倍数",
"dynamicMultiplierDescription": "动态倍数指在不同时间段内,对不同节点推送的数据进行不同倍数的处理。",
"endTime": "结束时间",
"inputPlaceholder": "输入",
"multiplier": "倍数",
"nodePullInterval": "节点拉取间隔",
"nodePullIntervalDescription": "节点从面板获取数据的频率(以秒为单位)",
"nodePushInterval": "节点推送间隔",
"nodePushIntervalDescription": "节点向面板推送数据的频率",
"reset": "重置",
"save": "保存",
"saveSuccess": "保存成功",
"startTime": "开始时间",
"timeSlot": "时间段"
},
"group": {
"actions": "操作",
"cancel": "取消",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "节点",
"nodeConfig": "节点配置",
"nodeGroup": "节点组"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "默认全局佣金分配比例,您可以在用户管理中配置单个比例",
"saveSuccess": "保存成功"
},
"node": {
"addTimeSlot": "添加时间段",
"communicationKey": "通信密钥",
"communicationKeyDescription": "节点通信的密钥,以确保数据不被他人拦截",
"delete": "删除",
"dynamicMultiplier": "动态倍率",
"dynamicMultiplierDescription": "动态倍率是指在不同时间段内,对不同的节点推送的数据进行不同的倍率处理",
"endTime": "结束时间",
"inputPlaceholder": "请输入",
"multiplier": "倍率",
"nodePullInterval": "节点拉取间隔",
"nodePullIntervalDescription": "节点从面板获取数据的频率(秒)",
"nodePushInterval": "节点推送间隔",
"nodePushIntervalDescription": "节点将数据推送到面板的频率",
"reset": "重置",
"save": "保存",
"saveSuccess": "保存成功",
"startTime": "开始时间",
"timeSlot": "时间段"
},
"site": {
"logo": "LOGO",
"logoDescription": "用于显示需要展示 LOGO 的位置",
@ -56,7 +36,6 @@
"tabs": {
"currency": "货币",
"invite": "邀请",
"node": "节点",
"site": "站点",
"telegram": "Telegram",
"tos": "服务条款",

View File

@ -1,4 +1,24 @@
{
"config": {
"addTimeSlot": "新增時間段",
"communicationKey": "通訊密鑰",
"communicationKeyDescription": "節點通訊的密鑰,以確保數據安全",
"delete": "刪除",
"dynamicMultiplier": "動態倍數",
"dynamicMultiplierDescription": "動態倍數指在不同時間段內,對不同節點的推送數據進行不同倍數的處理。",
"endTime": "結束時間",
"inputPlaceholder": "輸入",
"multiplier": "倍數",
"nodePullInterval": "節點拉取間隔",
"nodePullIntervalDescription": "節點從面板獲取數據的頻率(以秒為單位)",
"nodePushInterval": "節點推送間隔",
"nodePushIntervalDescription": "節點向面板推送數據的頻率",
"reset": "重置",
"save": "保存",
"saveSuccess": "保存成功",
"startTime": "開始時間",
"timeSlot": "時間段"
},
"group": {
"actions": "操作",
"cancel": "取消",
@ -130,6 +150,7 @@
},
"tabs": {
"node": "節點",
"nodeConfig": "節點配置",
"nodeGroup": "節點組"
}
}

View File

@ -18,26 +18,6 @@
"inviteCommissionPercentageDescription": "默認全局佣金分配比例,您可以在用戶管理中配置單個比例",
"saveSuccess": "保存成功"
},
"node": {
"addTimeSlot": "新增時間段",
"communicationKey": "通訊密鑰",
"communicationKeyDescription": "節點通訊的密鑰,以確保數據不被他人攔截",
"delete": "刪除",
"dynamicMultiplier": "動態乘數",
"dynamicMultiplierDescription": "動態乘數指的是在不同時間段內,對不同節點的推送數據使用不同的乘數進行處理。",
"endTime": "結束時間",
"inputPlaceholder": "請輸入",
"multiplier": "乘數",
"nodePullInterval": "節點拉取間隔",
"nodePullIntervalDescription": "節點從面板獲取數據的頻率(秒)",
"nodePushInterval": "節點推送間隔",
"nodePushIntervalDescription": "節點將數據推送到面板的頻率",
"reset": "重設",
"save": "儲存",
"saveSuccess": "保存成功",
"startTime": "開始時間",
"timeSlot": "時間段"
},
"site": {
"logo": "LOGO",
"logoDescription": "用於顯示需要展示 LOGO 的位置",
@ -56,7 +36,6 @@
"tabs": {
"currency": "貨幣",
"invite": "邀請",
"node": "節點",
"site": "網站",
"telegram": "Telegram",
"tos": "服務條款",