mirror of
https://github.com/perfect-panel/ppanel-web.git
synced 2026-02-14 04:11:11 -05:00
✨ feat(locales): Replace 'nodeGroupId' with 'groupId' in multiple language files for consistency
This commit is contained in:
parent
70497af0aa
commit
a4e9d5da59
@ -139,7 +139,7 @@ export default function NodeForm<T extends { [x: string]: any }>({
|
|||||||
name='group_id'
|
name='group_id'
|
||||||
render={({ field }) => (
|
render={({ field }) => (
|
||||||
<FormItem>
|
<FormItem>
|
||||||
<FormLabel>{t('form.nodeGroupId')}</FormLabel>
|
<FormLabel>{t('form.groupId')}</FormLabel>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Combobox<number, false>
|
<Combobox<number, false>
|
||||||
placeholder={t('form.selectNodeGroup')}
|
placeholder={t('form.selectNodeGroup')}
|
||||||
@ -148,6 +148,9 @@ export default function NodeForm<T extends { [x: string]: any }>({
|
|||||||
value: item.id,
|
value: item.id,
|
||||||
label: item.name,
|
label: item.name,
|
||||||
}))}
|
}))}
|
||||||
|
onChange={(value) => {
|
||||||
|
form.setValue(field.name, value || 0);
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<FormMessage />
|
<FormMessage />
|
||||||
|
|||||||
@ -135,7 +135,7 @@ export default function NodeTable() {
|
|||||||
accessorKey: 'speed_limit',
|
accessorKey: 'speed_limit',
|
||||||
header: t('speedLimit'),
|
header: t('speedLimit'),
|
||||||
cell: ({ row }) => (
|
cell: ({ row }) => (
|
||||||
<Display type='traffic' value={row.getValue('speed_limit')} unlimited />
|
<Display type='trafficSpeed' value={row.getValue('speed_limit')} unlimited />
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -219,13 +219,13 @@ export default function SubscribeForm<T extends Record<string, any>>({
|
|||||||
name='group_id'
|
name='group_id'
|
||||||
render={({ field }) => (
|
render={({ field }) => (
|
||||||
<FormItem>
|
<FormItem>
|
||||||
<FormLabel>{t('form.subscribeGroup')}</FormLabel>
|
<FormLabel>{t('form.groupId')}</FormLabel>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Combobox<number, false>
|
<Combobox<number, false>
|
||||||
placeholder={t('form.selectSubscribeGroup')}
|
placeholder={t('form.selectSubscribeGroup')}
|
||||||
{...field}
|
{...field}
|
||||||
onChange={(value) => {
|
onChange={(value) => {
|
||||||
form.setValue(field.name, value);
|
form.setValue(field.name, value || 0);
|
||||||
}}
|
}}
|
||||||
options={group?.map((item) => ({
|
options={group?.map((item) => ({
|
||||||
label: item.name,
|
label: item.name,
|
||||||
|
|||||||
@ -1,11 +1,12 @@
|
|||||||
'use client';
|
'use client';
|
||||||
|
|
||||||
|
import { Display } from '@/components/display';
|
||||||
import { ProTable, ProTableActions } from '@/components/pro-table';
|
import { ProTable, ProTableActions } from '@/components/pro-table';
|
||||||
import { createUser, deleteUser, getUserList, updateUser } from '@/services/admin/user';
|
import { createUser, deleteUser, getUserList, updateUser } from '@/services/admin/user';
|
||||||
import { Button } from '@workspace/ui/components/button';
|
import { Button } from '@workspace/ui/components/button';
|
||||||
import { Switch } from '@workspace/ui/components/switch';
|
import { Switch } from '@workspace/ui/components/switch';
|
||||||
import { ConfirmButton } from '@workspace/ui/custom-components/confirm-button';
|
import { ConfirmButton } from '@workspace/ui/custom-components/confirm-button';
|
||||||
import { formatDate, unitConversion } from '@workspace/ui/utils';
|
import { formatDate } from '@workspace/ui/utils';
|
||||||
import { useTranslations } from 'next-intl';
|
import { useTranslations } from 'next-intl';
|
||||||
import { useRef, useState } from 'react';
|
import { useRef, useState } from 'react';
|
||||||
import { toast } from 'sonner';
|
import { toast } from 'sonner';
|
||||||
@ -77,7 +78,22 @@ export default function Page() {
|
|||||||
{
|
{
|
||||||
accessorKey: 'balance',
|
accessorKey: 'balance',
|
||||||
header: t('balance'),
|
header: t('balance'),
|
||||||
cell: ({ row }) => unitConversion('centsToDollars', row.getValue('balance')),
|
cell: ({ row }) => <Display type='currency' value={row.getValue('balance')} />,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: 'gift_amount',
|
||||||
|
header: t('giftAmount'),
|
||||||
|
cell: ({ row }) => <Display type='currency' value={row.getValue('gift_amount')} />,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: 'commission',
|
||||||
|
header: t('commission'),
|
||||||
|
cell: ({ row }) => <Display type='currency' value={row.getValue('commission')} />,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: 'refer_code',
|
||||||
|
header: t('inviteCode'),
|
||||||
|
cell: ({ row }) => row.getValue('refer_code') || '--',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessorKey: 'referer_id',
|
accessorKey: 'referer_id',
|
||||||
|
|||||||
@ -1,10 +1,11 @@
|
|||||||
'use client';
|
'use client';
|
||||||
|
|
||||||
|
import { Display } from '@/components/display';
|
||||||
import { getUserDetail } from '@/services/admin/user';
|
import { getUserDetail } from '@/services/admin/user';
|
||||||
import { useQuery } from '@tanstack/react-query';
|
import { useQuery } from '@tanstack/react-query';
|
||||||
import { Button } from '@workspace/ui/components/button';
|
import { Button } from '@workspace/ui/components/button';
|
||||||
import { HoverCard, HoverCardContent, HoverCardTrigger } from '@workspace/ui/components/hover-card';
|
import { HoverCard, HoverCardContent, HoverCardTrigger } from '@workspace/ui/components/hover-card';
|
||||||
import { formatDate, unitConversion } from '@workspace/ui/utils';
|
import { formatDate } from '@workspace/ui/utils';
|
||||||
import { useTranslations } from 'next-intl';
|
import { useTranslations } from 'next-intl';
|
||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
|
|
||||||
@ -43,7 +44,21 @@ export function UserDetail({ id }: { id: number }) {
|
|||||||
</li>
|
</li>
|
||||||
<li className='flex items-center justify-between font-semibold'>
|
<li className='flex items-center justify-between font-semibold'>
|
||||||
<span className='text-muted-foreground'>{t('balance')}</span>
|
<span className='text-muted-foreground'>{t('balance')}</span>
|
||||||
<span>{unitConversion('centsToDollars', data?.balance)}</span>
|
<span>
|
||||||
|
<Display type='currency' value={data?.balance} />
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
<li className='flex items-center justify-between'>
|
||||||
|
<span className='text-muted-foreground'>{t('giftAmount')}</span>
|
||||||
|
<span>
|
||||||
|
<Display type='currency' value={data?.gift_amount} />
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
<li className='flex items-center justify-between'>
|
||||||
|
<span className='text-muted-foreground'>{t('commission')}</span>
|
||||||
|
<span>
|
||||||
|
<Display type='currency' value={data?.commission} />
|
||||||
|
</span>
|
||||||
</li>
|
</li>
|
||||||
<li className='flex items-center justify-between'>
|
<li className='flex items-center justify-between'>
|
||||||
<span className='text-muted-foreground'>{t('createdAt')}</span>
|
<span className='text-muted-foreground'>{t('createdAt')}</span>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
'use client';
|
'use client';
|
||||||
|
|
||||||
|
import useGlobalStore from '@/config/use-global';
|
||||||
import { zodResolver } from '@hookform/resolvers/zod';
|
import { zodResolver } from '@hookform/resolvers/zod';
|
||||||
import { Icon } from '@iconify/react';
|
import { Icon } from '@iconify/react';
|
||||||
import { Button } from '@workspace/ui/components/button';
|
import { Button } from '@workspace/ui/components/button';
|
||||||
@ -43,8 +44,10 @@ export default function UserForm<T extends Record<string, any>>({
|
|||||||
loading,
|
loading,
|
||||||
trigger,
|
trigger,
|
||||||
title,
|
title,
|
||||||
}: UserFormProps<T>) {
|
}: Readonly<UserFormProps<T>>) {
|
||||||
const t = useTranslations('user');
|
const t = useTranslations('user');
|
||||||
|
const { common } = useGlobalStore();
|
||||||
|
const { currency } = common;
|
||||||
|
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
const formSchema = z.object({
|
const formSchema = z.object({
|
||||||
@ -54,6 +57,8 @@ export default function UserForm<T extends Record<string, any>>({
|
|||||||
refer_code: z.string().optional(),
|
refer_code: z.string().optional(),
|
||||||
is_admin: z.boolean().optional(),
|
is_admin: z.boolean().optional(),
|
||||||
balance: z.number().optional(),
|
balance: z.number().optional(),
|
||||||
|
gift_amount: z.number().optional(),
|
||||||
|
commission: z.number().optional(),
|
||||||
});
|
});
|
||||||
const form = useForm({
|
const form = useForm({
|
||||||
resolver: zodResolver(formSchema),
|
resolver: zodResolver(formSchema),
|
||||||
@ -176,7 +181,7 @@ export default function UserForm<T extends Record<string, any>>({
|
|||||||
<FormLabel>{t('form.balance')}</FormLabel>
|
<FormLabel>{t('form.balance')}</FormLabel>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<EnhancedInput
|
<EnhancedInput
|
||||||
prefix='¥'
|
prefix={currency?.currency_symbol ?? '$'}
|
||||||
placeholder={t('form.balancePlaceholder')}
|
placeholder={t('form.balancePlaceholder')}
|
||||||
type='number'
|
type='number'
|
||||||
{...field}
|
{...field}
|
||||||
@ -192,6 +197,54 @@ export default function UserForm<T extends Record<string, any>>({
|
|||||||
</FormItem>
|
</FormItem>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
|
<FormField
|
||||||
|
control={form.control}
|
||||||
|
name='gift_amount'
|
||||||
|
render={({ field }) => (
|
||||||
|
<FormItem>
|
||||||
|
<FormLabel>{t('form.giftAmount')}</FormLabel>
|
||||||
|
<FormControl>
|
||||||
|
<EnhancedInput
|
||||||
|
prefix={currency?.currency_symbol ?? '$'}
|
||||||
|
placeholder={t('form.giftAmountPlaceholder')}
|
||||||
|
type='number'
|
||||||
|
{...field}
|
||||||
|
formatInput={(value) => unitConversion('centsToDollars', value)}
|
||||||
|
formatOutput={(value) => unitConversion('dollarsToCents', value)}
|
||||||
|
onValueChange={(value) => {
|
||||||
|
form.setValue(field.name, value);
|
||||||
|
}}
|
||||||
|
min={0}
|
||||||
|
/>
|
||||||
|
</FormControl>
|
||||||
|
<FormMessage />
|
||||||
|
</FormItem>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
<FormField
|
||||||
|
control={form.control}
|
||||||
|
name='commission'
|
||||||
|
render={({ field }) => (
|
||||||
|
<FormItem>
|
||||||
|
<FormLabel>{t('form.commission')}</FormLabel>
|
||||||
|
<FormControl>
|
||||||
|
<EnhancedInput
|
||||||
|
prefix={currency?.currency_symbol ?? '$'}
|
||||||
|
placeholder={t('form.commissionPlaceholder')}
|
||||||
|
type='number'
|
||||||
|
{...field}
|
||||||
|
formatInput={(value) => unitConversion('centsToDollars', value)}
|
||||||
|
formatOutput={(value) => unitConversion('dollarsToCents', value)}
|
||||||
|
onValueChange={(value) => {
|
||||||
|
form.setValue(field.name, value);
|
||||||
|
}}
|
||||||
|
min={0}
|
||||||
|
/>
|
||||||
|
</FormControl>
|
||||||
|
<FormMessage />
|
||||||
|
</FormItem>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
<FormField
|
<FormField
|
||||||
control={form.control}
|
control={form.control}
|
||||||
name='is_admin'
|
name='is_admin'
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import useGlobalStore from '@/config/use-global';
|
|||||||
import { formatBytes, unitConversion } from '@workspace/ui/utils';
|
import { formatBytes, unitConversion } from '@workspace/ui/utils';
|
||||||
import { useTranslations } from 'next-intl';
|
import { useTranslations } from 'next-intl';
|
||||||
|
|
||||||
type DisplayType = 'currency' | 'traffic' | 'number';
|
type DisplayType = 'currency' | 'traffic' | 'number' | 'trafficSpeed';
|
||||||
|
|
||||||
interface DisplayProps<T> {
|
interface DisplayProps<T> {
|
||||||
value?: T;
|
value?: T;
|
||||||
@ -26,12 +26,16 @@ export function Display<T extends number | undefined | null>({
|
|||||||
return formattedValue;
|
return formattedValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (['traffic', 'number'].includes(type) && unlimited && !value) {
|
if (['traffic', 'trafficSpeed', 'number'].includes(type) && unlimited && !value) {
|
||||||
return t('unlimited');
|
return t('unlimited');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type === 'traffic') {
|
if (type === 'traffic') {
|
||||||
return value ? formatBytes(value as number) : '0';
|
return value ? formatBytes(value) : '0';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type === 'trafficSpeed') {
|
||||||
|
return value ? formatBytes(value).replace('B', 'b') + 'ps' : '0';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type === 'number') {
|
if (type === 'number') {
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "Povolit TLS",
|
"enableTLS": "Povolit TLS",
|
||||||
"encryptionMethod": "Metoda šifrování",
|
"encryptionMethod": "Metoda šifrování",
|
||||||
"flow": "Algoritmus řízení toku",
|
"flow": "Algoritmus řízení toku",
|
||||||
|
"groupId": "Skupina uzlů",
|
||||||
"hopInterval": "Interval skoků",
|
"hopInterval": "Interval skoků",
|
||||||
"hopPorts": "Porty skoků",
|
"hopPorts": "Porty skoků",
|
||||||
"hopPortsPlaceholder": "Více portů oddělených čárkou",
|
"hopPortsPlaceholder": "Více portů oddělených čárkou",
|
||||||
"name": "Název",
|
"name": "Název",
|
||||||
"nodeGroupId": "ID skupiny uzlů",
|
|
||||||
"obfsPassword": "Heslo pro zmatení",
|
"obfsPassword": "Heslo pro zmatení",
|
||||||
"obfsPasswordPlaceholder": "Nechte prázdné, pokud nechcete zmást",
|
"obfsPasswordPlaceholder": "Nechte prázdné, pokud nechcete zmást",
|
||||||
"path": "Cesta",
|
"path": "Cesta",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Procento slevy",
|
"discountPercent": "Procento slevy",
|
||||||
"discount_price": "Cena po slevě",
|
"discount_price": "Cena po slevě",
|
||||||
"duration": "Doba trvání (měsíce)",
|
"duration": "Doba trvání (měsíce)",
|
||||||
|
"groupId": "Skupina předplatného",
|
||||||
"inventory": "Sklad",
|
"inventory": "Sklad",
|
||||||
"monthlyReset": "Měsíční Reset",
|
"monthlyReset": "Měsíční Reset",
|
||||||
"name": "Název",
|
"name": "Název",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Žádný Reset",
|
"noReset": "Žádný Reset",
|
||||||
"pricing": "Cenotvorba",
|
"pricing": "Cenotvorba",
|
||||||
"purchaseWithDiscount": "Povolit Odpočet",
|
"purchaseWithDiscount": "Povolit Odpočet",
|
||||||
"purchaseWithDiscountDescription": "Povolit nebo zakázat funkci odpočtu. Když je povolena, systém zpracovává odpočty na základě nakonfigurovaných pravidel a poměrů",
|
"purchaseWithDiscountDescription": "Povolit nebo zakázat funkci odhlášení. Po aktivaci systém provede zpracování odpočtu podle nakonfigurovaných pravidel a poměrů a zbývající hodnota bude vrácena na zůstatek.",
|
||||||
"quota": "Limit nákupu",
|
"quota": "Limit nákupu",
|
||||||
"renewalReset": "Reset při Obnovení",
|
"renewalReset": "Reset při Obnovení",
|
||||||
"renewalResetDescription": "Resetovací cyklus při obnovení",
|
"renewalResetDescription": "Resetovací cyklus při obnovení",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Server",
|
"server": "Server",
|
||||||
"serverGroup": "Skupina serverů",
|
"serverGroup": "Skupina serverů",
|
||||||
"servers": "Servery",
|
"servers": "Servery",
|
||||||
"speedLimit": "Omezení rychlosti (Mbps)",
|
"speedLimit": "Omezení rychlosti ",
|
||||||
"subscribeGroup": "Skupina předplatného",
|
|
||||||
"traffic": "Přenos dat",
|
"traffic": "Přenos dat",
|
||||||
"unitPrice": "Jednotková cena",
|
"unitPrice": "Jednotková cena",
|
||||||
"unitTime": "Jednotka času"
|
"unitTime": "Jednotka času"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "akce",
|
"actions": "akce",
|
||||||
"balance": "Zůstatek",
|
"balance": "Zůstatek",
|
||||||
"cancel": "zrušit",
|
"cancel": "zrušit",
|
||||||
|
"commission": "Provize",
|
||||||
"confirm": "Potvrdit",
|
"confirm": "Potvrdit",
|
||||||
"confirmDelete": "Opravdu chcete smazat?",
|
"confirmDelete": "Opravdu chcete smazat?",
|
||||||
"create": "Vytvořit",
|
"create": "Vytvořit",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Zůstatek",
|
"balance": "Zůstatek",
|
||||||
"balancePlaceholder": "Zůstatek",
|
"balancePlaceholder": "Zůstatek",
|
||||||
"cancel": "Zrušit",
|
"cancel": "Zrušit",
|
||||||
|
"commission": "Provize",
|
||||||
|
"commissionPlaceholder": "Zadejte provizi",
|
||||||
"confirm": "Potvrdit",
|
"confirm": "Potvrdit",
|
||||||
|
"giftAmount": "Částka daru",
|
||||||
|
"giftAmountPlaceholder": "Zadejte částku daru",
|
||||||
"invalidEmailFormat": "Neplatný formát e-mailu",
|
"invalidEmailFormat": "Neplatný formát e-mailu",
|
||||||
"inviteCode": "Pozvánkový kód",
|
"inviteCode": "Pozvánkový kód",
|
||||||
"inviteCodePlaceholder": "Zadejte pozvánkový kód (ponechte prázdné pro automatické generování)",
|
"inviteCodePlaceholder": "Zadejte pozvánkový kód (ponechte prázdné pro automatické generování)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "E-mail uživatele",
|
"userEmail": "E-mail uživatele",
|
||||||
"userEmailPlaceholder": "Zadejte e-mail uživatele"
|
"userEmailPlaceholder": "Zadejte e-mail uživatele"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Částka dárku",
|
||||||
|
"inviteCode": "Pozvánkový kód",
|
||||||
"referer": "Doporučitel",
|
"referer": "Doporučitel",
|
||||||
"updateSuccess": "Aktualizace byla úspěšná",
|
"updateSuccess": "Aktualizace byla úspěšná",
|
||||||
"userList": "Seznam uživatelů",
|
"userList": "Seznam uživatelů",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "TLS aktivieren",
|
"enableTLS": "TLS aktivieren",
|
||||||
"encryptionMethod": "Verschlüsselungsmethode",
|
"encryptionMethod": "Verschlüsselungsmethode",
|
||||||
"flow": "Flusskontrollalgorithmus",
|
"flow": "Flusskontrollalgorithmus",
|
||||||
|
"groupId": "Knotengruppe",
|
||||||
"hopInterval": "Sprungintervall",
|
"hopInterval": "Sprungintervall",
|
||||||
"hopPorts": "Sprungports",
|
"hopPorts": "Sprungports",
|
||||||
"hopPortsPlaceholder": "Mehrere Ports durch Kommas trennen",
|
"hopPortsPlaceholder": "Mehrere Ports durch Kommas trennen",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"nodeGroupId": "Knotengruppen-ID",
|
|
||||||
"obfsPassword": "Verschleierungspasswort",
|
"obfsPassword": "Verschleierungspasswort",
|
||||||
"obfsPasswordPlaceholder": "Leer lassen für keine Verschleierung",
|
"obfsPasswordPlaceholder": "Leer lassen für keine Verschleierung",
|
||||||
"path": "Pfad",
|
"path": "Pfad",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Rabattprozentsatz",
|
"discountPercent": "Rabattprozentsatz",
|
||||||
"discount_price": "Rabattpreis",
|
"discount_price": "Rabattpreis",
|
||||||
"duration": "Dauer (Monate)",
|
"duration": "Dauer (Monate)",
|
||||||
|
"groupId": "Abonnementgruppe",
|
||||||
"inventory": "Bestand",
|
"inventory": "Bestand",
|
||||||
"monthlyReset": "Monatliches Zurücksetzen",
|
"monthlyReset": "Monatliches Zurücksetzen",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Kein Zurücksetzen",
|
"noReset": "Kein Zurücksetzen",
|
||||||
"pricing": "Preisgestaltung",
|
"pricing": "Preisgestaltung",
|
||||||
"purchaseWithDiscount": "Abzug erlauben",
|
"purchaseWithDiscount": "Abzug erlauben",
|
||||||
"purchaseWithDiscountDescription": "Aktivieren oder deaktivieren Sie die Abzugsfunktion. Wenn aktiviert, verarbeitet das System Abzüge basierend auf den konfigurierten Regeln und Verhältnissen.",
|
"purchaseWithDiscountDescription": "Aktivieren oder deaktivieren Sie die Abmeldefunktion. Nach der Aktivierung führt das System die Abzugsverarbeitung gemäß den konfigurierten Regeln und Anteilen durch, und der verbleibende Wert wird dem Guthaben gutgeschrieben.",
|
||||||
"quota": "Kaufbeschränkung",
|
"quota": "Kaufbeschränkung",
|
||||||
"renewalReset": "Zurücksetzen bei Erneuerung",
|
"renewalReset": "Zurücksetzen bei Erneuerung",
|
||||||
"renewalResetDescription": "Zurücksetzungszyklus bei Erneuerung",
|
"renewalResetDescription": "Zurücksetzungszyklus bei Erneuerung",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Dienst",
|
"server": "Dienst",
|
||||||
"serverGroup": "Dienstgruppe",
|
"serverGroup": "Dienstgruppe",
|
||||||
"servers": "Server",
|
"servers": "Server",
|
||||||
"speedLimit": "Geschwindigkeitsbegrenzung (Mbps)",
|
"speedLimit": "Geschwindigkeitsbegrenzung ",
|
||||||
"subscribeGroup": "Abonnementgruppe",
|
|
||||||
"traffic": "Datenvolumen",
|
"traffic": "Datenvolumen",
|
||||||
"unitPrice": "Einheitspreis",
|
"unitPrice": "Einheitspreis",
|
||||||
"unitTime": "Zeiteinheit"
|
"unitTime": "Zeiteinheit"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "Aktionen",
|
"actions": "Aktionen",
|
||||||
"balance": "Kontostand",
|
"balance": "Kontostand",
|
||||||
"cancel": "Abbrechen",
|
"cancel": "Abbrechen",
|
||||||
|
"commission": "Provision",
|
||||||
"confirm": "Bestätigen",
|
"confirm": "Bestätigen",
|
||||||
"confirmDelete": "Sind Sie sicher, dass Sie löschen möchten?",
|
"confirmDelete": "Sind Sie sicher, dass Sie löschen möchten?",
|
||||||
"create": "Erstellen",
|
"create": "Erstellen",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Kontostand",
|
"balance": "Kontostand",
|
||||||
"balancePlaceholder": "Kontostand",
|
"balancePlaceholder": "Kontostand",
|
||||||
"cancel": "Abbrechen",
|
"cancel": "Abbrechen",
|
||||||
|
"commission": "Provision",
|
||||||
|
"commissionPlaceholder": "Geben Sie die Provision ein",
|
||||||
"confirm": "Bestätigen",
|
"confirm": "Bestätigen",
|
||||||
|
"giftAmount": "Geschenkbetrag",
|
||||||
|
"giftAmountPlaceholder": "Geben Sie den Geschenkbetrag ein",
|
||||||
"invalidEmailFormat": "Ungültiges E-Mail-Format",
|
"invalidEmailFormat": "Ungültiges E-Mail-Format",
|
||||||
"inviteCode": "Einladungscode",
|
"inviteCode": "Einladungscode",
|
||||||
"inviteCodePlaceholder": "Bitte Einladungscode eingeben (leer lassen für automatische Generierung)",
|
"inviteCodePlaceholder": "Bitte Einladungscode eingeben (leer lassen für automatische Generierung)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "Benutzer-E-Mail",
|
"userEmail": "Benutzer-E-Mail",
|
||||||
"userEmailPlaceholder": "Bitte Benutzer-E-Mail eingeben"
|
"userEmailPlaceholder": "Bitte Benutzer-E-Mail eingeben"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Geschenkbetrag",
|
||||||
|
"inviteCode": "Einladungscode",
|
||||||
"referer": "Empfehler",
|
"referer": "Empfehler",
|
||||||
"updateSuccess": "Aktualisierung erfolgreich",
|
"updateSuccess": "Aktualisierung erfolgreich",
|
||||||
"userList": "Benutzerliste",
|
"userList": "Benutzerliste",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "Enable TLS",
|
"enableTLS": "Enable TLS",
|
||||||
"encryptionMethod": "Encryption Method",
|
"encryptionMethod": "Encryption Method",
|
||||||
"flow": "Flow Control Algorithm",
|
"flow": "Flow Control Algorithm",
|
||||||
|
"groupId": "Node Group",
|
||||||
"hopInterval": "Hop Interval",
|
"hopInterval": "Hop Interval",
|
||||||
"hopPorts": "Hop Ports",
|
"hopPorts": "Hop Ports",
|
||||||
"hopPortsPlaceholder": "Separate multiple ports with commas",
|
"hopPortsPlaceholder": "Separate multiple ports with commas",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"nodeGroupId": "Node Group ID",
|
|
||||||
"obfsPassword": "Obfuscation Password",
|
"obfsPassword": "Obfuscation Password",
|
||||||
"obfsPasswordPlaceholder": "Leave blank for no obfuscation",
|
"obfsPasswordPlaceholder": "Leave blank for no obfuscation",
|
||||||
"path": "Path",
|
"path": "Path",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Discount Percentage",
|
"discountPercent": "Discount Percentage",
|
||||||
"discount_price": "Discount Price",
|
"discount_price": "Discount Price",
|
||||||
"duration": "Duration (months)",
|
"duration": "Duration (months)",
|
||||||
|
"groupId": "Subscription Group",
|
||||||
"inventory": "Inventory",
|
"inventory": "Inventory",
|
||||||
"monthlyReset": "Monthly Reset",
|
"monthlyReset": "Monthly Reset",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "No Reset",
|
"noReset": "No Reset",
|
||||||
"pricing": "Pricing",
|
"pricing": "Pricing",
|
||||||
"purchaseWithDiscount": "Allow Deduction",
|
"purchaseWithDiscount": "Allow Deduction",
|
||||||
"purchaseWithDiscountDescription": "Enable or disable the deduction feature. When enabled, the system will process deductions based on the configured rules and ratios",
|
"purchaseWithDiscountDescription": "Enable or disable unsubscribe functionality. After activation, the system will perform deduction processing according to the configured rules and proportions, and the remaining value will be returned to the balance",
|
||||||
"quota": "Purchase Limit",
|
"quota": "Purchase Limit",
|
||||||
"renewalReset": "Renewal Reset",
|
"renewalReset": "Renewal Reset",
|
||||||
"renewalResetDescription": "Reset cycle upon renewal",
|
"renewalResetDescription": "Reset cycle upon renewal",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Server",
|
"server": "Server",
|
||||||
"serverGroup": "Server Group",
|
"serverGroup": "Server Group",
|
||||||
"servers": "Servers",
|
"servers": "Servers",
|
||||||
"speedLimit": "Speed Limit (Mbps)",
|
"speedLimit": "Speed Limit ",
|
||||||
"subscribeGroup": "Subscription Group",
|
|
||||||
"traffic": "Traffic",
|
"traffic": "Traffic",
|
||||||
"unitPrice": "Unit Price",
|
"unitPrice": "Unit Price",
|
||||||
"unitTime": "Unit Time"
|
"unitTime": "Unit Time"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "Actions",
|
"actions": "Actions",
|
||||||
"balance": "Balance",
|
"balance": "Balance",
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
|
"commission": "Commission",
|
||||||
"confirm": "Confirm",
|
"confirm": "Confirm",
|
||||||
"confirmDelete": "Are you sure you want to delete?",
|
"confirmDelete": "Are you sure you want to delete?",
|
||||||
"create": "Create",
|
"create": "Create",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Balance",
|
"balance": "Balance",
|
||||||
"balancePlaceholder": "Balance",
|
"balancePlaceholder": "Balance",
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
|
"commission": "Commission",
|
||||||
|
"commissionPlaceholder": "Enter commission",
|
||||||
"confirm": "Confirm",
|
"confirm": "Confirm",
|
||||||
|
"giftAmount": "Gift Amount",
|
||||||
|
"giftAmountPlaceholder": "Enter gift amount",
|
||||||
"invalidEmailFormat": "Invalid email format",
|
"invalidEmailFormat": "Invalid email format",
|
||||||
"inviteCode": "Invite Code",
|
"inviteCode": "Invite Code",
|
||||||
"inviteCodePlaceholder": "Enter invite code (leave blank to generate)",
|
"inviteCodePlaceholder": "Enter invite code (leave blank to generate)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "User Email",
|
"userEmail": "User Email",
|
||||||
"userEmailPlaceholder": "Enter user email"
|
"userEmailPlaceholder": "Enter user email"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Gift Amount",
|
||||||
|
"inviteCode": "Invite Code",
|
||||||
"referer": "Referer",
|
"referer": "Referer",
|
||||||
"updateSuccess": "Update successful",
|
"updateSuccess": "Update successful",
|
||||||
"userList": "User List",
|
"userList": "User List",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "Habilitar TLS",
|
"enableTLS": "Habilitar TLS",
|
||||||
"encryptionMethod": "Método de encriptación",
|
"encryptionMethod": "Método de encriptación",
|
||||||
"flow": "Algoritmo de control de flujo",
|
"flow": "Algoritmo de control de flujo",
|
||||||
|
"groupId": "Grupo de Nodo",
|
||||||
"hopInterval": "Intervalo de salto",
|
"hopInterval": "Intervalo de salto",
|
||||||
"hopPorts": "Puertos de salto",
|
"hopPorts": "Puertos de salto",
|
||||||
"hopPortsPlaceholder": "Varios puertos separados por comas",
|
"hopPortsPlaceholder": "Varios puertos separados por comas",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
"nodeGroupId": "ID del grupo de nodos",
|
|
||||||
"obfsPassword": "Contraseña de ofuscación",
|
"obfsPassword": "Contraseña de ofuscación",
|
||||||
"obfsPasswordPlaceholder": "Dejar en blanco para no ofuscar",
|
"obfsPasswordPlaceholder": "Dejar en blanco para no ofuscar",
|
||||||
"path": "Ruta",
|
"path": "Ruta",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Porcentaje de descuento",
|
"discountPercent": "Porcentaje de descuento",
|
||||||
"discount_price": "Precio con descuento",
|
"discount_price": "Precio con descuento",
|
||||||
"duration": "Duración (meses)",
|
"duration": "Duración (meses)",
|
||||||
|
"groupId": "Grupo de Suscripción",
|
||||||
"inventory": "Inventario",
|
"inventory": "Inventario",
|
||||||
"monthlyReset": "Reinicio Mensual",
|
"monthlyReset": "Reinicio Mensual",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Sin Reinicio",
|
"noReset": "Sin Reinicio",
|
||||||
"pricing": "Precios",
|
"pricing": "Precios",
|
||||||
"purchaseWithDiscount": "Permitir Deducción",
|
"purchaseWithDiscount": "Permitir Deducción",
|
||||||
"purchaseWithDiscountDescription": "Habilitar o deshabilitar la función de deducción. Cuando está habilitada, el sistema procesará las deducciones basadas en las reglas y ratios configurados",
|
"purchaseWithDiscountDescription": "Habilitar o deshabilitar la funcionalidad de cancelación de suscripción. Después de la activación, el sistema realizará el procesamiento de deducción según las reglas y proporciones configuradas, y el valor restante se devolverá al saldo",
|
||||||
"quota": "Cantidad de compra limitada",
|
"quota": "Cantidad de compra limitada",
|
||||||
"renewalReset": "Reinicio por Renovación",
|
"renewalReset": "Reinicio por Renovación",
|
||||||
"renewalResetDescription": "Reiniciar ciclo al renovar",
|
"renewalResetDescription": "Reiniciar ciclo al renovar",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Servidor",
|
"server": "Servidor",
|
||||||
"serverGroup": "Grupo de servidores",
|
"serverGroup": "Grupo de servidores",
|
||||||
"servers": "Servidores",
|
"servers": "Servidores",
|
||||||
"speedLimit": "Límite de velocidad (Mbps)",
|
"speedLimit": "Límite de velocidad ",
|
||||||
"subscribeGroup": "Grupo de suscripción",
|
|
||||||
"traffic": "Tráfico",
|
"traffic": "Tráfico",
|
||||||
"unitPrice": "Precio unitario",
|
"unitPrice": "Precio unitario",
|
||||||
"unitTime": "Unidad de tiempo"
|
"unitTime": "Unidad de tiempo"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "acciones",
|
"actions": "acciones",
|
||||||
"balance": "Saldo",
|
"balance": "Saldo",
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
|
"commission": "Comisión",
|
||||||
"confirm": "Confirmar",
|
"confirm": "Confirmar",
|
||||||
"confirmDelete": "¿Está seguro de que desea eliminar?",
|
"confirmDelete": "¿Está seguro de que desea eliminar?",
|
||||||
"create": "Crear",
|
"create": "Crear",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Saldo",
|
"balance": "Saldo",
|
||||||
"balancePlaceholder": "Saldo",
|
"balancePlaceholder": "Saldo",
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
|
"commission": "Comisión",
|
||||||
|
"commissionPlaceholder": "Ingrese la comisión",
|
||||||
"confirm": "Confirmar",
|
"confirm": "Confirmar",
|
||||||
|
"giftAmount": "Monto del Regalo",
|
||||||
|
"giftAmountPlaceholder": "Ingrese el monto del regalo",
|
||||||
"invalidEmailFormat": "Formato de correo electrónico no válido",
|
"invalidEmailFormat": "Formato de correo electrónico no válido",
|
||||||
"inviteCode": "Código de invitación",
|
"inviteCode": "Código de invitación",
|
||||||
"inviteCodePlaceholder": "Por favor, introduzca el código de invitación (déjelo en blanco para generar automáticamente)",
|
"inviteCodePlaceholder": "Por favor, introduzca el código de invitación (déjelo en blanco para generar automáticamente)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "Correo electrónico del usuario",
|
"userEmail": "Correo electrónico del usuario",
|
||||||
"userEmailPlaceholder": "Por favor, introduzca el correo electrónico del usuario"
|
"userEmailPlaceholder": "Por favor, introduzca el correo electrónico del usuario"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Monto del Regalo",
|
||||||
|
"inviteCode": "Código de invitación",
|
||||||
"referer": "Recomendador",
|
"referer": "Recomendador",
|
||||||
"updateSuccess": "Actualización exitosa",
|
"updateSuccess": "Actualización exitosa",
|
||||||
"userList": "Lista de usuarios",
|
"userList": "Lista de usuarios",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "Habilitar TLS",
|
"enableTLS": "Habilitar TLS",
|
||||||
"encryptionMethod": "Método de encriptación",
|
"encryptionMethod": "Método de encriptación",
|
||||||
"flow": "Algoritmo de control de flujo",
|
"flow": "Algoritmo de control de flujo",
|
||||||
|
"groupId": "Grupo de Nodo",
|
||||||
"hopInterval": "Intervalo de salto",
|
"hopInterval": "Intervalo de salto",
|
||||||
"hopPorts": "Puertos de salto",
|
"hopPorts": "Puertos de salto",
|
||||||
"hopPortsPlaceholder": "Varios puertos separados por comas",
|
"hopPortsPlaceholder": "Varios puertos separados por comas",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
"nodeGroupId": "ID del grupo de nodos",
|
|
||||||
"obfsPassword": "Contraseña de ofuscación",
|
"obfsPassword": "Contraseña de ofuscación",
|
||||||
"obfsPasswordPlaceholder": "Dejar en blanco para no ofuscar",
|
"obfsPasswordPlaceholder": "Dejar en blanco para no ofuscar",
|
||||||
"path": "Ruta",
|
"path": "Ruta",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Porcentaje de descuento",
|
"discountPercent": "Porcentaje de descuento",
|
||||||
"discount_price": "Precio con descuento",
|
"discount_price": "Precio con descuento",
|
||||||
"duration": "Duración (meses)",
|
"duration": "Duración (meses)",
|
||||||
|
"groupId": "Grupo de Suscripción",
|
||||||
"inventory": "Inventario",
|
"inventory": "Inventario",
|
||||||
"monthlyReset": "Reinicio Mensual",
|
"monthlyReset": "Reinicio Mensual",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Sin Reinicio",
|
"noReset": "Sin Reinicio",
|
||||||
"pricing": "Precios",
|
"pricing": "Precios",
|
||||||
"purchaseWithDiscount": "Permitir Deducción",
|
"purchaseWithDiscount": "Permitir Deducción",
|
||||||
"purchaseWithDiscountDescription": "Habilitar o deshabilitar la función de deducción. Cuando está habilitada, el sistema procesará deducciones basadas en las reglas y ratios configurados.",
|
"purchaseWithDiscountDescription": "Habilitar o deshabilitar la funcionalidad de cancelación de suscripción. Después de la activación, el sistema realizará el procesamiento de deducción según las reglas y proporciones configuradas, y el valor restante se devolverá al saldo",
|
||||||
"quota": "Cantidad máxima de compra",
|
"quota": "Cantidad máxima de compra",
|
||||||
"renewalReset": "Reinicio por Renovación",
|
"renewalReset": "Reinicio por Renovación",
|
||||||
"renewalResetDescription": "Reiniciar ciclo al renovar",
|
"renewalResetDescription": "Reiniciar ciclo al renovar",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Servidor",
|
"server": "Servidor",
|
||||||
"serverGroup": "Grupo de servidores",
|
"serverGroup": "Grupo de servidores",
|
||||||
"servers": "Servidores",
|
"servers": "Servidores",
|
||||||
"speedLimit": "Límite de velocidad (Mbps)",
|
"speedLimit": "Límite de velocidad ",
|
||||||
"subscribeGroup": "Grupo de suscripción",
|
|
||||||
"traffic": "Tráfico",
|
"traffic": "Tráfico",
|
||||||
"unitPrice": "Precio unitario",
|
"unitPrice": "Precio unitario",
|
||||||
"unitTime": "Unidad de tiempo"
|
"unitTime": "Unidad de tiempo"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "acciones",
|
"actions": "acciones",
|
||||||
"balance": "Saldo",
|
"balance": "Saldo",
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
|
"commission": "Comisión",
|
||||||
"confirm": "Confirmar",
|
"confirm": "Confirmar",
|
||||||
"confirmDelete": "¿Está seguro de que desea eliminar?",
|
"confirmDelete": "¿Está seguro de que desea eliminar?",
|
||||||
"create": "Crear",
|
"create": "Crear",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Saldo",
|
"balance": "Saldo",
|
||||||
"balancePlaceholder": "Saldo",
|
"balancePlaceholder": "Saldo",
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
|
"commission": "Comisión",
|
||||||
|
"commissionPlaceholder": "Ingrese la comisión",
|
||||||
"confirm": "Confirmar",
|
"confirm": "Confirmar",
|
||||||
|
"giftAmount": "Monto del Regalo",
|
||||||
|
"giftAmountPlaceholder": "Ingrese el monto del regalo",
|
||||||
"invalidEmailFormat": "Formato de correo electrónico no válido",
|
"invalidEmailFormat": "Formato de correo electrónico no válido",
|
||||||
"inviteCode": "Código de invitación",
|
"inviteCode": "Código de invitación",
|
||||||
"inviteCodePlaceholder": "Ingrese el código de invitación (déjelo en blanco para generar automáticamente)",
|
"inviteCodePlaceholder": "Ingrese el código de invitación (déjelo en blanco para generar automáticamente)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "Correo electrónico del usuario",
|
"userEmail": "Correo electrónico del usuario",
|
||||||
"userEmailPlaceholder": "Ingrese el correo electrónico del usuario"
|
"userEmailPlaceholder": "Ingrese el correo electrónico del usuario"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Monto del Regalo",
|
||||||
|
"inviteCode": "Código de Invitación",
|
||||||
"referer": "Recomendador",
|
"referer": "Recomendador",
|
||||||
"updateSuccess": "Actualización exitosa",
|
"updateSuccess": "Actualización exitosa",
|
||||||
"userList": "Lista de usuarios",
|
"userList": "Lista de usuarios",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "فعالسازی TLS",
|
"enableTLS": "فعالسازی TLS",
|
||||||
"encryptionMethod": "روش رمزنگاری",
|
"encryptionMethod": "روش رمزنگاری",
|
||||||
"flow": "الگوریتم کنترل جریان",
|
"flow": "الگوریتم کنترل جریان",
|
||||||
|
"groupId": "گروه نود",
|
||||||
"hopInterval": "فاصله پرش",
|
"hopInterval": "فاصله پرش",
|
||||||
"hopPorts": "پورتهای پرش",
|
"hopPorts": "پورتهای پرش",
|
||||||
"hopPortsPlaceholder": "پورتهای متعدد را با کاما جدا کنید",
|
"hopPortsPlaceholder": "پورتهای متعدد را با کاما جدا کنید",
|
||||||
"name": "نام",
|
"name": "نام",
|
||||||
"nodeGroupId": "شناسه گروه گره",
|
|
||||||
"obfsPassword": "رمز عبور مبهمسازی",
|
"obfsPassword": "رمز عبور مبهمسازی",
|
||||||
"obfsPasswordPlaceholder": "برای عدم مبهمسازی خالی بگذارید",
|
"obfsPasswordPlaceholder": "برای عدم مبهمسازی خالی بگذارید",
|
||||||
"path": "مسیر",
|
"path": "مسیر",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "درصد تخفیف",
|
"discountPercent": "درصد تخفیف",
|
||||||
"discount_price": "قیمت تخفیف",
|
"discount_price": "قیمت تخفیف",
|
||||||
"duration": "مدت زمان (ماهها)",
|
"duration": "مدت زمان (ماهها)",
|
||||||
|
"groupId": "گروه اشتراک",
|
||||||
"inventory": "موجودی",
|
"inventory": "موجودی",
|
||||||
"monthlyReset": "بازنشانی ماهانه",
|
"monthlyReset": "بازنشانی ماهانه",
|
||||||
"name": "نام",
|
"name": "نام",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "بدون بازنشانی",
|
"noReset": "بدون بازنشانی",
|
||||||
"pricing": "قیمتگذاری",
|
"pricing": "قیمتگذاری",
|
||||||
"purchaseWithDiscount": "اجازه کسر",
|
"purchaseWithDiscount": "اجازه کسر",
|
||||||
"purchaseWithDiscountDescription": "فعال یا غیرفعال کردن ویژگی کسر. هنگامی که فعال است، سیستم کسرها را بر اساس قوانین و نسبتهای پیکربندی شده پردازش میکند.",
|
"purchaseWithDiscountDescription": "فعال یا غیرفعال کردن قابلیت لغو اشتراک. پس از فعالسازی، سیستم بر اساس قوانین و نسبتهای تنظیمشده، پردازش کسر را انجام میدهد و مقدار باقیمانده به موجودی بازگردانده میشود.",
|
||||||
"quota": "محدودیت خرید",
|
"quota": "محدودیت خرید",
|
||||||
"renewalReset": "بازنشانی تمدید",
|
"renewalReset": "بازنشانی تمدید",
|
||||||
"renewalResetDescription": "بازنشانی چرخه در زمان تمدید",
|
"renewalResetDescription": "بازنشانی چرخه در زمان تمدید",
|
||||||
@ -56,7 +57,6 @@
|
|||||||
"serverGroup": "گروه سرور",
|
"serverGroup": "گروه سرور",
|
||||||
"servers": "سرورها",
|
"servers": "سرورها",
|
||||||
"speedLimit": "محدودیت سرعت (مگابیت بر ثانیه)",
|
"speedLimit": "محدودیت سرعت (مگابیت بر ثانیه)",
|
||||||
"subscribeGroup": "گروه اشتراک",
|
|
||||||
"traffic": "ترافیک",
|
"traffic": "ترافیک",
|
||||||
"unitPrice": "قیمت واحد",
|
"unitPrice": "قیمت واحد",
|
||||||
"unitTime": "واحد زمان"
|
"unitTime": "واحد زمان"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "اقدامات",
|
"actions": "اقدامات",
|
||||||
"balance": "تعادل",
|
"balance": "تعادل",
|
||||||
"cancel": "لغو",
|
"cancel": "لغو",
|
||||||
|
"commission": "کمیسیون",
|
||||||
"confirm": "تأیید",
|
"confirm": "تأیید",
|
||||||
"confirmDelete": "آیا مطمئن هستید که میخواهید حذف کنید؟",
|
"confirmDelete": "آیا مطمئن هستید که میخواهید حذف کنید؟",
|
||||||
"create": "ایجاد",
|
"create": "ایجاد",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "موجودی",
|
"balance": "موجودی",
|
||||||
"balancePlaceholder": "موجودی",
|
"balancePlaceholder": "موجودی",
|
||||||
"cancel": "لغو",
|
"cancel": "لغو",
|
||||||
|
"commission": "کمیسیون",
|
||||||
|
"commissionPlaceholder": "کمیسیون را وارد کنید",
|
||||||
"confirm": "تأیید",
|
"confirm": "تأیید",
|
||||||
|
"giftAmount": "مبلغ هدیه",
|
||||||
|
"giftAmountPlaceholder": "مبلغ هدیه را وارد کنید",
|
||||||
"invalidEmailFormat": "فرمت ایمیل نامعتبر است",
|
"invalidEmailFormat": "فرمت ایمیل نامعتبر است",
|
||||||
"inviteCode": "کد دعوت",
|
"inviteCode": "کد دعوت",
|
||||||
"inviteCodePlaceholder": "کد دعوت را وارد کنید (برای تولید خالی بگذارید)",
|
"inviteCodePlaceholder": "کد دعوت را وارد کنید (برای تولید خالی بگذارید)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "ایمیل کاربر",
|
"userEmail": "ایمیل کاربر",
|
||||||
"userEmailPlaceholder": "ایمیل کاربر را وارد کنید"
|
"userEmailPlaceholder": "ایمیل کاربر را وارد کنید"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "مقدار هدیه",
|
||||||
|
"inviteCode": "کد دعوت",
|
||||||
"referer": "ارجاعدهنده",
|
"referer": "ارجاعدهنده",
|
||||||
"updateSuccess": "بهروزرسانی با موفقیت انجام شد",
|
"updateSuccess": "بهروزرسانی با موفقیت انجام شد",
|
||||||
"userList": "فهرست کاربران",
|
"userList": "فهرست کاربران",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "Ota TLS käyttöön",
|
"enableTLS": "Ota TLS käyttöön",
|
||||||
"encryptionMethod": "Salausmenetelmä",
|
"encryptionMethod": "Salausmenetelmä",
|
||||||
"flow": "Virtausalgoritmi",
|
"flow": "Virtausalgoritmi",
|
||||||
|
"groupId": "Solmu Ryhmä",
|
||||||
"hopInterval": "Hyppyväli",
|
"hopInterval": "Hyppyväli",
|
||||||
"hopPorts": "Hyppyportit",
|
"hopPorts": "Hyppyportit",
|
||||||
"hopPortsPlaceholder": "Erota useat portit pilkulla",
|
"hopPortsPlaceholder": "Erota useat portit pilkulla",
|
||||||
"name": "Nimi",
|
"name": "Nimi",
|
||||||
"nodeGroupId": "Solmuryhmän ID",
|
|
||||||
"obfsPassword": "Hämäyssalasana",
|
"obfsPassword": "Hämäyssalasana",
|
||||||
"obfsPasswordPlaceholder": "Jätä tyhjäksi, jos ei hämäystä",
|
"obfsPasswordPlaceholder": "Jätä tyhjäksi, jos ei hämäystä",
|
||||||
"path": "Polku",
|
"path": "Polku",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Alennusprosentti",
|
"discountPercent": "Alennusprosentti",
|
||||||
"discount_price": "Alennettu hinta",
|
"discount_price": "Alennettu hinta",
|
||||||
"duration": "Kesto (kuukautta)",
|
"duration": "Kesto (kuukautta)",
|
||||||
|
"groupId": "Tilausryhmä",
|
||||||
"inventory": "Varasto",
|
"inventory": "Varasto",
|
||||||
"monthlyReset": "Kuukausittainen Nollaus",
|
"monthlyReset": "Kuukausittainen Nollaus",
|
||||||
"name": "Nimi",
|
"name": "Nimi",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Ei Nollausta",
|
"noReset": "Ei Nollausta",
|
||||||
"pricing": "Hinnoittelu",
|
"pricing": "Hinnoittelu",
|
||||||
"purchaseWithDiscount": "Salli Vähennys",
|
"purchaseWithDiscount": "Salli Vähennys",
|
||||||
"purchaseWithDiscountDescription": "Ota vähennystoiminto käyttöön tai poista se käytöstä. Kun se on käytössä, järjestelmä käsittelee vähennykset määritettyjen sääntöjen ja suhteiden perusteella.",
|
"purchaseWithDiscountDescription": "Ota käyttöön tai poista käytöstä peruutustoiminto. Aktivoinnin jälkeen järjestelmä suorittaa vähennyskäsittelyn määritettyjen sääntöjen ja osuuksien mukaisesti, ja jäljelle jäävä arvo palautetaan saldolle.",
|
||||||
"quota": "Ostorajoitus",
|
"quota": "Ostorajoitus",
|
||||||
"renewalReset": "Uusimisen Nollaus",
|
"renewalReset": "Uusimisen Nollaus",
|
||||||
"renewalResetDescription": "Nollaa jakso uusimisen yhteydessä",
|
"renewalResetDescription": "Nollaa jakso uusimisen yhteydessä",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Palvelin",
|
"server": "Palvelin",
|
||||||
"serverGroup": "Palvelinryhmä",
|
"serverGroup": "Palvelinryhmä",
|
||||||
"servers": "Palvelimet",
|
"servers": "Palvelimet",
|
||||||
"speedLimit": "Nopeusrajoitus (Mbps)",
|
"speedLimit": "Nopeusrajoitus ",
|
||||||
"subscribeGroup": "Tilausryhmä",
|
|
||||||
"traffic": "Liikenne",
|
"traffic": "Liikenne",
|
||||||
"unitPrice": "Yksikköhinta",
|
"unitPrice": "Yksikköhinta",
|
||||||
"unitTime": "Aikayksikkö"
|
"unitTime": "Aikayksikkö"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "toiminnot",
|
"actions": "toiminnot",
|
||||||
"balance": "Saldo",
|
"balance": "Saldo",
|
||||||
"cancel": "Peruuta",
|
"cancel": "Peruuta",
|
||||||
|
"commission": "Komissio",
|
||||||
"confirm": "Vahvista",
|
"confirm": "Vahvista",
|
||||||
"confirmDelete": "Oletko varma, että haluat poistaa?",
|
"confirmDelete": "Oletko varma, että haluat poistaa?",
|
||||||
"create": "Luo",
|
"create": "Luo",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Saldo",
|
"balance": "Saldo",
|
||||||
"balancePlaceholder": "Saldo",
|
"balancePlaceholder": "Saldo",
|
||||||
"cancel": "Peruuta",
|
"cancel": "Peruuta",
|
||||||
|
"commission": "Komissio",
|
||||||
|
"commissionPlaceholder": "Syötä komissio",
|
||||||
"confirm": "Vahvista",
|
"confirm": "Vahvista",
|
||||||
|
"giftAmount": "Lahjan määrä",
|
||||||
|
"giftAmountPlaceholder": "Syötä lahjan määrä",
|
||||||
"invalidEmailFormat": "Virheellinen sähköpostimuoto",
|
"invalidEmailFormat": "Virheellinen sähköpostimuoto",
|
||||||
"inviteCode": "Kutsukoodi",
|
"inviteCode": "Kutsukoodi",
|
||||||
"inviteCodePlaceholder": "Syötä kutsukoodi (jätä tyhjäksi, jos haluat luoda automaattisesti)",
|
"inviteCodePlaceholder": "Syötä kutsukoodi (jätä tyhjäksi, jos haluat luoda automaattisesti)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "Käyttäjän sähköposti",
|
"userEmail": "Käyttäjän sähköposti",
|
||||||
"userEmailPlaceholder": "Syötä käyttäjän sähköposti"
|
"userEmailPlaceholder": "Syötä käyttäjän sähköposti"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Lahjan määrä",
|
||||||
|
"inviteCode": "Kutsukoodi",
|
||||||
"referer": "Suosittelija",
|
"referer": "Suosittelija",
|
||||||
"updateSuccess": "Päivitys onnistui",
|
"updateSuccess": "Päivitys onnistui",
|
||||||
"userList": "Käyttäjälista",
|
"userList": "Käyttäjälista",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "Activer TLS",
|
"enableTLS": "Activer TLS",
|
||||||
"encryptionMethod": "Méthode de cryptage",
|
"encryptionMethod": "Méthode de cryptage",
|
||||||
"flow": "Algorithme de contrôle de flux",
|
"flow": "Algorithme de contrôle de flux",
|
||||||
|
"groupId": "Groupe de nœuds",
|
||||||
"hopInterval": "Intervalle de saut",
|
"hopInterval": "Intervalle de saut",
|
||||||
"hopPorts": "Ports de saut",
|
"hopPorts": "Ports de saut",
|
||||||
"hopPortsPlaceholder": "Séparer plusieurs ports par des virgules",
|
"hopPortsPlaceholder": "Séparer plusieurs ports par des virgules",
|
||||||
"name": "Nom",
|
"name": "Nom",
|
||||||
"nodeGroupId": "ID du groupe de nœuds",
|
|
||||||
"obfsPassword": "Mot de passe d'obfuscation",
|
"obfsPassword": "Mot de passe d'obfuscation",
|
||||||
"obfsPasswordPlaceholder": "Laisser vide pour ne pas obfusquer",
|
"obfsPasswordPlaceholder": "Laisser vide pour ne pas obfusquer",
|
||||||
"path": "Chemin",
|
"path": "Chemin",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Pourcentage de remise",
|
"discountPercent": "Pourcentage de remise",
|
||||||
"discount_price": "Prix remisé",
|
"discount_price": "Prix remisé",
|
||||||
"duration": "Durée (mois)",
|
"duration": "Durée (mois)",
|
||||||
|
"groupId": "Groupe d'abonnement",
|
||||||
"inventory": "Stock",
|
"inventory": "Stock",
|
||||||
"monthlyReset": "Réinitialisation Mensuelle",
|
"monthlyReset": "Réinitialisation Mensuelle",
|
||||||
"name": "Nom",
|
"name": "Nom",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Pas de Réinitialisation",
|
"noReset": "Pas de Réinitialisation",
|
||||||
"pricing": "Tarification",
|
"pricing": "Tarification",
|
||||||
"purchaseWithDiscount": "Autoriser la Déduction",
|
"purchaseWithDiscount": "Autoriser la Déduction",
|
||||||
"purchaseWithDiscountDescription": "Activer ou désactiver la fonction de déduction. Lorsqu'elle est activée, le système traitera les déductions selon les règles et ratios configurés",
|
"purchaseWithDiscountDescription": "Activer ou désactiver la fonctionnalité de désabonnement. Après activation, le système effectuera un traitement de déduction selon les règles et proportions configurées, et la valeur restante sera retournée au solde.",
|
||||||
"quota": "Quantité d'achat limitée",
|
"quota": "Quantité d'achat limitée",
|
||||||
"renewalReset": "Réinitialisation au Renouvellement",
|
"renewalReset": "Réinitialisation au Renouvellement",
|
||||||
"renewalResetDescription": "Réinitialiser le cycle lors du renouvellement",
|
"renewalResetDescription": "Réinitialiser le cycle lors du renouvellement",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Serveur",
|
"server": "Serveur",
|
||||||
"serverGroup": "Groupe de serveurs",
|
"serverGroup": "Groupe de serveurs",
|
||||||
"servers": "Serveurs",
|
"servers": "Serveurs",
|
||||||
"speedLimit": "Limite de vitesse (Mbps)",
|
"speedLimit": "Limite de vitesse ",
|
||||||
"subscribeGroup": "Groupe d'abonnement",
|
|
||||||
"traffic": "Trafic",
|
"traffic": "Trafic",
|
||||||
"unitPrice": "Prix unitaire",
|
"unitPrice": "Prix unitaire",
|
||||||
"unitTime": "Unité de temps"
|
"unitTime": "Unité de temps"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "actions",
|
"actions": "actions",
|
||||||
"balance": "Solde",
|
"balance": "Solde",
|
||||||
"cancel": "Annuler",
|
"cancel": "Annuler",
|
||||||
|
"commission": "Commission",
|
||||||
"confirm": "Confirmer",
|
"confirm": "Confirmer",
|
||||||
"confirmDelete": "Êtes-vous sûr de vouloir supprimer ?",
|
"confirmDelete": "Êtes-vous sûr de vouloir supprimer ?",
|
||||||
"create": "Créer",
|
"create": "Créer",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Solde",
|
"balance": "Solde",
|
||||||
"balancePlaceholder": "Solde",
|
"balancePlaceholder": "Solde",
|
||||||
"cancel": "Annuler",
|
"cancel": "Annuler",
|
||||||
|
"commission": "Commission",
|
||||||
|
"commissionPlaceholder": "Entrez la commission",
|
||||||
"confirm": "Confirmer",
|
"confirm": "Confirmer",
|
||||||
|
"giftAmount": "Montant du cadeau",
|
||||||
|
"giftAmountPlaceholder": "Entrez le montant du cadeau",
|
||||||
"invalidEmailFormat": "Format d'e-mail invalide",
|
"invalidEmailFormat": "Format d'e-mail invalide",
|
||||||
"inviteCode": "Code d'invitation",
|
"inviteCode": "Code d'invitation",
|
||||||
"inviteCodePlaceholder": "Veuillez entrer le code d'invitation (laissez vide pour générer automatiquement)",
|
"inviteCodePlaceholder": "Veuillez entrer le code d'invitation (laissez vide pour générer automatiquement)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "E-mail de l'utilisateur",
|
"userEmail": "E-mail de l'utilisateur",
|
||||||
"userEmailPlaceholder": "Veuillez entrer l'e-mail de l'utilisateur"
|
"userEmailPlaceholder": "Veuillez entrer l'e-mail de l'utilisateur"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Montant du cadeau",
|
||||||
|
"inviteCode": "Code d'invitation",
|
||||||
"referer": "Référent",
|
"referer": "Référent",
|
||||||
"updateSuccess": "Mise à jour réussie",
|
"updateSuccess": "Mise à jour réussie",
|
||||||
"userList": "Liste des utilisateurs",
|
"userList": "Liste des utilisateurs",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "TLS सक्षम करें",
|
"enableTLS": "TLS सक्षम करें",
|
||||||
"encryptionMethod": "एन्क्रिप्शन विधि",
|
"encryptionMethod": "एन्क्रिप्शन विधि",
|
||||||
"flow": "फ्लो कंट्रोल एल्गोरिदम",
|
"flow": "फ्लो कंट्रोल एल्गोरिदम",
|
||||||
|
"groupId": "नोड समूह",
|
||||||
"hopInterval": "हॉप अंतराल",
|
"hopInterval": "हॉप अंतराल",
|
||||||
"hopPorts": "हॉप पोर्ट्स",
|
"hopPorts": "हॉप पोर्ट्स",
|
||||||
"hopPortsPlaceholder": "कई पोर्ट्स को कॉमा से अलग करें",
|
"hopPortsPlaceholder": "कई पोर्ट्स को कॉमा से अलग करें",
|
||||||
"name": "नाम",
|
"name": "नाम",
|
||||||
"nodeGroupId": "नोड समूह ID",
|
|
||||||
"obfsPassword": "ऑबफ्स पासवर्ड",
|
"obfsPassword": "ऑबफ्स पासवर्ड",
|
||||||
"obfsPasswordPlaceholder": "खाली छोड़ें तो ऑबफ्स नहीं होगा",
|
"obfsPasswordPlaceholder": "खाली छोड़ें तो ऑबफ्स नहीं होगा",
|
||||||
"path": "पथ",
|
"path": "पथ",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "छूट प्रतिशत",
|
"discountPercent": "छूट प्रतिशत",
|
||||||
"discount_price": "छूट मूल्य",
|
"discount_price": "छूट मूल्य",
|
||||||
"duration": "अवधि (महीने)",
|
"duration": "अवधि (महीने)",
|
||||||
|
"groupId": "सदस्यता समूह",
|
||||||
"inventory": "भंडार",
|
"inventory": "भंडार",
|
||||||
"monthlyReset": "मासिक रीसेट",
|
"monthlyReset": "मासिक रीसेट",
|
||||||
"name": "नाम",
|
"name": "नाम",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "कोई रीसेट नहीं",
|
"noReset": "कोई रीसेट नहीं",
|
||||||
"pricing": "मूल्य निर्धारण",
|
"pricing": "मूल्य निर्धारण",
|
||||||
"purchaseWithDiscount": "कटौती की अनुमति दें",
|
"purchaseWithDiscount": "कटौती की अनुमति दें",
|
||||||
"purchaseWithDiscountDescription": "कटौती सुविधा को सक्षम या अक्षम करें। जब सक्षम किया जाता है, तो सिस्टम कॉन्फ़िगर किए गए नियमों और अनुपातों के आधार पर कटौती को संसाधित करेगा।",
|
"purchaseWithDiscountDescription": "अनसब्सक्राइब कार्यक्षमता को सक्षम या अक्षम करें। सक्रियण के बाद, सिस्टम कॉन्फ़िगर किए गए नियमों और अनुपातों के अनुसार कटौती प्रसंस्करण करेगा, और शेष मूल्य को बैलेंस में वापस कर दिया जाएगा।",
|
||||||
"quota": "खरीद सीमा",
|
"quota": "खरीद सीमा",
|
||||||
"renewalReset": "नवीनीकरण रीसेट",
|
"renewalReset": "नवीनीकरण रीसेट",
|
||||||
"renewalResetDescription": "नवीनीकरण पर रीसेट चक्र",
|
"renewalResetDescription": "नवीनीकरण पर रीसेट चक्र",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "सर्वर",
|
"server": "सर्वर",
|
||||||
"serverGroup": "सर्वर समूह",
|
"serverGroup": "सर्वर समूह",
|
||||||
"servers": "सर्वर",
|
"servers": "सर्वर",
|
||||||
"speedLimit": "गति सीमा (Mbps)",
|
"speedLimit": "गति सीमा ",
|
||||||
"subscribeGroup": "सदस्यता समूह",
|
|
||||||
"traffic": "ट्रैफिक",
|
"traffic": "ट्रैफिक",
|
||||||
"unitPrice": "इकाई मूल्य",
|
"unitPrice": "इकाई मूल्य",
|
||||||
"unitTime": "इकाई समय"
|
"unitTime": "इकाई समय"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "क्रियाएँ",
|
"actions": "क्रियाएँ",
|
||||||
"balance": "शेष",
|
"balance": "शेष",
|
||||||
"cancel": "रद्द करें",
|
"cancel": "रद्द करें",
|
||||||
|
"commission": "आयोग",
|
||||||
"confirm": "पुष्टि करें",
|
"confirm": "पुष्टि करें",
|
||||||
"confirmDelete": "क्या आप वाकई हटाना चाहते हैं?",
|
"confirmDelete": "क्या आप वाकई हटाना चाहते हैं?",
|
||||||
"create": "सृजन",
|
"create": "सृजन",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "शेष राशि",
|
"balance": "शेष राशि",
|
||||||
"balancePlaceholder": "शेष राशि",
|
"balancePlaceholder": "शेष राशि",
|
||||||
"cancel": "रद्द करें",
|
"cancel": "रद्द करें",
|
||||||
|
"commission": "कमीशन",
|
||||||
|
"commissionPlaceholder": "कमीशन दर्ज करें",
|
||||||
"confirm": "पुष्टि करें",
|
"confirm": "पुष्टि करें",
|
||||||
|
"giftAmount": "उपहार राशि",
|
||||||
|
"giftAmountPlaceholder": "उपहार राशि दर्ज करें",
|
||||||
"invalidEmailFormat": "अमान्य ईमेल प्रारूप",
|
"invalidEmailFormat": "अमान्य ईमेल प्रारूप",
|
||||||
"inviteCode": "आमंत्रण कोड",
|
"inviteCode": "आमंत्रण कोड",
|
||||||
"inviteCodePlaceholder": "कृपया आमंत्रण कोड दर्ज करें (खाली छोड़ने पर स्वचालित रूप से उत्पन्न होगा)",
|
"inviteCodePlaceholder": "कृपया आमंत्रण कोड दर्ज करें (खाली छोड़ने पर स्वचालित रूप से उत्पन्न होगा)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "उपयोगकर्ता ईमेल",
|
"userEmail": "उपयोगकर्ता ईमेल",
|
||||||
"userEmailPlaceholder": "कृपया उपयोगकर्ता ईमेल दर्ज करें"
|
"userEmailPlaceholder": "कृपया उपयोगकर्ता ईमेल दर्ज करें"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "उपहार राशि",
|
||||||
|
"inviteCode": "आमंत्रण कोड",
|
||||||
"referer": "सिफारिशकर्ता",
|
"referer": "सिफारिशकर्ता",
|
||||||
"updateSuccess": "अपडेट सफल",
|
"updateSuccess": "अपडेट सफल",
|
||||||
"userList": "उपयोगकर्ता सूची",
|
"userList": "उपयोगकर्ता सूची",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "TLS engedélyezése",
|
"enableTLS": "TLS engedélyezése",
|
||||||
"encryptionMethod": "Titkosítási módszer",
|
"encryptionMethod": "Titkosítási módszer",
|
||||||
"flow": "Áramlásszabályozási algoritmus",
|
"flow": "Áramlásszabályozási algoritmus",
|
||||||
|
"groupId": "Csomópont csoport",
|
||||||
"hopInterval": "Ugrási intervallum",
|
"hopInterval": "Ugrási intervallum",
|
||||||
"hopPorts": "Ugrási portok",
|
"hopPorts": "Ugrási portok",
|
||||||
"hopPortsPlaceholder": "Több portot vesszővel elválasztva",
|
"hopPortsPlaceholder": "Több portot vesszővel elválasztva",
|
||||||
"name": "Név",
|
"name": "Név",
|
||||||
"nodeGroupId": "Csomópont csoport ID",
|
|
||||||
"obfsPassword": "Zavaró jelszó",
|
"obfsPassword": "Zavaró jelszó",
|
||||||
"obfsPasswordPlaceholder": "Hagyja üresen, ha nem zavarosít",
|
"obfsPasswordPlaceholder": "Hagyja üresen, ha nem zavarosít",
|
||||||
"path": "Útvonal",
|
"path": "Útvonal",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Kedvezmény százalék",
|
"discountPercent": "Kedvezmény százalék",
|
||||||
"discount_price": "Kedvezményes ár",
|
"discount_price": "Kedvezményes ár",
|
||||||
"duration": "Időtartam (hónap)",
|
"duration": "Időtartam (hónap)",
|
||||||
|
"groupId": "Előfizetési csoport",
|
||||||
"inventory": "Készlet",
|
"inventory": "Készlet",
|
||||||
"monthlyReset": "Havi Visszaállítás",
|
"monthlyReset": "Havi Visszaállítás",
|
||||||
"name": "Név",
|
"name": "Név",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Nincs Visszaállítás",
|
"noReset": "Nincs Visszaállítás",
|
||||||
"pricing": "Árazás",
|
"pricing": "Árazás",
|
||||||
"purchaseWithDiscount": "Levonás Engedélyezése",
|
"purchaseWithDiscount": "Levonás Engedélyezése",
|
||||||
"purchaseWithDiscountDescription": "A levonási funkció engedélyezése vagy letiltása. Ha engedélyezve van, a rendszer a beállított szabályok és arányok alapján dolgozza fel a levonásokat.",
|
"purchaseWithDiscountDescription": "Leiratkozási funkció engedélyezése vagy letiltása. Aktiválás után a rendszer a beállított szabályok és arányok szerint végzi el a levonási feldolgozást, és a fennmaradó értéket visszatéríti az egyenlegre.",
|
||||||
"quota": "Vásárlási korlát",
|
"quota": "Vásárlási korlát",
|
||||||
"renewalReset": "Megújítási Visszaállítás",
|
"renewalReset": "Megújítási Visszaállítás",
|
||||||
"renewalResetDescription": "Visszaállítási ciklus megújításkor",
|
"renewalResetDescription": "Visszaállítási ciklus megújításkor",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Szolgáltatás",
|
"server": "Szolgáltatás",
|
||||||
"serverGroup": "Szolgáltatáscsoport",
|
"serverGroup": "Szolgáltatáscsoport",
|
||||||
"servers": "Szerverek",
|
"servers": "Szerverek",
|
||||||
"speedLimit": "Sebességkorlát (Mbps)",
|
"speedLimit": "Sebességkorlát ",
|
||||||
"subscribeGroup": "Előfizetési csoport",
|
|
||||||
"traffic": "Forgalom",
|
"traffic": "Forgalom",
|
||||||
"unitPrice": "Egységár",
|
"unitPrice": "Egységár",
|
||||||
"unitTime": "Időegység"
|
"unitTime": "Időegység"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "műveletek",
|
"actions": "műveletek",
|
||||||
"balance": "Egyenleg",
|
"balance": "Egyenleg",
|
||||||
"cancel": "Mégse",
|
"cancel": "Mégse",
|
||||||
|
"commission": "Jutalék",
|
||||||
"confirm": "Megerősítés",
|
"confirm": "Megerősítés",
|
||||||
"confirmDelete": "Biztosan törölni szeretné?",
|
"confirmDelete": "Biztosan törölni szeretné?",
|
||||||
"create": "Létrehozás",
|
"create": "Létrehozás",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Egyenleg",
|
"balance": "Egyenleg",
|
||||||
"balancePlaceholder": "Egyenleg",
|
"balancePlaceholder": "Egyenleg",
|
||||||
"cancel": "Mégse",
|
"cancel": "Mégse",
|
||||||
|
"commission": "Jutalék",
|
||||||
|
"commissionPlaceholder": "Adja meg a jutalékot",
|
||||||
"confirm": "Megerősít",
|
"confirm": "Megerősít",
|
||||||
|
"giftAmount": "Ajándék összege",
|
||||||
|
"giftAmountPlaceholder": "Adja meg az ajándék összegét",
|
||||||
"invalidEmailFormat": "Érvénytelen e-mail formátum",
|
"invalidEmailFormat": "Érvénytelen e-mail formátum",
|
||||||
"inviteCode": "Meghívókód",
|
"inviteCode": "Meghívókód",
|
||||||
"inviteCodePlaceholder": "Kérjük, adja meg a meghívókódot (ha üres, automatikusan generálódik)",
|
"inviteCodePlaceholder": "Kérjük, adja meg a meghívókódot (ha üres, automatikusan generálódik)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "Felhasználói e-mail",
|
"userEmail": "Felhasználói e-mail",
|
||||||
"userEmailPlaceholder": "Kérjük, adja meg a felhasználói e-mail címet"
|
"userEmailPlaceholder": "Kérjük, adja meg a felhasználói e-mail címet"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Ajándék Összeg",
|
||||||
|
"inviteCode": "Meghívókód",
|
||||||
"referer": "Ajánló",
|
"referer": "Ajánló",
|
||||||
"updateSuccess": "Sikeres frissítés",
|
"updateSuccess": "Sikeres frissítés",
|
||||||
"userList": "Felhasználói lista",
|
"userList": "Felhasználói lista",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "TLSを有効化",
|
"enableTLS": "TLSを有効化",
|
||||||
"encryptionMethod": "暗号化方式",
|
"encryptionMethod": "暗号化方式",
|
||||||
"flow": "フロー制御アルゴリズム",
|
"flow": "フロー制御アルゴリズム",
|
||||||
|
"groupId": "ノードグループ",
|
||||||
"hopInterval": "ホップ間隔",
|
"hopInterval": "ホップ間隔",
|
||||||
"hopPorts": "ホップポート",
|
"hopPorts": "ホップポート",
|
||||||
"hopPortsPlaceholder": "複数のポートはカンマで区切る",
|
"hopPortsPlaceholder": "複数のポートはカンマで区切る",
|
||||||
"name": "名前",
|
"name": "名前",
|
||||||
"nodeGroupId": "ノードグループID",
|
|
||||||
"obfsPassword": "オブフスケーションパスワード",
|
"obfsPassword": "オブフスケーションパスワード",
|
||||||
"obfsPasswordPlaceholder": "空白の場合はオブフスケーションなし",
|
"obfsPasswordPlaceholder": "空白の場合はオブフスケーションなし",
|
||||||
"path": "パス",
|
"path": "パス",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "割引率",
|
"discountPercent": "割引率",
|
||||||
"discount_price": "割引価格",
|
"discount_price": "割引価格",
|
||||||
"duration": "期間(月)",
|
"duration": "期間(月)",
|
||||||
|
"groupId": "サブスクリプショングループ",
|
||||||
"inventory": "在庫",
|
"inventory": "在庫",
|
||||||
"monthlyReset": "毎月リセット",
|
"monthlyReset": "毎月リセット",
|
||||||
"name": "名称",
|
"name": "名称",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "リセットなし",
|
"noReset": "リセットなし",
|
||||||
"pricing": "価格設定",
|
"pricing": "価格設定",
|
||||||
"purchaseWithDiscount": "控除を許可",
|
"purchaseWithDiscount": "控除を許可",
|
||||||
"purchaseWithDiscountDescription": "控除機能を有効または無効にします。有効にすると、システムは設定されたルールと比率に基づいて控除を処理します。",
|
"purchaseWithDiscountDescription": "購読解除機能を有効または無効にします。有効化後、システムは設定されたルールと割合に従って控除処理を行い、残りの金額を残高に返金します。",
|
||||||
"quota": "購入制限数",
|
"quota": "購入制限数",
|
||||||
"renewalReset": "更新時リセット",
|
"renewalReset": "更新時リセット",
|
||||||
"renewalResetDescription": "更新時にリセットサイクル",
|
"renewalResetDescription": "更新時にリセットサイクル",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "サーバー",
|
"server": "サーバー",
|
||||||
"serverGroup": "サーバーグループ",
|
"serverGroup": "サーバーグループ",
|
||||||
"servers": "サーバー",
|
"servers": "サーバー",
|
||||||
"speedLimit": "速度制限(Mbps)",
|
"speedLimit": "速度制限",
|
||||||
"subscribeGroup": "サブスクリプショングループ",
|
|
||||||
"traffic": "トラフィック",
|
"traffic": "トラフィック",
|
||||||
"unitPrice": "単価",
|
"unitPrice": "単価",
|
||||||
"unitTime": "単位時間"
|
"unitTime": "単位時間"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "アクション",
|
"actions": "アクション",
|
||||||
"balance": "残高",
|
"balance": "残高",
|
||||||
"cancel": "キャンセル",
|
"cancel": "キャンセル",
|
||||||
|
"commission": "手数料",
|
||||||
"confirm": "確認",
|
"confirm": "確認",
|
||||||
"confirmDelete": "削除してもよろしいですか?",
|
"confirmDelete": "削除してもよろしいですか?",
|
||||||
"create": "作成",
|
"create": "作成",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "残高",
|
"balance": "残高",
|
||||||
"balancePlaceholder": "残高",
|
"balancePlaceholder": "残高",
|
||||||
"cancel": "キャンセル",
|
"cancel": "キャンセル",
|
||||||
|
"commission": "手数料",
|
||||||
|
"commissionPlaceholder": "手数料を入力してください",
|
||||||
"confirm": "確認",
|
"confirm": "確認",
|
||||||
|
"giftAmount": "ギフト金額",
|
||||||
|
"giftAmountPlaceholder": "ギフト金額を入力してください",
|
||||||
"invalidEmailFormat": "無効なメール形式",
|
"invalidEmailFormat": "無効なメール形式",
|
||||||
"inviteCode": "招待コード",
|
"inviteCode": "招待コード",
|
||||||
"inviteCodePlaceholder": "招待コードを入力してください(空白の場合は自動生成されます)",
|
"inviteCodePlaceholder": "招待コードを入力してください(空白の場合は自動生成されます)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "ユーザーのメール",
|
"userEmail": "ユーザーのメール",
|
||||||
"userEmailPlaceholder": "ユーザーのメールを入力してください"
|
"userEmailPlaceholder": "ユーザーのメールを入力してください"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "ギフト金額",
|
||||||
|
"inviteCode": "招待コード",
|
||||||
"referer": "推薦者",
|
"referer": "推薦者",
|
||||||
"updateSuccess": "更新が成功しました",
|
"updateSuccess": "更新が成功しました",
|
||||||
"userList": "ユーザーリスト",
|
"userList": "ユーザーリスト",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "TLS 활성화",
|
"enableTLS": "TLS 활성화",
|
||||||
"encryptionMethod": "암호화 방법",
|
"encryptionMethod": "암호화 방법",
|
||||||
"flow": "흐름 제어 알고리즘",
|
"flow": "흐름 제어 알고리즘",
|
||||||
|
"groupId": "노드 그룹",
|
||||||
"hopInterval": "홉 간격",
|
"hopInterval": "홉 간격",
|
||||||
"hopPorts": "홉 포트",
|
"hopPorts": "홉 포트",
|
||||||
"hopPortsPlaceholder": "여러 포트는 쉼표로 구분",
|
"hopPortsPlaceholder": "여러 포트는 쉼표로 구분",
|
||||||
"name": "이름",
|
"name": "이름",
|
||||||
"nodeGroupId": "노드 그룹 ID",
|
|
||||||
"obfsPassword": "난독화 비밀번호",
|
"obfsPassword": "난독화 비밀번호",
|
||||||
"obfsPasswordPlaceholder": "비워두면 난독화 안 함",
|
"obfsPasswordPlaceholder": "비워두면 난독화 안 함",
|
||||||
"path": "경로",
|
"path": "경로",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "할인율",
|
"discountPercent": "할인율",
|
||||||
"discount_price": "할인가",
|
"discount_price": "할인가",
|
||||||
"duration": "기간 (개월)",
|
"duration": "기간 (개월)",
|
||||||
|
"groupId": "구독 그룹",
|
||||||
"inventory": "재고",
|
"inventory": "재고",
|
||||||
"monthlyReset": "월별 초기화",
|
"monthlyReset": "월별 초기화",
|
||||||
"name": "이름",
|
"name": "이름",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "초기화 없음",
|
"noReset": "초기화 없음",
|
||||||
"pricing": "가격",
|
"pricing": "가격",
|
||||||
"purchaseWithDiscount": "공제 허용",
|
"purchaseWithDiscount": "공제 허용",
|
||||||
"purchaseWithDiscountDescription": "공제 기능을 활성화하거나 비활성화합니다. 활성화되면 시스템은 구성된 규칙과 비율에 따라 공제를 처리합니다.",
|
"purchaseWithDiscountDescription": "구독 취소 기능을 활성화하거나 비활성화합니다. 활성화 후, 시스템은 설정된 규칙과 비율에 따라 공제 처리를 수행하며, 남은 가치는 잔액으로 반환됩니다.",
|
||||||
"quota": "구매 한도",
|
"quota": "구매 한도",
|
||||||
"renewalReset": "갱신 초기화",
|
"renewalReset": "갱신 초기화",
|
||||||
"renewalResetDescription": "갱신 시 초기화 주기",
|
"renewalResetDescription": "갱신 시 초기화 주기",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "서버",
|
"server": "서버",
|
||||||
"serverGroup": "서버 그룹",
|
"serverGroup": "서버 그룹",
|
||||||
"servers": "서버",
|
"servers": "서버",
|
||||||
"speedLimit": "속도 제한 (Mbps)",
|
"speedLimit": "속도 제한 ",
|
||||||
"subscribeGroup": "구독 그룹",
|
|
||||||
"traffic": "트래픽",
|
"traffic": "트래픽",
|
||||||
"unitPrice": "단가",
|
"unitPrice": "단가",
|
||||||
"unitTime": "단위 시간"
|
"unitTime": "단위 시간"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "작업",
|
"actions": "작업",
|
||||||
"balance": "잔액",
|
"balance": "잔액",
|
||||||
"cancel": "취소",
|
"cancel": "취소",
|
||||||
|
"commission": "커미션",
|
||||||
"confirm": "확인",
|
"confirm": "확인",
|
||||||
"confirmDelete": "삭제하시겠습니까?",
|
"confirmDelete": "삭제하시겠습니까?",
|
||||||
"create": "생성",
|
"create": "생성",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "잔액",
|
"balance": "잔액",
|
||||||
"balancePlaceholder": "잔액",
|
"balancePlaceholder": "잔액",
|
||||||
"cancel": "취소",
|
"cancel": "취소",
|
||||||
|
"commission": "수수료",
|
||||||
|
"commissionPlaceholder": "수수료 입력",
|
||||||
"confirm": "확인",
|
"confirm": "확인",
|
||||||
|
"giftAmount": "선물 금액",
|
||||||
|
"giftAmountPlaceholder": "선물 금액 입력",
|
||||||
"invalidEmailFormat": "유효하지 않은 이메일 형식",
|
"invalidEmailFormat": "유효하지 않은 이메일 형식",
|
||||||
"inviteCode": "초대 코드",
|
"inviteCode": "초대 코드",
|
||||||
"inviteCodePlaceholder": "초대 코드를 입력하세요 (비워두면 자동 생성)",
|
"inviteCodePlaceholder": "초대 코드를 입력하세요 (비워두면 자동 생성)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "사용자 이메일",
|
"userEmail": "사용자 이메일",
|
||||||
"userEmailPlaceholder": "사용자 이메일을 입력하세요"
|
"userEmailPlaceholder": "사용자 이메일을 입력하세요"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "선물 금액",
|
||||||
|
"inviteCode": "초대 코드",
|
||||||
"referer": "추천인",
|
"referer": "추천인",
|
||||||
"updateSuccess": "업데이트 성공",
|
"updateSuccess": "업데이트 성공",
|
||||||
"userList": "사용자 목록",
|
"userList": "사용자 목록",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "Aktiver TLS",
|
"enableTLS": "Aktiver TLS",
|
||||||
"encryptionMethod": "Krypteringsmetode",
|
"encryptionMethod": "Krypteringsmetode",
|
||||||
"flow": "Flytkontrollalgoritme",
|
"flow": "Flytkontrollalgoritme",
|
||||||
|
"groupId": "Nodegruppe",
|
||||||
"hopInterval": "Hoppintervall",
|
"hopInterval": "Hoppintervall",
|
||||||
"hopPorts": "Hoppporter",
|
"hopPorts": "Hoppporter",
|
||||||
"hopPortsPlaceholder": "Flere porter separeres med komma",
|
"hopPortsPlaceholder": "Flere porter separeres med komma",
|
||||||
"name": "Navn",
|
"name": "Navn",
|
||||||
"nodeGroupId": "Nodegruppe-ID",
|
|
||||||
"obfsPassword": "Forvirringspassord",
|
"obfsPassword": "Forvirringspassord",
|
||||||
"obfsPasswordPlaceholder": "La stå tomt for ingen forvirring",
|
"obfsPasswordPlaceholder": "La stå tomt for ingen forvirring",
|
||||||
"path": "Sti",
|
"path": "Sti",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Rabattprosent",
|
"discountPercent": "Rabattprosent",
|
||||||
"discount_price": "Rabattert pris",
|
"discount_price": "Rabattert pris",
|
||||||
"duration": "Varighet (måneder)",
|
"duration": "Varighet (måneder)",
|
||||||
|
"groupId": "Abonnementsgruppe",
|
||||||
"inventory": "Lager",
|
"inventory": "Lager",
|
||||||
"monthlyReset": "Månedlig Tilbakestilling",
|
"monthlyReset": "Månedlig Tilbakestilling",
|
||||||
"name": "Navn",
|
"name": "Navn",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Ingen Tilbakestilling",
|
"noReset": "Ingen Tilbakestilling",
|
||||||
"pricing": "Prissetting",
|
"pricing": "Prissetting",
|
||||||
"purchaseWithDiscount": "Tillat Fradrag",
|
"purchaseWithDiscount": "Tillat Fradrag",
|
||||||
"purchaseWithDiscountDescription": "Aktiver eller deaktiver fradragsfunksjonen. Når den er aktivert, vil systemet behandle fradrag basert på de konfigurerte reglene og forholdene",
|
"purchaseWithDiscountDescription": "Aktiver eller deaktiver funksjonaliteten for avmelding. Etter aktivering vil systemet utføre fradragsbehandling i henhold til de konfigurerte reglene og proporsjonene, og den gjenværende verdien vil bli returnert til saldoen",
|
||||||
"quota": "Kjøpskvote",
|
"quota": "Kjøpskvote",
|
||||||
"renewalReset": "Fornyelsestilbakestilling",
|
"renewalReset": "Fornyelsestilbakestilling",
|
||||||
"renewalResetDescription": "Tilbakestill syklus ved fornyelse",
|
"renewalResetDescription": "Tilbakestill syklus ved fornyelse",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Tjeneste",
|
"server": "Tjeneste",
|
||||||
"serverGroup": "Tjenestegruppe",
|
"serverGroup": "Tjenestegruppe",
|
||||||
"servers": "Servere",
|
"servers": "Servere",
|
||||||
"speedLimit": "Hastighetsbegrensning (Mbps)",
|
"speedLimit": "Hastighetsbegrensning ",
|
||||||
"subscribeGroup": "Abonnementsgruppe",
|
|
||||||
"traffic": "Trafikk",
|
"traffic": "Trafikk",
|
||||||
"unitPrice": "Enhetspris",
|
"unitPrice": "Enhetspris",
|
||||||
"unitTime": "Enhetstid"
|
"unitTime": "Enhetstid"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "handlinger",
|
"actions": "handlinger",
|
||||||
"balance": "Balanse",
|
"balance": "Balanse",
|
||||||
"cancel": "Avbryt",
|
"cancel": "Avbryt",
|
||||||
|
"commission": "Kommisjon",
|
||||||
"confirm": "bekreft",
|
"confirm": "bekreft",
|
||||||
"confirmDelete": "Er du sikker på at du vil slette?",
|
"confirmDelete": "Er du sikker på at du vil slette?",
|
||||||
"create": "opprett",
|
"create": "opprett",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Balanse",
|
"balance": "Balanse",
|
||||||
"balancePlaceholder": "Balanse",
|
"balancePlaceholder": "Balanse",
|
||||||
"cancel": "Avbryt",
|
"cancel": "Avbryt",
|
||||||
|
"commission": "Provisjon",
|
||||||
|
"commissionPlaceholder": "Skriv inn provisjon",
|
||||||
"confirm": "Bekreft",
|
"confirm": "Bekreft",
|
||||||
|
"giftAmount": "Gavebeløp",
|
||||||
|
"giftAmountPlaceholder": "Skriv inn gavebeløp",
|
||||||
"invalidEmailFormat": "Ugyldig e-postformat",
|
"invalidEmailFormat": "Ugyldig e-postformat",
|
||||||
"inviteCode": "Invitasjonskode",
|
"inviteCode": "Invitasjonskode",
|
||||||
"inviteCodePlaceholder": "Vennligst skriv inn invitasjonskode (la stå tom for automatisk generering)",
|
"inviteCodePlaceholder": "Vennligst skriv inn invitasjonskode (la stå tom for automatisk generering)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "Brukerens e-post",
|
"userEmail": "Brukerens e-post",
|
||||||
"userEmailPlaceholder": "Vennligst skriv inn brukerens e-post"
|
"userEmailPlaceholder": "Vennligst skriv inn brukerens e-post"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Gavebeløp",
|
||||||
|
"inviteCode": "Invitasjonskode",
|
||||||
"referer": "Henviser",
|
"referer": "Henviser",
|
||||||
"updateSuccess": "Oppdatering vellykket",
|
"updateSuccess": "Oppdatering vellykket",
|
||||||
"userList": "Brukerliste",
|
"userList": "Brukerliste",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "Włącz TLS",
|
"enableTLS": "Włącz TLS",
|
||||||
"encryptionMethod": "Metoda szyfrowania",
|
"encryptionMethod": "Metoda szyfrowania",
|
||||||
"flow": "Algorytm kontroli przepływu",
|
"flow": "Algorytm kontroli przepływu",
|
||||||
|
"groupId": "Grupa węzłów",
|
||||||
"hopInterval": "Interwał skoku",
|
"hopInterval": "Interwał skoku",
|
||||||
"hopPorts": "Porty skoku",
|
"hopPorts": "Porty skoku",
|
||||||
"hopPortsPlaceholder": "Wiele portów oddziel przecinkami",
|
"hopPortsPlaceholder": "Wiele portów oddziel przecinkami",
|
||||||
"name": "Nazwa",
|
"name": "Nazwa",
|
||||||
"nodeGroupId": "ID grupy węzłów",
|
|
||||||
"obfsPassword": "Hasło zaciemnienia",
|
"obfsPassword": "Hasło zaciemnienia",
|
||||||
"obfsPasswordPlaceholder": "Pozostaw puste, aby nie zaciemniać",
|
"obfsPasswordPlaceholder": "Pozostaw puste, aby nie zaciemniać",
|
||||||
"path": "Ścieżka",
|
"path": "Ścieżka",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Procent zniżki",
|
"discountPercent": "Procent zniżki",
|
||||||
"discount_price": "Cena po zniżce",
|
"discount_price": "Cena po zniżce",
|
||||||
"duration": "Czas trwania (miesiące)",
|
"duration": "Czas trwania (miesiące)",
|
||||||
|
"groupId": "Grupa subskrypcyjna",
|
||||||
"inventory": "Zapas",
|
"inventory": "Zapas",
|
||||||
"monthlyReset": "Miesięczny Reset",
|
"monthlyReset": "Miesięczny Reset",
|
||||||
"name": "Nazwa",
|
"name": "Nazwa",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Brak Resetu",
|
"noReset": "Brak Resetu",
|
||||||
"pricing": "Cennik",
|
"pricing": "Cennik",
|
||||||
"purchaseWithDiscount": "Zezwól na Potrącenie",
|
"purchaseWithDiscount": "Zezwól na Potrącenie",
|
||||||
"purchaseWithDiscountDescription": "Włącz lub wyłącz funkcję potrąceń. Po włączeniu system przetworzy potrącenia na podstawie skonfigurowanych zasad i współczynników",
|
"purchaseWithDiscountDescription": "Włącz lub wyłącz funkcję rezygnacji z subskrypcji. Po aktywacji system przeprowadzi proces odliczenia zgodnie z skonfigurowanymi zasadami i proporcjami, a pozostała wartość zostanie zwrócona na saldo",
|
||||||
"quota": "Limit zakupu",
|
"quota": "Limit zakupu",
|
||||||
"renewalReset": "Reset przy Odnowieniu",
|
"renewalReset": "Reset przy Odnowieniu",
|
||||||
"renewalResetDescription": "Reset cyklu przy odnowieniu",
|
"renewalResetDescription": "Reset cyklu przy odnowieniu",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Serwer",
|
"server": "Serwer",
|
||||||
"serverGroup": "Grupa serwerów",
|
"serverGroup": "Grupa serwerów",
|
||||||
"servers": "Serwery",
|
"servers": "Serwery",
|
||||||
"speedLimit": "Limit prędkości (Mbps)",
|
"speedLimit": "Limit prędkości ",
|
||||||
"subscribeGroup": "Grupa subskrypcji",
|
|
||||||
"traffic": "Ruch",
|
"traffic": "Ruch",
|
||||||
"unitPrice": "Cena jednostkowa",
|
"unitPrice": "Cena jednostkowa",
|
||||||
"unitTime": "Jednostka czasu"
|
"unitTime": "Jednostka czasu"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "działania",
|
"actions": "działania",
|
||||||
"balance": "saldo",
|
"balance": "saldo",
|
||||||
"cancel": "Anuluj",
|
"cancel": "Anuluj",
|
||||||
|
"commission": "Prowizja",
|
||||||
"confirm": "Potwierdź",
|
"confirm": "Potwierdź",
|
||||||
"confirmDelete": "Czy na pewno chcesz usunąć?",
|
"confirmDelete": "Czy na pewno chcesz usunąć?",
|
||||||
"create": "Utwórz",
|
"create": "Utwórz",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Saldo",
|
"balance": "Saldo",
|
||||||
"balancePlaceholder": "Saldo",
|
"balancePlaceholder": "Saldo",
|
||||||
"cancel": "Anuluj",
|
"cancel": "Anuluj",
|
||||||
|
"commission": "Prowizja",
|
||||||
|
"commissionPlaceholder": "Wprowadź prowizję",
|
||||||
"confirm": "Potwierdź",
|
"confirm": "Potwierdź",
|
||||||
|
"giftAmount": "Kwota prezentu",
|
||||||
|
"giftAmountPlaceholder": "Wprowadź kwotę prezentu",
|
||||||
"invalidEmailFormat": "Nieprawidłowy format e-maila",
|
"invalidEmailFormat": "Nieprawidłowy format e-maila",
|
||||||
"inviteCode": "Kod zaproszenia",
|
"inviteCode": "Kod zaproszenia",
|
||||||
"inviteCodePlaceholder": "Wprowadź kod zaproszenia (pozostaw puste, aby wygenerować automatycznie)",
|
"inviteCodePlaceholder": "Wprowadź kod zaproszenia (pozostaw puste, aby wygenerować automatycznie)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "E-mail użytkownika",
|
"userEmail": "E-mail użytkownika",
|
||||||
"userEmailPlaceholder": "Wprowadź e-mail użytkownika"
|
"userEmailPlaceholder": "Wprowadź e-mail użytkownika"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Kwota Prezentu",
|
||||||
|
"inviteCode": "Kod zaproszenia",
|
||||||
"referer": "Polecający",
|
"referer": "Polecający",
|
||||||
"updateSuccess": "Aktualizacja zakończona pomyślnie",
|
"updateSuccess": "Aktualizacja zakończona pomyślnie",
|
||||||
"userList": "Lista użytkowników",
|
"userList": "Lista użytkowników",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "Habilitar TLS",
|
"enableTLS": "Habilitar TLS",
|
||||||
"encryptionMethod": "Método de Criptografia",
|
"encryptionMethod": "Método de Criptografia",
|
||||||
"flow": "Algoritmo de Controle de Fluxo",
|
"flow": "Algoritmo de Controle de Fluxo",
|
||||||
|
"groupId": "Grupo de Nós",
|
||||||
"hopInterval": "Intervalo de Salto",
|
"hopInterval": "Intervalo de Salto",
|
||||||
"hopPorts": "Portas de Salto",
|
"hopPorts": "Portas de Salto",
|
||||||
"hopPortsPlaceholder": "Várias portas separadas por vírgula",
|
"hopPortsPlaceholder": "Várias portas separadas por vírgula",
|
||||||
"name": "Nome",
|
"name": "Nome",
|
||||||
"nodeGroupId": "ID do Grupo de Nós",
|
|
||||||
"obfsPassword": "Senha de Ofuscação",
|
"obfsPassword": "Senha de Ofuscação",
|
||||||
"obfsPasswordPlaceholder": "Deixe em branco para não ofuscar",
|
"obfsPasswordPlaceholder": "Deixe em branco para não ofuscar",
|
||||||
"path": "Caminho",
|
"path": "Caminho",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Percentual de desconto",
|
"discountPercent": "Percentual de desconto",
|
||||||
"discount_price": "Preço com desconto",
|
"discount_price": "Preço com desconto",
|
||||||
"duration": "Duração (meses)",
|
"duration": "Duração (meses)",
|
||||||
|
"groupId": "Grupo de Assinatura",
|
||||||
"inventory": "Estoque",
|
"inventory": "Estoque",
|
||||||
"monthlyReset": "Reinicialização Mensal",
|
"monthlyReset": "Reinicialização Mensal",
|
||||||
"name": "Nome",
|
"name": "Nome",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Sem Reinicialização",
|
"noReset": "Sem Reinicialização",
|
||||||
"pricing": "Preços",
|
"pricing": "Preços",
|
||||||
"purchaseWithDiscount": "Permitir Dedução",
|
"purchaseWithDiscount": "Permitir Dedução",
|
||||||
"purchaseWithDiscountDescription": "Habilitar ou desabilitar a funcionalidade de dedução. Quando habilitada, o sistema processará deduções com base nas regras e proporções configuradas",
|
"purchaseWithDiscountDescription": "Ative ou desative a funcionalidade de cancelamento de inscrição. Após a ativação, o sistema realizará o processamento de dedução de acordo com as regras e proporções configuradas, e o valor restante será retornado ao saldo",
|
||||||
"quota": "Quantidade limitada",
|
"quota": "Quantidade limitada",
|
||||||
"renewalReset": "Reinicialização na Renovação",
|
"renewalReset": "Reinicialização na Renovação",
|
||||||
"renewalResetDescription": "Reiniciar ciclo ao renovar",
|
"renewalResetDescription": "Reiniciar ciclo ao renovar",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Servidor",
|
"server": "Servidor",
|
||||||
"serverGroup": "Grupo de servidores",
|
"serverGroup": "Grupo de servidores",
|
||||||
"servers": "Servidores",
|
"servers": "Servidores",
|
||||||
"speedLimit": "Limite de velocidade (Mbps)",
|
"speedLimit": "Limite de velocidade ",
|
||||||
"subscribeGroup": "Grupo de assinatura",
|
|
||||||
"traffic": "Tráfego",
|
"traffic": "Tráfego",
|
||||||
"unitPrice": "Preço unitário",
|
"unitPrice": "Preço unitário",
|
||||||
"unitTime": "Unidade de tempo"
|
"unitTime": "Unidade de tempo"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "ações",
|
"actions": "ações",
|
||||||
"balance": "Saldo",
|
"balance": "Saldo",
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
|
"commission": "Comissão",
|
||||||
"confirm": "confirmar",
|
"confirm": "confirmar",
|
||||||
"confirmDelete": "Você tem certeza de que deseja excluir?",
|
"confirmDelete": "Você tem certeza de que deseja excluir?",
|
||||||
"create": "Criar",
|
"create": "Criar",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Saldo",
|
"balance": "Saldo",
|
||||||
"balancePlaceholder": "Saldo",
|
"balancePlaceholder": "Saldo",
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
|
"commission": "Comissão",
|
||||||
|
"commissionPlaceholder": "Insira a comissão",
|
||||||
"confirm": "Confirmar",
|
"confirm": "Confirmar",
|
||||||
|
"giftAmount": "Valor do Presente",
|
||||||
|
"giftAmountPlaceholder": "Insira o valor do presente",
|
||||||
"invalidEmailFormat": "Formato de e-mail inválido",
|
"invalidEmailFormat": "Formato de e-mail inválido",
|
||||||
"inviteCode": "Código de Convite",
|
"inviteCode": "Código de Convite",
|
||||||
"inviteCodePlaceholder": "Insira o código de convite (deixe em branco para gerar automaticamente)",
|
"inviteCodePlaceholder": "Insira o código de convite (deixe em branco para gerar automaticamente)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "E-mail do Usuário",
|
"userEmail": "E-mail do Usuário",
|
||||||
"userEmailPlaceholder": "Insira o e-mail do usuário"
|
"userEmailPlaceholder": "Insira o e-mail do usuário"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Valor do Presente",
|
||||||
|
"inviteCode": "Código de Convite",
|
||||||
"referer": "Referente",
|
"referer": "Referente",
|
||||||
"updateSuccess": "Atualização bem-sucedida",
|
"updateSuccess": "Atualização bem-sucedida",
|
||||||
"userList": "Lista de Usuários",
|
"userList": "Lista de Usuários",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "Activează TLS",
|
"enableTLS": "Activează TLS",
|
||||||
"encryptionMethod": "Metodă de criptare",
|
"encryptionMethod": "Metodă de criptare",
|
||||||
"flow": "Algoritm de control al fluxului",
|
"flow": "Algoritm de control al fluxului",
|
||||||
|
"groupId": "Grup Nod",
|
||||||
"hopInterval": "Interval de salt",
|
"hopInterval": "Interval de salt",
|
||||||
"hopPorts": "Porturi de salt",
|
"hopPorts": "Porturi de salt",
|
||||||
"hopPortsPlaceholder": "Mai multe porturi separate prin virgulă",
|
"hopPortsPlaceholder": "Mai multe porturi separate prin virgulă",
|
||||||
"name": "Nume",
|
"name": "Nume",
|
||||||
"nodeGroupId": "ID grup nod",
|
|
||||||
"obfsPassword": "Parolă de obfuscare",
|
"obfsPassword": "Parolă de obfuscare",
|
||||||
"obfsPasswordPlaceholder": "Lasă gol pentru a nu obfusca",
|
"obfsPasswordPlaceholder": "Lasă gol pentru a nu obfusca",
|
||||||
"path": "Cale",
|
"path": "Cale",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Procent reducere",
|
"discountPercent": "Procent reducere",
|
||||||
"discount_price": "Preț redus",
|
"discount_price": "Preț redus",
|
||||||
"duration": "Durată (luni)",
|
"duration": "Durată (luni)",
|
||||||
|
"groupId": "Grup de Abonament",
|
||||||
"inventory": "Stoc",
|
"inventory": "Stoc",
|
||||||
"monthlyReset": "Resetare Lunară",
|
"monthlyReset": "Resetare Lunară",
|
||||||
"name": "Nume",
|
"name": "Nume",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Fără Resetare",
|
"noReset": "Fără Resetare",
|
||||||
"pricing": "Prețuri",
|
"pricing": "Prețuri",
|
||||||
"purchaseWithDiscount": "Permite Deducerea",
|
"purchaseWithDiscount": "Permite Deducerea",
|
||||||
"purchaseWithDiscountDescription": "Activează sau dezactivează funcția de deducere. Când este activată, sistemul va procesa deducerile pe baza regulilor și rapoartelor configurate",
|
"purchaseWithDiscountDescription": "Activează sau dezactivează funcționalitatea de dezabonare. După activare, sistemul va efectua procesarea deducerilor conform regulilor și proporțiilor configurate, iar valoarea rămasă va fi returnată în sold.",
|
||||||
"quota": "Limită de achiziție",
|
"quota": "Limită de achiziție",
|
||||||
"renewalReset": "Resetare la Reînnoire",
|
"renewalReset": "Resetare la Reînnoire",
|
||||||
"renewalResetDescription": "Resetează ciclul la reînnoire",
|
"renewalResetDescription": "Resetează ciclul la reînnoire",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Server",
|
"server": "Server",
|
||||||
"serverGroup": "Grup server",
|
"serverGroup": "Grup server",
|
||||||
"servers": "Servere",
|
"servers": "Servere",
|
||||||
"speedLimit": "Limită de viteză (Mbps)",
|
"speedLimit": "Limită de viteză ",
|
||||||
"subscribeGroup": "Grup de abonament",
|
|
||||||
"traffic": "Trafic",
|
"traffic": "Trafic",
|
||||||
"unitPrice": "Preț unitar",
|
"unitPrice": "Preț unitar",
|
||||||
"unitTime": "Unitate de timp"
|
"unitTime": "Unitate de timp"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "acțiuni",
|
"actions": "acțiuni",
|
||||||
"balance": "Sold",
|
"balance": "Sold",
|
||||||
"cancel": "Anulare",
|
"cancel": "Anulare",
|
||||||
|
"commission": "Comision",
|
||||||
"confirm": "Confirmare",
|
"confirm": "Confirmare",
|
||||||
"confirmDelete": "Sunteți sigur că doriți să ștergeți?",
|
"confirmDelete": "Sunteți sigur că doriți să ștergeți?",
|
||||||
"create": "crea",
|
"create": "crea",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Sold",
|
"balance": "Sold",
|
||||||
"balancePlaceholder": "Sold",
|
"balancePlaceholder": "Sold",
|
||||||
"cancel": "Anulează",
|
"cancel": "Anulează",
|
||||||
|
"commission": "Comision",
|
||||||
|
"commissionPlaceholder": "Introduceți comisionul",
|
||||||
"confirm": "Confirmă",
|
"confirm": "Confirmă",
|
||||||
|
"giftAmount": "Sumă Cadou",
|
||||||
|
"giftAmountPlaceholder": "Introduceți suma cadou",
|
||||||
"invalidEmailFormat": "Format de e-mail invalid",
|
"invalidEmailFormat": "Format de e-mail invalid",
|
||||||
"inviteCode": "Cod de invitație",
|
"inviteCode": "Cod de invitație",
|
||||||
"inviteCodePlaceholder": "Introduceți codul de invitație (lăsați gol pentru generare automată)",
|
"inviteCodePlaceholder": "Introduceți codul de invitație (lăsați gol pentru generare automată)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "E-mail utilizator",
|
"userEmail": "E-mail utilizator",
|
||||||
"userEmailPlaceholder": "Introduceți e-mailul utilizatorului"
|
"userEmailPlaceholder": "Introduceți e-mailul utilizatorului"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Sumă Cadou",
|
||||||
|
"inviteCode": "Cod de invitație",
|
||||||
"referer": "Referent",
|
"referer": "Referent",
|
||||||
"updateSuccess": "Actualizare reușită",
|
"updateSuccess": "Actualizare reușită",
|
||||||
"userList": "Lista utilizatorilor",
|
"userList": "Lista utilizatorilor",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "Включить TLS",
|
"enableTLS": "Включить TLS",
|
||||||
"encryptionMethod": "Метод шифрования",
|
"encryptionMethod": "Метод шифрования",
|
||||||
"flow": "Алгоритм управления потоком",
|
"flow": "Алгоритм управления потоком",
|
||||||
|
"groupId": "Группа узлов",
|
||||||
"hopInterval": "Интервал прыжка",
|
"hopInterval": "Интервал прыжка",
|
||||||
"hopPorts": "Порты прыжка",
|
"hopPorts": "Порты прыжка",
|
||||||
"hopPortsPlaceholder": "Несколько портов разделяются запятыми",
|
"hopPortsPlaceholder": "Несколько портов разделяются запятыми",
|
||||||
"name": "Имя",
|
"name": "Имя",
|
||||||
"nodeGroupId": "ID группы узлов",
|
|
||||||
"obfsPassword": "Пароль обфускации",
|
"obfsPassword": "Пароль обфускации",
|
||||||
"obfsPasswordPlaceholder": "Оставьте пустым для отсутствия обфускации",
|
"obfsPasswordPlaceholder": "Оставьте пустым для отсутствия обфускации",
|
||||||
"path": "Путь",
|
"path": "Путь",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Процент скидки",
|
"discountPercent": "Процент скидки",
|
||||||
"discount_price": "Цена со скидкой",
|
"discount_price": "Цена со скидкой",
|
||||||
"duration": "Продолжительность (месяцы)",
|
"duration": "Продолжительность (месяцы)",
|
||||||
|
"groupId": "Группа подписки",
|
||||||
"inventory": "Инвентарь",
|
"inventory": "Инвентарь",
|
||||||
"monthlyReset": "Ежемесячный Сброс",
|
"monthlyReset": "Ежемесячный Сброс",
|
||||||
"name": "Название",
|
"name": "Название",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Без Сброса",
|
"noReset": "Без Сброса",
|
||||||
"pricing": "Цены",
|
"pricing": "Цены",
|
||||||
"purchaseWithDiscount": "Разрешить Вычет",
|
"purchaseWithDiscount": "Разрешить Вычет",
|
||||||
"purchaseWithDiscountDescription": "Включить или отключить функцию вычета. При включении система будет обрабатывать вычеты на основе настроенных правил и соотношений",
|
"purchaseWithDiscountDescription": "Включить или отключить функцию отписки. После активации система выполнит обработку вычетов в соответствии с настроенными правилами и пропорциями, а оставшаяся сумма будет возвращена на баланс",
|
||||||
"quota": "Лимит покупки",
|
"quota": "Лимит покупки",
|
||||||
"renewalReset": "Сброс при Обновлении",
|
"renewalReset": "Сброс при Обновлении",
|
||||||
"renewalResetDescription": "Сброс цикла при обновлении",
|
"renewalResetDescription": "Сброс цикла при обновлении",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Сервер",
|
"server": "Сервер",
|
||||||
"serverGroup": "Группа серверов",
|
"serverGroup": "Группа серверов",
|
||||||
"servers": "Серверы",
|
"servers": "Серверы",
|
||||||
"speedLimit": "Ограничение скорости (Мбит/с)",
|
"speedLimit": "Ограничение скорости",
|
||||||
"subscribeGroup": "Группа подписки",
|
|
||||||
"traffic": "Трафик",
|
"traffic": "Трафик",
|
||||||
"unitPrice": "Цена за единицу",
|
"unitPrice": "Цена за единицу",
|
||||||
"unitTime": "Единица времени"
|
"unitTime": "Единица времени"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "действия",
|
"actions": "действия",
|
||||||
"balance": "Баланс",
|
"balance": "Баланс",
|
||||||
"cancel": "Отмена",
|
"cancel": "Отмена",
|
||||||
|
"commission": "Комиссия",
|
||||||
"confirm": "Подтвердить",
|
"confirm": "Подтвердить",
|
||||||
"confirmDelete": "Вы уверены, что хотите удалить?",
|
"confirmDelete": "Вы уверены, что хотите удалить?",
|
||||||
"create": "Создать",
|
"create": "Создать",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Баланс",
|
"balance": "Баланс",
|
||||||
"balancePlaceholder": "Баланс",
|
"balancePlaceholder": "Баланс",
|
||||||
"cancel": "Отмена",
|
"cancel": "Отмена",
|
||||||
|
"commission": "Комиссия",
|
||||||
|
"commissionPlaceholder": "Введите комиссию",
|
||||||
"confirm": "Подтвердить",
|
"confirm": "Подтвердить",
|
||||||
|
"giftAmount": "Сумма подарка",
|
||||||
|
"giftAmountPlaceholder": "Введите сумму подарка",
|
||||||
"invalidEmailFormat": "Недопустимый формат электронной почты",
|
"invalidEmailFormat": "Недопустимый формат электронной почты",
|
||||||
"inviteCode": "Код приглашения",
|
"inviteCode": "Код приглашения",
|
||||||
"inviteCodePlaceholder": "Введите код приглашения (оставьте пустым для автоматической генерации)",
|
"inviteCodePlaceholder": "Введите код приглашения (оставьте пустым для автоматической генерации)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "Электронная почта пользователя",
|
"userEmail": "Электронная почта пользователя",
|
||||||
"userEmailPlaceholder": "Введите электронную почту пользователя"
|
"userEmailPlaceholder": "Введите электронную почту пользователя"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Сумма подарка",
|
||||||
|
"inviteCode": "Код приглашения",
|
||||||
"referer": "Реферер",
|
"referer": "Реферер",
|
||||||
"updateSuccess": "Обновление успешно",
|
"updateSuccess": "Обновление успешно",
|
||||||
"userList": "Список пользователей",
|
"userList": "Список пользователей",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "เปิดใช้งานTLS",
|
"enableTLS": "เปิดใช้งานTLS",
|
||||||
"encryptionMethod": "วิธีการเข้ารหัส",
|
"encryptionMethod": "วิธีการเข้ารหัส",
|
||||||
"flow": "อัลกอริทึมควบคุมการไหล",
|
"flow": "อัลกอริทึมควบคุมการไหล",
|
||||||
|
"groupId": "กลุ่มโหนด",
|
||||||
"hopInterval": "ช่วงเวลาการกระโดด",
|
"hopInterval": "ช่วงเวลาการกระโดด",
|
||||||
"hopPorts": "พอร์ตการกระโดด",
|
"hopPorts": "พอร์ตการกระโดด",
|
||||||
"hopPortsPlaceholder": "หลายพอร์ตใช้เครื่องหมายจุลภาคคั่น",
|
"hopPortsPlaceholder": "หลายพอร์ตใช้เครื่องหมายจุลภาคคั่น",
|
||||||
"name": "ชื่อ",
|
"name": "ชื่อ",
|
||||||
"nodeGroupId": "รหัสกลุ่มโหนด",
|
|
||||||
"obfsPassword": "รหัสผ่านการปกปิด",
|
"obfsPassword": "รหัสผ่านการปกปิด",
|
||||||
"obfsPasswordPlaceholder": "เว้นว่างเพื่อไม่ปกปิด",
|
"obfsPasswordPlaceholder": "เว้นว่างเพื่อไม่ปกปิด",
|
||||||
"path": "เส้นทาง",
|
"path": "เส้นทาง",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "เปอร์เซ็นต์ส่วนลด",
|
"discountPercent": "เปอร์เซ็นต์ส่วนลด",
|
||||||
"discount_price": "ราคาหลังหักส่วนลด",
|
"discount_price": "ราคาหลังหักส่วนลด",
|
||||||
"duration": "ระยะเวลา (เดือน)",
|
"duration": "ระยะเวลา (เดือน)",
|
||||||
|
"groupId": "กลุ่มการสมัครสมาชิก",
|
||||||
"inventory": "สต็อก",
|
"inventory": "สต็อก",
|
||||||
"monthlyReset": "รีเซ็ตทุกเดือน",
|
"monthlyReset": "รีเซ็ตทุกเดือน",
|
||||||
"name": "ชื่อ",
|
"name": "ชื่อ",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "ไม่รีเซ็ต",
|
"noReset": "ไม่รีเซ็ต",
|
||||||
"pricing": "การตั้งราคา",
|
"pricing": "การตั้งราคา",
|
||||||
"purchaseWithDiscount": "อนุญาตให้หัก",
|
"purchaseWithDiscount": "อนุญาตให้หัก",
|
||||||
"purchaseWithDiscountDescription": "เปิดหรือปิดฟีเจอร์การหัก เมื่อเปิดใช้งาน ระบบจะดำเนินการหักตามกฎและอัตราส่วนที่กำหนดไว้",
|
"purchaseWithDiscountDescription": "เปิดหรือปิดการทำงานของฟังก์ชันยกเลิกการสมัคร หลังจากเปิดใช้งาน ระบบจะดำเนินการหักเงินตามกฎและสัดส่วนที่กำหนดไว้ และมูลค่าที่เหลือจะถูกคืนไปยังยอดคงเหลือ",
|
||||||
"quota": "จำนวนจำกัดการซื้อ",
|
"quota": "จำนวนจำกัดการซื้อ",
|
||||||
"renewalReset": "รีเซ็ตเมื่อมีการต่ออายุ",
|
"renewalReset": "รีเซ็ตเมื่อมีการต่ออายุ",
|
||||||
"renewalResetDescription": "รีเซ็ตรอบเมื่อมีการต่ออายุ",
|
"renewalResetDescription": "รีเซ็ตรอบเมื่อมีการต่ออายุ",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "เซิร์ฟเวอร์",
|
"server": "เซิร์ฟเวอร์",
|
||||||
"serverGroup": "กลุ่มเซิร์ฟเวอร์",
|
"serverGroup": "กลุ่มเซิร์ฟเวอร์",
|
||||||
"servers": "เซิร์ฟเวอร์",
|
"servers": "เซิร์ฟเวอร์",
|
||||||
"speedLimit": "จำกัดความเร็ว (Mbps)",
|
"speedLimit": "จำกัดความเร็ว ",
|
||||||
"subscribeGroup": "กลุ่มการสมัครสมาชิก",
|
|
||||||
"traffic": "ปริมาณข้อมูล",
|
"traffic": "ปริมาณข้อมูล",
|
||||||
"unitPrice": "ราคาต่อหน่วย",
|
"unitPrice": "ราคาต่อหน่วย",
|
||||||
"unitTime": "หน่วยเวลา"
|
"unitTime": "หน่วยเวลา"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "การดำเนินการ",
|
"actions": "การดำเนินการ",
|
||||||
"balance": "ยอดคงเหลือ",
|
"balance": "ยอดคงเหลือ",
|
||||||
"cancel": "ยกเลิก",
|
"cancel": "ยกเลิก",
|
||||||
|
"commission": "คอมมิชชั่น",
|
||||||
"confirm": "ยืนยัน",
|
"confirm": "ยืนยัน",
|
||||||
"confirmDelete": "คุณแน่ใจหรือว่าต้องการลบ?",
|
"confirmDelete": "คุณแน่ใจหรือว่าต้องการลบ?",
|
||||||
"create": "สร้าง",
|
"create": "สร้าง",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "ยอดคงเหลือ",
|
"balance": "ยอดคงเหลือ",
|
||||||
"balancePlaceholder": "ยอดคงเหลือ",
|
"balancePlaceholder": "ยอดคงเหลือ",
|
||||||
"cancel": "ยกเลิก",
|
"cancel": "ยกเลิก",
|
||||||
|
"commission": "ค่าคอมมิชชั่น",
|
||||||
|
"commissionPlaceholder": "กรอกค่าคอมมิชชั่น",
|
||||||
"confirm": "ยืนยัน",
|
"confirm": "ยืนยัน",
|
||||||
|
"giftAmount": "จำนวนของขวัญ",
|
||||||
|
"giftAmountPlaceholder": "กรอกจำนวนของขวัญ",
|
||||||
"invalidEmailFormat": "รูปแบบอีเมลไม่ถูกต้อง",
|
"invalidEmailFormat": "รูปแบบอีเมลไม่ถูกต้อง",
|
||||||
"inviteCode": "รหัสเชิญ",
|
"inviteCode": "รหัสเชิญ",
|
||||||
"inviteCodePlaceholder": "กรุณาใส่รหัสเชิญ (เว้นว่างเพื่อสร้างอัตโนมัติ)",
|
"inviteCodePlaceholder": "กรุณาใส่รหัสเชิญ (เว้นว่างเพื่อสร้างอัตโนมัติ)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "อีเมลผู้ใช้",
|
"userEmail": "อีเมลผู้ใช้",
|
||||||
"userEmailPlaceholder": "กรุณาใส่อีเมลผู้ใช้"
|
"userEmailPlaceholder": "กรุณาใส่อีเมลผู้ใช้"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "จำนวนเงินของขวัญ",
|
||||||
|
"inviteCode": "รหัสเชิญ",
|
||||||
"referer": "ผู้แนะนำ",
|
"referer": "ผู้แนะนำ",
|
||||||
"updateSuccess": "อัปเดตสำเร็จ",
|
"updateSuccess": "อัปเดตสำเร็จ",
|
||||||
"userList": "รายชื่อผู้ใช้",
|
"userList": "รายชื่อผู้ใช้",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "TLS'i Etkinleştir",
|
"enableTLS": "TLS'i Etkinleştir",
|
||||||
"encryptionMethod": "Şifreleme Yöntemi",
|
"encryptionMethod": "Şifreleme Yöntemi",
|
||||||
"flow": "Akış Kontrol Algoritması",
|
"flow": "Akış Kontrol Algoritması",
|
||||||
|
"groupId": "Düğüm Grubu",
|
||||||
"hopInterval": "Atlama Aralığı",
|
"hopInterval": "Atlama Aralığı",
|
||||||
"hopPorts": "Atlama Portları",
|
"hopPorts": "Atlama Portları",
|
||||||
"hopPortsPlaceholder": "Birden fazla portu virgülle ayırın",
|
"hopPortsPlaceholder": "Birden fazla portu virgülle ayırın",
|
||||||
"name": "Ad",
|
"name": "Ad",
|
||||||
"nodeGroupId": "Düğüm Grubu ID",
|
|
||||||
"obfsPassword": "Karmaşık Şifre",
|
"obfsPassword": "Karmaşık Şifre",
|
||||||
"obfsPasswordPlaceholder": "Boş bırakılırsa karmaşıklaştırılmaz",
|
"obfsPasswordPlaceholder": "Boş bırakılırsa karmaşıklaştırılmaz",
|
||||||
"path": "Yol",
|
"path": "Yol",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "İndirim Yüzdesi",
|
"discountPercent": "İndirim Yüzdesi",
|
||||||
"discount_price": "İndirimli Fiyat",
|
"discount_price": "İndirimli Fiyat",
|
||||||
"duration": "Süre (ay)",
|
"duration": "Süre (ay)",
|
||||||
|
"groupId": "Abonelik Grubu",
|
||||||
"inventory": "Stok",
|
"inventory": "Stok",
|
||||||
"monthlyReset": "Aylık Sıfırlama",
|
"monthlyReset": "Aylık Sıfırlama",
|
||||||
"name": "Ad",
|
"name": "Ad",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Sıfırlama Yok",
|
"noReset": "Sıfırlama Yok",
|
||||||
"pricing": "Fiyatlandırma",
|
"pricing": "Fiyatlandırma",
|
||||||
"purchaseWithDiscount": "Kesintiye İzin Ver",
|
"purchaseWithDiscount": "Kesintiye İzin Ver",
|
||||||
"purchaseWithDiscountDescription": "Kesinti özelliğini etkinleştir veya devre dışı bırak. Etkinleştirildiğinde, sistem yapılandırılmış kurallar ve oranlara göre kesintileri işler.",
|
"purchaseWithDiscountDescription": "Abonelikten çıkma işlevini etkinleştir veya devre dışı bırak. Etkinleştirildikten sonra, sistem yapılandırılmış kurallar ve oranlara göre kesinti işlemi yapacak ve kalan değer bakiyeye iade edilecektir.",
|
||||||
"quota": "Satın Alma Limiti",
|
"quota": "Satın Alma Limiti",
|
||||||
"renewalReset": "Yenileme Sıfırlaması",
|
"renewalReset": "Yenileme Sıfırlaması",
|
||||||
"renewalResetDescription": "Yenileme üzerine sıfırlama döngüsü",
|
"renewalResetDescription": "Yenileme üzerine sıfırlama döngüsü",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Sunucu",
|
"server": "Sunucu",
|
||||||
"serverGroup": "Sunucu Grubu",
|
"serverGroup": "Sunucu Grubu",
|
||||||
"servers": "Sunucular",
|
"servers": "Sunucular",
|
||||||
"speedLimit": "Hız Sınırı (Mbps)",
|
"speedLimit": "Hız Sınırı ",
|
||||||
"subscribeGroup": "Abonelik Grubu",
|
|
||||||
"traffic": "Trafik",
|
"traffic": "Trafik",
|
||||||
"unitPrice": "Birim fiyatı",
|
"unitPrice": "Birim fiyatı",
|
||||||
"unitTime": "Birim zamanı"
|
"unitTime": "Birim zamanı"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "eylemler",
|
"actions": "eylemler",
|
||||||
"balance": "Bakiye",
|
"balance": "Bakiye",
|
||||||
"cancel": "İptal",
|
"cancel": "İptal",
|
||||||
|
"commission": "Komisyon",
|
||||||
"confirm": "Onayla",
|
"confirm": "Onayla",
|
||||||
"confirmDelete": "Silmek istediğinizden emin misiniz?",
|
"confirmDelete": "Silmek istediğinizden emin misiniz?",
|
||||||
"create": "oluştur",
|
"create": "oluştur",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Bakiye",
|
"balance": "Bakiye",
|
||||||
"balancePlaceholder": "Bakiye",
|
"balancePlaceholder": "Bakiye",
|
||||||
"cancel": "İptal",
|
"cancel": "İptal",
|
||||||
|
"commission": "Komisyon",
|
||||||
|
"commissionPlaceholder": "Komisyonu girin",
|
||||||
"confirm": "Onayla",
|
"confirm": "Onayla",
|
||||||
|
"giftAmount": "Hediye Tutarı",
|
||||||
|
"giftAmountPlaceholder": "Hediye tutarını girin",
|
||||||
"invalidEmailFormat": "Geçersiz e-posta formatı",
|
"invalidEmailFormat": "Geçersiz e-posta formatı",
|
||||||
"inviteCode": "Davet Kodu",
|
"inviteCode": "Davet Kodu",
|
||||||
"inviteCodePlaceholder": "Lütfen davet kodunu girin (boş bırakılırsa otomatik oluşturulur)",
|
"inviteCodePlaceholder": "Lütfen davet kodunu girin (boş bırakılırsa otomatik oluşturulur)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "Kullanıcı E-postası",
|
"userEmail": "Kullanıcı E-postası",
|
||||||
"userEmailPlaceholder": "Lütfen kullanıcı e-postasını girin"
|
"userEmailPlaceholder": "Lütfen kullanıcı e-postasını girin"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Hediye Miktarı",
|
||||||
|
"inviteCode": "Davet Kodu",
|
||||||
"referer": "Referans",
|
"referer": "Referans",
|
||||||
"updateSuccess": "Güncelleme başarılı",
|
"updateSuccess": "Güncelleme başarılı",
|
||||||
"userList": "Kullanıcı Listesi",
|
"userList": "Kullanıcı Listesi",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "Увімкнути TLS",
|
"enableTLS": "Увімкнути TLS",
|
||||||
"encryptionMethod": "Метод шифрування",
|
"encryptionMethod": "Метод шифрування",
|
||||||
"flow": "Алгоритм контролю потоку",
|
"flow": "Алгоритм контролю потоку",
|
||||||
|
"groupId": "Група вузлів",
|
||||||
"hopInterval": "Інтервал стрибка",
|
"hopInterval": "Інтервал стрибка",
|
||||||
"hopPorts": "Порти стрибка",
|
"hopPorts": "Порти стрибка",
|
||||||
"hopPortsPlaceholder": "Кілька портів розділяйте комами",
|
"hopPortsPlaceholder": "Кілька портів розділяйте комами",
|
||||||
"name": "Назва",
|
"name": "Назва",
|
||||||
"nodeGroupId": "ID групи вузлів",
|
|
||||||
"obfsPassword": "Пароль обфускації",
|
"obfsPassword": "Пароль обфускації",
|
||||||
"obfsPasswordPlaceholder": "Залиште порожнім для відсутності обфускації",
|
"obfsPasswordPlaceholder": "Залиште порожнім для відсутності обфускації",
|
||||||
"path": "Шлях",
|
"path": "Шлях",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Відсоток знижки",
|
"discountPercent": "Відсоток знижки",
|
||||||
"discount_price": "Ціна зі знижкою",
|
"discount_price": "Ціна зі знижкою",
|
||||||
"duration": "Тривалість (місяці)",
|
"duration": "Тривалість (місяці)",
|
||||||
|
"groupId": "Група підписки",
|
||||||
"inventory": "Запаси",
|
"inventory": "Запаси",
|
||||||
"monthlyReset": "Щомісячне Скидання",
|
"monthlyReset": "Щомісячне Скидання",
|
||||||
"name": "Назва",
|
"name": "Назва",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Без Скидання",
|
"noReset": "Без Скидання",
|
||||||
"pricing": "Ціноутворення",
|
"pricing": "Ціноутворення",
|
||||||
"purchaseWithDiscount": "Дозволити Вирахування",
|
"purchaseWithDiscount": "Дозволити Вирахування",
|
||||||
"purchaseWithDiscountDescription": "Увімкнути або вимкнути функцію вирахувань. Коли увімкнено, система обробляє вирахування на основі налаштованих правил і співвідношень",
|
"purchaseWithDiscountDescription": "Увімкніть або вимкніть функцію відписки. Після активації система виконає обробку відрахувань згідно з налаштованими правилами та пропорціями, а залишкова вартість буде повернена на баланс",
|
||||||
"quota": "Ліміт покупки",
|
"quota": "Ліміт покупки",
|
||||||
"renewalReset": "Скидання при Поновленні",
|
"renewalReset": "Скидання при Поновленні",
|
||||||
"renewalResetDescription": "Скидання циклу при поновленні",
|
"renewalResetDescription": "Скидання циклу при поновленні",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Сервер",
|
"server": "Сервер",
|
||||||
"serverGroup": "Група серверів",
|
"serverGroup": "Група серверів",
|
||||||
"servers": "Сервери",
|
"servers": "Сервери",
|
||||||
"speedLimit": "Обмеження швидкості (Мбіт/с)",
|
"speedLimit": "Обмеження швидкості",
|
||||||
"subscribeGroup": "Група підписки",
|
|
||||||
"traffic": "Трафік",
|
"traffic": "Трафік",
|
||||||
"unitPrice": "Ціна за одиницю",
|
"unitPrice": "Ціна за одиницю",
|
||||||
"unitTime": "Одиниця часу"
|
"unitTime": "Одиниця часу"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "дії",
|
"actions": "дії",
|
||||||
"balance": "Баланс",
|
"balance": "Баланс",
|
||||||
"cancel": "Скасувати",
|
"cancel": "Скасувати",
|
||||||
|
"commission": "Комісія",
|
||||||
"confirm": "Підтвердити",
|
"confirm": "Підтвердити",
|
||||||
"confirmDelete": "Ви впевнені, що хочете видалити?",
|
"confirmDelete": "Ви впевнені, що хочете видалити?",
|
||||||
"create": "створити",
|
"create": "створити",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Баланс",
|
"balance": "Баланс",
|
||||||
"balancePlaceholder": "Баланс",
|
"balancePlaceholder": "Баланс",
|
||||||
"cancel": "Скасувати",
|
"cancel": "Скасувати",
|
||||||
|
"commission": "Комісія",
|
||||||
|
"commissionPlaceholder": "Введіть комісію",
|
||||||
"confirm": "Підтвердити",
|
"confirm": "Підтвердити",
|
||||||
|
"giftAmount": "Сума подарунка",
|
||||||
|
"giftAmountPlaceholder": "Введіть суму подарунка",
|
||||||
"invalidEmailFormat": "Недійсний формат електронної пошти",
|
"invalidEmailFormat": "Недійсний формат електронної пошти",
|
||||||
"inviteCode": "Код запрошення",
|
"inviteCode": "Код запрошення",
|
||||||
"inviteCodePlaceholder": "Введіть код запрошення (залиште порожнім для автоматичної генерації)",
|
"inviteCodePlaceholder": "Введіть код запрошення (залиште порожнім для автоматичної генерації)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "Електронна пошта користувача",
|
"userEmail": "Електронна пошта користувача",
|
||||||
"userEmailPlaceholder": "Введіть електронну пошту користувача"
|
"userEmailPlaceholder": "Введіть електронну пошту користувача"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Сума подарунка",
|
||||||
|
"inviteCode": "Код запрошення",
|
||||||
"referer": "Реферер",
|
"referer": "Реферер",
|
||||||
"updateSuccess": "Оновлення успішне",
|
"updateSuccess": "Оновлення успішне",
|
||||||
"userList": "Список користувачів",
|
"userList": "Список користувачів",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "Kích hoạt TLS",
|
"enableTLS": "Kích hoạt TLS",
|
||||||
"encryptionMethod": "Phương pháp mã hóa",
|
"encryptionMethod": "Phương pháp mã hóa",
|
||||||
"flow": "Thuật toán điều khiển luồng",
|
"flow": "Thuật toán điều khiển luồng",
|
||||||
|
"groupId": "Nhóm Nút",
|
||||||
"hopInterval": "Khoảng cách nhảy",
|
"hopInterval": "Khoảng cách nhảy",
|
||||||
"hopPorts": "Cổng nhảy",
|
"hopPorts": "Cổng nhảy",
|
||||||
"hopPortsPlaceholder": "Nhiều cổng cách nhau bằng dấu phẩy",
|
"hopPortsPlaceholder": "Nhiều cổng cách nhau bằng dấu phẩy",
|
||||||
"name": "Tên",
|
"name": "Tên",
|
||||||
"nodeGroupId": "ID nhóm nút",
|
|
||||||
"obfsPassword": "Mật khẩu làm mờ",
|
"obfsPassword": "Mật khẩu làm mờ",
|
||||||
"obfsPasswordPlaceholder": "Để trống nếu không làm mờ",
|
"obfsPasswordPlaceholder": "Để trống nếu không làm mờ",
|
||||||
"path": "Đường dẫn",
|
"path": "Đường dẫn",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "Phần trăm giảm giá",
|
"discountPercent": "Phần trăm giảm giá",
|
||||||
"discount_price": "Giá sau giảm",
|
"discount_price": "Giá sau giảm",
|
||||||
"duration": "Thời gian (tháng)",
|
"duration": "Thời gian (tháng)",
|
||||||
|
"groupId": "Nhóm Đăng Ký",
|
||||||
"inventory": "Tồn kho",
|
"inventory": "Tồn kho",
|
||||||
"monthlyReset": "Đặt Lại Hàng Tháng",
|
"monthlyReset": "Đặt Lại Hàng Tháng",
|
||||||
"name": "Tên",
|
"name": "Tên",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "Không Đặt Lại",
|
"noReset": "Không Đặt Lại",
|
||||||
"pricing": "Giá Cả",
|
"pricing": "Giá Cả",
|
||||||
"purchaseWithDiscount": "Cho Phép Khấu Trừ",
|
"purchaseWithDiscount": "Cho Phép Khấu Trừ",
|
||||||
"purchaseWithDiscountDescription": "Bật hoặc tắt tính năng khấu trừ. Khi được bật, hệ thống sẽ xử lý khấu trừ dựa trên các quy tắc và tỷ lệ đã cấu hình",
|
"purchaseWithDiscountDescription": "Bật hoặc tắt chức năng hủy đăng ký. Sau khi kích hoạt, hệ thống sẽ thực hiện xử lý khấu trừ theo các quy tắc và tỷ lệ đã cấu hình, và giá trị còn lại sẽ được trả về số dư",
|
||||||
"quota": "Số lượng mua giới hạn",
|
"quota": "Số lượng mua giới hạn",
|
||||||
"renewalReset": "Đặt Lại Khi Gia Hạn",
|
"renewalReset": "Đặt Lại Khi Gia Hạn",
|
||||||
"renewalResetDescription": "Đặt lại chu kỳ khi gia hạn",
|
"renewalResetDescription": "Đặt lại chu kỳ khi gia hạn",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "Dịch vụ",
|
"server": "Dịch vụ",
|
||||||
"serverGroup": "Nhóm dịch vụ",
|
"serverGroup": "Nhóm dịch vụ",
|
||||||
"servers": "Máy Chủ",
|
"servers": "Máy Chủ",
|
||||||
"speedLimit": "Giới hạn tốc độ (Mbps)",
|
"speedLimit": "Giới hạn tốc độ ",
|
||||||
"subscribeGroup": "Nhóm đăng ký",
|
|
||||||
"traffic": "Lưu lượng",
|
"traffic": "Lưu lượng",
|
||||||
"unitPrice": "Đơn giá",
|
"unitPrice": "Đơn giá",
|
||||||
"unitTime": "Đơn vị thời gian"
|
"unitTime": "Đơn vị thời gian"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "Hành động",
|
"actions": "Hành động",
|
||||||
"balance": "Số dư",
|
"balance": "Số dư",
|
||||||
"cancel": "Hủy",
|
"cancel": "Hủy",
|
||||||
|
"commission": "Hoa hồng",
|
||||||
"confirm": "Xác nhận",
|
"confirm": "Xác nhận",
|
||||||
"confirmDelete": "Bạn có chắc chắn muốn xóa không?",
|
"confirmDelete": "Bạn có chắc chắn muốn xóa không?",
|
||||||
"create": "Tạo",
|
"create": "Tạo",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "Số dư",
|
"balance": "Số dư",
|
||||||
"balancePlaceholder": "Số dư",
|
"balancePlaceholder": "Số dư",
|
||||||
"cancel": "Hủy",
|
"cancel": "Hủy",
|
||||||
|
"commission": "Hoa hồng",
|
||||||
|
"commissionPlaceholder": "Nhập hoa hồng",
|
||||||
"confirm": "Xác nhận",
|
"confirm": "Xác nhận",
|
||||||
|
"giftAmount": "Số tiền quà tặng",
|
||||||
|
"giftAmountPlaceholder": "Nhập số tiền quà tặng",
|
||||||
"invalidEmailFormat": "Định dạng email không hợp lệ",
|
"invalidEmailFormat": "Định dạng email không hợp lệ",
|
||||||
"inviteCode": "Mã mời",
|
"inviteCode": "Mã mời",
|
||||||
"inviteCodePlaceholder": "Vui lòng nhập mã mời (để trống sẽ tự động tạo)",
|
"inviteCodePlaceholder": "Vui lòng nhập mã mời (để trống sẽ tự động tạo)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "Email người dùng",
|
"userEmail": "Email người dùng",
|
||||||
"userEmailPlaceholder": "Vui lòng nhập email người dùng"
|
"userEmailPlaceholder": "Vui lòng nhập email người dùng"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "Số tiền quà tặng",
|
||||||
|
"inviteCode": "Mã Mời",
|
||||||
"referer": "Người giới thiệu",
|
"referer": "Người giới thiệu",
|
||||||
"updateSuccess": "Cập nhật thành công",
|
"updateSuccess": "Cập nhật thành công",
|
||||||
"userList": "Danh sách người dùng",
|
"userList": "Danh sách người dùng",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "启用TLS",
|
"enableTLS": "启用TLS",
|
||||||
"encryptionMethod": "加密方法",
|
"encryptionMethod": "加密方法",
|
||||||
"flow": "流控算法",
|
"flow": "流控算法",
|
||||||
|
"groupId": "节点组",
|
||||||
"hopInterval": "跳跃间隔",
|
"hopInterval": "跳跃间隔",
|
||||||
"hopPorts": "跳跃端口",
|
"hopPorts": "跳跃端口",
|
||||||
"hopPortsPlaceholder": "多个端口用逗号分隔",
|
"hopPortsPlaceholder": "多个端口用逗号分隔",
|
||||||
"name": "名称",
|
"name": "名称",
|
||||||
"nodeGroupId": "节点组ID",
|
|
||||||
"obfsPassword": "混淆密码",
|
"obfsPassword": "混淆密码",
|
||||||
"obfsPasswordPlaceholder": "留空则不混淆",
|
"obfsPasswordPlaceholder": "留空则不混淆",
|
||||||
"path": "路径",
|
"path": "路径",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "折扣比",
|
"discountPercent": "折扣比",
|
||||||
"discount_price": "折扣价格",
|
"discount_price": "折扣价格",
|
||||||
"duration": "时长(月)",
|
"duration": "时长(月)",
|
||||||
|
"groupId": "订阅组",
|
||||||
"inventory": "库存",
|
"inventory": "库存",
|
||||||
"monthlyReset": "按月重置",
|
"monthlyReset": "按月重置",
|
||||||
"name": "名称",
|
"name": "名称",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "不重置",
|
"noReset": "不重置",
|
||||||
"pricing": "定价",
|
"pricing": "定价",
|
||||||
"purchaseWithDiscount": "允许抵扣",
|
"purchaseWithDiscount": "允许抵扣",
|
||||||
"purchaseWithDiscountDescription": "启用或禁用抵扣功能。启用后,系统将根据配置的规则和比例进行抵扣处理。",
|
"purchaseWithDiscountDescription": "启用或禁用退订功能。激活后,系统将根据配置的规则和比例进行扣除处理,剩余价值将返回到余额中",
|
||||||
"quota": "限购数量",
|
"quota": "限购数量",
|
||||||
"renewalReset": "续费重置",
|
"renewalReset": "续费重置",
|
||||||
"renewalResetDescription": "续费时重置周期",
|
"renewalResetDescription": "续费时重置周期",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "服务",
|
"server": "服务",
|
||||||
"serverGroup": "服务组",
|
"serverGroup": "服务组",
|
||||||
"servers": "服务",
|
"servers": "服务",
|
||||||
"speedLimit": "速度限制(Mbps)",
|
"speedLimit": "速度限制",
|
||||||
"subscribeGroup": "订阅组",
|
|
||||||
"traffic": "流量",
|
"traffic": "流量",
|
||||||
"unitPrice": "单价",
|
"unitPrice": "单价",
|
||||||
"unitTime": "单位时间"
|
"unitTime": "单位时间"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "操作",
|
"actions": "操作",
|
||||||
"balance": "余额",
|
"balance": "余额",
|
||||||
"cancel": "取消",
|
"cancel": "取消",
|
||||||
|
"commission": "佣金",
|
||||||
"confirm": "确认",
|
"confirm": "确认",
|
||||||
"confirmDelete": "您确定要删除吗?",
|
"confirmDelete": "您确定要删除吗?",
|
||||||
"create": "创建",
|
"create": "创建",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "余额",
|
"balance": "余额",
|
||||||
"balancePlaceholder": "余额",
|
"balancePlaceholder": "余额",
|
||||||
"cancel": "取消",
|
"cancel": "取消",
|
||||||
|
"commission": "佣金",
|
||||||
|
"commissionPlaceholder": "输入佣金",
|
||||||
"confirm": "确认",
|
"confirm": "确认",
|
||||||
|
"giftAmount": "礼品金额",
|
||||||
|
"giftAmountPlaceholder": "输入礼品金额",
|
||||||
"invalidEmailFormat": "无效的电子邮件格式",
|
"invalidEmailFormat": "无效的电子邮件格式",
|
||||||
"inviteCode": "邀请码",
|
"inviteCode": "邀请码",
|
||||||
"inviteCodePlaceholder": "请输入邀请码(留空则自动生成)",
|
"inviteCodePlaceholder": "请输入邀请码(留空则自动生成)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "用户邮箱",
|
"userEmail": "用户邮箱",
|
||||||
"userEmailPlaceholder": "请输入用户邮箱"
|
"userEmailPlaceholder": "请输入用户邮箱"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "礼物金额",
|
||||||
|
"inviteCode": "邀请码",
|
||||||
"referer": "推荐人",
|
"referer": "推荐人",
|
||||||
"updateSuccess": "更新成功",
|
"updateSuccess": "更新成功",
|
||||||
"userList": "用户列表",
|
"userList": "用户列表",
|
||||||
|
|||||||
@ -52,11 +52,11 @@
|
|||||||
"enableTLS": "啟用TLS",
|
"enableTLS": "啟用TLS",
|
||||||
"encryptionMethod": "加密方法",
|
"encryptionMethod": "加密方法",
|
||||||
"flow": "流控算法",
|
"flow": "流控算法",
|
||||||
|
"groupId": "節點組",
|
||||||
"hopInterval": "跳躍間隔",
|
"hopInterval": "跳躍間隔",
|
||||||
"hopPorts": "跳躍端口",
|
"hopPorts": "跳躍端口",
|
||||||
"hopPortsPlaceholder": "多個端口用逗號分隔",
|
"hopPortsPlaceholder": "多個端口用逗號分隔",
|
||||||
"name": "名稱",
|
"name": "名稱",
|
||||||
"nodeGroupId": "節點組ID",
|
|
||||||
"obfsPassword": "混淆密碼",
|
"obfsPassword": "混淆密碼",
|
||||||
"obfsPasswordPlaceholder": "留空則不混淆",
|
"obfsPasswordPlaceholder": "留空則不混淆",
|
||||||
"path": "路徑",
|
"path": "路徑",
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
"discountPercent": "折扣比",
|
"discountPercent": "折扣比",
|
||||||
"discount_price": "折扣價格",
|
"discount_price": "折扣價格",
|
||||||
"duration": "時長(月)",
|
"duration": "時長(月)",
|
||||||
|
"groupId": "訂閱組別",
|
||||||
"inventory": "庫存",
|
"inventory": "庫存",
|
||||||
"monthlyReset": "每月重置",
|
"monthlyReset": "每月重置",
|
||||||
"name": "名稱",
|
"name": "名稱",
|
||||||
@ -42,7 +43,7 @@
|
|||||||
"noReset": "不重置",
|
"noReset": "不重置",
|
||||||
"pricing": "定價",
|
"pricing": "定價",
|
||||||
"purchaseWithDiscount": "允許扣減",
|
"purchaseWithDiscount": "允許扣減",
|
||||||
"purchaseWithDiscountDescription": "啟用或禁用扣減功能。啟用時,系統將根據配置的規則和比例進行扣減處理",
|
"purchaseWithDiscountDescription": "啟用或停用取消訂閱功能。啟用後,系統將根據配置的規則和比例進行扣減處理,剩餘的價值將返回到餘額中",
|
||||||
"quota": "限購數量",
|
"quota": "限購數量",
|
||||||
"renewalReset": "續訂重置",
|
"renewalReset": "續訂重置",
|
||||||
"renewalResetDescription": "續訂時重置週期",
|
"renewalResetDescription": "續訂時重置週期",
|
||||||
@ -55,8 +56,7 @@
|
|||||||
"server": "服務",
|
"server": "服務",
|
||||||
"serverGroup": "服務組",
|
"serverGroup": "服務組",
|
||||||
"servers": "伺服器",
|
"servers": "伺服器",
|
||||||
"speedLimit": "速度限制(Mbps)",
|
"speedLimit": "速度限制",
|
||||||
"subscribeGroup": "訂閱組",
|
|
||||||
"traffic": "流量",
|
"traffic": "流量",
|
||||||
"unitPrice": "單價",
|
"unitPrice": "單價",
|
||||||
"unitTime": "單位時間"
|
"unitTime": "單位時間"
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"actions": "操作",
|
"actions": "操作",
|
||||||
"balance": "餘額",
|
"balance": "餘額",
|
||||||
"cancel": "取消",
|
"cancel": "取消",
|
||||||
|
"commission": "佣金",
|
||||||
"confirm": "確認",
|
"confirm": "確認",
|
||||||
"confirmDelete": "您確定要刪除嗎?",
|
"confirmDelete": "您確定要刪除嗎?",
|
||||||
"create": "建立",
|
"create": "建立",
|
||||||
@ -19,7 +20,11 @@
|
|||||||
"balance": "餘額",
|
"balance": "餘額",
|
||||||
"balancePlaceholder": "餘額",
|
"balancePlaceholder": "餘額",
|
||||||
"cancel": "取消",
|
"cancel": "取消",
|
||||||
|
"commission": "佣金",
|
||||||
|
"commissionPlaceholder": "輸入佣金",
|
||||||
"confirm": "確認",
|
"confirm": "確認",
|
||||||
|
"giftAmount": "禮物金額",
|
||||||
|
"giftAmountPlaceholder": "輸入禮物金額",
|
||||||
"invalidEmailFormat": "無效的電子郵件格式",
|
"invalidEmailFormat": "無效的電子郵件格式",
|
||||||
"inviteCode": "邀請碼",
|
"inviteCode": "邀請碼",
|
||||||
"inviteCodePlaceholder": "請輸入邀請碼(留空則自動生成)",
|
"inviteCodePlaceholder": "請輸入邀請碼(留空則自動生成)",
|
||||||
@ -31,6 +36,8 @@
|
|||||||
"userEmail": "用戶信箱",
|
"userEmail": "用戶信箱",
|
||||||
"userEmailPlaceholder": "請輸入用戶信箱"
|
"userEmailPlaceholder": "請輸入用戶信箱"
|
||||||
},
|
},
|
||||||
|
"giftAmount": "禮物金額",
|
||||||
|
"inviteCode": "邀請碼",
|
||||||
"referer": "推薦人",
|
"referer": "推薦人",
|
||||||
"updateSuccess": "更新成功",
|
"updateSuccess": "更新成功",
|
||||||
"userList": "使用者列表",
|
"userList": "使用者列表",
|
||||||
|
|||||||
@ -1,8 +1,14 @@
|
|||||||
'use client';
|
'use client';
|
||||||
|
|
||||||
import { Display } from '@/components/display';
|
import { Display } from '@/components/display';
|
||||||
|
import Renewal from '@/components/subscribe/renewal';
|
||||||
|
import ResetTraffic from '@/components/subscribe/reset-traffic';
|
||||||
|
import Unsubscribe from '@/components/subscribe/unsubscribe';
|
||||||
|
import useGlobalStore from '@/config/use-global';
|
||||||
|
import { getStat } from '@/services/common/common';
|
||||||
import { queryApplicationConfig } from '@/services/user/subscribe';
|
import { queryApplicationConfig } from '@/services/user/subscribe';
|
||||||
import { queryUserSubscribe } from '@/services/user/user';
|
import { queryUserSubscribe } from '@/services/user/user';
|
||||||
|
import { getPlatform } from '@/utils/common';
|
||||||
import { Icon } from '@iconify/react';
|
import { Icon } from '@iconify/react';
|
||||||
import { useQuery } from '@tanstack/react-query';
|
import { useQuery } from '@tanstack/react-query';
|
||||||
import {
|
import {
|
||||||
@ -33,15 +39,8 @@ import Image from 'next/image';
|
|||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
import { QRCodeCanvas } from 'qrcode.react';
|
import { QRCodeCanvas } from 'qrcode.react';
|
||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import { toast } from 'sonner';
|
|
||||||
|
|
||||||
import Renewal from '@/components/subscribe/renewal';
|
|
||||||
import ResetTraffic from '@/components/subscribe/reset-traffic';
|
|
||||||
import Unsubscribe from '@/components/subscribe/unsubscribe';
|
|
||||||
import useGlobalStore from '@/config/use-global';
|
|
||||||
import { getStat } from '@/services/common/common';
|
|
||||||
import { getPlatform } from '@/utils/common';
|
|
||||||
import CopyToClipboard from 'react-copy-to-clipboard';
|
import CopyToClipboard from 'react-copy-to-clipboard';
|
||||||
|
import { toast } from 'sonner';
|
||||||
import Subscribe from '../subscribe/page';
|
import Subscribe from '../subscribe/page';
|
||||||
|
|
||||||
export default function Content() {
|
export default function Content() {
|
||||||
@ -195,6 +194,7 @@ export default function Content() {
|
|||||||
<CardTitle className='text-sm font-medium'>
|
<CardTitle className='text-sm font-medium'>
|
||||||
{t('subscriptionUrl')} {index + 1}
|
{t('subscriptionUrl')} {index + 1}
|
||||||
</CardTitle>
|
</CardTitle>
|
||||||
|
|
||||||
<CopyToClipboard
|
<CopyToClipboard
|
||||||
text={url}
|
text={url}
|
||||||
onCopy={(text, result) => {
|
onCopy={(text, result) => {
|
||||||
@ -205,9 +205,7 @@ export default function Content() {
|
|||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
className='text-primary hover:bg-accent mr-4 flex cursor-pointer rounded p-2 text-sm'
|
className='text-primary hover:bg-accent mr-4 flex cursor-pointer rounded p-2 text-sm'
|
||||||
onClick={(e) => {
|
onClick={(e) => e.stopPropagation()}
|
||||||
e.stopPropagation();
|
|
||||||
}}
|
|
||||||
>
|
>
|
||||||
<Icon icon='uil:copy' className='mr-2 size-5' />
|
<Icon icon='uil:copy' className='mr-2 size-5' />
|
||||||
{t('copy')}
|
{t('copy')}
|
||||||
@ -217,43 +215,48 @@ export default function Content() {
|
|||||||
</AccordionTrigger>
|
</AccordionTrigger>
|
||||||
<AccordionContent>
|
<AccordionContent>
|
||||||
<div className='grid grid-cols-3 gap-4 lg:grid-cols-4 xl:grid-cols-7'>
|
<div className='grid grid-cols-3 gap-4 lg:grid-cols-4 xl:grid-cols-7'>
|
||||||
{application &&
|
{application?.[platform]?.map((app) => (
|
||||||
application[platform]?.map((app) => (
|
<div
|
||||||
<div
|
key={app.name}
|
||||||
key={app.name}
|
className='text-muted-foreground flex size-full flex-col items-center justify-between gap-2 text-xs'
|
||||||
className='text-muted-foreground flex size-full flex-col items-center justify-between gap-2 text-xs'
|
>
|
||||||
>
|
<span>{app.name}</span>
|
||||||
<span>{app.name}</span>
|
{app.icon && (
|
||||||
{app.icon && (
|
<Image src={app.icon} alt={app.name} width={50} height={50} />
|
||||||
<Image src={app.icon} alt={app.name} width={50} height={50} />
|
)}
|
||||||
)}
|
<div className='flex'>
|
||||||
<div className='flex'>
|
<Button
|
||||||
<Button size='sm' variant='secondary' className='px-1.5' asChild>
|
size='sm'
|
||||||
<Link href={app.url!}>{t('download')}</Link>
|
variant='secondary'
|
||||||
|
className='rounded-r-none px-1.5'
|
||||||
|
asChild
|
||||||
|
>
|
||||||
|
<Link href={app.url}>{t('download')}</Link>
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<CopyToClipboard
|
||||||
|
text={url}
|
||||||
|
onCopy={(text, result) => {
|
||||||
|
const href = getAppSubLink(app.subscribe_type, url);
|
||||||
|
if (isBrowser() && href) {
|
||||||
|
window.location.href = href;
|
||||||
|
} else if (result) {
|
||||||
|
toast.success(
|
||||||
|
<>
|
||||||
|
<p>{t('copySuccess')}</p>
|
||||||
|
<p>{t('manualImportMessage')}</p>
|
||||||
|
</>,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Button size='sm' className='rounded-l-none p-2'>
|
||||||
|
{t('import')}
|
||||||
</Button>
|
</Button>
|
||||||
<CopyToClipboard
|
</CopyToClipboard>
|
||||||
text={url}
|
|
||||||
onCopy={(text, result) => {
|
|
||||||
const href = getAppSubLink(app.subscribe_type, url);
|
|
||||||
if (isBrowser() && href) {
|
|
||||||
window.location.href = href;
|
|
||||||
} else if (result) {
|
|
||||||
toast.success(
|
|
||||||
<>
|
|
||||||
<p>{t('copySuccess')}</p>
|
|
||||||
<p>{t('manualImportMessage')}</p>
|
|
||||||
</>,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<Button size='sm' className='p-2'>
|
|
||||||
{t('import')}
|
|
||||||
</Button>
|
|
||||||
</CopyToClipboard>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
))}
|
</div>
|
||||||
|
))}
|
||||||
<div className='text-muted-foreground hidden size-full flex-col items-center justify-between gap-2 text-sm lg:flex'>
|
<div className='text-muted-foreground hidden size-full flex-col items-center justify-between gap-2 text-sm lg:flex'>
|
||||||
<span>{t('qrCode')}</span>
|
<span>{t('qrCode')}</span>
|
||||||
<QRCodeCanvas
|
<QRCodeCanvas
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import useGlobalStore from '@/config/use-global';
|
|||||||
import { formatBytes, unitConversion } from '@workspace/ui/utils';
|
import { formatBytes, unitConversion } from '@workspace/ui/utils';
|
||||||
import { useTranslations } from 'next-intl';
|
import { useTranslations } from 'next-intl';
|
||||||
|
|
||||||
type DisplayType = 'currency' | 'traffic' | 'number';
|
type DisplayType = 'currency' | 'traffic' | 'number' | 'trafficSpeed';
|
||||||
|
|
||||||
interface DisplayProps<T> {
|
interface DisplayProps<T> {
|
||||||
value?: T;
|
value?: T;
|
||||||
@ -26,12 +26,16 @@ export function Display<T extends number | undefined | null>({
|
|||||||
return formattedValue;
|
return formattedValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (['traffic', 'number'].includes(type) && unlimited && !value) {
|
if (['traffic', 'trafficSpeed', 'number'].includes(type) && unlimited && !value) {
|
||||||
return t('unlimited');
|
return t('unlimited');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type === 'traffic') {
|
if (type === 'traffic') {
|
||||||
return value ? formatBytes(value as number) : '0';
|
return value ? formatBytes(value) : '0';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type === 'trafficSpeed') {
|
||||||
|
return value ? formatBytes(value).replace('B', 'b') + 'ps' : '0';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type === 'number') {
|
if (type === 'number') {
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
'use client';
|
'use client';
|
||||||
|
|
||||||
import { Display } from '@/components/display';
|
import { Display } from '@/components/display';
|
||||||
import { unitConversion } from '@workspace/ui/utils';
|
|
||||||
import { useTranslations } from 'next-intl';
|
import { useTranslations } from 'next-intl';
|
||||||
|
|
||||||
interface SubscribeDetailProps {
|
interface SubscribeDetailProps {
|
||||||
@ -37,11 +36,7 @@ export function SubscribeDetail({ subscribe }: Readonly<SubscribeDetailProps>) {
|
|||||||
<li>
|
<li>
|
||||||
<span className='text-muted-foreground'>{t('connectionSpeed')}</span>
|
<span className='text-muted-foreground'>{t('connectionSpeed')}</span>
|
||||||
<span>
|
<span>
|
||||||
{subscribe?.speed_limit ? (
|
<Display type='trafficSpeed' value={subscribe?.speed_limit} unlimited />
|
||||||
`${unitConversion('bitsToMb', subscribe?.speed_limit)} Mbps`
|
|
||||||
) : (
|
|
||||||
<Display type='traffic' value={subscribe?.speed_limit} unlimited />
|
|
||||||
)}
|
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user