✨ feat(node): Move the node configuration to the server module
This commit is contained in:
parent
f90d4d2ce6
commit
7f0f5ce9db
@ -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}
|
||||
@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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ů"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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": "گروه نود"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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": "شرایط خدمات",
|
||||
|
||||
@ -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ä"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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": "नोड समूह"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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": "सेवा की शर्तें",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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": "ノードグループ"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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": "利用規約",
|
||||
|
||||
@ -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": "노드 그룹"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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": "서비스 약관",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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": "Группа узлов"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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": "Условия обслуживания",
|
||||
|
||||
@ -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": "กลุ่มโหนด"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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": "ข้อกำหนดการให้บริการ",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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ı",
|
||||
|
||||
@ -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": "Група вузлів"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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": "Умови обслуговування",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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ụ",
|
||||
|
||||
@ -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": "节点组"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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": "服务条款",
|
||||
|
||||
@ -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": "節點組"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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": "服務條款",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user