From fce627ba11a6961f84e4a6eb87d3fda8fba1561e Mon Sep 17 00:00:00 2001 From: web Date: Thu, 11 Sep 2025 03:34:36 -0700 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20Add=20quota=20management=20?= =?UTF-8?q?features=20and=20localization=20updates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../marketing/email/broadcast-form.tsx | 36 +- .../marketing/email/task-manager.tsx | 55 +-- apps/admin/app/dashboard/marketing/page.tsx | 6 + .../marketing/quota/broadcast-form.tsx | 457 ++++++++++++++++++ .../marketing/quota/task-manager.tsx | 243 ++++++++++ apps/admin/locales/cs-CZ/marketing.json | 80 ++- apps/admin/locales/de-DE/marketing.json | 80 ++- apps/admin/locales/en-US/marketing.json | 80 ++- apps/admin/locales/es-ES/marketing.json | 80 ++- apps/admin/locales/es-MX/marketing.json | 80 ++- apps/admin/locales/fa-IR/marketing.json | 80 ++- apps/admin/locales/fi-FI/marketing.json | 80 ++- apps/admin/locales/fr-FR/marketing.json | 80 ++- apps/admin/locales/hi-IN/marketing.json | 80 ++- apps/admin/locales/hu-HU/marketing.json | 80 ++- apps/admin/locales/ja-JP/marketing.json | 80 ++- apps/admin/locales/ko-KR/marketing.json | 80 ++- apps/admin/locales/no-NO/marketing.json | 80 ++- apps/admin/locales/pl-PL/marketing.json | 80 ++- apps/admin/locales/pt-BR/marketing.json | 80 ++- apps/admin/locales/ro-RO/marketing.json | 80 ++- apps/admin/locales/ru-RU/marketing.json | 80 ++- apps/admin/locales/th-TH/marketing.json | 80 ++- apps/admin/locales/tr-TR/marketing.json | 80 ++- apps/admin/locales/uk-UA/marketing.json | 80 ++- apps/admin/locales/vi-VN/marketing.json | 80 ++- apps/admin/locales/zh-CN/marketing.json | 82 +++- apps/admin/locales/zh-HK/marketing.json | 80 ++- apps/admin/services/admin/marketing.ts | 51 ++ apps/admin/services/admin/typings.d.ts | 80 ++- apps/user/services/common/index.ts | 2 +- apps/user/services/user/index.ts | 2 +- .../custom-components/pro-table/pro-table.tsx | 35 +- 33 files changed, 2716 insertions(+), 93 deletions(-) create mode 100644 apps/admin/app/dashboard/marketing/quota/broadcast-form.tsx create mode 100644 apps/admin/app/dashboard/marketing/quota/task-manager.tsx diff --git a/apps/admin/app/dashboard/marketing/email/broadcast-form.tsx b/apps/admin/app/dashboard/marketing/email/broadcast-form.tsx index 4f4c986..cb33af8 100644 --- a/apps/admin/app/dashboard/marketing/email/broadcast-form.tsx +++ b/apps/admin/app/dashboard/marketing/email/broadcast-form.tsx @@ -47,7 +47,7 @@ export default function EmailBroadcastForm() { const emailBroadcastSchema = z.object({ subject: z.string().min(1, t('subject') + ' ' + t('cannotBeEmpty')), content: z.string().min(1, t('content') + ' ' + t('cannotBeEmpty')), - scope: z.string(), + scope: z.number(), register_start_time: z.string().optional(), register_end_time: z.string().optional(), additional: z @@ -83,7 +83,7 @@ export default function EmailBroadcastForm() { defaultValues: { subject: '', content: '', - scope: 'all', + scope: 1, // ScopeAll register_start_time: '', register_end_time: '', additional: '', @@ -99,7 +99,7 @@ export default function EmailBroadcastForm() { try { // Call API to get actual recipient count - const scope = formData.scope || 'all'; + const scope = formData.scope || 1; // Default to ScopeAll // Convert dates to timestamps if they exist let register_start_time: number = 0; @@ -153,8 +153,10 @@ export default function EmailBroadcastForm() { // Listen to form changes const watchedValues = form.watch(); - // Use useEffect to respond to form changes + // Use useEffect to respond to form changes, but only when sheet is open useEffect(() => { + if (!open) return; // Only calculate when sheet is open + const debounceTimer = setTimeout(() => { calculateRecipients(); }, 500); // Add debounce to avoid too frequent API calls @@ -162,6 +164,7 @@ export default function EmailBroadcastForm() { return () => clearTimeout(debounceTimer); // eslint-disable-next-line react-hooks/exhaustive-deps }, [ + open, // Add open dependency watchedValues.scope, watchedValues.register_start_time, watchedValues.register_end_time, @@ -310,20 +313,27 @@ export default function EmailBroadcastForm() { render={({ field }) => ( {t('sendScope')} - field.onChange(parseInt(value))} + value={field.value?.toString() || '1'} + > - {t('allUsers')} - {t('subscribedUsersOnly')} - + {t('allUsers')} {/* ScopeAll */} + {t('subscribedUsersOnly')}{' '} + {/* ScopeActive */} + {t('expiredSubscriptionUsersOnly')} - - {t('noSubscriptionUsersOnly')} - {t('specificUsersOnly')} + {' '} + {/* ScopeExpired */} + {t('noSubscriptionUsersOnly')}{' '} + {/* ScopeNone */} + {t('specificUsersOnly')}{' '} + {/* ScopeSkip */} {t('sendScopeDescription')} @@ -356,7 +366,7 @@ export default function EmailBroadcastForm() { @@ -374,7 +384,7 @@ export default function EmailBroadcastForm() { diff --git a/apps/admin/app/dashboard/marketing/email/task-manager.tsx b/apps/admin/app/dashboard/marketing/email/task-manager.tsx index 1057417..a5aa2e5 100644 --- a/apps/admin/app/dashboard/marketing/email/task-manager.tsx +++ b/apps/admin/app/dashboard/marketing/email/task-manager.tsx @@ -33,6 +33,7 @@ export default function EmailTaskManager() { const t = useTranslations('marketing'); const [refreshing, setRefreshing] = useState>({}); const [selectedTask, setSelectedTask] = useState(null); + const [open, setOpen] = useState(false); // Get task status const refreshTaskStatus = async (taskId: number) => { @@ -86,7 +87,7 @@ export default function EmailTaskManager() { }; return ( - +
@@ -114,7 +115,6 @@ export default function EmailTaskManager() { { accessorKey: 'subject', header: t('subject'), - size: 200, cell: ({ row }) => (
{ - const scope = row.getValue('scope') as string; + const scope = row.original.scope; const scopeLabels = { - all: t('allUsers'), - active: t('subscribedUsers'), - expired: t('expiredUsers'), - none: t('nonSubscribers'), - skip: t('specificUsers'), + 1: t('allUsers'), // ScopeAll + 2: t('subscribedUsers'), // ScopeActive + 3: t('expiredUsers'), // ScopeExpired + 4: t('nonSubscribers'), // ScopeNone + 5: t('specificUsers'), // ScopeSkip }; - return scopeLabels[scope as keyof typeof scopeLabels] || scope; + return ( + scopeLabels[scope as keyof typeof scopeLabels] || `${t('scope')} ${scope}` + ); }, }, { accessorKey: 'status', header: t('status'), - size: 100, cell: ({ row }) => getStatusBadge(row.getValue('status') as number), }, { accessorKey: 'progress', header: t('progress'), - size: 150, cell: ({ row }) => { const task = row.original as API.BatchSendEmailTask; const progress = task.total > 0 ? (task.current / task.total) * 100 : 0; @@ -171,24 +170,22 @@ export default function EmailTaskManager() { ); }, }, - { - accessorKey: 'created_at', - header: t('createdAt'), - size: 150, - cell: ({ row }) => { - const createdAt = row.getValue('created_at') as number; - return formatDate(createdAt); - }, - }, { accessorKey: 'scheduled', header: t('sendTime'), - size: 150, cell: ({ row }) => { const scheduled = row.getValue('scheduled') as number; return scheduled && scheduled > 0 ? formatDate(scheduled) : '--'; }, }, + { + accessorKey: 'created_at', + header: t('createdAt'), + cell: ({ row }) => { + const createdAt = row.getValue('created_at') as number; + return formatDate(createdAt); + }, + }, ]} request={async (pagination, filters) => { const response = await getBatchSendEmailTaskList({ @@ -215,11 +212,11 @@ export default function EmailTaskManager() { key: 'scope', placeholder: t('sendScope'), options: [ - { label: t('allUsers'), value: 'all' }, - { label: t('subscribedUsers'), value: 'active' }, - { label: t('expiredUsers'), value: 'expired' }, - { label: t('nonSubscribers'), value: 'none' }, - { label: t('specificUsers'), value: 'skip' }, + { label: t('allUsers'), value: '1' }, + { label: t('subscribedUsers'), value: '2' }, + { label: t('expiredUsers'), value: '3' }, + { label: t('nonSubscribers'), value: '4' }, + { label: t('specificUsers'), value: '5' }, ], }, ]} @@ -276,9 +273,9 @@ export default function EmailTaskManager() { disabled={refreshing[row.id]} > {refreshing[row.id] ? ( - + ) : ( - + )} , ...([0, 1].includes(row.status) diff --git a/apps/admin/app/dashboard/marketing/page.tsx b/apps/admin/app/dashboard/marketing/page.tsx index 66ee835..3da7950 100644 --- a/apps/admin/app/dashboard/marketing/page.tsx +++ b/apps/admin/app/dashboard/marketing/page.tsx @@ -4,6 +4,8 @@ import { Table, TableBody, TableCell, TableRow } from '@workspace/ui/components/ import { useTranslations } from 'next-intl'; import EmailBroadcastForm from './email/broadcast-form'; import EmailTaskManager from './email/task-manager'; +import QuotaBroadcastForm from './quota/broadcast-form'; +import QuotaTaskManager from './quota/task-manager'; export default function MarketingPage() { const t = useTranslations('marketing'); @@ -13,6 +15,10 @@ export default function MarketingPage() { title: t('emailMarketing'), forms: [{ component: EmailBroadcastForm }, { component: EmailTaskManager }], }, + { + title: t('quotaService'), + forms: [{ component: QuotaBroadcastForm }, { component: QuotaTaskManager }], + }, ]; return ( diff --git a/apps/admin/app/dashboard/marketing/quota/broadcast-form.tsx b/apps/admin/app/dashboard/marketing/quota/broadcast-form.tsx new file mode 100644 index 0000000..2a4eb1f --- /dev/null +++ b/apps/admin/app/dashboard/marketing/quota/broadcast-form.tsx @@ -0,0 +1,457 @@ +'use client'; + +import { Display } from '@/components/display'; +import { createQuotaTask, queryQuotaTaskPreCount } from '@/services/admin/marketing'; +import { getSubscribeList } from '@/services/admin/subscribe'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { useQuery } from '@tanstack/react-query'; +import { Button } from '@workspace/ui/components/button'; +import { + Form, + FormControl, + FormDescription, + FormField, + FormItem, + FormLabel, + FormMessage, +} from '@workspace/ui/components/form'; +import { RadioGroup, RadioGroupItem } from '@workspace/ui/components/radio-group'; +import { ScrollArea } from '@workspace/ui/components/scroll-area'; +import { + Sheet, + SheetContent, + SheetFooter, + SheetHeader, + SheetTitle, + SheetTrigger, +} from '@workspace/ui/components/sheet'; +import { Switch } from '@workspace/ui/components/switch'; +import { Combobox } from '@workspace/ui/custom-components/combobox'; +import { EnhancedInput } from '@workspace/ui/custom-components/enhanced-input'; +import { Icon } from '@workspace/ui/custom-components/icon'; +import { unitConversion } from '@workspace/ui/utils'; +import { useTranslations } from 'next-intl'; +import { useEffect, useState } from 'react'; +import { useForm } from 'react-hook-form'; +import { toast } from 'sonner'; +import { z } from 'zod'; + +export default function QuotaBroadcastForm() { + const t = useTranslations('marketing'); + + // Define schema with internationalized error messages + const quotaBroadcastSchema = z.object({ + subscribers: z.array(z.number()).min(1, t('pleaseSelectSubscribers')), + is_active: z.boolean(), + start_time: z.string().optional(), + end_time: z.string().optional(), + reset_traffic: z.boolean(), + days: z.number().min(1, t('days') + ' ' + t('cannotBeEmpty')), + gift_type: z.number(), + gift_value: z.number().min(0, t('giftValue') + ' ' + t('mustBeGreaterThanOrEqualToZero')), + }); + + type QuotaBroadcastFormData = z.infer; + + const form = useForm({ + resolver: zodResolver(quotaBroadcastSchema), + mode: 'onChange', // Enable real-time validation + defaultValues: { + subscribers: [], + is_active: true, + start_time: '', + end_time: '', + reset_traffic: false, + days: 0, + gift_type: 1, + gift_value: 0, + }, + }); + + const [recipients, setRecipients] = useState(0); + const [isCalculating, setIsCalculating] = useState(false); + const [isSubmitting, setIsSubmitting] = useState(false); + const [open, setOpen] = useState(false); + + // Get subscribe list + const { data: subscribeList } = useQuery({ + queryKey: ['getSubscribeList', 'all'], + queryFn: async () => { + const { data } = await getSubscribeList({ + page: 1, + size: 999999999, + }); + return data.data?.list as API.SubscribeItem[]; + }, + }); + + // Calculate recipient count + const calculateRecipients = async () => { + setIsCalculating(true); + try { + const formData = form.getValues(); + let start_time: number = 0; + let end_time: number = 0; + + if (formData.start_time) { + start_time = Math.floor(new Date(formData.start_time).getTime() / 1000); + } + + if (formData.end_time) { + end_time = Math.floor(new Date(formData.end_time).getTime() / 1000); + } + + const response = await queryQuotaTaskPreCount({ + subscribers: formData.subscribers, + is_active: formData.is_active, + start_time, + end_time, + }); + + if (response.data?.data?.count !== undefined) { + setRecipients(response.data.data.count); + } + } catch (error) { + console.error('Failed to calculate recipients:', error); + toast.error(t('failedToCalculateRecipients')); + setRecipients(0); + } finally { + setIsCalculating(false); + } + }; + + // Watch form values and recalculate recipients only when sheet is open + const watchedValues = form.watch(); + + useEffect(() => { + if (!open) return; // Only calculate when sheet is open + + const debounceTimer = setTimeout(() => { + calculateRecipients(); + }, 500); // Add debounce to avoid too frequent API calls + + return () => clearTimeout(debounceTimer); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [ + open, + watchedValues.subscribers, + watchedValues.is_active, + watchedValues.start_time, + watchedValues.end_time, + ]); + + const onSubmit = async (data: QuotaBroadcastFormData) => { + setIsSubmitting(true); + try { + let start_time: number = 0; + let end_time: number = 0; + + if (data.start_time) { + start_time = Math.floor(new Date(data.start_time).getTime() / 1000); + } + + if (data.end_time) { + end_time = Math.floor(new Date(data.end_time).getTime() / 1000); + } + + await createQuotaTask({ + subscribers: data.subscribers, + is_active: data.is_active, + start_time, + end_time, + reset_traffic: data.reset_traffic, + days: data.days, + gift_type: data.gift_type, + gift_value: data.gift_value, + }); + + toast.success(t('quotaTaskCreatedSuccessfully')); + form.reset(); + setRecipients(0); + setOpen(false); // Close the sheet after successful submission + } catch (error) { + console.error('Failed to create quota task:', error); + toast.error(t('failedToCreateQuotaTask')); + } finally { + setIsSubmitting(false); + } + }; + + return ( + + +
+
+
+ +
+
+

{t('quotaBroadcast')}

+

{t('createAndSendQuotaTasks')}

+
+
+ +
+
+ + + {t('createQuotaTask')} + + +
+ + {/* Subscribers selection */} + ( + + {t('subscribers')} + + ({ + value: subscribe.id!, + label: subscribe.name!, + children: ( +
+
{subscribe.name}
+
+ /{' '} + +
+
+ ), + })) || [] + } + /> +
+ +
+ )} + /> + + {/* Subscription count info and active status */} +
+ ( + + {t('validOnly')} + + + + {t('selectValidSubscriptionsOnly')} + + + )} + /> +
+ {t('subscriptionCount')}: + + {isCalculating ? ( + + ) : ( + recipients.toLocaleString() + )} + +
+
+ + {/* Subscription validity period range */} +
+ ( + + {t('subscriptionValidityStartDate')} + + + + {t('includeSubscriptionsValidAfter')} + + )} + /> + ( + + {t('subscriptionValidityEndDate')} + + + + {t('includeSubscriptionsValidBefore')} + + )} + /> +
+ + {/* Reset traffic */} + ( + + {t('resetTraffic')} + + + + {t('resetTrafficDescription')} + + + )} + /> + + {/* Quota days */} + ( + + {t('quotaDays')} + + field.onChange(parseInt(value, 10))} + /> + + {t('numberOfDaysForTheQuota')} + + + )} + /> + + {/* Gift configuration */} + ( + + {t('giftType')} + + { + field.onChange(Number(value)); + form.setValue('gift_value', 0); + }} + className='flex gap-4' + > + + + + + {t('fixedAmount')} + + + + + + {t('percentageAmount')} + + + + + + )} + /> + + {/* Gift amount based on type */} + {form.watch('gift_type') === 1 && ( + ( + + {t('giftAmount')} + + + placeholder={t('enterAmount')} + type='number' + value={field.value} + formatInput={(value) => unitConversion('centsToDollars', value)} + formatOutput={(value) => unitConversion('dollarsToCents', value)} + onValueChange={(value) => field.onChange(value)} + min={1} + /> + + + + )} + /> + )} + {form.watch('gift_type') === 2 && ( + ( + + {t('giftAmount')} + + field.onChange(value)} + min={1} + max={100} + /> + + {t('percentageAmountDescription')} + + + )} + /> + )} + + +
+ + + + +
+
+ ); +} diff --git a/apps/admin/app/dashboard/marketing/quota/task-manager.tsx b/apps/admin/app/dashboard/marketing/quota/task-manager.tsx new file mode 100644 index 0000000..a485835 --- /dev/null +++ b/apps/admin/app/dashboard/marketing/quota/task-manager.tsx @@ -0,0 +1,243 @@ +'use client'; + +import { Display } from '@/components/display'; +import { ProTable } from '@/components/pro-table'; +import { queryQuotaTaskList } from '@/services/admin/marketing'; +import { getSubscribeList } from '@/services/admin/subscribe'; +import { formatDate } from '@/utils/common'; +import { useQuery } from '@tanstack/react-query'; +import { Badge } from '@workspace/ui/components/badge'; +import { ScrollArea } from '@workspace/ui/components/scroll-area'; +import { + Sheet, + SheetContent, + SheetHeader, + SheetTitle, + SheetTrigger, +} from '@workspace/ui/components/sheet'; +import { Icon } from '@workspace/ui/custom-components/icon'; +import { useTranslations } from 'next-intl'; +import { useState } from 'react'; + +export default function QuotaTaskManager() { + const t = useTranslations('marketing'); + const [open, setOpen] = useState(false); + + // Get subscribe list to show subscription names + const { data: subscribeList } = useQuery({ + queryKey: ['getSubscribeList', 'all'], + queryFn: async () => { + const { data } = await getSubscribeList({ + page: 1, + size: 999999999, + }); + return data.data?.list as API.SubscribeItem[]; + }, + }); + + // Create a map for quick lookup of subscription names + const subscribeMap = + subscribeList?.reduce( + (acc, subscribe) => { + acc[subscribe.id!] = subscribe.name!; + return acc; + }, + {} as Record, + ) || {}; + + const getStatusBadge = (status: number) => { + const statusConfig = { + 0: { label: t('notStarted'), variant: 'secondary' as const }, + 1: { label: t('inProgress'), variant: 'default' as const }, + 2: { label: t('completed'), variant: 'default' as const }, + }; + + const config = statusConfig[status as keyof typeof statusConfig] || { + label: `${t('status')} ${status}`, + variant: 'secondary' as const, + }; + + return {config.label}; + }; + + return ( + + +
+
+
+ +
+
+

{t('quotaTaskManager')}

+

{t('viewAndManageQuotaTasks')}

+
+
+ +
+
+ + + {t('quotaTasks')} + + +
+ {open && ( + + columns={[ + { + accessorKey: 'subscribers', + header: t('subscribers'), + size: 200, + cell: ({ row }) => { + const subscribers = row.getValue('subscribers') as number[]; + const subscriptionNames = + subscribers?.map((id) => subscribeMap[id]).filter(Boolean) || []; + + if (subscriptionNames.length === 0) { + return ( + + {t('noSubscriptions')} + + ); + } + + return ( +
+ {subscriptionNames.map((name, index) => ( + + {name} + + ))} +
+ ); + }, + }, + { + accessorKey: 'is_active', + header: t('validOnly'), + size: 120, + cell: ({ row }) => { + const isActive = row.getValue('is_active') as boolean; + return {isActive ? t('yes') : t('no')}; + }, + }, + { + accessorKey: 'reset_traffic', + header: t('resetTraffic'), + size: 120, + cell: ({ row }) => { + const resetTraffic = row.getValue('reset_traffic') as boolean; + return {resetTraffic ? t('yes') : t('no')}; + }, + }, + { + accessorKey: 'gift_value', + header: t('giftAmount'), + size: 120, + cell: ({ row }) => { + const giftValue = row.getValue('gift_value') as number; + const task = row.original as API.QuotaTask; + const giftType = task.gift_type; + + return ( +
+ {giftType === 1 ? ( + + ) : ( + `${giftValue}%` + )} +
+ ); + }, + }, + { + accessorKey: 'days', + header: t('quotaDays'), + size: 100, + cell: ({ row }) => { + const days = row.getValue('days') as number; + return ( + + {days} {t('days')} + + ); + }, + }, + { + accessorKey: 'time_range', + header: t('timeRange'), + size: 180, + cell: ({ row }) => { + const task = row.original as API.QuotaTask; + const startTime = task.start_time; + const endTime = task.end_time; + + if (!startTime && !endTime) { + return ( + {t('noTimeLimit')} + ); + } + + return ( +
+ {startTime && ( +
+ {t('startTime')}: {formatDate(startTime)} +
+ )} + {endTime && ( +
+ {t('endTime')}: {formatDate(endTime)} +
+ )} +
+ ); + }, + }, + { + accessorKey: 'status', + header: t('status'), + size: 100, + cell: ({ row }) => getStatusBadge(row.getValue('status') as number), + }, + { + accessorKey: 'created_at', + header: t('createdAt'), + size: 150, + cell: ({ row }) => { + const createdAt = row.getValue('created_at') as number; + return formatDate(createdAt); + }, + }, + ]} + request={async (pagination, filters) => { + const response = await queryQuotaTaskList({ + ...filters, + page: pagination.page, + size: pagination.size, + }); + return { + list: response.data?.data?.list || [], + total: response.data?.data?.total || 0, + }; + }} + params={[ + { + key: 'status', + placeholder: t('status'), + options: [ + { label: t('notStarted'), value: '0' }, + { label: t('inProgress'), value: '1' }, + { label: t('completed'), value: '2' }, + ], + }, + ]} + /> + )} +
+
+
+
+ ); +} diff --git a/apps/admin/locales/cs-CZ/marketing.json b/apps/admin/locales/cs-CZ/marketing.json index 3e59d0d..b89bdbc 100644 --- a/apps/admin/locales/cs-CZ/marketing.json +++ b/apps/admin/locales/cs-CZ/marketing.json @@ -1,4 +1,7 @@ { + "active": "Aktivní", + "activeStatus": "Aktivní stav", + "addQuotaForUsers": "Přidat kvótu pro předplatné", "additional": "Další", "additionalRecipientEmails": "Další e-mailové adresy příjemců", "additionalRecipients": "Další příjemci", @@ -6,6 +9,7 @@ "allUsers": "Všichni uživatelé", "broadcastList": "Seznam vysílání", "broadcastLogs": "Záznamy vysílání", + "calculating": "Vypočítává se...", "cancel": "Zrušit", "cannotBeEmpty": "nemůže být prázdné", "completed": "Dokončeno", @@ -13,15 +17,27 @@ "confirmDelete": "Potvrdit smazání", "content": "Obsah e-mailu", "create": "Vytvořit", + "createAndSendQuotaTasks": "Vytvořit a rozeslat úkoly kvóty", "createBroadcast": "Vytvořit vysílání", "createNewEmailBroadcastCampaign": "Vytvořit novou kampaň e-mailového vysílání", + "createQuotaTask": "Vytvořit úkol kvóty", + "createQuotaTaskDescription": "Hromadně přidat kvótu pro způsobilá předplatná", "createSuccess": "Úspěšně vytvořeno", + "createTask": "Vytvořit úkol", "createdAt": "Vytvořeno dne", + "currentValidSubscriptionsOnly": "Pouze aktuální platná předplatná", + "currentValidSubscriptionsOnlyShort": "Pouze platná", "dailyLimit": "Denní limit musí být alespoň 1", "dailySendLimit": "Denní limit odeslání", + "dataQuota": "Datová kvóta", + "dayQuota": "Denní kvóta", + "days": "Dny", "delete": "Smazat", "deleteDescription": "Tuto operaci nelze vrátit zpět. Opravdu chcete smazat?", "deleteSuccess": "Úspěšně smazáno", + "distributionScope": "Rozsah distribuce", + "distributionScopeDescription": "Vyberte rozsah předplatného pro přijetí kvóty", + "distributionSettings": "Nastavení distribuce", "edit": "Upravit", "emailAddedToScheduledQueue": "E-mail přidán do naplánované fronty odeslání", "emailBroadcast": "E-mailové vysílání", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "Interval e-mailu musí být alespoň 0,1 sekundy", "emailMarketing": "E-mailový marketing", "emailTaskManager": "Správce úkolů e-mailu", + "endTime": "Čas ukončení", + "enterAmount": "Zadejte částku", + "enterPercentage": "Zadejte procento", "errorMessage": "Zpráva o chybě", "estimatedRecipients": "Odhadovaný počet příjemců", "expiredSubscriptionUsersOnly": "Pouze uživatelé s vypršeným předplatným", "expiredUsers": "Uživatelé s vypršeným předplatným", "failCount": "Počet neúspěchů", "failed": "Neúspěšně", + "failedToCalculateRecipients": "Nepodařilo se vypočítat příjemce", + "failedToCreateQuotaTask": "Nepodařilo se vytvořit úkol kvóty", "failedToRefreshTaskStatus": "Nepodařilo se obnovit stav úkolu", "failedToStopTask": "Nepodařilo se zastavit úkol", + "fixedAmount": "Pevná částka", + "gift": "Dárek", + "giftAmount": "Částka dárku", + "giftRatio": "Poměr dárku", + "giftRatioDescription": "Procento kvóty, které se daruje na základě spotřeby předplatného (%)", + "giftType": "Typ částky dárku", + "giftValue": "Hodnota dárku", "inProgress": "Probíhá", + "inactive": "Neaktivní", + "includeSubscriptionsValidAfter": "Zahrnout předplatná platná po tomto datu", + "includeSubscriptionsValidBefore": "Zahrnout předplatná platná před tímto datem", "includeUsersRegisteredAfter": "Zahrnout uživatele registrované po tomto datu", "includeUsersRegisteredBefore": "Zahrnout uživatele registrované před tímto datem", "intervalTimeBetweenEmails": "Časový interval mezi jednotlivými e-maily", + "invoiceAmountRatioToGiftAmount": "Poměr částky faktury k částce dárku", "leaveEmptyForImmediateSend": "Nechte prázdné pro okamžité odeslání", "logList": "Seznam záznamů", "marketingManagement": "Správa marketingu", "maximumNumberPerDay": "Maximální počet e-mailů k odeslání za den", + "mustBeGreaterThanOrEqualToZero": "Musí být větší nebo rovno nule", + "no": "Ne", "noSubscriptionUsersOnly": "Pouze uživatelé bez předplatného", + "noSubscriptions": "Žádná předplatná", + "noTimeLimit": "Žádný časový limit", "nonSubscribers": "Nepředplatitelé", "notStarted": "Nebylo zahájeno", + "numberOfDaysForTheQuota": "Počet dní pro prodloužení platnosti předplatného", "onePerLine": "jeden na řádek", "only": "pouze", "pending": "Čeká se", + "percentageAmount": "Procentuální částka", + "percentageAmountDescription": "Procentuální částka dárku na základě aktuální ceny balíčku", "pleaseEnter": "Prosím zadejte", + "pleaseEnterAmount": "Prosím zadejte částku", + "pleaseEnterPercentage": "Prosím zadejte procento", "pleaseEnterValidEmailAddresses": "Prosím zadejte platné e-mailové adresy, jednu na řádek", + "pleaseSelectSubscribers": "Prosím vyberte balíčky", "processing": "Zpracovává se...", "progress": "Pokrok", + "quotaBroadcast": "Distribuce kvóty", + "quotaDays": "Prodloužení platnosti dní", + "quotaService": "Služba kvóty", + "quotaTaskCreatedSuccessfully": "Úkol kvóty byl úspěšně vytvořen", + "quotaTaskManager": "Správce úkolů kvóty", + "quotaTasks": "Úkoly kvóty", + "quotaType": "Typ kvóty", + "quotaTypeDescription": "Vyberte typ kvóty k distribuci", "recipient": "Příjemce", "recipientEmail": "E-mail příjemce", + "recipientScope": "Rozsah příjemce", "recipientType": "Typ příjemce", "registrationEndDate": "Datum ukončení registrace", + "registrationEndTime": "Čas ukončení registrace", "registrationStartDate": "Datum zahájení registrace", + "registrationStartTime": "Čas zahájení registrace", + "resetTraffic": "Resetovat provoz", + "resetTrafficDescription": "Zda resetovat použitý provoz předplatného", "scheduleSend": "Naplánovat odeslání", "scheduledSend": "Naplánované odeslání", "scheduledSendTimeMustBeLater": "Čas naplánovaného odeslání musí být pozdější než aktuální čas", + "scheduledTime": "Naplánovaný čas", + "selectDistributionScope": "Vyberte rozsah distribuce", + "selectGiftType": "Vyberte typ částky dárku", + "selectParametersToCalculate": "Vyberte parametry pro výpočet počtu příjemců", + "selectQuotaType": "Vyberte typ kvóty", + "selectRecipientScope": "Vyberte rozsah příjemce", + "selectRegistrationEndTime": "Vyberte čas ukončení registrace", + "selectRegistrationStartTime": "Vyberte čas zahájení registrace", "selectSendScope": "Vyberte rozsah odeslání", "selectSendTime": "Vyberte čas odeslání, nechte prázdné pro okamžité odeslání", + "selectSubscribers": "Vyberte balíčky", + "selectValidSubscriptionsOnly": "Vyberte pouze aktuálně platná předplatná", "sendFailed": "Odeslání selhalo, zkuste to prosím znovu", "sendNow": "Odeslat nyní", "sendScope": "Rozsah odeslání", @@ -78,20 +143,33 @@ "sentAt": "Odesláno dne", "specificUsers": "Specifičtí uživatelé", "specificUsersOnly": "Pouze další e-maily (přeskočit uživatele platformy)", + "startTime": "Čas zahájení", "status": "Stav", "stop": "Zastavit", "stopped": "Zastaveno", "subject": "Předmět e-mailu", "subscribedUsers": "Přihlášení uživatelé", "subscribedUsersOnly": "Pouze přihlášení uživatelé", + "subscribers": "Balíčky", + "subscriptionCount": "Počet předplatných", + "subscriptionValidityEndDate": "Datum konce platnosti předplatného", + "subscriptionValidityStartDate": "Datum začátku platnosti předplatného", + "subscriptions": "předplatná", "successCount": "Počet úspěchů", "taskStatusRefreshed": "Stav úkolu obnoven", "taskStoppedSuccessfully": "Úkol úspěšně zastaven", + "timeQuota": "Časová kvóta", + "timeRange": "Časový rozsah", + "timeRangeShort": "Čas", "totalSent": "Celkem odesláno", "updateSuccess": "Úspěšně aktualizováno", "useMarkdownEditor": "Použijte editor Markdown pro psaní obsahu e-mailu s funkcí náhledu", "users": "uživatelé", + "validOnly": "Pouze platné", + "validSubscriptionsOnly": "Pouze platná předplatná", "view": "Zobrazit", "viewAndManageEmailBroadcastTasks": "Zobrazit a spravovat úkoly e-mailového vysílání", - "viewContent": "Zobrazit obsah" + "viewAndManageQuotaTasks": "Zobrazit a spravovat úkoly kvóty", + "viewContent": "Zobrazit obsah", + "yes": "Ano" } diff --git a/apps/admin/locales/de-DE/marketing.json b/apps/admin/locales/de-DE/marketing.json index d5d553d..59af8f3 100644 --- a/apps/admin/locales/de-DE/marketing.json +++ b/apps/admin/locales/de-DE/marketing.json @@ -1,4 +1,7 @@ { + "active": "Aktiv", + "activeStatus": "Aktiver Status", + "addQuotaForUsers": "Kontingent für Abonnements hinzufügen", "additional": "Zusätzlich", "additionalRecipientEmails": "Zusätzliche Empfänger-E-Mails", "additionalRecipients": "Zusätzliche Empfänger", @@ -6,6 +9,7 @@ "allUsers": "Alle Benutzer", "broadcastList": "Übertragungsliste", "broadcastLogs": "Übertragungsprotokolle", + "calculating": "Berechne...", "cancel": "Abbrechen", "cannotBeEmpty": "darf nicht leer sein", "completed": "Abgeschlossen", @@ -13,15 +17,27 @@ "confirmDelete": "Löschen bestätigen", "content": "E-Mail-Inhalt", "create": "Erstellen", + "createAndSendQuotaTasks": "Kontingentaufgaben erstellen und verteilen", "createBroadcast": "Übertragung erstellen", "createNewEmailBroadcastCampaign": "Neue E-Mail-Übertragungskampagne erstellen", + "createQuotaTask": "Kontingentaufgabe erstellen", + "createQuotaTaskDescription": "Kontingent für berechtigte Abonnements in großen Mengen hinzufügen", "createSuccess": "Erfolgreich erstellt", + "createTask": "Aufgabe erstellen", "createdAt": "Erstellt am", + "currentValidSubscriptionsOnly": "Nur aktuelle gültige Abonnements", + "currentValidSubscriptionsOnlyShort": "Nur gültig", "dailyLimit": "Tägliches Limit muss mindestens 1 betragen", "dailySendLimit": "Tägliches Sendelimit", + "dataQuota": "Datenkontingent", + "dayQuota": "Tageskontingent", + "days": "Tage", "delete": "Löschen", "deleteDescription": "Dieser Vorgang kann nicht rückgängig gemacht werden. Sind Sie sicher, dass Sie löschen möchten?", "deleteSuccess": "Erfolgreich gelöscht", + "distributionScope": "Verteilungsscope", + "distributionScopeDescription": "Wählen Sie den Abonnementbereich aus, der das Kontingent erhalten soll", + "distributionSettings": "Verteilungseinstellungen", "edit": "Bearbeiten", "emailAddedToScheduledQueue": "E-Mail zur geplanten Sendewarteschlange hinzugefügt", "emailBroadcast": "E-Mail-Übertragung", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "E-Mail-Intervall muss mindestens 0,1 Sekunden betragen", "emailMarketing": "E-Mail-Marketing", "emailTaskManager": "E-Mail-Aufgabenmanager", + "endTime": "Endzeit", + "enterAmount": "Betrag eingeben", + "enterPercentage": "Prozentsatz eingeben", "errorMessage": "Fehlermeldung", "estimatedRecipients": "Geschätzte Empfänger", "expiredSubscriptionUsersOnly": "Nur abgelaufene Abonnenten", "expiredUsers": "Abgelaufene Benutzer", "failCount": "Fehleranzahl", "failed": "Fehlgeschlagen", + "failedToCalculateRecipients": "Fehler beim Berechnen der Empfänger", + "failedToCreateQuotaTask": "Fehler beim Erstellen der Kontingentaufgabe", "failedToRefreshTaskStatus": "Aktualisierung des Aufgabenstatus fehlgeschlagen", "failedToStopTask": "Beenden der Aufgabe fehlgeschlagen", + "fixedAmount": "Fester Betrag", + "gift": "Geschenk", + "giftAmount": "Geschenkbetrag", + "giftRatio": "Geschenkrate", + "giftRatioDescription": "Prozentsatz des Kontingents, das basierend auf dem Verbrauch des Abonnements geschenkt wird (%)", + "giftType": "Geschenkbetragstyp", + "giftValue": "Geschenkwert", "inProgress": "In Bearbeitung", + "inactive": "Inaktiv", + "includeSubscriptionsValidAfter": "Abonnements einbeziehen, die ab diesem Datum gültig sind", + "includeSubscriptionsValidBefore": "Abonnements einbeziehen, die vor diesem Datum gültig sind", "includeUsersRegisteredAfter": "Benutzer einbeziehen, die nach diesem Datum registriert sind", "includeUsersRegisteredBefore": "Benutzer einbeziehen, die vor diesem Datum registriert sind", "intervalTimeBetweenEmails": "Intervallzeit zwischen jeder E-Mail", + "invoiceAmountRatioToGiftAmount": "Rechnungsbetragsverhältnis zum Geschenkbetrag", "leaveEmptyForImmediateSend": "Leer lassen für sofortige Sendung", "logList": "Protokollliste", "marketingManagement": "Marketing-Management", "maximumNumberPerDay": "Maximale Anzahl von E-Mails, die pro Tag gesendet werden dürfen", + "mustBeGreaterThanOrEqualToZero": "Muss größer oder gleich null sein", + "no": "Nein", "noSubscriptionUsersOnly": "Nur keine Abonnenten", + "noSubscriptions": "Keine Abonnements", + "noTimeLimit": "Keine Zeitbeschränkung", "nonSubscribers": "Nicht-Abonnenten", "notStarted": "Nicht gestartet", + "numberOfDaysForTheQuota": "Anzahl der Tage zur Verlängerung des Abonnementablaufs", "onePerLine": "eine pro Zeile", "only": "nur", "pending": "Ausstehend", + "percentageAmount": "Prozentualer Betrag", + "percentageAmountDescription": "Geschenkbetrag in Prozent basierend auf dem aktuellen Paketpreis", "pleaseEnter": "Bitte eingeben", + "pleaseEnterAmount": "Bitte Betrag eingeben", + "pleaseEnterPercentage": "Bitte Prozentsatz eingeben", "pleaseEnterValidEmailAddresses": "Bitte geben Sie gültige E-Mail-Adressen ein, eine pro Zeile", + "pleaseSelectSubscribers": "Bitte Pakete auswählen", "processing": "Verarbeitung...", "progress": "Fortschritt", + "quotaBroadcast": "Kontingentverteilung", + "quotaDays": "Ablauf Tage verlängern", + "quotaService": "Kontingentdienst", + "quotaTaskCreatedSuccessfully": "Kontingentaufgabe erfolgreich erstellt", + "quotaTaskManager": "Kontingentaufgabenmanager", + "quotaTasks": "Kontingentaufgaben", + "quotaType": "Kontingenttyp", + "quotaTypeDescription": "Wählen Sie den Typ des Kontingents aus, das verteilt werden soll", "recipient": "Empfänger", "recipientEmail": "Empfänger-E-Mail", + "recipientScope": "Empfängerscope", "recipientType": "Empfängertyp", "registrationEndDate": "Registrierungsenddatum", + "registrationEndTime": "Registrierungsendzeit", "registrationStartDate": "Registrierungsstartdatum", + "registrationStartTime": "Registrierungsstartzeit", + "resetTraffic": "Verkehr zurücksetzen", + "resetTrafficDescription": "Ob der genutzte Verkehr des Abonnements zurückgesetzt werden soll", "scheduleSend": "Sendung planen", "scheduledSend": "Geplante Sendung", "scheduledSendTimeMustBeLater": "Die geplante Sendezeit muss später als die aktuelle Zeit sein", + "scheduledTime": "Geplante Zeit", + "selectDistributionScope": "Verteilungsscope auswählen", + "selectGiftType": "Geschenkbetragstyp auswählen", + "selectParametersToCalculate": "Parameter auswählen, um die Empfängermenge zu berechnen", + "selectQuotaType": "Kontingenttyp auswählen", + "selectRecipientScope": "Empfängerscope auswählen", + "selectRegistrationEndTime": "Registrierungsendzeit auswählen", + "selectRegistrationStartTime": "Registrierungsstartzeit auswählen", "selectSendScope": "Sendeumfang auswählen", "selectSendTime": "Sendezeit auswählen, leer lassen für sofortige Sendung", + "selectSubscribers": "Pakete auswählen", + "selectValidSubscriptionsOnly": "Nur aktuell gültige Abonnements auswählen", "sendFailed": "Sendung fehlgeschlagen, bitte erneut versuchen", "sendNow": "Jetzt senden", "sendScope": "Sendeumfang", @@ -78,20 +143,33 @@ "sentAt": "Gesendet am", "specificUsers": "Spezifische Benutzer", "specificUsersOnly": "Nur zusätzliche E-Mails (Plattformbenutzer überspringen)", + "startTime": "Startzeit", "status": "Status", "stop": "Stoppen", "stopped": "Gestoppt", "subject": "E-Mail-Betreff", "subscribedUsers": "Abonnierte Benutzer", "subscribedUsersOnly": "Nur abonnierte Benutzer", + "subscribers": "Pakete", + "subscriptionCount": "Abonnementsanzahl", + "subscriptionValidityEndDate": "Ablaufdatum des Abonnements", + "subscriptionValidityStartDate": "Beginn des Abonnements", + "subscriptions": "Abonnements", "successCount": "Erfolgsanzahl", "taskStatusRefreshed": "Aufgabenstatus aktualisiert", "taskStoppedSuccessfully": "Aufgabe erfolgreich gestoppt", + "timeQuota": "Zeitkontingent", + "timeRange": "Zeitraum", + "timeRangeShort": "Zeit", "totalSent": "Insgesamt gesendet", "updateSuccess": "Erfolgreich aktualisiert", "useMarkdownEditor": "Markdown-Editor verwenden, um E-Mail-Inhalte mit Vorschaufunktion zu schreiben", "users": "Benutzer", + "validOnly": "Nur gültig", + "validSubscriptionsOnly": "Nur gültige Abonnements", "view": "Anzeigen", "viewAndManageEmailBroadcastTasks": "E-Mail-Übertragungsaufgaben anzeigen und verwalten", - "viewContent": "Inhalt anzeigen" + "viewAndManageQuotaTasks": "Kontingentaufgaben anzeigen und verwalten", + "viewContent": "Inhalt anzeigen", + "yes": "Ja" } diff --git a/apps/admin/locales/en-US/marketing.json b/apps/admin/locales/en-US/marketing.json index 24b0722..a1f349e 100644 --- a/apps/admin/locales/en-US/marketing.json +++ b/apps/admin/locales/en-US/marketing.json @@ -1,4 +1,7 @@ { + "active": "Active", + "activeStatus": "Active Status", + "addQuotaForUsers": "Add Quota for Subscriptions", "additional": "Additional", "additionalRecipientEmails": "Additional recipient emails", "additionalRecipients": "Additional Recipients", @@ -6,6 +9,7 @@ "allUsers": "All Users", "broadcastList": "Broadcast List", "broadcastLogs": "Broadcast Logs", + "calculating": "Calculating...", "cancel": "Cancel", "cannotBeEmpty": "cannot be empty", "completed": "Completed", @@ -13,15 +17,27 @@ "confirmDelete": "Confirm Delete", "content": "Email Content", "create": "Create", + "createAndSendQuotaTasks": "Create and Distribute Quota Tasks", "createBroadcast": "Create Broadcast", "createNewEmailBroadcastCampaign": "Create new email broadcast campaign", + "createQuotaTask": "Create Quota Task", + "createQuotaTaskDescription": "Batch add quota for eligible subscriptions", "createSuccess": "Created Successfully", + "createTask": "Create Task", "createdAt": "Created At", + "currentValidSubscriptionsOnly": "Current Valid Subscriptions Only", + "currentValidSubscriptionsOnlyShort": "Valid Only", "dailyLimit": "Daily limit must be at least 1", "dailySendLimit": "Daily Send Limit", + "dataQuota": "Data Quota", + "dayQuota": "Day Quota", + "days": "Days", "delete": "Delete", "deleteDescription": "This operation cannot be undone. Are you sure you want to delete?", "deleteSuccess": "Deleted Successfully", + "distributionScope": "Distribution Scope", + "distributionScopeDescription": "Select the subscription scope to receive quota", + "distributionSettings": "Distribution Settings", "edit": "Edit", "emailAddedToScheduledQueue": "Email added to scheduled send queue", "emailBroadcast": "Email Broadcast", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "Email interval must be at least 0.1 seconds", "emailMarketing": "Email Marketing", "emailTaskManager": "Email Task Manager", + "endTime": "End Time", + "enterAmount": "Enter amount", + "enterPercentage": "Enter percentage", "errorMessage": "Error Message", "estimatedRecipients": "Estimated recipients", "expiredSubscriptionUsersOnly": "Expired subscription users only", "expiredUsers": "Expired Users", "failCount": "Fail Count", "failed": "Failed", + "failedToCalculateRecipients": "Failed to calculate recipients", + "failedToCreateQuotaTask": "Failed to create quota task", "failedToRefreshTaskStatus": "Failed to refresh task status", "failedToStopTask": "Failed to stop task", + "fixedAmount": "Fixed Amount", + "gift": "Gift", + "giftAmount": "Gift Amount", + "giftRatio": "Gift Ratio", + "giftRatioDescription": "Percentage of quota to gift based on subscription consumption amount (%)", + "giftType": "Gift Amount Type", + "giftValue": "Gift Value", "inProgress": "In Progress", + "inactive": "Inactive", + "includeSubscriptionsValidAfter": "Include subscriptions valid on or after this date", + "includeSubscriptionsValidBefore": "Include subscriptions valid on or before this date", "includeUsersRegisteredAfter": "Include users registered on or after this date", "includeUsersRegisteredBefore": "Include users registered on or before this date", "intervalTimeBetweenEmails": "Interval time between each email", + "invoiceAmountRatioToGiftAmount": "Invoice amount ratio to gift amount", "leaveEmptyForImmediateSend": "Leave empty for immediate send", "logList": "Log List", "marketingManagement": "Marketing Management", "maximumNumberPerDay": "Maximum number of emails to send per day", + "mustBeGreaterThanOrEqualToZero": "Must be greater than or equal to zero", + "no": "No", "noSubscriptionUsersOnly": "No subscription users only", + "noSubscriptions": "No Subscriptions", + "noTimeLimit": "No Time Limit", "nonSubscribers": "Non-subscribers", "notStarted": "Not Started", + "numberOfDaysForTheQuota": "Number of days to extend subscription expiration", "onePerLine": "one per line", "only": "only", "pending": "Pending", + "percentageAmount": "Percentage Amount", + "percentageAmountDescription": "Gift percentage amount based on current package price", "pleaseEnter": "Please enter", + "pleaseEnterAmount": "Please enter amount", + "pleaseEnterPercentage": "Please enter percentage", "pleaseEnterValidEmailAddresses": "Please enter valid email addresses, one per line", + "pleaseSelectSubscribers": "Please select packages", "processing": "Processing...", "progress": "Progress", + "quotaBroadcast": "Quota Distribution", + "quotaDays": "Extend Expiration Days", + "quotaService": "Quota Service", + "quotaTaskCreatedSuccessfully": "Quota task created successfully", + "quotaTaskManager": "Quota Task Manager", + "quotaTasks": "Quota Tasks", + "quotaType": "Quota Type", + "quotaTypeDescription": "Select the type of quota to distribute", "recipient": "Recipient", "recipientEmail": "Recipient Email", + "recipientScope": "Recipient Scope", "recipientType": "Recipient Type", "registrationEndDate": "Registration End Date", + "registrationEndTime": "Registration End Time", "registrationStartDate": "Registration Start Date", + "registrationStartTime": "Registration Start Time", + "resetTraffic": "Reset Traffic", + "resetTrafficDescription": "Whether to reset subscription used traffic", "scheduleSend": "Schedule Send", "scheduledSend": "Scheduled Send", "scheduledSendTimeMustBeLater": "Scheduled send time must be later than current time", + "scheduledTime": "Scheduled Time", + "selectDistributionScope": "Select Distribution Scope", + "selectGiftType": "Select Gift Amount Type", + "selectParametersToCalculate": "Select parameters to calculate recipient count", + "selectQuotaType": "Select Quota Type", + "selectRecipientScope": "Select Recipient Scope", + "selectRegistrationEndTime": "Select Registration End Time", + "selectRegistrationStartTime": "Select Registration Start Time", "selectSendScope": "Select send scope", "selectSendTime": "Select send time, leave empty for immediate send", + "selectSubscribers": "Select Packages", + "selectValidSubscriptionsOnly": "Select currently valid subscriptions only", "sendFailed": "Send failed, please try again", "sendNow": "Send Now", "sendScope": "Send Scope", @@ -78,20 +143,33 @@ "sentAt": "Sent At", "specificUsers": "Specific Users", "specificUsersOnly": "Additional emails only (skip platform users)", + "startTime": "Start Time", "status": "Status", "stop": "Stop", "stopped": "Stopped", "subject": "Email Subject", "subscribedUsers": "Subscribed Users", "subscribedUsersOnly": "Subscribed users only", + "subscribers": "Packages", + "subscriptionCount": "Subscription Count", + "subscriptionValidityEndDate": "Subscription Validity End Date", + "subscriptionValidityStartDate": "Subscription Validity Start Date", + "subscriptions": "subscriptions", "successCount": "Success Count", "taskStatusRefreshed": "Task status refreshed", "taskStoppedSuccessfully": "Task stopped successfully", + "timeQuota": "Time Quota", + "timeRange": "Time Range", + "timeRangeShort": "Time", "totalSent": "Total Sent", "updateSuccess": "Updated Successfully", "useMarkdownEditor": "Use Markdown editor to write email content with preview functionality", "users": "users", + "validOnly": "Valid Only", + "validSubscriptionsOnly": "Valid Subscriptions Only", "view": "View", "viewAndManageEmailBroadcastTasks": "View and manage email broadcast tasks", - "viewContent": "View Content" + "viewAndManageQuotaTasks": "View and manage quota tasks", + "viewContent": "View Content", + "yes": "Yes" } diff --git a/apps/admin/locales/es-ES/marketing.json b/apps/admin/locales/es-ES/marketing.json index 107735e..00dac78 100644 --- a/apps/admin/locales/es-ES/marketing.json +++ b/apps/admin/locales/es-ES/marketing.json @@ -1,4 +1,7 @@ { + "active": "Activo", + "activeStatus": "Estado Activo", + "addQuotaForUsers": "Agregar Cuota para Suscripciones", "additional": "Adicional", "additionalRecipientEmails": "Correos electrónicos de destinatarios adicionales", "additionalRecipients": "Destinatarios adicionales", @@ -6,6 +9,7 @@ "allUsers": "Todos los usuarios", "broadcastList": "Lista de difusión", "broadcastLogs": "Registros de difusión", + "calculating": "Calculando...", "cancel": "Cancelar", "cannotBeEmpty": "no puede estar vacío", "completed": "Completado", @@ -13,15 +17,27 @@ "confirmDelete": "Confirmar eliminación", "content": "Contenido del correo electrónico", "create": "Crear", + "createAndSendQuotaTasks": "Crear y Distribuir Tareas de Cuota", "createBroadcast": "Crear difusión", "createNewEmailBroadcastCampaign": "Crear nueva campaña de difusión por correo electrónico", + "createQuotaTask": "Crear Tarea de Cuota", + "createQuotaTaskDescription": "Agregar cuota por lotes para suscripciones elegibles", "createSuccess": "Creado con éxito", + "createTask": "Crear Tarea", "createdAt": "Creado en", + "currentValidSubscriptionsOnly": "Solo Suscripciones Válidas Actuales", + "currentValidSubscriptionsOnlyShort": "Solo Válidas", "dailyLimit": "El límite diario debe ser al menos 1", "dailySendLimit": "Límite de envío diario", + "dataQuota": "Cuota de Datos", + "dayQuota": "Cuota Diaria", + "days": "Días", "delete": "Eliminar", "deleteDescription": "Esta operación no se puede deshacer. ¿Está seguro de que desea eliminar?", "deleteSuccess": "Eliminado con éxito", + "distributionScope": "Ámbito de Distribución", + "distributionScopeDescription": "Selecciona el ámbito de suscripción para recibir cuota", + "distributionSettings": "Configuraciones de Distribución", "edit": "Editar", "emailAddedToScheduledQueue": "Correo electrónico añadido a la cola de envío programado", "emailBroadcast": "Difusión por correo electrónico", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "El intervalo de correo electrónico debe ser al menos 0.1 segundos", "emailMarketing": "Marketing por correo electrónico", "emailTaskManager": "Administrador de tareas de correo electrónico", + "endTime": "Hora de Finalización", + "enterAmount": "Ingresa la cantidad", + "enterPercentage": "Ingresa el porcentaje", "errorMessage": "Mensaje de error", "estimatedRecipients": "Destinatarios estimados", "expiredSubscriptionUsersOnly": "Solo usuarios con suscripción expirada", "expiredUsers": "Usuarios expirados", "failCount": "Conteo de fallos", "failed": "Fallido", + "failedToCalculateRecipients": "Error al calcular los destinatarios", + "failedToCreateQuotaTask": "Error al crear la tarea de cuota", "failedToRefreshTaskStatus": "Error al actualizar el estado de la tarea", "failedToStopTask": "Error al detener la tarea", + "fixedAmount": "Cantidad Fija", + "gift": "Regalo", + "giftAmount": "Cantidad del Regalo", + "giftRatio": "Proporción del Regalo", + "giftRatioDescription": "Porcentaje de cuota a regalar basado en la cantidad de consumo de la suscripción (%)", + "giftType": "Tipo de Cantidad del Regalo", + "giftValue": "Valor del Regalo", "inProgress": "En progreso", + "inactive": "Inactivo", + "includeSubscriptionsValidAfter": "Incluir suscripciones válidas en o después de esta fecha", + "includeSubscriptionsValidBefore": "Incluir suscripciones válidas en o antes de esta fecha", "includeUsersRegisteredAfter": "Incluir usuarios registrados en o después de esta fecha", "includeUsersRegisteredBefore": "Incluir usuarios registrados en o antes de esta fecha", "intervalTimeBetweenEmails": "Tiempo de intervalo entre cada correo electrónico", + "invoiceAmountRatioToGiftAmount": "Proporción del monto de la factura al monto del regalo", "leaveEmptyForImmediateSend": "Dejar vacío para envío inmediato", "logList": "Lista de registros", "marketingManagement": "Gestión de marketing", "maximumNumberPerDay": "Número máximo de correos electrónicos a enviar por día", + "mustBeGreaterThanOrEqualToZero": "Debe ser mayor o igual a cero", + "no": "No", "noSubscriptionUsersOnly": "Solo usuarios sin suscripción", + "noSubscriptions": "Sin Suscripciones", + "noTimeLimit": "Sin Límite de Tiempo", "nonSubscribers": "No suscriptores", "notStarted": "No iniciado", + "numberOfDaysForTheQuota": "Número de días para extender la expiración de la suscripción", "onePerLine": "uno por línea", "only": "solo", "pending": "Pendiente", + "percentageAmount": "Cantidad Porcentual", + "percentageAmountDescription": "Cantidad porcentual de regalo basada en el precio actual del paquete", "pleaseEnter": "Por favor ingrese", + "pleaseEnterAmount": "Por favor ingresa la cantidad", + "pleaseEnterPercentage": "Por favor ingresa el porcentaje", "pleaseEnterValidEmailAddresses": "Por favor ingrese direcciones de correo electrónico válidas, una por línea", + "pleaseSelectSubscribers": "Por favor selecciona paquetes", "processing": "Procesando...", "progress": "Progreso", + "quotaBroadcast": "Distribución de Cuota", + "quotaDays": "Extender Días de Expiración", + "quotaService": "Servicio de Cuota", + "quotaTaskCreatedSuccessfully": "Tarea de cuota creada con éxito", + "quotaTaskManager": "Administrador de Tareas de Cuota", + "quotaTasks": "Tareas de Cuota", + "quotaType": "Tipo de Cuota", + "quotaTypeDescription": "Selecciona el tipo de cuota a distribuir", "recipient": "Destinatario", "recipientEmail": "Correo electrónico del destinatario", + "recipientScope": "Ámbito del Destinatario", "recipientType": "Tipo de destinatario", "registrationEndDate": "Fecha de finalización de registro", + "registrationEndTime": "Hora de Finalización de Registro", "registrationStartDate": "Fecha de inicio de registro", + "registrationStartTime": "Hora de Inicio de Registro", + "resetTraffic": "Restablecer Tráfico", + "resetTrafficDescription": "Si se debe restablecer el tráfico utilizado de la suscripción", "scheduleSend": "Programar envío", "scheduledSend": "Envío programado", "scheduledSendTimeMustBeLater": "La hora de envío programado debe ser posterior a la hora actual", + "scheduledTime": "Hora Programada", + "selectDistributionScope": "Selecciona el Ámbito de Distribución", + "selectGiftType": "Selecciona el Tipo de Cantidad del Regalo", + "selectParametersToCalculate": "Selecciona parámetros para calcular el número de destinatarios", + "selectQuotaType": "Selecciona el Tipo de Cuota", + "selectRecipientScope": "Selecciona el Ámbito del Destinatario", + "selectRegistrationEndTime": "Selecciona la Hora de Finalización de Registro", + "selectRegistrationStartTime": "Selecciona la Hora de Inicio de Registro", "selectSendScope": "Seleccionar alcance de envío", "selectSendTime": "Seleccionar hora de envío, dejar vacío para envío inmediato", + "selectSubscribers": "Selecciona Paquetes", + "selectValidSubscriptionsOnly": "Selecciona solo suscripciones actualmente válidas", "sendFailed": "Envío fallido, por favor intente de nuevo", "sendNow": "Enviar ahora", "sendScope": "Alcance de envío", @@ -78,20 +143,33 @@ "sentAt": "Enviado en", "specificUsers": "Usuarios específicos", "specificUsersOnly": "Solo correos electrónicos adicionales (omitir usuarios de la plataforma)", + "startTime": "Hora de Inicio", "status": "Estado", "stop": "Detener", "stopped": "Detenido", "subject": "Asunto del correo electrónico", "subscribedUsers": "Usuarios suscritos", "subscribedUsersOnly": "Solo usuarios suscritos", + "subscribers": "Paquetes", + "subscriptionCount": "Número de Suscripciones", + "subscriptionValidityEndDate": "Fecha de Finalización de Validez de la Suscripción", + "subscriptionValidityStartDate": "Fecha de Inicio de Validez de la Suscripción", + "subscriptions": "suscripciones", "successCount": "Conteo de éxitos", "taskStatusRefreshed": "Estado de la tarea actualizado", "taskStoppedSuccessfully": "Tarea detenida con éxito", + "timeQuota": "Cuota de Tiempo", + "timeRange": "Rango de Tiempo", + "timeRangeShort": "Tiempo", "totalSent": "Total enviado", "updateSuccess": "Actualizado con éxito", "useMarkdownEditor": "Utilice el editor Markdown para escribir el contenido del correo electrónico con funcionalidad de vista previa", "users": "usuarios", + "validOnly": "Solo Válido", + "validSubscriptionsOnly": "Solo Suscripciones Válidas", "view": "Ver", "viewAndManageEmailBroadcastTasks": "Ver y gestionar tareas de difusión por correo electrónico", - "viewContent": "Ver contenido" + "viewAndManageQuotaTasks": "Ver y gestionar tareas de cuota", + "viewContent": "Ver contenido", + "yes": "Sí" } diff --git a/apps/admin/locales/es-MX/marketing.json b/apps/admin/locales/es-MX/marketing.json index 470caf4..ceb3961 100644 --- a/apps/admin/locales/es-MX/marketing.json +++ b/apps/admin/locales/es-MX/marketing.json @@ -1,4 +1,7 @@ { + "active": "Activo", + "activeStatus": "Estado Activo", + "addQuotaForUsers": "Agregar Cuota para Suscripciones", "additional": "Adicional", "additionalRecipientEmails": "Correos electrónicos de destinatarios adicionales", "additionalRecipients": "Destinatarios Adicionales", @@ -6,6 +9,7 @@ "allUsers": "Todos los Usuarios", "broadcastList": "Lista de Transmisión", "broadcastLogs": "Registros de Transmisión", + "calculating": "Calculando...", "cancel": "Cancelar", "cannotBeEmpty": "no puede estar vacío", "completed": "Completado", @@ -13,15 +17,27 @@ "confirmDelete": "Confirmar Eliminación", "content": "Contenido del Correo Electrónico", "create": "Crear", + "createAndSendQuotaTasks": "Crear y Distribuir Tareas de Cuota", "createBroadcast": "Crear Transmisión", "createNewEmailBroadcastCampaign": "Crear nueva campaña de transmisión de correo electrónico", + "createQuotaTask": "Crear Tarea de Cuota", + "createQuotaTaskDescription": "Agregar cuota por lotes para suscripciones elegibles", "createSuccess": "Creado Exitosamente", + "createTask": "Crear Tarea", "createdAt": "Creado En", + "currentValidSubscriptionsOnly": "Solo Suscripciones Válidas Actuales", + "currentValidSubscriptionsOnlyShort": "Solo Válidas", "dailyLimit": "El límite diario debe ser al menos 1", "dailySendLimit": "Límite de Envío Diario", + "dataQuota": "Cuota de Datos", + "dayQuota": "Cuota Diaria", + "days": "Días", "delete": "Eliminar", "deleteDescription": "Esta operación no se puede deshacer. ¿Está seguro de que desea eliminar?", "deleteSuccess": "Eliminado Exitosamente", + "distributionScope": "Alcance de Distribución", + "distributionScopeDescription": "Selecciona el alcance de suscripción para recibir cuota", + "distributionSettings": "Configuraciones de Distribución", "edit": "Editar", "emailAddedToScheduledQueue": "Correo electrónico agregado a la cola de envío programado", "emailBroadcast": "Transmisión de Correo Electrónico", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "El intervalo de correo electrónico debe ser al menos 0.1 segundos", "emailMarketing": "Marketing por Correo Electrónico", "emailTaskManager": "Administrador de Tareas de Correo Electrónico", + "endTime": "Hora de Finalización", + "enterAmount": "Ingresa la cantidad", + "enterPercentage": "Ingresa el porcentaje", "errorMessage": "Mensaje de Error", "estimatedRecipients": "Destinatarios Estimados", "expiredSubscriptionUsersOnly": "Solo usuarios con suscripción expirada", "expiredUsers": "Usuarios Expirados", "failCount": "Conteo de Fallos", "failed": "Fallido", + "failedToCalculateRecipients": "Error al calcular los destinatarios", + "failedToCreateQuotaTask": "Error al crear la tarea de cuota", "failedToRefreshTaskStatus": "Error al actualizar el estado de la tarea", "failedToStopTask": "Error al detener la tarea", + "fixedAmount": "Cantidad Fija", + "gift": "Regalo", + "giftAmount": "Cantidad del Regalo", + "giftRatio": "Proporción del Regalo", + "giftRatioDescription": "Porcentaje de cuota a regalar basado en la cantidad de consumo de la suscripción (%)", + "giftType": "Tipo de Cantidad del Regalo", + "giftValue": "Valor del Regalo", "inProgress": "En Progreso", + "inactive": "Inactivo", + "includeSubscriptionsValidAfter": "Incluir suscripciones válidas en o después de esta fecha", + "includeSubscriptionsValidBefore": "Incluir suscripciones válidas en o antes de esta fecha", "includeUsersRegisteredAfter": "Incluir usuarios registrados en o después de esta fecha", "includeUsersRegisteredBefore": "Incluir usuarios registrados en o antes de esta fecha", "intervalTimeBetweenEmails": "Tiempo de intervalo entre cada correo electrónico", + "invoiceAmountRatioToGiftAmount": "Proporción de la cantidad de la factura a la cantidad del regalo", "leaveEmptyForImmediateSend": "Deje vacío para envío inmediato", "logList": "Lista de Registros", "marketingManagement": "Gestión de Marketing", "maximumNumberPerDay": "Número máximo de correos electrónicos a enviar por día", + "mustBeGreaterThanOrEqualToZero": "Debe ser mayor o igual a cero", + "no": "No", "noSubscriptionUsersOnly": "Solo usuarios sin suscripción", + "noSubscriptions": "Sin Suscripciones", + "noTimeLimit": "Sin Límite de Tiempo", "nonSubscribers": "No suscriptores", "notStarted": "No Iniciado", + "numberOfDaysForTheQuota": "Número de días para extender la expiración de la suscripción", "onePerLine": "uno por línea", "only": "solo", "pending": "Pendiente", + "percentageAmount": "Cantidad Porcentual", + "percentageAmountDescription": "Cantidad porcentual del regalo basada en el precio actual del paquete", "pleaseEnter": "Por favor ingrese", + "pleaseEnterAmount": "Por favor ingresa la cantidad", + "pleaseEnterPercentage": "Por favor ingresa el porcentaje", "pleaseEnterValidEmailAddresses": "Por favor ingrese direcciones de correo electrónico válidas, una por línea", + "pleaseSelectSubscribers": "Por favor selecciona paquetes", "processing": "Procesando...", "progress": "Progreso", + "quotaBroadcast": "Distribución de Cuota", + "quotaDays": "Extender Días de Expiración", + "quotaService": "Servicio de Cuota", + "quotaTaskCreatedSuccessfully": "Tarea de cuota creada con éxito", + "quotaTaskManager": "Administrador de Tareas de Cuota", + "quotaTasks": "Tareas de Cuota", + "quotaType": "Tipo de Cuota", + "quotaTypeDescription": "Selecciona el tipo de cuota a distribuir", "recipient": "Destinatario", "recipientEmail": "Correo Electrónico del Destinatario", + "recipientScope": "Alcance del Destinatario", "recipientType": "Tipo de Destinatario", "registrationEndDate": "Fecha de Fin de Registro", + "registrationEndTime": "Hora de Finalización de Registro", "registrationStartDate": "Fecha de Inicio de Registro", + "registrationStartTime": "Hora de Inicio de Registro", + "resetTraffic": "Restablecer Tráfico", + "resetTrafficDescription": "Si se debe restablecer el tráfico utilizado de la suscripción", "scheduleSend": "Programar Envío", "scheduledSend": "Envío Programado", "scheduledSendTimeMustBeLater": "La hora de envío programado debe ser posterior a la hora actual", + "scheduledTime": "Hora Programada", + "selectDistributionScope": "Selecciona el Alcance de Distribución", + "selectGiftType": "Selecciona el Tipo de Cantidad del Regalo", + "selectParametersToCalculate": "Selecciona parámetros para calcular el número de destinatarios", + "selectQuotaType": "Selecciona el Tipo de Cuota", + "selectRecipientScope": "Selecciona el Alcance del Destinatario", + "selectRegistrationEndTime": "Selecciona la Hora de Finalización de Registro", + "selectRegistrationStartTime": "Selecciona la Hora de Inicio de Registro", "selectSendScope": "Seleccionar alcance de envío", "selectSendTime": "Seleccionar hora de envío, dejar vacío para envío inmediato", + "selectSubscribers": "Selecciona Paquetes", + "selectValidSubscriptionsOnly": "Selecciona solo suscripciones actualmente válidas", "sendFailed": "Envío fallido, por favor intente de nuevo", "sendNow": "Enviar Ahora", "sendScope": "Alcance de Envío", @@ -78,20 +143,33 @@ "sentAt": "Enviado En", "specificUsers": "Usuarios Específicos", "specificUsersOnly": "Solo correos electrónicos adicionales (omitir usuarios de la plataforma)", + "startTime": "Hora de Inicio", "status": "Estado", "stop": "Detener", "stopped": "Detenido", "subject": "Asunto del Correo Electrónico", "subscribedUsers": "Usuarios Suscritos", "subscribedUsersOnly": "Solo usuarios suscritos", + "subscribers": "Paquetes", + "subscriptionCount": "Número de Suscripciones", + "subscriptionValidityEndDate": "Fecha de Finalización de Validez de la Suscripción", + "subscriptionValidityStartDate": "Fecha de Inicio de Validez de la Suscripción", + "subscriptions": "suscripciones", "successCount": "Conteo de Éxitos", "taskStatusRefreshed": "Estado de la tarea actualizado", "taskStoppedSuccessfully": "Tarea detenida exitosamente", + "timeQuota": "Cuota de Tiempo", + "timeRange": "Rango de Tiempo", + "timeRangeShort": "Tiempo", "totalSent": "Total Enviado", "updateSuccess": "Actualizado Exitosamente", "useMarkdownEditor": "Utilice el editor Markdown para escribir contenido de correo electrónico con funcionalidad de vista previa", "users": "usuarios", + "validOnly": "Solo Válido", + "validSubscriptionsOnly": "Solo Suscripciones Válidas", "view": "Ver", "viewAndManageEmailBroadcastTasks": "Ver y gestionar tareas de transmisión de correo electrónico", - "viewContent": "Ver Contenido" + "viewAndManageQuotaTasks": "Ver y gestionar tareas de cuota", + "viewContent": "Ver Contenido", + "yes": "Sí" } diff --git a/apps/admin/locales/fa-IR/marketing.json b/apps/admin/locales/fa-IR/marketing.json index f2e9d8f..079bfbe 100644 --- a/apps/admin/locales/fa-IR/marketing.json +++ b/apps/admin/locales/fa-IR/marketing.json @@ -1,4 +1,7 @@ { + "active": "فعال", + "activeStatus": "وضعیت فعال", + "addQuotaForUsers": "اضافه کردن سهمیه برای اشتراک‌ها", "additional": "اضافی", "additionalRecipientEmails": "ایمیل‌های اضافی گیرندگان", "additionalRecipients": "گیرندگان اضافی", @@ -6,6 +9,7 @@ "allUsers": "تمام کاربران", "broadcastList": "لیست پخش", "broadcastLogs": "گزارش‌های پخش", + "calculating": "در حال محاسبه...", "cancel": "لغو", "cannotBeEmpty": "نمی‌تواند خالی باشد", "completed": "تکمیل شده", @@ -13,15 +17,27 @@ "confirmDelete": "تأیید حذف", "content": "محتوای ایمیل", "create": "ایجاد", + "createAndSendQuotaTasks": "ایجاد و توزیع وظایف سهمیه", "createBroadcast": "ایجاد پخش", "createNewEmailBroadcastCampaign": "ایجاد کمپین جدید پخش ایمیل", + "createQuotaTask": "ایجاد وظیفه سهمیه", + "createQuotaTaskDescription": "اضافه کردن دسته‌ای سهمیه برای اشتراک‌های واجد شرایط", "createSuccess": "با موفقیت ایجاد شد", + "createTask": "ایجاد وظیفه", "createdAt": "تاریخ ایجاد", + "currentValidSubscriptionsOnly": "فقط اشتراک‌های معتبر فعلی", + "currentValidSubscriptionsOnlyShort": "فقط معتبر", "dailyLimit": "حداکثر روزانه باید حداقل ۱ باشد", "dailySendLimit": "حداکثر ارسال روزانه", + "dataQuota": "سهمیه داده", + "dayQuota": "سهمیه روز", + "days": "روزها", "delete": "حذف", "deleteDescription": "این عملیات قابل بازگشت نیست. آیا مطمئن هستید که می‌خواهید حذف کنید؟", "deleteSuccess": "با موفقیت حذف شد", + "distributionScope": "دامنه توزیع", + "distributionScopeDescription": "دامنه اشتراک را برای دریافت سهمیه انتخاب کنید", + "distributionSettings": "تنظیمات توزیع", "edit": "ویرایش", "emailAddedToScheduledQueue": "ایمیل به صف ارسال زمان‌بندی شده اضافه شد", "emailBroadcast": "پخش ایمیل", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "فاصله زمانی ایمیل باید حداقل ۰.۱ ثانیه باشد", "emailMarketing": "بازاریابی ایمیلی", "emailTaskManager": "مدیر وظایف ایمیل", + "endTime": "زمان پایان", + "enterAmount": "مقدار را وارد کنید", + "enterPercentage": "درصد را وارد کنید", "errorMessage": "پیام خطا", "estimatedRecipients": "گیرندگان تخمینی", "expiredSubscriptionUsersOnly": "فقط کاربران با اشتراک منقضی شده", "expiredUsers": "کاربران منقضی شده", "failCount": "تعداد شکست‌ها", "failed": "شکست خورده", + "failedToCalculateRecipients": "محاسبه گیرندگان با شکست مواجه شد", + "failedToCreateQuotaTask": "ایجاد وظیفه سهمیه با شکست مواجه شد", "failedToRefreshTaskStatus": "عدم توانایی در به‌روزرسانی وضعیت وظیفه", "failedToStopTask": "عدم توانایی در متوقف کردن وظیفه", + "fixedAmount": "مقدار ثابت", + "gift": "هدیه", + "giftAmount": "مقدار هدیه", + "giftRatio": "نسبت هدیه", + "giftRatioDescription": "درصدی از سهمیه که بر اساس مقدار مصرف اشتراک هدیه داده می‌شود (%)", + "giftType": "نوع مقدار هدیه", + "giftValue": "مقدار هدیه", "inProgress": "در حال انجام", + "inactive": "غیرفعال", + "includeSubscriptionsValidAfter": "شامل اشتراک‌های معتبر از این تاریخ به بعد", + "includeSubscriptionsValidBefore": "شامل اشتراک‌های معتبر تا این تاریخ", "includeUsersRegisteredAfter": "شامل کاربران ثبت‌نام شده در یا بعد از این تاریخ", "includeUsersRegisteredBefore": "شامل کاربران ثبت‌نام شده در یا قبل از این تاریخ", "intervalTimeBetweenEmails": "فاصله زمانی بین هر ایمیل", + "invoiceAmountRatioToGiftAmount": "نسبت مبلغ فاکتور به مقدار هدیه", "leaveEmptyForImmediateSend": "برای ارسال فوری خالی بگذارید", "logList": "لیست گزارش‌ها", "marketingManagement": "مدیریت بازاریابی", "maximumNumberPerDay": "حداکثر تعداد ایمیل‌ها برای ارسال در روز", + "mustBeGreaterThanOrEqualToZero": "باید بزرگتر یا مساوی صفر باشد", + "no": "خیر", "noSubscriptionUsersOnly": "فقط کاربران بدون اشتراک", + "noSubscriptions": "هیچ اشتراکی وجود ندارد", + "noTimeLimit": "بدون محدودیت زمانی", "nonSubscribers": "غیر مشترکین", "notStarted": "شروع نشده", + "numberOfDaysForTheQuota": "تعداد روزها برای تمدید انقضای اشتراک", "onePerLine": "یکی در هر خط", "only": "فقط", "pending": "در انتظار", + "percentageAmount": "مقدار درصدی", + "percentageAmountDescription": "مقدار درصدی هدیه بر اساس قیمت بسته فعلی", "pleaseEnter": "لطفاً وارد کنید", + "pleaseEnterAmount": "لطفاً مقدار را وارد کنید", + "pleaseEnterPercentage": "لطفاً درصد را وارد کنید", "pleaseEnterValidEmailAddresses": "لطفاً آدرس‌های ایمیل معتبر را وارد کنید، یکی در هر خط", + "pleaseSelectSubscribers": "لطفاً بسته‌ها را انتخاب کنید", "processing": "در حال پردازش...", "progress": "پیشرفت", + "quotaBroadcast": "توزیع سهمیه", + "quotaDays": "تمدید روزهای انقضا", + "quotaService": "خدمات سهمیه", + "quotaTaskCreatedSuccessfully": "وظیفه سهمیه با موفقیت ایجاد شد", + "quotaTaskManager": "مدیر وظایف سهمیه", + "quotaTasks": "وظایف سهمیه", + "quotaType": "نوع سهمیه", + "quotaTypeDescription": "نوع سهمیه‌ای که باید توزیع شود را انتخاب کنید", "recipient": "گیرنده", "recipientEmail": "ایمیل گیرنده", + "recipientScope": "دامنه گیرنده", "recipientType": "نوع گیرنده", "registrationEndDate": "تاریخ پایان ثبت‌نام", + "registrationEndTime": "زمان پایان ثبت‌نام", "registrationStartDate": "تاریخ شروع ثبت‌نام", + "registrationStartTime": "زمان شروع ثبت‌نام", + "resetTraffic": "تنظیم ترافیک به حالت اولیه", + "resetTrafficDescription": "آیا ترافیک مصرف شده اشتراک را تنظیم مجدد کنید", "scheduleSend": "زمان‌بندی ارسال", "scheduledSend": "ارسال زمان‌بندی شده", "scheduledSendTimeMustBeLater": "زمان ارسال زمان‌بندی شده باید بعد از زمان کنونی باشد", + "scheduledTime": "زمان برنامه‌ریزی شده", + "selectDistributionScope": "دامنه توزیع را انتخاب کنید", + "selectGiftType": "نوع مقدار هدیه را انتخاب کنید", + "selectParametersToCalculate": "پارامترها را برای محاسبه تعداد گیرندگان انتخاب کنید", + "selectQuotaType": "نوع سهمیه را انتخاب کنید", + "selectRecipientScope": "دامنه گیرنده را انتخاب کنید", + "selectRegistrationEndTime": "زمان پایان ثبت‌نام را انتخاب کنید", + "selectRegistrationStartTime": "زمان شروع ثبت‌نام را انتخاب کنید", "selectSendScope": "دامنه ارسال را انتخاب کنید", "selectSendTime": "زمان ارسال را انتخاب کنید، برای ارسال فوری خالی بگذارید", + "selectSubscribers": "بسته‌ها را انتخاب کنید", + "selectValidSubscriptionsOnly": "فقط اشتراک‌های معتبر فعلی را انتخاب کنید", "sendFailed": "ارسال ناموفق بود، لطفاً دوباره تلاش کنید", "sendNow": "اکنون ارسال کنید", "sendScope": "دامنه ارسال", @@ -78,20 +143,33 @@ "sentAt": "در تاریخ ارسال شد", "specificUsers": "کاربران خاص", "specificUsersOnly": "فقط ایمیل‌های اضافی (کاربران پلتفرم را نادیده بگیرید)", + "startTime": "زمان شروع", "status": "وضعیت", "stop": "متوقف کردن", "stopped": "متوقف شده", "subject": "موضوع ایمیل", "subscribedUsers": "کاربران مشترک", "subscribedUsersOnly": "فقط کاربران مشترک", + "subscribers": "بسته‌ها", + "subscriptionCount": "تعداد اشتراک‌ها", + "subscriptionValidityEndDate": "تاریخ انقضای اعتبار اشتراک", + "subscriptionValidityStartDate": "تاریخ شروع اعتبار اشتراک", + "subscriptions": "اشتراک‌ها", "successCount": "تعداد موفقیت‌ها", "taskStatusRefreshed": "وضعیت وظیفه به‌روزرسانی شد", "taskStoppedSuccessfully": "وظیفه با موفقیت متوقف شد", + "timeQuota": "سهمیه زمان", + "timeRange": "دامنه زمانی", + "timeRangeShort": "زمان", "totalSent": "مجموع ارسال شده", "updateSuccess": "با موفقیت به‌روزرسانی شد", "useMarkdownEditor": "از ویرایشگر Markdown برای نوشتن محتوای ایمیل با قابلیت پیش‌نمایش استفاده کنید", "users": "کاربران", + "validOnly": "فقط معتبر", + "validSubscriptionsOnly": "فقط اشتراک‌های معتبر", "view": "مشاهده", "viewAndManageEmailBroadcastTasks": "مشاهده و مدیریت وظایف پخش ایمیل", - "viewContent": "مشاهده محتوا" + "viewAndManageQuotaTasks": "مشاهده و مدیریت وظایف سهمیه", + "viewContent": "مشاهده محتوا", + "yes": "بله" } diff --git a/apps/admin/locales/fi-FI/marketing.json b/apps/admin/locales/fi-FI/marketing.json index 99a5b34..3298097 100644 --- a/apps/admin/locales/fi-FI/marketing.json +++ b/apps/admin/locales/fi-FI/marketing.json @@ -1,4 +1,7 @@ { + "active": "Aktiivinen", + "activeStatus": "Aktiivinen tila", + "addQuotaForUsers": "Lisää kiintiö tilauksille", "additional": "Lisä", "additionalRecipientEmails": "Lisä vastaanottaja sähköpostit", "additionalRecipients": "Lisä vastaanottajat", @@ -6,6 +9,7 @@ "allUsers": "Kaikki käyttäjät", "broadcastList": "Lähetyslista", "broadcastLogs": "Lähetyspäiväkirjat", + "calculating": "Lasketaan...", "cancel": "Peruuta", "cannotBeEmpty": "ei voi olla tyhjää", "completed": "Valmis", @@ -13,15 +17,27 @@ "confirmDelete": "Vahvista poisto", "content": "Sähköpostin sisältö", "create": "Luo", + "createAndSendQuotaTasks": "Luo ja jaa kiintiötehtäviä", "createBroadcast": "Luo lähetys", "createNewEmailBroadcastCampaign": "Luo uusi sähköpostilähetyskampanja", + "createQuotaTask": "Luo kiintiötehtävä", + "createQuotaTaskDescription": "Lisää kiintiö suurille tilauksille", "createSuccess": "Luotiin onnistuneesti", + "createTask": "Luo tehtävä", "createdAt": "Luotu", + "currentValidSubscriptionsOnly": "Vain nykyiset voimassa olevat tilaukset", + "currentValidSubscriptionsOnlyShort": "Vain voimassa", "dailyLimit": "Päivittäinen raja on oltava vähintään 1", "dailySendLimit": "Päivittäinen lähetysraja", + "dataQuota": "Tietokiintiö", + "dayQuota": "Päiväkiintiö", + "days": "Päivät", "delete": "Poista", "deleteDescription": "Tätä toimintoa ei voi peruuttaa. Oletko varma, että haluat poistaa?", "deleteSuccess": "Poistettu onnistuneesti", + "distributionScope": "Jakelun laajuus", + "distributionScopeDescription": "Valitse tilauslaajuus, joka saa kiintiön", + "distributionSettings": "Jakeluasetukset", "edit": "Muokkaa", "emailAddedToScheduledQueue": "Sähköposti lisätty aikataulutettujen lähetyksien jonoon", "emailBroadcast": "Sähköpostilähetys", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "Sähköpostivälin on oltava vähintään 0,1 sekuntia", "emailMarketing": "Sähköpostimarkkinointi", "emailTaskManager": "Sähköpostitehtävien hallinta", + "endTime": "Loppuaika", + "enterAmount": "Syötä määrä", + "enterPercentage": "Syötä prosentti", "errorMessage": "Virheviesti", "estimatedRecipients": "Arvioidut vastaanottajat", "expiredSubscriptionUsersOnly": "Vain vanhentuneen tilauksen käyttäjät", "expiredUsers": "Vanhentuneet käyttäjät", "failCount": "Epäonnistumisten määrä", "failed": "Epäonnistui", + "failedToCalculateRecipients": "Vastaanottajien laskeminen epäonnistui", + "failedToCreateQuotaTask": "Kiintiötehtävän luominen epäonnistui", "failedToRefreshTaskStatus": "Tehtävän tilan päivittäminen epäonnistui", "failedToStopTask": "Tehtävän pysäyttäminen epäonnistui", + "fixedAmount": "Kiinteä määrä", + "gift": "Lahja", + "giftAmount": "Lahjan määrä", + "giftRatio": "Lahjan suhde", + "giftRatioDescription": "Prosenttiosuus kiintiöstä lahjana perustuen tilauksen kulutukseen (%)", + "giftType": "Lahjan määrän tyyppi", + "giftValue": "Lahjan arvo", "inProgress": "Käynnissä", + "inactive": "Ei aktiivinen", + "includeSubscriptionsValidAfter": "Sisällytä tilaukset, jotka ovat voimassa tämän päivämäärän jälkeen", + "includeSubscriptionsValidBefore": "Sisällytä tilaukset, jotka ovat voimassa ennen tätä päivämäärää", "includeUsersRegisteredAfter": "Sisällytä käyttäjät, jotka on rekisteröity tämän päivämäärän jälkeen", "includeUsersRegisteredBefore": "Sisällytä käyttäjät, jotka on rekisteröity tämän päivämäärän ennen", "intervalTimeBetweenEmails": "Väli sähköpostien välillä", + "invoiceAmountRatioToGiftAmount": "Laskun määrän suhde lahjan määrään", "leaveEmptyForImmediateSend": "Jätä tyhjäksi välittömäksi lähetykseksi", "logList": "Päiväkirjalista", "marketingManagement": "Markkinoinnin hallinta", "maximumNumberPerDay": "Suurin määrä sähköposteja lähetettäväksi päivässä", + "mustBeGreaterThanOrEqualToZero": "On oltava suurempi tai yhtä suuri kuin nolla", + "no": "Ei", "noSubscriptionUsersOnly": "Vain ei-tilauksen käyttäjät", + "noSubscriptions": "Ei tilauksia", + "noTimeLimit": "Ei aikarajaa", "nonSubscribers": "Ei-tilaajat", "notStarted": "Ei aloitettu", + "numberOfDaysForTheQuota": "Päivien määrä tilauksen voimassaolon pidentämiseksi", "onePerLine": "yksi per rivi", "only": "vain", "pending": "Odottaa", + "percentageAmount": "Prosenttimäärä", + "percentageAmountDescription": "Lahjan prosenttimäärä nykyisestä pakettihinnasta", "pleaseEnter": "Ole hyvä ja syötä", + "pleaseEnterAmount": "Ole hyvä ja syötä määrä", + "pleaseEnterPercentage": "Ole hyvä ja syötä prosentti", "pleaseEnterValidEmailAddresses": "Ole hyvä ja syötä voimassa olevat sähköpostiosoitteet, yksi per rivi", + "pleaseSelectSubscribers": "Ole hyvä ja valitse paketit", "processing": "Käsitellään...", "progress": "Edistyminen", + "quotaBroadcast": "Kiintiön jakelu", + "quotaDays": "Pidentää voimassaoloaikoja", + "quotaService": "Kiintiöpalvelu", + "quotaTaskCreatedSuccessfully": "Kiintiötehtävä luotiin onnistuneesti", + "quotaTaskManager": "Kiintiötehtävien hallinta", + "quotaTasks": "Kiintiötehtävät", + "quotaType": "Kiintiön tyyppi", + "quotaTypeDescription": "Valitse jaettavan kiintiön tyyppi", "recipient": "Vastaanottaja", "recipientEmail": "Vastaanottajan sähköposti", + "recipientScope": "Vastaanottajan laajuus", "recipientType": "Vastaanottajan tyyppi", "registrationEndDate": "Rekisteröinnin päättymispäivämäärä", + "registrationEndTime": "Rekisteröinnin loppuaika", "registrationStartDate": "Rekisteröinnin aloituspäivämäärä", + "registrationStartTime": "Rekisteröinnin alkamisaika", + "resetTraffic": "Nollaa liikenne", + "resetTrafficDescription": "Nollataanko tilauksen käytetty liikenne", "scheduleSend": "Aikatauluta lähetys", "scheduledSend": "Aikataulutettu lähetys", "scheduledSendTimeMustBeLater": "Aikataulutetun lähetyksen ajan on oltava myöhemmin kuin nykyinen aika", + "scheduledTime": "Aikataulutettu aika", + "selectDistributionScope": "Valitse jakelun laajuus", + "selectGiftType": "Valitse lahjan määrän tyyppi", + "selectParametersToCalculate": "Valitse parametrit vastaanottajamäärän laskemiseen", + "selectQuotaType": "Valitse kiintiön tyyppi", + "selectRecipientScope": "Valitse vastaanottajan laajuus", + "selectRegistrationEndTime": "Valitse rekisteröinnin loppuaika", + "selectRegistrationStartTime": "Valitse rekisteröinnin alkamisaika", "selectSendScope": "Valitse lähetyksen laajuus", "selectSendTime": "Valitse lähetysaika, jätä tyhjäksi välittömäksi lähetykseksi", + "selectSubscribers": "Valitse paketit", + "selectValidSubscriptionsOnly": "Valitse vain nykyiset voimassa olevat tilaukset", "sendFailed": "Lähetys epäonnistui, yritä uudelleen", "sendNow": "Lähetä nyt", "sendScope": "Lähetyksen laajuus", @@ -78,20 +143,33 @@ "sentAt": "Lähetetty", "specificUsers": "Erityiset käyttäjät", "specificUsersOnly": "Vain lisäsähköpostit (ohita alustan käyttäjät)", + "startTime": "Alkuaika", "status": "Tila", "stop": "Pysäytä", "stopped": "Pysäytetty", "subject": "Sähköpostin aihe", "subscribedUsers": "Tilatut käyttäjät", "subscribedUsersOnly": "Vain tilatut käyttäjät", + "subscribers": "Paketit", + "subscriptionCount": "Tilauksen määrä", + "subscriptionValidityEndDate": "Tilauksen voimassaolon päättymispäivämäärä", + "subscriptionValidityStartDate": "Tilauksen voimassaolon alkamispäivämäärä", + "subscriptions": "tilaukset", "successCount": "Onnistumisten määrä", "taskStatusRefreshed": "Tehtävän tila päivitetty", "taskStoppedSuccessfully": "Tehtävä pysäytetty onnistuneesti", + "timeQuota": "Aikakiintiö", + "timeRange": "Aikaväli", + "timeRangeShort": "Aika", "totalSent": "Yhteensä lähetetty", "updateSuccess": "Päivitetty onnistuneesti", "useMarkdownEditor": "Käytä Markdown-editoria sähköpostin sisällön kirjoittamiseen esikatselutoiminnolla", "users": "käyttäjät", + "validOnly": "Vain voimassa", + "validSubscriptionsOnly": "Vain voimassa olevat tilaukset", "view": "Näytä", "viewAndManageEmailBroadcastTasks": "Näytä ja hallitse sähköpostilähetystehtäviä", - "viewContent": "Näytä sisältö" + "viewAndManageQuotaTasks": "Näytä ja hallitse kiintiötehtäviä", + "viewContent": "Näytä sisältö", + "yes": "Kyllä" } diff --git a/apps/admin/locales/fr-FR/marketing.json b/apps/admin/locales/fr-FR/marketing.json index e208b89..6cb5d99 100644 --- a/apps/admin/locales/fr-FR/marketing.json +++ b/apps/admin/locales/fr-FR/marketing.json @@ -1,4 +1,7 @@ { + "active": "Actif", + "activeStatus": "Statut Actif", + "addQuotaForUsers": "Ajouter un quota pour les abonnements", "additional": "Supplémentaire", "additionalRecipientEmails": "Emails supplémentaires des destinataires", "additionalRecipients": "Destinataires supplémentaires", @@ -6,6 +9,7 @@ "allUsers": "Tous les utilisateurs", "broadcastList": "Liste de diffusion", "broadcastLogs": "Journaux de diffusion", + "calculating": "Calcul en cours...", "cancel": "Annuler", "cannotBeEmpty": "ne peut pas être vide", "completed": "Terminé", @@ -13,15 +17,27 @@ "confirmDelete": "Confirmer la suppression", "content": "Contenu de l'email", "create": "Créer", + "createAndSendQuotaTasks": "Créer et Distribuer des Tâches de Quota", "createBroadcast": "Créer une diffusion", "createNewEmailBroadcastCampaign": "Créer une nouvelle campagne de diffusion par email", + "createQuotaTask": "Créer une Tâche de Quota", + "createQuotaTaskDescription": "Ajouter en lot un quota pour les abonnements éligibles", "createSuccess": "Créé avec succès", + "createTask": "Créer une Tâche", "createdAt": "Créé le", + "currentValidSubscriptionsOnly": "Uniquement les Abonnements Valides Actuels", + "currentValidSubscriptionsOnlyShort": "Valides Seulement", "dailyLimit": "La limite quotidienne doit être d'au moins 1", "dailySendLimit": "Limite d'envoi quotidienne", + "dataQuota": "Quota de Données", + "dayQuota": "Quota Journalier", + "days": "Jours", "delete": "Supprimer", "deleteDescription": "Cette opération ne peut pas être annulée. Êtes-vous sûr de vouloir supprimer ?", "deleteSuccess": "Supprimé avec succès", + "distributionScope": "Champ de Distribution", + "distributionScopeDescription": "Sélectionnez le champ d'abonnement pour recevoir le quota", + "distributionSettings": "Paramètres de Distribution", "edit": "Modifier", "emailAddedToScheduledQueue": "Email ajouté à la file d'envoi programmée", "emailBroadcast": "Diffusion par email", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "L'intervalle d'email doit être d'au moins 0,1 seconde", "emailMarketing": "Marketing par email", "emailTaskManager": "Gestionnaire de tâches d'email", + "endTime": "Heure de Fin", + "enterAmount": "Entrez le montant", + "enterPercentage": "Entrez le pourcentage", "errorMessage": "Message d'erreur", "estimatedRecipients": "Destinataires estimés", "expiredSubscriptionUsersOnly": "Utilisateurs avec abonnement expiré uniquement", "expiredUsers": "Utilisateurs expirés", "failCount": "Nombre d'échecs", "failed": "Échoué", + "failedToCalculateRecipients": "Échec du calcul des destinataires", + "failedToCreateQuotaTask": "Échec de la création de la tâche de quota", "failedToRefreshTaskStatus": "Échec de la mise à jour du statut de la tâche", "failedToStopTask": "Échec de l'arrêt de la tâche", + "fixedAmount": "Montant Fixe", + "gift": "Cadeau", + "giftAmount": "Montant du Cadeau", + "giftRatio": "Ratio de Cadeau", + "giftRatioDescription": "Pourcentage du quota à offrir basé sur le montant de consommation de l'abonnement (%)", + "giftType": "Type de Montant de Cadeau", + "giftValue": "Valeur du Cadeau", "inProgress": "En cours", + "inactive": "Inactif", + "includeSubscriptionsValidAfter": "Inclure les abonnements valides à partir de cette date", + "includeSubscriptionsValidBefore": "Inclure les abonnements valides avant cette date", "includeUsersRegisteredAfter": "Inclure les utilisateurs enregistrés à partir de cette date", "includeUsersRegisteredBefore": "Inclure les utilisateurs enregistrés avant cette date", "intervalTimeBetweenEmails": "Temps d'intervalle entre chaque email", + "invoiceAmountRatioToGiftAmount": "Ratio du montant de la facture au montant du cadeau", "leaveEmptyForImmediateSend": "Laissez vide pour un envoi immédiat", "logList": "Liste des journaux", "marketingManagement": "Gestion du marketing", "maximumNumberPerDay": "Nombre maximum d'emails à envoyer par jour", + "mustBeGreaterThanOrEqualToZero": "Doit être supérieur ou égal à zéro", + "no": "Non", "noSubscriptionUsersOnly": "Aucun utilisateur avec abonnement uniquement", + "noSubscriptions": "Aucun Abonnement", + "noTimeLimit": "Pas de Limite de Temps", "nonSubscribers": "Non-abonnés", "notStarted": "Non commencé", + "numberOfDaysForTheQuota": "Nombre de jours pour prolonger l'expiration de l'abonnement", "onePerLine": "un par ligne", "only": "uniquement", "pending": "En attente", + "percentageAmount": "Montant en Pourcentage", + "percentageAmountDescription": "Montant en pourcentage du cadeau basé sur le prix actuel du forfait", "pleaseEnter": "Veuillez entrer", + "pleaseEnterAmount": "Veuillez entrer le montant", + "pleaseEnterPercentage": "Veuillez entrer le pourcentage", "pleaseEnterValidEmailAddresses": "Veuillez entrer des adresses email valides, une par ligne", + "pleaseSelectSubscribers": "Veuillez sélectionner des forfaits", "processing": "Traitement...", "progress": "Progrès", + "quotaBroadcast": "Distribution de Quota", + "quotaDays": "Prolonger les Jours d'Expiration", + "quotaService": "Service de Quota", + "quotaTaskCreatedSuccessfully": "Tâche de quota créée avec succès", + "quotaTaskManager": "Gestionnaire de Tâches de Quota", + "quotaTasks": "Tâches de Quota", + "quotaType": "Type de Quota", + "quotaTypeDescription": "Sélectionnez le type de quota à distribuer", "recipient": "Destinataire", "recipientEmail": "Email du destinataire", + "recipientScope": "Champ des Destinataires", "recipientType": "Type de destinataire", "registrationEndDate": "Date de fin d'inscription", + "registrationEndTime": "Heure de Fin d'Inscription", "registrationStartDate": "Date de début d'inscription", + "registrationStartTime": "Heure de Début d'Inscription", + "resetTraffic": "Réinitialiser le Trafic", + "resetTrafficDescription": "Si oui, réinitialiser le trafic utilisé de l'abonnement", "scheduleSend": "Planifier l'envoi", "scheduledSend": "Envoi programmé", "scheduledSendTimeMustBeLater": "L'heure d'envoi programmée doit être ultérieure à l'heure actuelle", + "scheduledTime": "Heure Programmée", + "selectDistributionScope": "Sélectionnez le Champ de Distribution", + "selectGiftType": "Sélectionnez le Type de Montant de Cadeau", + "selectParametersToCalculate": "Sélectionnez les paramètres pour calculer le nombre de destinataires", + "selectQuotaType": "Sélectionnez le Type de Quota", + "selectRecipientScope": "Sélectionnez le Champ des Destinataires", + "selectRegistrationEndTime": "Sélectionnez l'Heure de Fin d'Inscription", + "selectRegistrationStartTime": "Sélectionnez l'Heure de Début d'Inscription", "selectSendScope": "Sélectionner le champ d'envoi", "selectSendTime": "Sélectionner l'heure d'envoi, laissez vide pour un envoi immédiat", + "selectSubscribers": "Sélectionnez des Forfaits", + "selectValidSubscriptionsOnly": "Sélectionnez uniquement les abonnements actuellement valides", "sendFailed": "Échec de l'envoi, veuillez réessayer", "sendNow": "Envoyer maintenant", "sendScope": "Champ d'envoi", @@ -78,20 +143,33 @@ "sentAt": "Envoyé le", "specificUsers": "Utilisateurs spécifiques", "specificUsersOnly": "Emails supplémentaires uniquement (ignorer les utilisateurs de la plateforme)", + "startTime": "Heure de Début", "status": "Statut", "stop": "Arrêter", "stopped": "Arrêté", "subject": "Objet de l'email", "subscribedUsers": "Utilisateurs abonnés", "subscribedUsersOnly": "Utilisateurs abonnés uniquement", + "subscribers": "Forfaits", + "subscriptionCount": "Nombre d'Abonnements", + "subscriptionValidityEndDate": "Date de Fin de Validité de l'Abonnement", + "subscriptionValidityStartDate": "Date de Début de Validité de l'Abonnement", + "subscriptions": "abonnements", "successCount": "Nombre de succès", "taskStatusRefreshed": "Statut de la tâche mis à jour", "taskStoppedSuccessfully": "Tâche arrêtée avec succès", + "timeQuota": "Quota de Temps", + "timeRange": "Plage Horaire", + "timeRangeShort": "Temps", "totalSent": "Total envoyé", "updateSuccess": "Mis à jour avec succès", "useMarkdownEditor": "Utilisez l'éditeur Markdown pour rédiger le contenu de l'email avec une fonctionnalité d'aperçu", "users": "utilisateurs", + "validOnly": "Valide Seulement", + "validSubscriptionsOnly": "Uniquement les Abonnements Valides", "view": "Voir", "viewAndManageEmailBroadcastTasks": "Voir et gérer les tâches de diffusion par email", - "viewContent": "Voir le contenu" + "viewAndManageQuotaTasks": "Voir et gérer les tâches de quota", + "viewContent": "Voir le contenu", + "yes": "Oui" } diff --git a/apps/admin/locales/hi-IN/marketing.json b/apps/admin/locales/hi-IN/marketing.json index eb29aa4..766c039 100644 --- a/apps/admin/locales/hi-IN/marketing.json +++ b/apps/admin/locales/hi-IN/marketing.json @@ -1,4 +1,7 @@ { + "active": "सक्रिय", + "activeStatus": "सक्रिय स्थिति", + "addQuotaForUsers": "सदस्यताओं के लिए कोटा जोड़ें", "additional": "अतिरिक्त", "additionalRecipientEmails": "अतिरिक्त प्राप्तकर्ता ईमेल", "additionalRecipients": "अतिरिक्त प्राप्तकर्ता", @@ -6,6 +9,7 @@ "allUsers": "सभी उपयोगकर्ता", "broadcastList": "प्रसारण सूची", "broadcastLogs": "प्रसारण लॉग", + "calculating": "गणना कर रहा है...", "cancel": "रद्द करें", "cannotBeEmpty": "खाली नहीं हो सकता", "completed": "पूर्ण", @@ -13,15 +17,27 @@ "confirmDelete": "हटाने की पुष्टि करें", "content": "ईमेल सामग्री", "create": "बनाएँ", + "createAndSendQuotaTasks": "कोटा कार्य बनाएं और वितरित करें", "createBroadcast": "प्रसारण बनाएँ", "createNewEmailBroadcastCampaign": "नई ईमेल प्रसारण अभियान बनाएँ", + "createQuotaTask": "कोटा कार्य बनाएं", + "createQuotaTaskDescription": "योग्य सदस्यताओं के लिए बैच में कोटा जोड़ें", "createSuccess": "सफलता से बनाया गया", + "createTask": "कार्य बनाएं", "createdAt": "बनाया गया", + "currentValidSubscriptionsOnly": "केवल वर्तमान मान्य सदस्यताएँ", + "currentValidSubscriptionsOnlyShort": "केवल मान्य", "dailyLimit": "दैनिक सीमा कम से कम 1 होनी चाहिए", "dailySendLimit": "दैनिक भेजने की सीमा", + "dataQuota": "डेटा कोटा", + "dayQuota": "दिन का कोटा", + "days": "दिन", "delete": "हटाएँ", "deleteDescription": "यह क्रिया पूर्ववत नहीं की जा सकती। क्या आप वास्तव में हटाना चाहते हैं?", "deleteSuccess": "सफलता से हटाया गया", + "distributionScope": "वितरण दायरा", + "distributionScopeDescription": "कोटा प्राप्त करने के लिए सदस्यता दायरा चुनें", + "distributionSettings": "वितरण सेटिंग्स", "edit": "संपादित करें", "emailAddedToScheduledQueue": "ईमेल अनुसूचित भेजने की कतार में जोड़ा गया", "emailBroadcast": "ईमेल प्रसारण", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "ईमेल अंतराल कम से कम 0.1 सेकंड होना चाहिए", "emailMarketing": "ईमेल विपणन", "emailTaskManager": "ईमेल कार्य प्रबंधक", + "endTime": "समाप्ति समय", + "enterAmount": "राशि दर्ज करें", + "enterPercentage": "प्रतिशत दर्ज करें", "errorMessage": "त्रुटि संदेश", "estimatedRecipients": "अनुमानित प्राप्तकर्ता", "expiredSubscriptionUsersOnly": "केवल समाप्त सदस्यता वाले उपयोगकर्ता", "expiredUsers": "समाप्त उपयोगकर्ता", "failCount": "विफलता की संख्या", "failed": "विफल", + "failedToCalculateRecipients": "प्राप्तकर्ताओं की गणना करने में विफल", + "failedToCreateQuotaTask": "कोटा कार्य बनाने में विफल", "failedToRefreshTaskStatus": "कार्य स्थिति को ताज़ा करने में विफल", "failedToStopTask": "कार्य को रोकने में विफल", + "fixedAmount": "स्थिर राशि", + "gift": "उपहार", + "giftAmount": "उपहार राशि", + "giftRatio": "उपहार अनुपात", + "giftRatioDescription": "सदस्यता खपत राशि के आधार पर उपहार के लिए कोटा का प्रतिशत (%)", + "giftType": "उपहार राशि प्रकार", + "giftValue": "उपहार मूल्य", "inProgress": "प्रगति पर", + "inactive": "निष्क्रिय", + "includeSubscriptionsValidAfter": "इस तारीख के बाद मान्य सदस्यताओं को शामिल करें", + "includeSubscriptionsValidBefore": "इस तारीख के पहले मान्य सदस्यताओं को शामिल करें", "includeUsersRegisteredAfter": "इस तिथि के बाद पंजीकृत उपयोगकर्ताओं को शामिल करें", "includeUsersRegisteredBefore": "इस तिथि से पहले पंजीकृत उपयोगकर्ताओं को शामिल करें", "intervalTimeBetweenEmails": "प्रत्येक ईमेल के बीच का अंतराल समय", + "invoiceAmountRatioToGiftAmount": "इनवॉइस राशि का उपहार राशि के साथ अनुपात", "leaveEmptyForImmediateSend": "तत्काल भेजने के लिए खाली छोड़ें", "logList": "लॉग सूची", "marketingManagement": "विपणन प्रबंधन", "maximumNumberPerDay": "प्रति दिन भेजने के लिए अधिकतम ईमेल की संख्या", + "mustBeGreaterThanOrEqualToZero": "शून्य से अधिक या उसके बराबर होना चाहिए", + "no": "नहीं", "noSubscriptionUsersOnly": "केवल कोई सदस्यता वाले उपयोगकर्ता", + "noSubscriptions": "कोई सदस्यताएँ नहीं", + "noTimeLimit": "कोई समय सीमा नहीं", "nonSubscribers": "गैर-सदस्य", "notStarted": "शुरू नहीं हुआ", + "numberOfDaysForTheQuota": "सदस्यता समाप्ति बढ़ाने के लिए दिनों की संख्या", "onePerLine": "एक प्रति पंक्ति", "only": "केवल", "pending": "लंबित", + "percentageAmount": "प्रतिशत राशि", + "percentageAmountDescription": "वर्तमान पैकेज मूल्य के आधार पर उपहार प्रतिशत राशि", "pleaseEnter": "कृपया दर्ज करें", + "pleaseEnterAmount": "कृपया राशि दर्ज करें", + "pleaseEnterPercentage": "कृपया प्रतिशत दर्ज करें", "pleaseEnterValidEmailAddresses": "कृपया मान्य ईमेल पते दर्ज करें, एक प्रति पंक्ति", + "pleaseSelectSubscribers": "कृपया पैकेज चुनें", "processing": "प्रसंस्करण...", "progress": "प्रगति", + "quotaBroadcast": "कोटा वितरण", + "quotaDays": "समाप्ति दिन बढ़ाएँ", + "quotaService": "कोटा सेवा", + "quotaTaskCreatedSuccessfully": "कोटा कार्य सफलतापूर्वक बनाया गया", + "quotaTaskManager": "कोटा कार्य प्रबंधक", + "quotaTasks": "कोटा कार्य", + "quotaType": "कोटा प्रकार", + "quotaTypeDescription": "वितरित करने के लिए कोटा का प्रकार चुनें", "recipient": "प्राप्तकर्ता", "recipientEmail": "प्राप्तकर्ता ईमेल", + "recipientScope": "प्राप्तकर्ता दायरा", "recipientType": "प्राप्तकर्ता प्रकार", "registrationEndDate": "पंजीकरण समाप्ति तिथि", + "registrationEndTime": "पंजीकरण समाप्ति समय", "registrationStartDate": "पंजीकरण प्रारंभ तिथि", + "registrationStartTime": "पंजीकरण प्रारंभ समय", + "resetTraffic": "ट्रैफ़िक रीसेट करें", + "resetTrafficDescription": "क्या सदस्यता का उपयोग किया गया ट्रैफ़िक रीसेट करना है", "scheduleSend": "भेजने का कार्यक्रम", "scheduledSend": "अनुसूचित भेजें", "scheduledSendTimeMustBeLater": "अनुसूचित भेजने का समय वर्तमान समय से बाद में होना चाहिए", + "scheduledTime": "निर्धारित समय", + "selectDistributionScope": "वितरण दायरा चुनें", + "selectGiftType": "उपहार राशि प्रकार चुनें", + "selectParametersToCalculate": "प्राप्तकर्ता संख्या की गणना करने के लिए पैरामीटर चुनें", + "selectQuotaType": "कोटा प्रकार चुनें", + "selectRecipientScope": "प्राप्तकर्ता दायरा चुनें", + "selectRegistrationEndTime": "पंजीकरण समाप्ति समय चुनें", + "selectRegistrationStartTime": "पंजीकरण प्रारंभ समय चुनें", "selectSendScope": "भेजने के दायरे का चयन करें", "selectSendTime": "भेजने का समय चुनें, तत्काल भेजने के लिए खाली छोड़ें", + "selectSubscribers": "पैकेज चुनें", + "selectValidSubscriptionsOnly": "केवल वर्तमान मान्य सदस्यताएँ चुनें", "sendFailed": "भेजने में विफल, कृपया पुनः प्रयास करें", "sendNow": "अब भेजें", "sendScope": "भेजने का दायरा", @@ -78,20 +143,33 @@ "sentAt": "भेजा गया", "specificUsers": "विशिष्ट उपयोगकर्ता", "specificUsersOnly": "केवल अतिरिक्त ईमेल (प्लेटफ़ॉर्म उपयोगकर्ताओं को छोड़कर)", + "startTime": "प्रारंभ समय", "status": "स्थिति", "stop": "रोकें", "stopped": "रुका हुआ", "subject": "ईमेल विषय", "subscribedUsers": "सदस्यता प्राप्त उपयोगकर्ता", "subscribedUsersOnly": "केवल सदस्यता प्राप्त उपयोगकर्ता", + "subscribers": "पैकेज", + "subscriptionCount": "सदस्यता संख्या", + "subscriptionValidityEndDate": "सदस्यता वैधता समाप्ति तिथि", + "subscriptionValidityStartDate": "सदस्यता वैधता प्रारंभ तिथि", + "subscriptions": "सदस्यताएँ", "successCount": "सफलता की संख्या", "taskStatusRefreshed": "कार्य स्थिति को ताज़ा किया गया", "taskStoppedSuccessfully": "कार्य सफलतापूर्वक रोका गया", + "timeQuota": "समय कोटा", + "timeRange": "समय सीमा", + "timeRangeShort": "समय", "totalSent": "कुल भेजा गया", "updateSuccess": "सफलता से अपडेट किया गया", "useMarkdownEditor": "ईमेल सामग्री लिखने के लिए मार्कडाउन संपादक का उपयोग करें जिसमें पूर्वावलोकन कार्यक्षमता है", "users": "उपयोगकर्ता", + "validOnly": "केवल मान्य", + "validSubscriptionsOnly": "केवल मान्य सदस्यताएँ", "view": "देखें", "viewAndManageEmailBroadcastTasks": "ईमेल प्रसारण कार्यों को देखें और प्रबंधित करें", - "viewContent": "सामग्री देखें" + "viewAndManageQuotaTasks": "कोटा कार्य देखें और प्रबंधित करें", + "viewContent": "सामग्री देखें", + "yes": "हाँ" } diff --git a/apps/admin/locales/hu-HU/marketing.json b/apps/admin/locales/hu-HU/marketing.json index 59661a1..39d829f 100644 --- a/apps/admin/locales/hu-HU/marketing.json +++ b/apps/admin/locales/hu-HU/marketing.json @@ -1,4 +1,7 @@ { + "active": "Aktív", + "activeStatus": "Aktív állapot", + "addQuotaForUsers": "Kota hozzáadása az előfizetésekhez", "additional": "További", "additionalRecipientEmails": "További címzett e-mailek", "additionalRecipients": "További címzettek", @@ -6,6 +9,7 @@ "allUsers": "Minden felhasználó", "broadcastList": "Közvetítési lista", "broadcastLogs": "Közvetítési naplók", + "calculating": "Számítás folyamatban...", "cancel": "Mégse", "cannotBeEmpty": "nem lehet üres", "completed": "Befejezve", @@ -13,15 +17,27 @@ "confirmDelete": "Törlés megerősítése", "content": "E-mail tartalom", "create": "Létrehoz", + "createAndSendQuotaTasks": "Kota feladatok létrehozása és küldése", "createBroadcast": "Közvetítés létrehozása", "createNewEmailBroadcastCampaign": "Új e-mail közvetítési kampány létrehozása", + "createQuotaTask": "Kota feladat létrehozása", + "createQuotaTaskDescription": "Kota tömeges hozzáadása a jogosult előfizetésekhez", "createSuccess": "Sikeresen létrehozva", + "createTask": "Feladat létrehozása", "createdAt": "Létrehozva", + "currentValidSubscriptionsOnly": "Csak a jelenlegi érvényes előfizetések", + "currentValidSubscriptionsOnlyShort": "Csak érvényes", "dailyLimit": "A napi limitnek legalább 1-nek kell lennie", "dailySendLimit": "Napi küldési limit", + "dataQuota": "Adatkeret", + "dayQuota": "Napi keret", + "days": "Napok", "delete": "Törlés", "deleteDescription": "Ez a művelet nem vonható vissza. Biztosan törölni szeretné?", "deleteSuccess": "Sikeresen törölve", + "distributionScope": "Elosztási terjedelem", + "distributionScopeDescription": "Válassza ki az előfizetési terjedelmet, amely megkapja a kvótát", + "distributionSettings": "Elosztási beállítások", "edit": "Szerkeszt", "emailAddedToScheduledQueue": "E-mail hozzáadva a tervezett küldési sorhoz", "emailBroadcast": "E-mail közvetítés", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "Az e-mail intervallumnak legalább 0,1 másodpercesnek kell lennie", "emailMarketing": "E-mail marketing", "emailTaskManager": "E-mail feladatkezelő", + "endTime": "Befejezési idő", + "enterAmount": "Adja meg az összeget", + "enterPercentage": "Adja meg a százalékot", "errorMessage": "Hibaüzenet", "estimatedRecipients": "Becsült címzettek", "expiredSubscriptionUsersOnly": "Csak lejárt előfizetésű felhasználók", "expiredUsers": "Lejárt felhasználók", "failCount": "Hibák száma", "failed": "Sikertelen", + "failedToCalculateRecipients": "A címzettek kiszámítása nem sikerült", + "failedToCreateQuotaTask": "A kvóta feladat létrehozása nem sikerült", "failedToRefreshTaskStatus": "A feladat állapotának frissítése sikertelen", "failedToStopTask": "A feladat leállítása sikertelen", + "fixedAmount": "Fix összeg", + "gift": "Ajándék", + "giftAmount": "Ajándék összege", + "giftRatio": "Ajándék arány", + "giftRatioDescription": "A kvóta ajándékba adásának százaléka az előfizetés fogyasztási összeg alapján (%)", + "giftType": "Ajándék összeg típusa", + "giftValue": "Ajándék érték", "inProgress": "Folyamatban", + "inactive": "Inaktív", + "includeSubscriptionsValidAfter": "Tartalmazza az ezen a napon vagy azt követően érvényes előfizetéseket", + "includeSubscriptionsValidBefore": "Tartalmazza az ezen a napon vagy azt megelőzően érvényes előfizetéseket", "includeUsersRegisteredAfter": "Felhasználók, akik ezen a napon vagy azt követően regisztráltak", "includeUsersRegisteredBefore": "Felhasználók, akik ezen a napon vagy azt megelőzően regisztráltak", "intervalTimeBetweenEmails": "Időintervallum az egyes e-mailek között", + "invoiceAmountRatioToGiftAmount": "Számlaösszeg arány az ajándék összeghez", "leaveEmptyForImmediateSend": "Hagyja üresen az azonnali küldéshez", "logList": "Napló lista", "marketingManagement": "Marketing menedzsment", "maximumNumberPerDay": "Maximum e-mailek száma naponta", + "mustBeGreaterThanOrEqualToZero": "Nagyobbnak vagy egyenlőnek kell lennie nullával", + "no": "Nem", "noSubscriptionUsersOnly": "Csak előfizetéssel nem rendelkező felhasználók", + "noSubscriptions": "Nincs előfizetés", + "noTimeLimit": "Nincs időkorlát", "nonSubscribers": "Nem előfizetők", "notStarted": "Nem indult el", + "numberOfDaysForTheQuota": "Napok száma az előfizetés lejáratának meghosszabbításához", "onePerLine": "egy sorban", "only": "csak", "pending": "Függőben", + "percentageAmount": "Százalékos összeg", + "percentageAmountDescription": "Ajándék százalékos összege a jelenlegi csomagár alapján", "pleaseEnter": "Kérjük, adja meg", + "pleaseEnterAmount": "Kérjük, adja meg az összeget", + "pleaseEnterPercentage": "Kérjük, adja meg a százalékot", "pleaseEnterValidEmailAddresses": "Kérjük, adjon meg érvényes e-mail címeket, egy sorban", + "pleaseSelectSubscribers": "Kérjük, válassza ki a csomagokat", "processing": "Feldolgozás...", "progress": "Haladás", + "quotaBroadcast": "Kota elosztás", + "quotaDays": "Lejárati napok meghosszabbítása", + "quotaService": "Kota szolgáltatás", + "quotaTaskCreatedSuccessfully": "Kota feladat sikeresen létrehozva", + "quotaTaskManager": "Kota feladatkezelő", + "quotaTasks": "Kota feladatok", + "quotaType": "Kota típusa", + "quotaTypeDescription": "Válassza ki a terjesztendő kvóta típusát", "recipient": "Címzett", "recipientEmail": "Címzett e-mail", + "recipientScope": "Címzett terjedelem", "recipientType": "Címzett típusa", "registrationEndDate": "Regisztrációs végdátum", + "registrationEndTime": "Regisztrációs befejezési idő", "registrationStartDate": "Regisztrációs kezdődátum", + "registrationStartTime": "Regisztrációs kezdési idő", + "resetTraffic": "Forgalom visszaállítása", + "resetTrafficDescription": "Vissza kell állítani az előfizetés által használt forgalmat", "scheduleSend": "Küldés ütemezése", "scheduledSend": "Ütemezett küldés", "scheduledSendTimeMustBeLater": "Az ütemezett küldési időnek később kell lennie, mint a jelenlegi idő", + "scheduledTime": "Ütemezett idő", + "selectDistributionScope": "Válassza ki az elosztási terjedelmet", + "selectGiftType": "Válassza ki az ajándék összeg típusát", + "selectParametersToCalculate": "Válassza ki a címzett számának kiszámításához szükséges paramétereket", + "selectQuotaType": "Válassza ki a kvóta típusát", + "selectRecipientScope": "Válassza ki a címzett terjedelmét", + "selectRegistrationEndTime": "Válassza ki a regisztrációs befejezési időt", + "selectRegistrationStartTime": "Válassza ki a regisztrációs kezdési időt", "selectSendScope": "Küldési terjedelem kiválasztása", "selectSendTime": "Küldési idő kiválasztása, hagyja üresen az azonnali küldéshez", + "selectSubscribers": "Válassza ki a csomagokat", + "selectValidSubscriptionsOnly": "Csak a jelenleg érvényes előfizetések kiválasztása", "sendFailed": "A küldés sikertelen, kérjük, próbálja újra", "sendNow": "Küldés most", "sendScope": "Küldési terjedelem", @@ -78,20 +143,33 @@ "sentAt": "Küldve", "specificUsers": "Különleges felhasználók", "specificUsersOnly": "Csak további e-mailek (platform felhasználók kihagyása)", + "startTime": "Kezdési idő", "status": "Állapot", "stop": "Megállít", "stopped": "Megállítva", "subject": "E-mail téma", "subscribedUsers": "Előfizetett felhasználók", "subscribedUsersOnly": "Csak előfizetett felhasználók", + "subscribers": "Csomagok", + "subscriptionCount": "Előfizetések száma", + "subscriptionValidityEndDate": "Előfizetés érvényességi lejárati dátuma", + "subscriptionValidityStartDate": "Előfizetés érvényességi kezdő dátuma", + "subscriptions": "előfizetések", "successCount": "Sikeres küldések száma", "taskStatusRefreshed": "Feladat állapota frissítve", "taskStoppedSuccessfully": "Feladat sikeresen leállítva", + "timeQuota": "Időkeret", + "timeRange": "Időtartomány", + "timeRangeShort": "Idő", "totalSent": "Összes küldve", "updateSuccess": "Sikeresen frissítve", "useMarkdownEditor": "Használja a Markdown szerkesztőt az e-mail tartalom írásához előnézeti funkcióval", "users": "felhasználók", + "validOnly": "Csak érvényes", + "validSubscriptionsOnly": "Csak érvényes előfizetések", "view": "Megtekintés", "viewAndManageEmailBroadcastTasks": "E-mail közvetítési feladatok megtekintése és kezelése", - "viewContent": "Tartalom megtekintése" + "viewAndManageQuotaTasks": "Kota feladatok megtekintése és kezelése", + "viewContent": "Tartalom megtekintése", + "yes": "Igen" } diff --git a/apps/admin/locales/ja-JP/marketing.json b/apps/admin/locales/ja-JP/marketing.json index 453610a..7506e19 100644 --- a/apps/admin/locales/ja-JP/marketing.json +++ b/apps/admin/locales/ja-JP/marketing.json @@ -1,4 +1,7 @@ { + "active": "アクティブ", + "activeStatus": "アクティブステータス", + "addQuotaForUsers": "ユーザーのためのクォータを追加", "additional": "追加", "additionalRecipientEmails": "追加の受信者メール", "additionalRecipients": "追加の受信者", @@ -6,6 +9,7 @@ "allUsers": "すべてのユーザー", "broadcastList": "放送リスト", "broadcastLogs": "放送ログ", + "calculating": "計算中...", "cancel": "キャンセル", "cannotBeEmpty": "空にすることはできません", "completed": "完了", @@ -13,15 +17,27 @@ "confirmDelete": "削除を確認", "content": "メール内容", "create": "作成", + "createAndSendQuotaTasks": "クォータタスクを作成して配布", "createBroadcast": "放送を作成", "createNewEmailBroadcastCampaign": "新しいメール放送キャンペーンを作成", + "createQuotaTask": "クォータタスクを作成", + "createQuotaTaskDescription": "対象のサブスクリプションに対してバッチでクォータを追加", "createSuccess": "作成に成功しました", + "createTask": "タスクを作成", "createdAt": "作成日時", + "currentValidSubscriptionsOnly": "現在有効なサブスクリプションのみ", + "currentValidSubscriptionsOnlyShort": "有効のみ", "dailyLimit": "1以上のデイリーログが必要です", "dailySendLimit": "デイリー送信制限", + "dataQuota": "データクォータ", + "dayQuota": "日次クォータ", + "days": "日", "delete": "削除", "deleteDescription": "この操作は元に戻せません。本当に削除しますか?", "deleteSuccess": "削除に成功しました", + "distributionScope": "配布範囲", + "distributionScopeDescription": "クォータを受け取るサブスクリプションの範囲を選択", + "distributionSettings": "配布設定", "edit": "編集", "emailAddedToScheduledQueue": "メールがスケジュール送信キューに追加されました", "emailBroadcast": "メール放送", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "メール間隔は0.1秒以上でなければなりません", "emailMarketing": "メールマーケティング", "emailTaskManager": "メールタスクマネージャー", + "endTime": "終了時間", + "enterAmount": "金額を入力", + "enterPercentage": "割合を入力", "errorMessage": "エラーメッセージ", "estimatedRecipients": "推定受信者", "expiredSubscriptionUsersOnly": "期限切れのサブスクリプションユーザーのみ", "expiredUsers": "期限切れのユーザー", "failCount": "失敗数", "failed": "失敗", + "failedToCalculateRecipients": "受取人の計算に失敗しました", + "failedToCreateQuotaTask": "クォータタスクの作成に失敗しました", "failedToRefreshTaskStatus": "タスクステータスの更新に失敗しました", "failedToStopTask": "タスクの停止に失敗しました", + "fixedAmount": "固定金額", + "gift": "ギフト", + "giftAmount": "ギフト金額", + "giftRatio": "ギフト比率", + "giftRatioDescription": "サブスクリプション消費額に基づくギフトの割合 (%)", + "giftType": "ギフト金額タイプ", + "giftValue": "ギフトの価値", "inProgress": "進行中", + "inactive": "非アクティブ", + "includeSubscriptionsValidAfter": "この日以降に有効なサブスクリプションを含める", + "includeSubscriptionsValidBefore": "この日以前に有効なサブスクリプションを含める", "includeUsersRegisteredAfter": "この日以降に登録されたユーザーを含める", "includeUsersRegisteredBefore": "この日以前に登録されたユーザーを含める", "intervalTimeBetweenEmails": "各メール間の間隔時間", + "invoiceAmountRatioToGiftAmount": "請求金額とギフト金額の比率", "leaveEmptyForImmediateSend": "即時送信のために空白のままにする", "logList": "ログリスト", "marketingManagement": "マーケティング管理", "maximumNumberPerDay": "1日に送信できるメールの最大数", + "mustBeGreaterThanOrEqualToZero": "ゼロ以上でなければなりません", + "no": "いいえ", "noSubscriptionUsersOnly": "サブスクリプションのないユーザーのみ", + "noSubscriptions": "サブスクリプションはありません", + "noTimeLimit": "時間制限なし", "nonSubscribers": "非購読者", "notStarted": "未開始", + "numberOfDaysForTheQuota": "サブスクリプションの有効期限を延長する日数", "onePerLine": "1行に1つ", "only": "のみ", "pending": "保留中", + "percentageAmount": "割合金額", + "percentageAmountDescription": "現在のパッケージ価格に基づくギフトの割合金額", "pleaseEnter": "入力してください", + "pleaseEnterAmount": "金額を入力してください", + "pleaseEnterPercentage": "割合を入力してください", "pleaseEnterValidEmailAddresses": "有効なメールアドレスを入力してください(1行に1つ)", + "pleaseSelectSubscribers": "パッケージを選択してください", "processing": "処理中...", "progress": "進捗", + "quotaBroadcast": "クォータ配布", + "quotaDays": "有効期限延長日数", + "quotaService": "クォータサービス", + "quotaTaskCreatedSuccessfully": "クォータタスクが正常に作成されました", + "quotaTaskManager": "クォータタスクマネージャー", + "quotaTasks": "クォータタスク", + "quotaType": "クォータタイプ", + "quotaTypeDescription": "配布するクォータのタイプを選択", "recipient": "受信者", "recipientEmail": "受信者メール", + "recipientScope": "受取人範囲", "recipientType": "受信者タイプ", "registrationEndDate": "登録終了日", + "registrationEndTime": "登録終了時間", "registrationStartDate": "登録開始日", + "registrationStartTime": "登録開始時間", + "resetTraffic": "トラフィックをリセット", + "resetTrafficDescription": "サブスクリプションで使用されたトラフィックをリセットするかどうか", "scheduleSend": "送信スケジュール", "scheduledSend": "スケジュール送信", "scheduledSendTimeMustBeLater": "スケジュール送信時間は現在の時間よりも遅くなければなりません", + "scheduledTime": "予定時間", + "selectDistributionScope": "配布範囲を選択", + "selectGiftType": "ギフト金額タイプを選択", + "selectParametersToCalculate": "受取人数を計算するためのパラメータを選択", + "selectQuotaType": "クォータタイプを選択", + "selectRecipientScope": "受取人範囲を選択", + "selectRegistrationEndTime": "登録終了時間を選択", + "selectRegistrationStartTime": "登録開始時間を選択", "selectSendScope": "送信範囲を選択", "selectSendTime": "送信時間を選択、即時送信のために空白のままにする", + "selectSubscribers": "パッケージを選択", + "selectValidSubscriptionsOnly": "現在有効なサブスクリプションのみを選択", "sendFailed": "送信に失敗しました。再試行してください", "sendNow": "今すぐ送信", "sendScope": "送信範囲", @@ -78,20 +143,33 @@ "sentAt": "送信日時", "specificUsers": "特定のユーザー", "specificUsersOnly": "追加のメールのみ(プラットフォームユーザーをスキップ)", + "startTime": "開始時間", "status": "ステータス", "stop": "停止", "stopped": "停止しました", "subject": "メール件名", "subscribedUsers": "購読ユーザー", "subscribedUsersOnly": "購読ユーザーのみ", + "subscribers": "パッケージ", + "subscriptionCount": "サブスクリプション数", + "subscriptionValidityEndDate": "サブスクリプション有効期限終了日", + "subscriptionValidityStartDate": "サブスクリプション有効期限開始日", + "subscriptions": "サブスクリプション", "successCount": "成功数", "taskStatusRefreshed": "タスクステータスが更新されました", "taskStoppedSuccessfully": "タスクが正常に停止しました", + "timeQuota": "時間クォータ", + "timeRange": "時間範囲", + "timeRangeShort": "時間", "totalSent": "合計送信数", "updateSuccess": "更新に成功しました", "useMarkdownEditor": "プレビュー機能を使ってメール内容を書くためにMarkdownエディタを使用", "users": "ユーザー", + "validOnly": "有効のみ", + "validSubscriptionsOnly": "有効なサブスクリプションのみ", "view": "表示", "viewAndManageEmailBroadcastTasks": "メール放送タスクを表示および管理", - "viewContent": "内容を表示" + "viewAndManageQuotaTasks": "クォータタスクを表示および管理", + "viewContent": "内容を表示", + "yes": "はい" } diff --git a/apps/admin/locales/ko-KR/marketing.json b/apps/admin/locales/ko-KR/marketing.json index f3c87a9..1f8857d 100644 --- a/apps/admin/locales/ko-KR/marketing.json +++ b/apps/admin/locales/ko-KR/marketing.json @@ -1,4 +1,7 @@ { + "active": "활성", + "activeStatus": "활성 상태", + "addQuotaForUsers": "사용자에게 할당량 추가", "additional": "추가", "additionalRecipientEmails": "추가 수신자 이메일", "additionalRecipients": "추가 수신자", @@ -6,6 +9,7 @@ "allUsers": "모든 사용자", "broadcastList": "방송 목록", "broadcastLogs": "방송 로그", + "calculating": "계산 중...", "cancel": "취소", "cannotBeEmpty": "비어 있을 수 없습니다", "completed": "완료", @@ -13,15 +17,27 @@ "confirmDelete": "삭제 확인", "content": "이메일 내용", "create": "생성", + "createAndSendQuotaTasks": "할당량 작업 생성 및 배포", "createBroadcast": "방송 생성", "createNewEmailBroadcastCampaign": "새 이메일 방송 캠페인 생성", + "createQuotaTask": "할당량 작업 생성", + "createQuotaTaskDescription": "적격 구독에 대한 할당량 일괄 추가", "createSuccess": "성공적으로 생성됨", + "createTask": "작업 생성", "createdAt": "생성일", + "currentValidSubscriptionsOnly": "현재 유효한 구독만", + "currentValidSubscriptionsOnlyShort": "유효한 것만", "dailyLimit": "일일 한도는 최소 1 이상이어야 합니다", "dailySendLimit": "일일 발송 한도", + "dataQuota": "데이터 할당량", + "dayQuota": "일일 할당량", + "days": "일", "delete": "삭제", "deleteDescription": "이 작업은 취소할 수 없습니다. 정말로 삭제하시겠습니까?", "deleteSuccess": "성공적으로 삭제됨", + "distributionScope": "배포 범위", + "distributionScopeDescription": "할당량을 받을 구독 범위를 선택하세요", + "distributionSettings": "배포 설정", "edit": "편집", "emailAddedToScheduledQueue": "이메일이 예약 발송 대기열에 추가됨", "emailBroadcast": "이메일 방송", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "이메일 간격은 최소 0.1초 이상이어야 합니다", "emailMarketing": "이메일 마케팅", "emailTaskManager": "이메일 작업 관리자", + "endTime": "종료 시간", + "enterAmount": "금액 입력", + "enterPercentage": "백분율 입력", "errorMessage": "오류 메시지", "estimatedRecipients": "예상 수신자", "expiredSubscriptionUsersOnly": "만료된 구독 사용자만", "expiredUsers": "만료된 사용자", "failCount": "실패 수", "failed": "실패", + "failedToCalculateRecipients": "수신자 계산 실패", + "failedToCreateQuotaTask": "할당량 작업 생성 실패", "failedToRefreshTaskStatus": "작업 상태를 새로 고치는 데 실패했습니다", "failedToStopTask": "작업 중지에 실패했습니다", + "fixedAmount": "고정 금액", + "gift": "선물", + "giftAmount": "선물 금액", + "giftRatio": "선물 비율", + "giftRatioDescription": "구독 소비 금액에 따라 선물할 할당량 비율 (%)", + "giftType": "선물 금액 유형", + "giftValue": "선물 가치", "inProgress": "진행 중", + "inactive": "비활성", + "includeSubscriptionsValidAfter": "이 날짜 이후 유효한 구독 포함", + "includeSubscriptionsValidBefore": "이 날짜 이전 유효한 구독 포함", "includeUsersRegisteredAfter": "이 날짜 이후에 등록된 사용자 포함", "includeUsersRegisteredBefore": "이 날짜 이전에 등록된 사용자 포함", "intervalTimeBetweenEmails": "각 이메일 간의 간격 시간", + "invoiceAmountRatioToGiftAmount": "청구 금액 비율에 대한 선물 금액", "leaveEmptyForImmediateSend": "즉시 발송을 위해 비워 두세요", "logList": "로그 목록", "marketingManagement": "마케팅 관리", "maximumNumberPerDay": "하루에 보낼 수 있는 최대 이메일 수", + "mustBeGreaterThanOrEqualToZero": "0 이상이어야 합니다", + "no": "아니오", "noSubscriptionUsersOnly": "구독 없는 사용자만", + "noSubscriptions": "구독 없음", + "noTimeLimit": "시간 제한 없음", "nonSubscribers": "비구독자", "notStarted": "시작되지 않음", + "numberOfDaysForTheQuota": "구독 만료 연장 일수", "onePerLine": "한 줄에 하나", "only": "오직", "pending": "대기 중", + "percentageAmount": "백분율 금액", + "percentageAmountDescription": "현재 패키지 가격에 따른 선물 백분율 금액", "pleaseEnter": "입력해 주세요", + "pleaseEnterAmount": "금액을 입력하세요", + "pleaseEnterPercentage": "백분율을 입력하세요", "pleaseEnterValidEmailAddresses": "유효한 이메일 주소를 입력해 주세요, 한 줄에 하나씩", + "pleaseSelectSubscribers": "패키지를 선택하세요", "processing": "처리 중...", "progress": "진행 상황", + "quotaBroadcast": "할당량 배포", + "quotaDays": "만료 연장 일수", + "quotaService": "할당량 서비스", + "quotaTaskCreatedSuccessfully": "할당량 작업이 성공적으로 생성되었습니다", + "quotaTaskManager": "할당량 작업 관리자", + "quotaTasks": "할당량 작업", + "quotaType": "할당량 유형", + "quotaTypeDescription": "배포할 할당량 유형 선택", "recipient": "수신자", "recipientEmail": "수신자 이메일", + "recipientScope": "수신자 범위", "recipientType": "수신자 유형", "registrationEndDate": "등록 종료 날짜", + "registrationEndTime": "등록 종료 시간", "registrationStartDate": "등록 시작 날짜", + "registrationStartTime": "등록 시작 시간", + "resetTraffic": "트래픽 초기화", + "resetTrafficDescription": "구독 사용 트래픽을 초기화할지 여부", "scheduleSend": "예약 발송", "scheduledSend": "예약 발송", "scheduledSendTimeMustBeLater": "예약 발송 시간은 현재 시간 이후여야 합니다", + "scheduledTime": "예정 시간", + "selectDistributionScope": "배포 범위 선택", + "selectGiftType": "선물 금액 유형 선택", + "selectParametersToCalculate": "수신자 수를 계산할 매개변수 선택", + "selectQuotaType": "할당량 유형 선택", + "selectRecipientScope": "수신자 범위 선택", + "selectRegistrationEndTime": "등록 종료 시간 선택", + "selectRegistrationStartTime": "등록 시작 시간 선택", "selectSendScope": "발송 범위 선택", "selectSendTime": "발송 시간 선택, 즉시 발송을 위해 비워 두세요", + "selectSubscribers": "패키지 선택", + "selectValidSubscriptionsOnly": "현재 유효한 구독만 선택", "sendFailed": "발송 실패, 다시 시도해 주세요", "sendNow": "지금 발송", "sendScope": "발송 범위", @@ -78,20 +143,33 @@ "sentAt": "발송일", "specificUsers": "특정 사용자", "specificUsersOnly": "추가 이메일만 (플랫폼 사용자 제외)", + "startTime": "시작 시간", "status": "상태", "stop": "중지", "stopped": "중지됨", "subject": "이메일 제목", "subscribedUsers": "구독한 사용자", "subscribedUsersOnly": "구독한 사용자만", + "subscribers": "패키지", + "subscriptionCount": "구독 수", + "subscriptionValidityEndDate": "구독 유효성 종료 날짜", + "subscriptionValidityStartDate": "구독 유효성 시작 날짜", + "subscriptions": "구독", "successCount": "성공 수", "taskStatusRefreshed": "작업 상태가 새로 고쳐졌습니다", "taskStoppedSuccessfully": "작업이 성공적으로 중지되었습니다", + "timeQuota": "시간 할당량", + "timeRange": "시간 범위", + "timeRangeShort": "시간", "totalSent": "총 발송 수", "updateSuccess": "성공적으로 업데이트됨", "useMarkdownEditor": "미리보기 기능이 있는 Markdown 편집기를 사용하여 이메일 내용을 작성하세요", "users": "사용자", + "validOnly": "유효한 것만", + "validSubscriptionsOnly": "유효한 구독만", "view": "보기", "viewAndManageEmailBroadcastTasks": "이메일 방송 작업 보기 및 관리", - "viewContent": "내용 보기" + "viewAndManageQuotaTasks": "할당량 작업 보기 및 관리", + "viewContent": "내용 보기", + "yes": "예" } diff --git a/apps/admin/locales/no-NO/marketing.json b/apps/admin/locales/no-NO/marketing.json index 71df2c2..5ed37c8 100644 --- a/apps/admin/locales/no-NO/marketing.json +++ b/apps/admin/locales/no-NO/marketing.json @@ -1,4 +1,7 @@ { + "active": "Aktiv", + "activeStatus": "Aktiv Status", + "addQuotaForUsers": "Legg til kvote for abonnementer", "additional": "Tillegg", "additionalRecipientEmails": "Ytterligere mottaker-e-poster", "additionalRecipients": "Ytterligere mottakere", @@ -6,6 +9,7 @@ "allUsers": "Alle brukere", "broadcastList": "Sende liste", "broadcastLogs": "Sende logger", + "calculating": "Beregner...", "cancel": "Avbryt", "cannotBeEmpty": "kan ikke være tom", "completed": "Fullført", @@ -13,15 +17,27 @@ "confirmDelete": "Bekreft sletting", "content": "E-postinnhold", "create": "Opprett", + "createAndSendQuotaTasks": "Opprett og distribuer kvoteoppgaver", "createBroadcast": "Opprett sending", "createNewEmailBroadcastCampaign": "Opprett ny e-postsending kampanje", + "createQuotaTask": "Opprett kvoteoppgave", + "createQuotaTaskDescription": "Batch legg til kvote for kvalifiserte abonnementer", "createSuccess": "Opprettet med suksess", + "createTask": "Opprett oppgave", "createdAt": "Opprettet den", + "currentValidSubscriptionsOnly": "Kun nåværende gyldige abonnementer", + "currentValidSubscriptionsOnlyShort": "Kun gyldige", "dailyLimit": "Daglig grense må være minst 1", "dailySendLimit": "Daglig sendingsgrense", + "dataQuota": "Datakvote", + "dayQuota": "Dagskvote", + "days": "Dager", "delete": "Slett", "deleteDescription": "Denne operasjonen kan ikke angres. Er du sikker på at du vil slette?", "deleteSuccess": "Slettet med suksess", + "distributionScope": "Distribusjonsomfang", + "distributionScopeDescription": "Velg abonnementets omfang for å motta kvote", + "distributionSettings": "Distribusjonsinnstillinger", "edit": "Rediger", "emailAddedToScheduledQueue": "E-post lagt til i planlagt sendekø", "emailBroadcast": "E-postsending", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "E-postintervall må være minst 0,1 sekunder", "emailMarketing": "E-postmarkedsføring", "emailTaskManager": "E-postoppgavebehandler", + "endTime": "Sluttid", + "enterAmount": "Skriv inn beløp", + "enterPercentage": "Skriv inn prosent", "errorMessage": "Feilmelding", "estimatedRecipients": "Estimert antall mottakere", "expiredSubscriptionUsersOnly": "Kun brukere med utløpt abonnement", "expiredUsers": "Utløpte brukere", "failCount": "Feilantall", "failed": "Feilet", + "failedToCalculateRecipients": "Kunne ikke beregne mottakere", + "failedToCreateQuotaTask": "Kunne ikke opprette kvoteoppgave", "failedToRefreshTaskStatus": "Feilet å oppdatere oppgave-status", "failedToStopTask": "Feilet å stoppe oppgave", + "fixedAmount": "Fast beløp", + "gift": "Gave", + "giftAmount": "Gavebeløp", + "giftRatio": "Gaveforhold", + "giftRatioDescription": "Prosentandel av kvoten som skal gis basert på abonnementskonsum (i %)", + "giftType": "Type gavebeløp", + "giftValue": "Gaveverdi", "inProgress": "Pågår", + "inactive": "Inaktiv", + "includeSubscriptionsValidAfter": "Inkluder abonnementer gyldige på eller etter denne datoen", + "includeSubscriptionsValidBefore": "Inkluder abonnementer gyldige på eller før denne datoen", "includeUsersRegisteredAfter": "Inkluder brukere registrert på eller etter denne datoen", "includeUsersRegisteredBefore": "Inkluder brukere registrert på eller før denne datoen", "intervalTimeBetweenEmails": "Intervall tid mellom hver e-post", + "invoiceAmountRatioToGiftAmount": "Faktura beløp forhold til gavebeløp", "leaveEmptyForImmediateSend": "La stå tomt for umiddelbar sending", "logList": "Loggliste", "marketingManagement": "Markedsføringsledelse", "maximumNumberPerDay": "Maksimalt antall e-poster som kan sendes per dag", + "mustBeGreaterThanOrEqualToZero": "Må være større enn eller lik null", + "no": "Nei", "noSubscriptionUsersOnly": "Kun brukere uten abonnement", + "noSubscriptions": "Ingen abonnementer", + "noTimeLimit": "Ingen tidsgrense", "nonSubscribers": "Ikke-abonnenter", "notStarted": "Ikke startet", + "numberOfDaysForTheQuota": "Antall dager for å forlenge abonnementets utløp", "onePerLine": "en per linje", "only": "kun", "pending": "Venter", + "percentageAmount": "Prosentbeløp", + "percentageAmountDescription": "Gaveprosentbeløp basert på nåværende pakkepris", "pleaseEnter": "Vennligst skriv inn", + "pleaseEnterAmount": "Vennligst skriv inn beløp", + "pleaseEnterPercentage": "Vennligst skriv inn prosent", "pleaseEnterValidEmailAddresses": "Vennligst skriv inn gyldige e-postadresser, en per linje", + "pleaseSelectSubscribers": "Vennligst velg pakker", "processing": "Behandler...", "progress": "Fremdrift", + "quotaBroadcast": "Kvote distribusjon", + "quotaDays": "Forlengelsesdager", + "quotaService": "Kvote tjeneste", + "quotaTaskCreatedSuccessfully": "Kvoteoppgave opprettet med suksess", + "quotaTaskManager": "Kvoteoppgavebehandler", + "quotaTasks": "Kvoteoppgaver", + "quotaType": "Kvote type", + "quotaTypeDescription": "Velg typen kvote som skal distribueres", "recipient": "Mottaker", "recipientEmail": "Mottakerens e-post", + "recipientScope": "Mottakeromfang", "recipientType": "Mottakertype", "registrationEndDate": "Registreringssluttdato", + "registrationEndTime": "Registrerings sluttid", "registrationStartDate": "Registreringsstartdato", + "registrationStartTime": "Registrerings starttid", + "resetTraffic": "Tilbakestill trafikk", + "resetTrafficDescription": "Om trafikk brukt av abonnementet skal tilbakestilles", "scheduleSend": "Planlegg sending", "scheduledSend": "Planlagt sending", "scheduledSendTimeMustBeLater": "Planlagt sendetid må være senere enn nåværende tid", + "scheduledTime": "Planlagt tid", + "selectDistributionScope": "Velg distribusjonsomfang", + "selectGiftType": "Velg type gavebeløp", + "selectParametersToCalculate": "Velg parametere for å beregne mottakerantall", + "selectQuotaType": "Velg kvote type", + "selectRecipientScope": "Velg mottakeromfang", + "selectRegistrationEndTime": "Velg registrerings sluttid", + "selectRegistrationStartTime": "Velg registrerings starttid", "selectSendScope": "Velg sendingsomfang", "selectSendTime": "Velg sendetid, la stå tomt for umiddelbar sending", + "selectSubscribers": "Velg pakker", + "selectValidSubscriptionsOnly": "Velg kun nåværende gyldige abonnementer", "sendFailed": "Sending feilet, vennligst prøv igjen", "sendNow": "Send nå", "sendScope": "Sendingsomfang", @@ -78,20 +143,33 @@ "sentAt": "Sendt den", "specificUsers": "Spesifikke brukere", "specificUsersOnly": "Kun ytterligere e-poster (hopp over plattformbrukere)", + "startTime": "Starttid", "status": "Status", "stop": "Stopp", "stopped": "Stoppet", "subject": "E-postemne", "subscribedUsers": "Abonnerte brukere", "subscribedUsersOnly": "Kun abonnenter", + "subscribers": "Pakker", + "subscriptionCount": "Abonnementsantall", + "subscriptionValidityEndDate": "Abonnements gyldighet sluttdato", + "subscriptionValidityStartDate": "Abonnements gyldighet startdato", + "subscriptions": "abonnementer", "successCount": "Suksessantall", "taskStatusRefreshed": "Oppgave-status oppdatert", "taskStoppedSuccessfully": "Oppgave stoppet med suksess", + "timeQuota": "Tidskvote", + "timeRange": "Tidsrom", + "timeRangeShort": "Tid", "totalSent": "Totalt sendt", "updateSuccess": "Oppdatert med suksess", "useMarkdownEditor": "Bruk Markdown-editor for å skrive e-postinnhold med forhåndsvisningsfunksjonalitet", "users": "brukere", + "validOnly": "Kun gyldige", + "validSubscriptionsOnly": "Kun gyldige abonnementer", "view": "Vis", "viewAndManageEmailBroadcastTasks": "Vis og administrer e-postsending oppgaver", - "viewContent": "Vis innhold" + "viewAndManageQuotaTasks": "Vis og administrer kvoteoppgaver", + "viewContent": "Vis innhold", + "yes": "Ja" } diff --git a/apps/admin/locales/pl-PL/marketing.json b/apps/admin/locales/pl-PL/marketing.json index 1dca8ac..25cfae9 100644 --- a/apps/admin/locales/pl-PL/marketing.json +++ b/apps/admin/locales/pl-PL/marketing.json @@ -1,4 +1,7 @@ { + "active": "Aktywny", + "activeStatus": "Status Aktywny", + "addQuotaForUsers": "Dodaj Kwotę dla Subskrypcji", "additional": "Dodatkowe", "additionalRecipientEmails": "Dodatkowe adresy e-mail odbiorców", "additionalRecipients": "Dodatkowi odbiorcy", @@ -6,6 +9,7 @@ "allUsers": "Wszyscy użytkownicy", "broadcastList": "Lista transmisji", "broadcastLogs": "Dzienniki transmisji", + "calculating": "Obliczanie...", "cancel": "Anuluj", "cannotBeEmpty": "nie może być puste", "completed": "Zakończone", @@ -13,15 +17,27 @@ "confirmDelete": "Potwierdź usunięcie", "content": "Treść e-maila", "create": "Utwórz", + "createAndSendQuotaTasks": "Utwórz i Rozsyłaj Zadania Kwotowe", "createBroadcast": "Utwórz transmisję", "createNewEmailBroadcastCampaign": "Utwórz nową kampanię e-mailową", + "createQuotaTask": "Utwórz Zadanie Kwotowe", + "createQuotaTaskDescription": "Partiowe dodawanie kwoty dla kwalifikujących się subskrypcji", "createSuccess": "Utworzono pomyślnie", + "createTask": "Utwórz Zadanie", "createdAt": "Utworzono", + "currentValidSubscriptionsOnly": "Tylko Obecnie Ważne Subskrypcje", + "currentValidSubscriptionsOnlyShort": "Tylko Ważne", "dailyLimit": "Dzienny limit musi wynosić co najmniej 1", "dailySendLimit": "Dzienny limit wysyłki", + "dataQuota": "Kwota Danych", + "dayQuota": "Kwota Dzienna", + "days": "Dni", "delete": "Usuń", "deleteDescription": "Ta operacja nie może być cofnięta. Czy na pewno chcesz usunąć?", "deleteSuccess": "Usunięto pomyślnie", + "distributionScope": "Zakres Dystrybucji", + "distributionScopeDescription": "Wybierz zakres subskrypcji, aby otrzymać kwotę", + "distributionSettings": "Ustawienia Dystrybucji", "edit": "Edytuj", "emailAddedToScheduledQueue": "E-mail dodany do kolejki wysyłki", "emailBroadcast": "Transmisja e-mailowa", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "Interwał e-mailowy musi wynosić co najmniej 0,1 sekundy", "emailMarketing": "Marketing e-mailowy", "emailTaskManager": "Menadżer zadań e-mailowych", + "endTime": "Czas Zakończenia", + "enterAmount": "Wprowadź kwotę", + "enterPercentage": "Wprowadź procent", "errorMessage": "Wiadomość o błędzie", "estimatedRecipients": "Szacunkowa liczba odbiorców", "expiredSubscriptionUsersOnly": "Tylko użytkownicy z wygasłymi subskrypcjami", "expiredUsers": "Wygasłe konta", "failCount": "Liczba niepowodzeń", "failed": "Niepowodzenie", + "failedToCalculateRecipients": "Nie udało się obliczyć odbiorców", + "failedToCreateQuotaTask": "Nie udało się utworzyć zadania kwotowego", "failedToRefreshTaskStatus": "Nie udało się odświeżyć statusu zadania", "failedToStopTask": "Nie udało się zatrzymać zadania", + "fixedAmount": "Kwota Stała", + "gift": "Prezent", + "giftAmount": "Kwota Prezentu", + "giftRatio": "Wskaźnik Prezentu", + "giftRatioDescription": "Procent kwoty do podarowania na podstawie zużycia subskrypcji (%)", + "giftType": "Typ Kwoty Prezentu", + "giftValue": "Wartość Prezentu", "inProgress": "W trakcie", + "inactive": "Nieaktywny", + "includeSubscriptionsValidAfter": "Uwzględnij subskrypcje ważne od tej daty", + "includeSubscriptionsValidBefore": "Uwzględnij subskrypcje ważne przed tą datą", "includeUsersRegisteredAfter": "Uwzględnij użytkowników zarejestrowanych po tej dacie", "includeUsersRegisteredBefore": "Uwzględnij użytkowników zarejestrowanych przed tą datą", "intervalTimeBetweenEmails": "Czas interwału między każdym e-mailem", + "invoiceAmountRatioToGiftAmount": "Wskaźnik kwoty faktury do kwoty prezentu", "leaveEmptyForImmediateSend": "Pozostaw puste, aby wysłać natychmiast", "logList": "Lista dzienników", "marketingManagement": "Zarządzanie marketingiem", "maximumNumberPerDay": "Maksymalna liczba e-maili do wysłania dziennie", + "mustBeGreaterThanOrEqualToZero": "Musi być większe lub równe zeru", + "no": "Nie", "noSubscriptionUsersOnly": "Tylko użytkownicy bez subskrypcji", + "noSubscriptions": "Brak Subskrypcji", + "noTimeLimit": "Brak Ograniczenia Czasowego", "nonSubscribers": "Nie subskrybenci", "notStarted": "Nie rozpoczęto", + "numberOfDaysForTheQuota": "Liczba dni do przedłużenia ważności subskrypcji", "onePerLine": "jeden w linii", "only": "tylko", "pending": "Oczekujące", + "percentageAmount": "Kwota Procentowa", + "percentageAmountDescription": "Kwota procentowa prezentu na podstawie aktualnej ceny pakietu", "pleaseEnter": "Proszę wprowadzić", + "pleaseEnterAmount": "Proszę wprowadzić kwotę", + "pleaseEnterPercentage": "Proszę wprowadzić procent", "pleaseEnterValidEmailAddresses": "Proszę wprowadzić poprawne adresy e-mail, jeden w linii", + "pleaseSelectSubscribers": "Proszę wybrać pakiety", "processing": "Przetwarzanie...", "progress": "Postęp", + "quotaBroadcast": "Dystrybucja Kwot", + "quotaDays": "Przedłużenie Dni Ważności", + "quotaService": "Usługa Kwotowa", + "quotaTaskCreatedSuccessfully": "Zadanie kwotowe utworzone pomyślnie", + "quotaTaskManager": "Menadżer Zadań Kwotowych", + "quotaTasks": "Zadania Kwotowe", + "quotaType": "Typ Kwoty", + "quotaTypeDescription": "Wybierz typ kwoty do dystrybucji", "recipient": "Odbiorca", "recipientEmail": "Adres e-mail odbiorcy", + "recipientScope": "Zakres Odbiorców", "recipientType": "Typ odbiorcy", "registrationEndDate": "Data zakończenia rejestracji", + "registrationEndTime": "Czas Zakończenia Rejestracji", "registrationStartDate": "Data rozpoczęcia rejestracji", + "registrationStartTime": "Czas Rozpoczęcia Rejestracji", + "resetTraffic": "Zresetuj Ruch", + "resetTrafficDescription": "Czy zresetować użyty ruch subskrypcji", "scheduleSend": "Zaplanuj wysyłkę", "scheduledSend": "Zaplanuj wysyłkę", "scheduledSendTimeMustBeLater": "Czas zaplanowanej wysyłki musi być późniejszy niż obecny czas", + "scheduledTime": "Czas Zaplanowany", + "selectDistributionScope": "Wybierz Zakres Dystrybucji", + "selectGiftType": "Wybierz Typ Kwoty Prezentu", + "selectParametersToCalculate": "Wybierz parametry do obliczenia liczby odbiorców", + "selectQuotaType": "Wybierz Typ Kwoty", + "selectRecipientScope": "Wybierz Zakres Odbiorców", + "selectRegistrationEndTime": "Wybierz Czas Zakończenia Rejestracji", + "selectRegistrationStartTime": "Wybierz Czas Rozpoczęcia Rejestracji", "selectSendScope": "Wybierz zakres wysyłki", "selectSendTime": "Wybierz czas wysyłki, pozostaw puste dla natychmiastowej wysyłki", + "selectSubscribers": "Wybierz Pakiety", + "selectValidSubscriptionsOnly": "Wybierz tylko obecnie ważne subskrypcje", "sendFailed": "Wysyłka nie powiodła się, spróbuj ponownie", "sendNow": "Wyślij teraz", "sendScope": "Zakres wysyłki", @@ -78,20 +143,33 @@ "sentAt": "Wysłano", "specificUsers": "Specyficzni użytkownicy", "specificUsersOnly": "Tylko dodatkowe e-maile (pomiń użytkowników platformy)", + "startTime": "Czas Rozpoczęcia", "status": "Status", "stop": "Zatrzymaj", "stopped": "Zatrzymano", "subject": "Temat e-maila", "subscribedUsers": "Subskrybowani użytkownicy", "subscribedUsersOnly": "Tylko subskrybowani użytkownicy", + "subscribers": "Pakiety", + "subscriptionCount": "Liczba Subskrypcji", + "subscriptionValidityEndDate": "Data Zakończenia Ważności Subskrypcji", + "subscriptionValidityStartDate": "Data Rozpoczęcia Ważności Subskrypcji", + "subscriptions": "subskrypcje", "successCount": "Liczba sukcesów", "taskStatusRefreshed": "Status zadania odświeżony", "taskStoppedSuccessfully": "Zadanie zatrzymane pomyślnie", + "timeQuota": "Kwota Czasowa", + "timeRange": "Zakres Czasowy", + "timeRangeShort": "Czas", "totalSent": "Łącznie wysłano", "updateSuccess": "Zaktualizowano pomyślnie", "useMarkdownEditor": "Użyj edytora Markdown do pisania treści e-maila z funkcjonalnością podglądu", "users": "użytkownicy", + "validOnly": "Tylko Ważne", + "validSubscriptionsOnly": "Tylko Ważne Subskrypcje", "view": "Widok", "viewAndManageEmailBroadcastTasks": "Wyświetl i zarządzaj zadaniami transmisji e-mailowej", - "viewContent": "Wyświetl treść" + "viewAndManageQuotaTasks": "Wyświetl i zarządzaj zadaniami kwotowymi", + "viewContent": "Wyświetl treść", + "yes": "Tak" } diff --git a/apps/admin/locales/pt-BR/marketing.json b/apps/admin/locales/pt-BR/marketing.json index f7220fb..9d58260 100644 --- a/apps/admin/locales/pt-BR/marketing.json +++ b/apps/admin/locales/pt-BR/marketing.json @@ -1,4 +1,7 @@ { + "active": "Ativo", + "activeStatus": "Status Ativo", + "addQuotaForUsers": "Adicionar Cota para Assinaturas", "additional": "Adicional", "additionalRecipientEmails": "Emails de destinatários adicionais", "additionalRecipients": "Destinatários Adicionais", @@ -6,6 +9,7 @@ "allUsers": "Todos os Usuários", "broadcastList": "Lista de Transmissão", "broadcastLogs": "Registros de Transmissão", + "calculating": "Calculando...", "cancel": "Cancelar", "cannotBeEmpty": "não pode estar vazio", "completed": "Concluído", @@ -13,15 +17,27 @@ "confirmDelete": "Confirmar Exclusão", "content": "Conteúdo do Email", "create": "Criar", + "createAndSendQuotaTasks": "Criar e Distribuir Tarefas de Cota", "createBroadcast": "Criar Transmissão", "createNewEmailBroadcastCampaign": "Criar nova campanha de transmissão de email", + "createQuotaTask": "Criar Tarefa de Cota", + "createQuotaTaskDescription": "Adicionar cota em lote para assinaturas elegíveis", "createSuccess": "Criado com Sucesso", + "createTask": "Criar Tarefa", "createdAt": "Criado Em", + "currentValidSubscriptionsOnly": "Apenas Assinaturas Válidas Atuais", + "currentValidSubscriptionsOnlyShort": "Apenas Válidas", "dailyLimit": "O limite diário deve ser pelo menos 1", "dailySendLimit": "Limite de Envio Diário", + "dataQuota": "Cota de Dados", + "dayQuota": "Cota Diária", + "days": "Dias", "delete": "Excluir", "deleteDescription": "Esta operação não pode ser desfeita. Você tem certeza de que deseja excluir?", "deleteSuccess": "Excluído com Sucesso", + "distributionScope": "Escopo de Distribuição", + "distributionScopeDescription": "Selecione o escopo da assinatura para receber a cota", + "distributionSettings": "Configurações de Distribuição", "edit": "Editar", "emailAddedToScheduledQueue": "Email adicionado à fila de envio programado", "emailBroadcast": "Transmissão de Email", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "O intervalo de email deve ser de pelo menos 0,1 segundos", "emailMarketing": "Marketing por Email", "emailTaskManager": "Gerenciador de Tarefas de Email", + "endTime": "Hora de Término", + "enterAmount": "Digite o valor", + "enterPercentage": "Digite a porcentagem", "errorMessage": "Mensagem de Erro", "estimatedRecipients": "Destinatários Estimados", "expiredSubscriptionUsersOnly": "Apenas usuários com assinatura expirada", "expiredUsers": "Usuários Expirados", "failCount": "Contagem de Falhas", "failed": "Falhou", + "failedToCalculateRecipients": "Falha ao calcular destinatários", + "failedToCreateQuotaTask": "Falha ao criar tarefa de cota", "failedToRefreshTaskStatus": "Falha ao atualizar o status da tarefa", "failedToStopTask": "Falha ao parar a tarefa", + "fixedAmount": "Valor Fixo", + "gift": "Presente", + "giftAmount": "Valor do Presente", + "giftRatio": "Razão do Presente", + "giftRatioDescription": "Porcentagem da cota a ser presenteada com base no valor de consumo da assinatura (%)", + "giftType": "Tipo de Valor do Presente", + "giftValue": "Valor do Presente", "inProgress": "Em Andamento", + "inactive": "Inativo", + "includeSubscriptionsValidAfter": "Incluir assinaturas válidas a partir desta data", + "includeSubscriptionsValidBefore": "Incluir assinaturas válidas até esta data", "includeUsersRegisteredAfter": "Incluir usuários registrados a partir desta data", "includeUsersRegisteredBefore": "Incluir usuários registrados até esta data", "intervalTimeBetweenEmails": "Tempo de intervalo entre cada email", + "invoiceAmountRatioToGiftAmount": "Relação do valor da fatura com o valor do presente", "leaveEmptyForImmediateSend": "Deixe vazio para envio imediato", "logList": "Lista de Registros", "marketingManagement": "Gestão de Marketing", "maximumNumberPerDay": "Número máximo de emails a serem enviados por dia", + "mustBeGreaterThanOrEqualToZero": "Deve ser maior ou igual a zero", + "no": "Não", "noSubscriptionUsersOnly": "Apenas usuários sem assinatura", + "noSubscriptions": "Sem Assinaturas", + "noTimeLimit": "Sem Limite de Tempo", "nonSubscribers": "Não assinantes", "notStarted": "Não Iniciado", + "numberOfDaysForTheQuota": "Número de dias para estender a expiração da assinatura", "onePerLine": "um por linha", "only": "apenas", "pending": "Pendente", + "percentageAmount": "Valor Percentual", + "percentageAmountDescription": "Valor percentual do presente com base no preço atual do pacote", "pleaseEnter": "Por favor, insira", + "pleaseEnterAmount": "Por favor, digite o valor", + "pleaseEnterPercentage": "Por favor, digite a porcentagem", "pleaseEnterValidEmailAddresses": "Por favor, insira endereços de email válidos, um por linha", + "pleaseSelectSubscribers": "Por favor, selecione pacotes", "processing": "Processando...", "progress": "Progresso", + "quotaBroadcast": "Distribuição de Cota", + "quotaDays": "Estender Dias de Expiração", + "quotaService": "Serviço de Cota", + "quotaTaskCreatedSuccessfully": "Tarefa de cota criada com sucesso", + "quotaTaskManager": "Gerenciador de Tarefas de Cota", + "quotaTasks": "Tarefas de Cota", + "quotaType": "Tipo de Cota", + "quotaTypeDescription": "Selecione o tipo de cota a ser distribuída", "recipient": "Destinatário", "recipientEmail": "Email do Destinatário", + "recipientScope": "Escopo do Destinatário", "recipientType": "Tipo de Destinatário", "registrationEndDate": "Data de Fim da Inscrição", + "registrationEndTime": "Hora de Término do Registro", "registrationStartDate": "Data de Início da Inscrição", + "registrationStartTime": "Hora de Início do Registro", + "resetTraffic": "Redefinir Tráfego", + "resetTrafficDescription": "Se deve redefinir o tráfego utilizado da assinatura", "scheduleSend": "Agendar Envio", "scheduledSend": "Envio Programado", "scheduledSendTimeMustBeLater": "O horário de envio programado deve ser posterior ao horário atual", + "scheduledTime": "Hora Agendada", + "selectDistributionScope": "Selecione o Escopo de Distribuição", + "selectGiftType": "Selecione o Tipo de Valor do Presente", + "selectParametersToCalculate": "Selecione os parâmetros para calcular a contagem de destinatários", + "selectQuotaType": "Selecione o Tipo de Cota", + "selectRecipientScope": "Selecione o Escopo do Destinatário", + "selectRegistrationEndTime": "Selecione a Hora de Término do Registro", + "selectRegistrationStartTime": "Selecione a Hora de Início do Registro", "selectSendScope": "Selecionar escopo de envio", "selectSendTime": "Selecionar horário de envio, deixe vazio para envio imediato", + "selectSubscribers": "Selecione Pacotes", + "selectValidSubscriptionsOnly": "Selecione apenas assinaturas atualmente válidas", "sendFailed": "Envio falhou, por favor tente novamente", "sendNow": "Enviar Agora", "sendScope": "Escopo de Envio", @@ -78,20 +143,33 @@ "sentAt": "Enviado Em", "specificUsers": "Usuários Específicos", "specificUsersOnly": "Apenas emails adicionais (pular usuários da plataforma)", + "startTime": "Hora de Início", "status": "Status", "stop": "Parar", "stopped": "Parado", "subject": "Assunto do Email", "subscribedUsers": "Usuários Inscritos", "subscribedUsersOnly": "Apenas usuários inscritos", + "subscribers": "Pacotes", + "subscriptionCount": "Contagem de Assinaturas", + "subscriptionValidityEndDate": "Data de Término da Validade da Assinatura", + "subscriptionValidityStartDate": "Data de Início da Validade da Assinatura", + "subscriptions": "assinaturas", "successCount": "Contagem de Sucessos", "taskStatusRefreshed": "Status da tarefa atualizado", "taskStoppedSuccessfully": "Tarefa parada com sucesso", + "timeQuota": "Cota de Tempo", + "timeRange": "Intervalo de Tempo", + "timeRangeShort": "Tempo", "totalSent": "Total Enviado", "updateSuccess": "Atualizado com Sucesso", "useMarkdownEditor": "Use o editor Markdown para escrever o conteúdo do email com funcionalidade de visualização", "users": "usuários", + "validOnly": "Apenas Válido", + "validSubscriptionsOnly": "Apenas Assinaturas Válidas", "view": "Visualizar", "viewAndManageEmailBroadcastTasks": "Visualizar e gerenciar tarefas de transmissão de email", - "viewContent": "Visualizar Conteúdo" + "viewAndManageQuotaTasks": "Visualizar e gerenciar tarefas de cota", + "viewContent": "Visualizar Conteúdo", + "yes": "Sim" } diff --git a/apps/admin/locales/ro-RO/marketing.json b/apps/admin/locales/ro-RO/marketing.json index 4d15621..7e374cb 100644 --- a/apps/admin/locales/ro-RO/marketing.json +++ b/apps/admin/locales/ro-RO/marketing.json @@ -1,4 +1,7 @@ { + "active": "Activ", + "activeStatus": "Stare Activă", + "addQuotaForUsers": "Adaugă Cotă pentru Abonamente", "additional": "Aditional", "additionalRecipientEmails": "Emailuri suplimentare pentru destinatari", "additionalRecipients": "Destinatari suplimentari", @@ -6,6 +9,7 @@ "allUsers": "Toți utilizatorii", "broadcastList": "Lista de difuzare", "broadcastLogs": "Jurnalele de difuzare", + "calculating": "Se calculează...", "cancel": "Anulează", "cannotBeEmpty": "nu poate fi gol", "completed": "Finalizat", @@ -13,15 +17,27 @@ "confirmDelete": "Confirmă ștergerea", "content": "Conținutul emailului", "create": "Creează", + "createAndSendQuotaTasks": "Creează și Distribuie Sarcini de Cotă", "createBroadcast": "Creează difuzare", "createNewEmailBroadcastCampaign": "Creează o nouă campanie de difuzare prin email", + "createQuotaTask": "Creează Sarcină de Cotă", + "createQuotaTaskDescription": "Adaugă în lot cotă pentru abonamentele eligibile", "createSuccess": "Creat cu succes", + "createTask": "Creează Sarcină", "createdAt": "Creat la", + "currentValidSubscriptionsOnly": "Numai Abonamentele Valide Curente", + "currentValidSubscriptionsOnlyShort": "Numai Valide", "dailyLimit": "Limita zilnică trebuie să fie de cel puțin 1", "dailySendLimit": "Limita de trimitere zilnică", + "dataQuota": "Cotă de Date", + "dayQuota": "Cotă Zilnică", + "days": "Zile", "delete": "Șterge", "deleteDescription": "Această operațiune nu poate fi anulată. Ești sigur că vrei să ștergi?", "deleteSuccess": "Șters cu succes", + "distributionScope": "Domeniul de Distribuție", + "distributionScopeDescription": "Selectează domeniul de abonamente pentru a primi cotă", + "distributionSettings": "Setări de Distribuție", "edit": "Editează", "emailAddedToScheduledQueue": "Email adăugat în coada de trimitere programată", "emailBroadcast": "Difuzare prin email", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "Intervalul emailului trebuie să fie de cel puțin 0.1 secunde", "emailMarketing": "Marketing prin email", "emailTaskManager": "Manager de sarcini email", + "endTime": "Ora de Încheiere", + "enterAmount": "Introduceti suma", + "enterPercentage": "Introduceti procentajul", "errorMessage": "Mesaj de eroare", "estimatedRecipients": "Destinatari estimați", "expiredSubscriptionUsersOnly": "Numai utilizatorii cu abonamente expirate", "expiredUsers": "Utilizatori expirați", "failCount": "Numărul de eșecuri", "failed": "Eșuat", + "failedToCalculateRecipients": "Nu s-a reușit calcularea destinatarilor", + "failedToCreateQuotaTask": "Nu s-a reușit crearea sarcinii de cotă", "failedToRefreshTaskStatus": "Eșec la actualizarea stării sarcinii", "failedToStopTask": "Eșec la oprirea sarcinii", + "fixedAmount": "Sumă Fixă", + "gift": "Cadou", + "giftAmount": "Sumă Cadou", + "giftRatio": "Raport Cadou", + "giftRatioDescription": "Procentajul de cotă de oferit pe baza sumei consumate din abonament (%)", + "giftType": "Tip Sumă Cadou", + "giftValue": "Valoare Cadou", "inProgress": "În desfășurare", + "inactive": "Inactiv", + "includeSubscriptionsValidAfter": "Include abonamentele valide de sau după această dată", + "includeSubscriptionsValidBefore": "Include abonamentele valide de sau înainte de această dată", "includeUsersRegisteredAfter": "Include utilizatorii înregistrați la sau după această dată", "includeUsersRegisteredBefore": "Include utilizatorii înregistrați la sau înainte de această dată", "intervalTimeBetweenEmails": "Timpul de interval între fiecare email", + "invoiceAmountRatioToGiftAmount": "Raportul sumei facturii la suma cadou", "leaveEmptyForImmediateSend": "Lasă gol pentru trimitere imediată", "logList": "Lista de jurnale", "marketingManagement": "Managementul marketingului", "maximumNumberPerDay": "Numărul maxim de emailuri de trimis pe zi", + "mustBeGreaterThanOrEqualToZero": "Trebuie să fie mai mare sau egal cu zero", + "no": "Nu", "noSubscriptionUsersOnly": "Numai utilizatorii fără abonamente", + "noSubscriptions": "Nu există Abonamente", + "noTimeLimit": "Fără Limită de Timp", "nonSubscribers": "Non-abonați", "notStarted": "Nu a început", + "numberOfDaysForTheQuota": "Numărul de zile pentru a extinde expirarea abonamentului", "onePerLine": "unul pe linie", "only": "doar", "pending": "În așteptare", + "percentageAmount": "Sumă Procentuală", + "percentageAmountDescription": "Sumă procentuală cadou pe baza prețului actual al pachetului", "pleaseEnter": "Te rugăm să introduci", + "pleaseEnterAmount": "Vă rugăm să introduceți suma", + "pleaseEnterPercentage": "Vă rugăm să introduceți procentajul", "pleaseEnterValidEmailAddresses": "Te rugăm să introduci adrese de email valide, unul pe linie", + "pleaseSelectSubscribers": "Vă rugăm să selectați pachetele", "processing": "Se procesează...", "progress": "Progres", + "quotaBroadcast": "Distribuția Cotelor", + "quotaDays": "Extinde Zilele de Expirare", + "quotaService": "Serviciul de Cotă", + "quotaTaskCreatedSuccessfully": "Sarcina de cotă a fost creată cu succes", + "quotaTaskManager": "Manager Sarcini de Cotă", + "quotaTasks": "Sarcini de Cotă", + "quotaType": "Tip Cotă", + "quotaTypeDescription": "Selectează tipul de cotă de distribuit", "recipient": "Destinatar", "recipientEmail": "Emailul destinatarului", + "recipientScope": "Domeniul Destinatarului", "recipientType": "Tipul destinatarului", "registrationEndDate": "Data de încheiere a înregistrării", + "registrationEndTime": "Ora de Încheiere a Înregistrării", "registrationStartDate": "Data de început a înregistrării", + "registrationStartTime": "Ora de Începere a Înregistrării", + "resetTraffic": "Resetează Traficul", + "resetTrafficDescription": "Dacă se va reseta traficul utilizat de abonament", "scheduleSend": "Programează trimiterea", "scheduledSend": "Trimitere programată", "scheduledSendTimeMustBeLater": "Timpul de trimitere programată trebuie să fie mai târziu decât timpul curent", + "scheduledTime": "Ora Programată", + "selectDistributionScope": "Selectează Domeniul de Distribuție", + "selectGiftType": "Selectează Tipul Sumei Cadou", + "selectParametersToCalculate": "Selectează parametrii pentru a calcula numărul de destinatari", + "selectQuotaType": "Selectează Tipul de Cotă", + "selectRecipientScope": "Selectează Domeniul Destinatarului", + "selectRegistrationEndTime": "Selectează Ora de Încheiere a Înregistrării", + "selectRegistrationStartTime": "Selectează Ora de Începere a Înregistrării", "selectSendScope": "Selectează domeniul de trimitere", "selectSendTime": "Selectează timpul de trimitere, lasă gol pentru trimitere imediată", + "selectSubscribers": "Selectează Pachete", + "selectValidSubscriptionsOnly": "Selectează numai abonamentele valide curente", "sendFailed": "Trimiterea a eșuat, te rugăm să încerci din nou", "sendNow": "Trimite acum", "sendScope": "Domeniul de trimitere", @@ -78,20 +143,33 @@ "sentAt": "Trimis la", "specificUsers": "Utilizatori specifici", "specificUsersOnly": "Numai emailuri suplimentare (sari utilizatorii platformei)", + "startTime": "Ora de Începere", "status": "Stare", "stop": "Oprește", "stopped": "Oprit", "subject": "Subiectul emailului", "subscribedUsers": "Utilizatori abonați", "subscribedUsersOnly": "Numai utilizatorii abonați", + "subscribers": "Pachete", + "subscriptionCount": "Numărul de Abonamente", + "subscriptionValidityEndDate": "Data de Încheiere a Valabilității Abonamentului", + "subscriptionValidityStartDate": "Data de Începere a Valabilității Abonamentului", + "subscriptions": "abonamente", "successCount": "Numărul de succes", "taskStatusRefreshed": "Starea sarcinii a fost actualizată", "taskStoppedSuccessfully": "Sarcina a fost oprită cu succes", + "timeQuota": "Cotă de Timp", + "timeRange": "Interval de Timp", + "timeRangeShort": "Timp", "totalSent": "Total trimis", "updateSuccess": "Actualizat cu succes", "useMarkdownEditor": "Folosește editorul Markdown pentru a scrie conținutul emailului cu funcționalitate de previzualizare", "users": "utilizatori", + "validOnly": "Numai Valide", + "validSubscriptionsOnly": "Numai Abonamente Valide", "view": "Vizualizează", "viewAndManageEmailBroadcastTasks": "Vizualizează și gestionează sarcinile de difuzare prin email", - "viewContent": "Vizualizează conținutul" + "viewAndManageQuotaTasks": "Vizualizați și gestionați sarcinile de cotă", + "viewContent": "Vizualizează conținutul", + "yes": "Da" } diff --git a/apps/admin/locales/ru-RU/marketing.json b/apps/admin/locales/ru-RU/marketing.json index c673600..b6fbfd1 100644 --- a/apps/admin/locales/ru-RU/marketing.json +++ b/apps/admin/locales/ru-RU/marketing.json @@ -1,4 +1,7 @@ { + "active": "Активный", + "activeStatus": "Статус активности", + "addQuotaForUsers": "Добавить квоту для подписок", "additional": "Дополнительно", "additionalRecipientEmails": "Дополнительные адреса электронной почты получателей", "additionalRecipients": "Дополнительные получатели", @@ -6,6 +9,7 @@ "allUsers": "Все пользователи", "broadcastList": "Список рассылки", "broadcastLogs": "Журналы рассылки", + "calculating": "Вычисление...", "cancel": "Отмена", "cannotBeEmpty": "не может быть пустым", "completed": "Завершено", @@ -13,15 +17,27 @@ "confirmDelete": "Подтвердить удаление", "content": "Содержимое электронной почты", "create": "Создать", + "createAndSendQuotaTasks": "Создать и распределить задачи квоты", "createBroadcast": "Создать рассылку", "createNewEmailBroadcastCampaign": "Создать новую кампанию по рассылке электронной почты", + "createQuotaTask": "Создать задачу квоты", + "createQuotaTaskDescription": "Пакетное добавление квоты для подходящих подписок", "createSuccess": "Успешно создано", + "createTask": "Создать задачу", "createdAt": "Создано в", + "currentValidSubscriptionsOnly": "Только текущие действительные подписки", + "currentValidSubscriptionsOnlyShort": "Только действительные", "dailyLimit": "Ежедневный лимит должен быть не менее 1", "dailySendLimit": "Ежедневный лимит отправки", + "dataQuota": "Квота данных", + "dayQuota": "Дневная квота", + "days": "Дни", "delete": "Удалить", "deleteDescription": "Это действие нельзя отменить. Вы уверены, что хотите удалить?", "deleteSuccess": "Успешно удалено", + "distributionScope": "Область распределения", + "distributionScopeDescription": "Выберите область подписки для получения квоты", + "distributionSettings": "Настройки распределения", "edit": "Редактировать", "emailAddedToScheduledQueue": "Электронная почта добавлена в очередь запланированной отправки", "emailBroadcast": "Рассылка электронной почты", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "Интервал отправки электронной почты должен быть не менее 0,1 секунды", "emailMarketing": "Email-маркетинг", "emailTaskManager": "Менеджер задач электронной почты", + "endTime": "Время окончания", + "enterAmount": "Введите сумму", + "enterPercentage": "Введите процент", "errorMessage": "Сообщение об ошибке", "estimatedRecipients": "Ориентировочное количество получателей", "expiredSubscriptionUsersOnly": "Только пользователи с истекшей подпиской", "expiredUsers": "Истекшие пользователи", "failCount": "Количество неудач", "failed": "Не удалось", + "failedToCalculateRecipients": "Не удалось вычислить получателей", + "failedToCreateQuotaTask": "Не удалось создать задачу квоты", "failedToRefreshTaskStatus": "Не удалось обновить статус задачи", "failedToStopTask": "Не удалось остановить задачу", + "fixedAmount": "Фиксированная сумма", + "gift": "Подарок", + "giftAmount": "Сумма подарка", + "giftRatio": "Соотношение подарка", + "giftRatioDescription": "Процент квоты, который будет подарен на основе суммы потребления подписки (%)", + "giftType": "Тип суммы подарка", + "giftValue": "Стоимость подарка", "inProgress": "В процессе", + "inactive": "Неактивный", + "includeSubscriptionsValidAfter": "Включить подписки, действительные с этой даты", + "includeSubscriptionsValidBefore": "Включить подписки, действительные до этой даты", "includeUsersRegisteredAfter": "Включить пользователей, зарегистрированных после этой даты", "includeUsersRegisteredBefore": "Включить пользователей, зарегистрированных до этой даты", "intervalTimeBetweenEmails": "Интервал времени между каждой электронной почтой", + "invoiceAmountRatioToGiftAmount": "Соотношение суммы счета к сумме подарка", "leaveEmptyForImmediateSend": "Оставьте пустым для немедленной отправки", "logList": "Список журналов", "marketingManagement": "Управление маркетингом", "maximumNumberPerDay": "Максимальное количество электронных писем для отправки в день", + "mustBeGreaterThanOrEqualToZero": "Должно быть больше или равно нулю", + "no": "Нет", "noSubscriptionUsersOnly": "Только пользователи без подписки", + "noSubscriptions": "Нет подписок", + "noTimeLimit": "Без временных ограничений", "nonSubscribers": "Несубскрипционные пользователи", "notStarted": "Не начато", + "numberOfDaysForTheQuota": "Количество дней для продления срока действия подписки", "onePerLine": "по одному в строке", "only": "только", "pending": "В ожидании", + "percentageAmount": "Процентная сумма", + "percentageAmountDescription": "Процентная сумма подарка на основе текущей цены пакета", "pleaseEnter": "Пожалуйста, введите", + "pleaseEnterAmount": "Пожалуйста, введите сумму", + "pleaseEnterPercentage": "Пожалуйста, введите процент", "pleaseEnterValidEmailAddresses": "Пожалуйста, введите действительные адреса электронной почты, по одному в строке", + "pleaseSelectSubscribers": "Пожалуйста, выберите пакеты", "processing": "Обработка...", "progress": "Прогресс", + "quotaBroadcast": "Распределение квоты", + "quotaDays": "Продлить срок действия на дни", + "quotaService": "Служба квоты", + "quotaTaskCreatedSuccessfully": "Задача квоты успешно создана", + "quotaTaskManager": "Менеджер задач квоты", + "quotaTasks": "Задачи квоты", + "quotaType": "Тип квоты", + "quotaTypeDescription": "Выберите тип квоты для распределения", "recipient": "Получатель", "recipientEmail": "Электронная почта получателя", + "recipientScope": "Область получателя", "recipientType": "Тип получателя", "registrationEndDate": "Дата окончания регистрации", + "registrationEndTime": "Время окончания регистрации", "registrationStartDate": "Дата начала регистрации", + "registrationStartTime": "Время начала регистрации", + "resetTraffic": "Сбросить трафик", + "resetTrafficDescription": "Сбросить ли использованный трафик подписки", "scheduleSend": "Запланировать отправку", "scheduledSend": "Запланированная отправка", "scheduledSendTimeMustBeLater": "Время запланированной отправки должно быть позже текущего времени", + "scheduledTime": "Запланированное время", + "selectDistributionScope": "Выберите область распределения", + "selectGiftType": "Выберите тип суммы подарка", + "selectParametersToCalculate": "Выберите параметры для вычисления количества получателей", + "selectQuotaType": "Выберите тип квоты", + "selectRecipientScope": "Выберите область получателя", + "selectRegistrationEndTime": "Выберите время окончания регистрации", + "selectRegistrationStartTime": "Выберите время начала регистрации", "selectSendScope": "Выберите область отправки", "selectSendTime": "Выберите время отправки, оставьте пустым для немедленной отправки", + "selectSubscribers": "Выберите пакеты", + "selectValidSubscriptionsOnly": "Выберите только текущие действительные подписки", "sendFailed": "Отправка не удалась, пожалуйста, попробуйте снова", "sendNow": "Отправить сейчас", "sendScope": "Область отправки", @@ -78,20 +143,33 @@ "sentAt": "Отправлено в", "specificUsers": "Конкретные пользователи", "specificUsersOnly": "Только дополнительные адреса электронной почты (пропустить пользователей платформы)", + "startTime": "Время начала", "status": "Статус", "stop": "Остановить", "stopped": "Остановлено", "subject": "Тема электронной почты", "subscribedUsers": "Подписанные пользователи", "subscribedUsersOnly": "Только подписанные пользователи", + "subscribers": "Пакеты", + "subscriptionCount": "Количество подписок", + "subscriptionValidityEndDate": "Дата окончания действия подписки", + "subscriptionValidityStartDate": "Дата начала действия подписки", + "subscriptions": "подписки", "successCount": "Количество успешных отправок", "taskStatusRefreshed": "Статус задачи обновлен", "taskStoppedSuccessfully": "Задача успешно остановлена", + "timeQuota": "Временная квота", + "timeRange": "Временной диапазон", + "timeRangeShort": "Время", "totalSent": "Всего отправлено", "updateSuccess": "Успешно обновлено", "useMarkdownEditor": "Используйте редактор Markdown для написания содержимого электронной почты с функцией предварительного просмотра", "users": "пользователи", + "validOnly": "Только действительные", + "validSubscriptionsOnly": "Только действительные подписки", "view": "Просмотр", "viewAndManageEmailBroadcastTasks": "Просмотреть и управлять задачами рассылки электронной почты", - "viewContent": "Просмотреть содержимое" + "viewAndManageQuotaTasks": "Просмотреть и управлять задачами квоты", + "viewContent": "Просмотреть содержимое", + "yes": "Да" } diff --git a/apps/admin/locales/th-TH/marketing.json b/apps/admin/locales/th-TH/marketing.json index 6316173..947e63c 100644 --- a/apps/admin/locales/th-TH/marketing.json +++ b/apps/admin/locales/th-TH/marketing.json @@ -1,4 +1,7 @@ { + "active": "ใช้งาน", + "activeStatus": "สถานะการใช้งาน", + "addQuotaForUsers": "เพิ่มโควตาสำหรับการสมัครสมาชิก", "additional": "เพิ่มเติม", "additionalRecipientEmails": "อีเมลผู้รับเพิ่มเติม", "additionalRecipients": "ผู้รับเพิ่มเติม", @@ -6,6 +9,7 @@ "allUsers": "ผู้ใช้ทั้งหมด", "broadcastList": "รายการส่ง", "broadcastLogs": "บันทึกการส่ง", + "calculating": "กำลังคำนวณ...", "cancel": "ยกเลิก", "cannotBeEmpty": "ไม่สามารถเว้นว่างได้", "completed": "เสร็จสิ้น", @@ -13,15 +17,27 @@ "confirmDelete": "ยืนยันการลบ", "content": "เนื้อหาอีเมล", "create": "สร้าง", + "createAndSendQuotaTasks": "สร้างและแจกจ่ายงานโควตา", "createBroadcast": "สร้างการส่ง", "createNewEmailBroadcastCampaign": "สร้างแคมเปญการส่งอีเมลใหม่", + "createQuotaTask": "สร้างงานโควตา", + "createQuotaTaskDescription": "เพิ่มโควตาเป็นกลุ่มสำหรับการสมัครสมาชิกที่มีสิทธิ์", "createSuccess": "สร้างสำเร็จ", + "createTask": "สร้างงาน", "createdAt": "สร้างเมื่อ", + "currentValidSubscriptionsOnly": "เฉพาะการสมัครสมาชิกที่ใช้งานอยู่", + "currentValidSubscriptionsOnlyShort": "ใช้งานเท่านั้น", "dailyLimit": "จำนวนสูงสุดต่อวันต้องไม่น้อยกว่า 1", "dailySendLimit": "จำนวนการส่งต่อวัน", + "dataQuota": "โควตาข้อมูล", + "dayQuota": "โควตาเป็นวัน", + "days": "วัน", "delete": "ลบ", "deleteDescription": "การดำเนินการนี้ไม่สามารถย้อนกลับได้ คุณแน่ใจหรือไม่ว่าต้องการลบ?", "deleteSuccess": "ลบสำเร็จ", + "distributionScope": "ขอบเขตการแจกจ่าย", + "distributionScopeDescription": "เลือกขอบเขตการสมัครสมาชิกเพื่อรับโควตา", + "distributionSettings": "การตั้งค่าแจกจ่าย", "edit": "แก้ไข", "emailAddedToScheduledQueue": "อีเมลถูกเพิ่มไปยังคิวการส่งที่กำหนด", "emailBroadcast": "การส่งอีเมล", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "ช่วงเวลาการส่งอีเมลต้องไม่น้อยกว่า 0.1 วินาที", "emailMarketing": "การตลาดทางอีเมล", "emailTaskManager": "ผู้จัดการงานอีเมล", + "endTime": "เวลาสิ้นสุด", + "enterAmount": "กรอกจำนวน", + "enterPercentage": "กรอกเปอร์เซ็นต์", "errorMessage": "ข้อความผิดพลาด", "estimatedRecipients": "จำนวนผู้รับที่ประมาณการ", "expiredSubscriptionUsersOnly": "เฉพาะผู้ใช้ที่หมดอายุการสมัคร", "expiredUsers": "ผู้ใช้ที่หมดอายุ", "failCount": "จำนวนที่ล้มเหลว", "failed": "ล้มเหลว", + "failedToCalculateRecipients": "ไม่สามารถคำนวณผู้รับได้", + "failedToCreateQuotaTask": "ไม่สามารถสร้างงานโควตาได้", "failedToRefreshTaskStatus": "ไม่สามารถรีเฟรชสถานะงานได้", "failedToStopTask": "ไม่สามารถหยุดงานได้", + "fixedAmount": "จำนวนคงที่", + "gift": "ของขวัญ", + "giftAmount": "จำนวนของขวัญ", + "giftRatio": "อัตราส่วนของขวัญ", + "giftRatioDescription": "เปอร์เซ็นต์ของโควตาที่จะมอบให้ตามจำนวนการใช้จ่ายในการสมัครสมาชิก (%)", + "giftType": "ประเภทจำนวนของขวัญ", + "giftValue": "มูลค่าของขวัญ", "inProgress": "กำลังดำเนินการ", + "inactive": "ไม่ใช้งาน", + "includeSubscriptionsValidAfter": "รวมการสมัครสมาชิกที่ใช้งานตั้งแต่วันที่นี้เป็นต้นไป", + "includeSubscriptionsValidBefore": "รวมการสมัครสมาชิกที่ใช้งานก่อนวันที่นี้", "includeUsersRegisteredAfter": "รวมผู้ที่ลงทะเบียนตั้งแต่วันที่นี้", "includeUsersRegisteredBefore": "รวมผู้ที่ลงทะเบียนก่อนวันที่นี้", "intervalTimeBetweenEmails": "ช่วงเวลาระหว่างการส่งอีเมลแต่ละฉบับ", + "invoiceAmountRatioToGiftAmount": "อัตราส่วนจำนวนใบแจ้งหนี้ต่อจำนวนของขวัญ", "leaveEmptyForImmediateSend": "เว้นว่างไว้เพื่อส่งทันที", "logList": "รายการบันทึก", "marketingManagement": "การจัดการการตลาด", "maximumNumberPerDay": "จำนวนสูงสุดของอีเมลที่ส่งต่อวัน", + "mustBeGreaterThanOrEqualToZero": "ต้องมากกว่าหรือเท่ากับศูนย์", + "no": "ไม่", "noSubscriptionUsersOnly": "เฉพาะผู้ใช้ที่ไม่มีการสมัคร", + "noSubscriptions": "ไม่มีการสมัครสมาชิก", + "noTimeLimit": "ไม่มีเวลาจำกัด", "nonSubscribers": "ผู้ที่ไม่ได้สมัคร", "notStarted": "ยังไม่เริ่ม", + "numberOfDaysForTheQuota": "จำนวนวันที่จะขยายวันหมดอายุของการสมัครสมาชิก", "onePerLine": "หนึ่งต่อบรรทัด", "only": "เท่านั้น", "pending": "รอดำเนินการ", + "percentageAmount": "จำนวนเปอร์เซ็นต์", + "percentageAmountDescription": "จำนวนเปอร์เซ็นต์ของของขวัญตามราคาชุดปัจจุบัน", "pleaseEnter": "กรุณาใส่", + "pleaseEnterAmount": "กรุณากรอกจำนวน", + "pleaseEnterPercentage": "กรุณากรอกเปอร์เซ็นต์", "pleaseEnterValidEmailAddresses": "กรุณาใส่อีเมลที่ถูกต้อง หนึ่งต่อบรรทัด", + "pleaseSelectSubscribers": "กรุณาเลือกแพ็คเกจ", "processing": "กำลังประมวลผล...", "progress": "ความก้าวหน้า", + "quotaBroadcast": "การแจกจ่ายโควตา", + "quotaDays": "ขยายวันหมดอายุ", + "quotaService": "บริการโควตา", + "quotaTaskCreatedSuccessfully": "สร้างงานโควตาเรียบร้อยแล้ว", + "quotaTaskManager": "ผู้จัดการงานโควตา", + "quotaTasks": "งานโควตา", + "quotaType": "ประเภทโควตา", + "quotaTypeDescription": "เลือกประเภทของโควตาที่จะแจกจ่าย", "recipient": "ผู้รับ", "recipientEmail": "อีเมลผู้รับ", + "recipientScope": "ขอบเขตผู้รับ", "recipientType": "ประเภทผู้รับ", "registrationEndDate": "วันที่สิ้นสุดการลงทะเบียน", + "registrationEndTime": "เวลาสิ้นสุดการลงทะเบียน", "registrationStartDate": "วันที่เริ่มต้นการลงทะเบียน", + "registrationStartTime": "เวลาเริ่มต้นการลงทะเบียน", + "resetTraffic": "รีเซ็ตการใช้งาน", + "resetTrafficDescription": "ต้องการรีเซ็ตการใช้งานที่ใช้ไปหรือไม่", "scheduleSend": "กำหนดการส่ง", "scheduledSend": "การส่งที่กำหนด", "scheduledSendTimeMustBeLater": "เวลาการส่งที่กำหนดต้องอยู่หลังเวลาปัจจุบัน", + "scheduledTime": "เวลาที่กำหนด", + "selectDistributionScope": "เลือกขอบเขตการแจกจ่าย", + "selectGiftType": "เลือกประเภทจำนวนของขวัญ", + "selectParametersToCalculate": "เลือกพารามิเตอร์เพื่อคำนวณจำนวนผู้รับ", + "selectQuotaType": "เลือกประเภทโควตา", + "selectRecipientScope": "เลือกขอบเขตผู้รับ", + "selectRegistrationEndTime": "เลือกเวลาสิ้นสุดการลงทะเบียน", + "selectRegistrationStartTime": "เลือกเวลาเริ่มต้นการลงทะเบียน", "selectSendScope": "เลือกขอบเขตการส่ง", "selectSendTime": "เลือกเวลาการส่ง เว้นว่างไว้เพื่อส่งทันที", + "selectSubscribers": "เลือกแพ็คเกจ", + "selectValidSubscriptionsOnly": "เลือกเฉพาะการสมัครสมาชิกที่ใช้งานอยู่ในปัจจุบัน", "sendFailed": "การส่งล้มเหลว กรุณาลองอีกครั้ง", "sendNow": "ส่งตอนนี้", "sendScope": "ขอบเขตการส่ง", @@ -78,20 +143,33 @@ "sentAt": "ส่งเมื่อ", "specificUsers": "ผู้ใช้เฉพาะ", "specificUsersOnly": "อีเมลเพิ่มเติมเท่านั้น (ข้ามผู้ใช้แพลตฟอร์ม)", + "startTime": "เวลาเริ่มต้น", "status": "สถานะ", "stop": "หยุด", "stopped": "หยุดแล้ว", "subject": "หัวข้ออีเมล", "subscribedUsers": "ผู้ใช้ที่สมัคร", "subscribedUsersOnly": "เฉพาะผู้ใช้ที่สมัคร", + "subscribers": "แพ็คเกจ", + "subscriptionCount": "จำนวนการสมัครสมาชิก", + "subscriptionValidityEndDate": "วันหมดอายุการสมัครสมาชิก", + "subscriptionValidityStartDate": "วันเริ่มต้นการสมัครสมาชิก", + "subscriptions": "การสมัครสมาชิก", "successCount": "จำนวนที่สำเร็จ", "taskStatusRefreshed": "สถานะงานถูกรีเฟรช", "taskStoppedSuccessfully": "หยุดงานสำเร็จ", + "timeQuota": "โควตาเวลา", + "timeRange": "ช่วงเวลา", + "timeRangeShort": "เวลา", "totalSent": "จำนวนที่ส่งทั้งหมด", "updateSuccess": "อัปเดตสำเร็จ", "useMarkdownEditor": "ใช้ตัวแก้ไข Markdown เพื่อเขียนเนื้อหาอีเมลพร้อมฟังก์ชันการแสดงตัวอย่าง", "users": "ผู้ใช้", + "validOnly": "ใช้งานเท่านั้น", + "validSubscriptionsOnly": "เฉพาะการสมัครสมาชิกที่ใช้งานอยู่", "view": "ดู", "viewAndManageEmailBroadcastTasks": "ดูและจัดการงานการส่งอีเมล", - "viewContent": "ดูเนื้อหา" + "viewAndManageQuotaTasks": "ดูและจัดการงานโควตา", + "viewContent": "ดูเนื้อหา", + "yes": "ใช่" } diff --git a/apps/admin/locales/tr-TR/marketing.json b/apps/admin/locales/tr-TR/marketing.json index 699ea29..a5cc148 100644 --- a/apps/admin/locales/tr-TR/marketing.json +++ b/apps/admin/locales/tr-TR/marketing.json @@ -1,4 +1,7 @@ { + "active": "Aktif", + "activeStatus": "Aktif Durum", + "addQuotaForUsers": "Kullanıcılar için Kota Ekle", "additional": "Ek", "additionalRecipientEmails": "Ek alıcı e-postaları", "additionalRecipients": "Ek Alıcılar", @@ -6,6 +9,7 @@ "allUsers": "Tüm Kullanıcılar", "broadcastList": "Yayın Listesi", "broadcastLogs": "Yayın Kayıtları", + "calculating": "Hesaplanıyor...", "cancel": "İptal", "cannotBeEmpty": "boş olamaz", "completed": "Tamamlandı", @@ -13,15 +17,27 @@ "confirmDelete": "Silme işlemini onayla", "content": "E-posta İçeriği", "create": "Oluştur", + "createAndSendQuotaTasks": "Kota Görevleri Oluştur ve Dağıt", "createBroadcast": "Yayın Oluştur", "createNewEmailBroadcastCampaign": "Yeni e-posta yayını kampanyası oluştur", + "createQuotaTask": "Kota Görevi Oluştur", + "createQuotaTaskDescription": "Uygun abonelikler için toplu kota ekle", "createSuccess": "Başarıyla Oluşturuldu", + "createTask": "Görev Oluştur", "createdAt": "Oluşturulma Tarihi", + "currentValidSubscriptionsOnly": "Sadece Geçerli Abonelikler", + "currentValidSubscriptionsOnlyShort": "Sadece Geçerli", "dailyLimit": "Günlük limit en az 1 olmalıdır", "dailySendLimit": "Günlük Gönderim Limiti", + "dataQuota": "Veri Kotası", + "dayQuota": "Gün Kotası", + "days": "Günler", "delete": "Sil", "deleteDescription": "Bu işlem geri alınamaz. Silmek istediğinize emin misiniz?", "deleteSuccess": "Başarıyla Silindi", + "distributionScope": "Dağıtım Kapsamı", + "distributionScopeDescription": "Kota alacak abonelik kapsamını seçin", + "distributionSettings": "Dağıtım Ayarları", "edit": "Düzenle", "emailAddedToScheduledQueue": "E-posta planlı gönderim kuyruğuna eklendi", "emailBroadcast": "E-posta Yayını", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "E-posta aralığı en az 0.1 saniye olmalıdır", "emailMarketing": "E-posta Pazarlama", "emailTaskManager": "E-posta Görev Yöneticisi", + "endTime": "Bitiş Zamanı", + "enterAmount": "Miktarı girin", + "enterPercentage": "Yüzdeyi girin", "errorMessage": "Hata Mesajı", "estimatedRecipients": "Tahmini alıcılar", "expiredSubscriptionUsersOnly": "Süresi dolmuş abonelik kullanıcıları yalnızca", "expiredUsers": "Süresi Dolmuş Kullanıcılar", "failCount": "Başarısız Sayısı", "failed": "Başarısız", + "failedToCalculateRecipients": "Alıcıları hesaplama başarısız oldu", + "failedToCreateQuotaTask": "Kota görevini oluşturma başarısız oldu", "failedToRefreshTaskStatus": "Görev durumunu yenilemede başarısız", "failedToStopTask": "Görevi durdurmada başarısız", + "fixedAmount": "Sabit Miktar", + "gift": "Hediye", + "giftAmount": "Hediye Miktarı", + "giftRatio": "Hediye Oranı", + "giftRatioDescription": "Abonelik tüketim miktarına göre hediye edilecek kota yüzdesi (%)", + "giftType": "Hediye Miktar Türü", + "giftValue": "Hediye Değeri", "inProgress": "Devam Ediyor", + "inactive": "Pasif", + "includeSubscriptionsValidAfter": "Bu tarihten sonra geçerli abonelikleri dahil et", + "includeSubscriptionsValidBefore": "Bu tarihten önce geçerli abonelikleri dahil et", "includeUsersRegisteredAfter": "Bu tarihten sonra kayıtlı kullanıcıları dahil et", "includeUsersRegisteredBefore": "Bu tarihten önce kayıtlı kullanıcıları dahil et", "intervalTimeBetweenEmails": "Her e-posta arasındaki aralık süresi", + "invoiceAmountRatioToGiftAmount": "Fatura miktarının hediye miktarına oranı", "leaveEmptyForImmediateSend": "Anında gönderim için boş bırakın", "logList": "Kayıt Listesi", "marketingManagement": "Pazarlama Yönetimi", "maximumNumberPerDay": "Günlük gönderilecek maksimum e-posta sayısı", + "mustBeGreaterThanOrEqualToZero": "Sıfır veya daha büyük olmalıdır", + "no": "Hayır", "noSubscriptionUsersOnly": "Aboneliği olmayan kullanıcılar yalnızca", + "noSubscriptions": "Abonelik Yok", + "noTimeLimit": "Zaman Sınırı Yok", "nonSubscribers": "Abone Olmayanlar", "notStarted": "Başlamadı", + "numberOfDaysForTheQuota": "Abonelik süresini uzatmak için gün sayısı", "onePerLine": "bir satıra bir", "only": "sadece", "pending": "Beklemede", + "percentageAmount": "Yüzde Miktarı", + "percentageAmountDescription": "Mevcut paket fiyatına göre hediye yüzdesi", "pleaseEnter": "Lütfen girin", + "pleaseEnterAmount": "Lütfen miktarı girin", + "pleaseEnterPercentage": "Lütfen yüzdeyi girin", "pleaseEnterValidEmailAddresses": "Lütfen geçerli e-posta adreslerini girin, her biri bir satıra", + "pleaseSelectSubscribers": "Lütfen paketleri seçin", "processing": "İşleniyor...", "progress": "İlerleme", + "quotaBroadcast": "Kota Dağıtımı", + "quotaDays": "Son Tarih Uzatma Günleri", + "quotaService": "Kota Servisi", + "quotaTaskCreatedSuccessfully": "Kota görevi başarıyla oluşturuldu", + "quotaTaskManager": "Kota Görevi Yöneticisi", + "quotaTasks": "Kota Görevleri", + "quotaType": "Kota Türü", + "quotaTypeDescription": "Dağıtılacak kota türünü seçin", "recipient": "Alıcı", "recipientEmail": "Alıcı E-postası", + "recipientScope": "Alıcı Kapsamı", "recipientType": "Alıcı Türü", "registrationEndDate": "Kayıt Bitiş Tarihi", + "registrationEndTime": "Kayıt Bitiş Zamanı", "registrationStartDate": "Kayıt Başlangıç Tarihi", + "registrationStartTime": "Kayıt Başlangıç Zamanı", + "resetTraffic": "Trafiği Sıfırla", + "resetTrafficDescription": "Abonelik kullanılan trafiği sıfırlayıp sıfırlamayacağını belirtin", "scheduleSend": "Gönderimi Planla", "scheduledSend": "Planlı Gönderim", "scheduledSendTimeMustBeLater": "Planlı gönderim zamanı mevcut zamandan sonra olmalıdır", + "scheduledTime": "Planlanan Zaman", + "selectDistributionScope": "Dağıtım Kapsamını Seçin", + "selectGiftType": "Hediye Miktar Türünü Seçin", + "selectParametersToCalculate": "Alıcı sayısını hesaplamak için parametreleri seçin", + "selectQuotaType": "Kota Türünü Seçin", + "selectRecipientScope": "Alıcı Kapsamını Seçin", + "selectRegistrationEndTime": "Kayıt Bitiş Zamanını Seçin", + "selectRegistrationStartTime": "Kayıt Başlangıç Zamanını Seçin", "selectSendScope": "Gönderim kapsamını seçin", "selectSendTime": "Gönderim zamanını seçin, anında gönderim için boş bırakın", + "selectSubscribers": "Paketleri Seçin", + "selectValidSubscriptionsOnly": "Sadece geçerli abonelikleri seçin", "sendFailed": "Gönderim başarısız, lütfen tekrar deneyin", "sendNow": "Şimdi Gönder", "sendScope": "Gönderim Kapsamı", @@ -78,20 +143,33 @@ "sentAt": "Gönderildiği Tarih", "specificUsers": "Belirli Kullanıcılar", "specificUsersOnly": "Yalnızca ek e-postalar (platform kullanıcılarını atla)", + "startTime": "Başlangıç Zamanı", "status": "Durum", "stop": "Durdur", "stopped": "Durduruldu", "subject": "E-posta Konusu", "subscribedUsers": "Abone Olmuş Kullanıcılar", "subscribedUsersOnly": "Yalnızca abone olmuş kullanıcılar", + "subscribers": "Paketler", + "subscriptionCount": "Abonelik Sayısı", + "subscriptionValidityEndDate": "Abonelik Geçerlilik Bitiş Tarihi", + "subscriptionValidityStartDate": "Abonelik Geçerlilik Başlangıç Tarihi", + "subscriptions": "abonelikler", "successCount": "Başarı Sayısı", "taskStatusRefreshed": "Görev durumu yenilendi", "taskStoppedSuccessfully": "Görev başarıyla durduruldu", + "timeQuota": "Zaman Kotası", + "timeRange": "Zaman Aralığı", + "timeRangeShort": "Zaman", "totalSent": "Toplam Gönderilen", "updateSuccess": "Başarıyla Güncellendi", "useMarkdownEditor": "Önizleme işlevi ile e-posta içeriği yazmak için Markdown editörünü kullanın", "users": "kullanıcılar", + "validOnly": "Sadece Geçerli", + "validSubscriptionsOnly": "Sadece Geçerli Abonelikler", "view": "Görüntüle", "viewAndManageEmailBroadcastTasks": "E-posta yayını görevlerini görüntüle ve yönet", - "viewContent": "İçeriği Görüntüle" + "viewAndManageQuotaTasks": "Kota görevlerini görüntüle ve yönet", + "viewContent": "İçeriği Görüntüle", + "yes": "Evet" } diff --git a/apps/admin/locales/uk-UA/marketing.json b/apps/admin/locales/uk-UA/marketing.json index afb16d1..3891d74 100644 --- a/apps/admin/locales/uk-UA/marketing.json +++ b/apps/admin/locales/uk-UA/marketing.json @@ -1,4 +1,7 @@ { + "active": "Активний", + "activeStatus": "Статус Активності", + "addQuotaForUsers": "Додати Квоту для Підписок", "additional": "Додатково", "additionalRecipientEmails": "Додаткові електронні адреси отримувачів", "additionalRecipients": "Додаткові отримувачі", @@ -6,6 +9,7 @@ "allUsers": "Усі користувачі", "broadcastList": "Список розсилки", "broadcastLogs": "Журнали розсилки", + "calculating": "Обчислюється...", "cancel": "Скасувати", "cannotBeEmpty": "не може бути порожнім", "completed": "Завершено", @@ -13,15 +17,27 @@ "confirmDelete": "Підтвердити видалення", "content": "Зміст електронного листа", "create": "Створити", + "createAndSendQuotaTasks": "Створити та Розподілити Завдання Квоти", "createBroadcast": "Створити розсилку", "createNewEmailBroadcastCampaign": "Створити нову кампанію електронної розсилки", + "createQuotaTask": "Створити Завдання Квоти", + "createQuotaTaskDescription": "Пакетне додавання квоти для відповідних підписок", "createSuccess": "Успішно створено", + "createTask": "Створити Завдання", "createdAt": "Створено о", + "currentValidSubscriptionsOnly": "Тільки Поточні Дійсні Підписки", + "currentValidSubscriptionsOnlyShort": "Тільки Дійсні", "dailyLimit": "Щоденний ліміт повинен бути не менше 1", "dailySendLimit": "Щоденній ліміт відправки", + "dataQuota": "Квота Даних", + "dayQuota": "Денна Квота", + "days": "Дні", "delete": "Видалити", "deleteDescription": "Цю операцію не можна скасувати. Ви впевнені, що хочете видалити?", "deleteSuccess": "Успішно видалено", + "distributionScope": "Область Розподілу", + "distributionScopeDescription": "Виберіть область підписки для отримання квоти", + "distributionSettings": "Налаштування Розподілу", "edit": "Редагувати", "emailAddedToScheduledQueue": "Електронний лист додано до черги запланованих відправлень", "emailBroadcast": "Електронна розсилка", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "Інтервал електронних листів повинен бути не менше 0.1 секунди", "emailMarketing": "Email-маркетинг", "emailTaskManager": "Менеджер завдань електронної пошти", + "endTime": "Час Закінчення", + "enterAmount": "Введіть суму", + "enterPercentage": "Введіть відсоток", "errorMessage": "Повідомлення про помилку", "estimatedRecipients": "Орієнтовна кількість отримувачів", "expiredSubscriptionUsersOnly": "Тільки користувачі з закінченими підписками", "expiredUsers": "Користувачі з закінченими підписками", "failCount": "Кількість невдач", "failed": "Не вдалося", + "failedToCalculateRecipients": "Не вдалося обчислити отримувачів", + "failedToCreateQuotaTask": "Не вдалося створити завдання квоти", "failedToRefreshTaskStatus": "Не вдалося оновити статус завдання", "failedToStopTask": "Не вдалося зупинити завдання", + "fixedAmount": "Фіксована Сума", + "gift": "Подарунок", + "giftAmount": "Сума Подарунка", + "giftRatio": "Співвідношення Подарунка", + "giftRatioDescription": "Відсоток квоти для подарунка на основі споживання підписки (%)", + "giftType": "Тип Суми Подарунка", + "giftValue": "Вартість Подарунка", "inProgress": "В процесі", + "inactive": "Неактивний", + "includeSubscriptionsValidAfter": "Включити підписки, дійсні з цієї дати", + "includeSubscriptionsValidBefore": "Включити підписки, дійсні до цієї дати", "includeUsersRegisteredAfter": "Включити користувачів, зареєстрованих після цієї дати", "includeUsersRegisteredBefore": "Включити користувачів, зареєстрованих до цієї дати", "intervalTimeBetweenEmails": "Часовий інтервал між кожним електронним листом", + "invoiceAmountRatioToGiftAmount": "Співвідношення суми рахунку до суми подарунка", "leaveEmptyForImmediateSend": "Залиште порожнім для миттєвого відправлення", "logList": "Список журналів", "marketingManagement": "Управління маркетингом", "maximumNumberPerDay": "Максимальна кількість електронних листів для відправки на день", + "mustBeGreaterThanOrEqualToZero": "Повинно бути більше або дорівнювати нулю", + "no": "Ні", "noSubscriptionUsersOnly": "Тільки користувачі без підписки", + "noSubscriptions": "Немає Підписок", + "noTimeLimit": "Без Часового Обмеження", "nonSubscribers": "Не підписники", "notStarted": "Не розпочато", + "numberOfDaysForTheQuota": "Кількість днів для продовження терміну дії підписки", "onePerLine": "один на рядок", "only": "тільки", "pending": "В очікуванні", + "percentageAmount": "Відсоткова Сума", + "percentageAmountDescription": "Відсоткова сума подарунка на основі поточної ціни пакета", "pleaseEnter": "Будь ласка, введіть", + "pleaseEnterAmount": "Будь ласка, введіть суму", + "pleaseEnterPercentage": "Будь ласка, введіть відсоток", "pleaseEnterValidEmailAddresses": "Будь ласка, введіть дійсні електронні адреси, по одному на рядок", + "pleaseSelectSubscribers": "Будь ласка, виберіть пакети", "processing": "Обробка...", "progress": "Прогрес", + "quotaBroadcast": "Розподіл Квоти", + "quotaDays": "Продовжити Дні Закінчення", + "quotaService": "Служба Квоти", + "quotaTaskCreatedSuccessfully": "Завдання квоти успішно створено", + "quotaTaskManager": "Менеджер Завдань Квоти", + "quotaTasks": "Завдання Квоти", + "quotaType": "Тип Квоти", + "quotaTypeDescription": "Виберіть тип квоти для розподілу", "recipient": "Отримувач", "recipientEmail": "Електронна адреса отримувача", + "recipientScope": "Область Отримувача", "recipientType": "Тип отримувача", "registrationEndDate": "Дата закінчення реєстрації", + "registrationEndTime": "Час Закінчення Реєстрації", "registrationStartDate": "Дата початку реєстрації", + "registrationStartTime": "Час Початку Реєстрації", + "resetTraffic": "Скинути Трафік", + "resetTrafficDescription": "Чи потрібно скинути використаний трафік підписки", "scheduleSend": "Запланувати відправлення", "scheduledSend": "Заплановане відправлення", "scheduledSendTimeMustBeLater": "Час запланованого відправлення повинен бути пізніше за поточний час", + "scheduledTime": "Запланований Час", + "selectDistributionScope": "Виберіть Область Розподілу", + "selectGiftType": "Виберіть Тип Суми Подарунка", + "selectParametersToCalculate": "Виберіть параметри для обчислення кількості отримувачів", + "selectQuotaType": "Виберіть Тип Квоти", + "selectRecipientScope": "Виберіть Область Отримувача", + "selectRegistrationEndTime": "Виберіть Час Закінчення Реєстрації", + "selectRegistrationStartTime": "Виберіть Час Початку Реєстрації", "selectSendScope": "Виберіть обсяг відправлення", "selectSendTime": "Виберіть час відправлення, залиште порожнім для миттєвого відправлення", + "selectSubscribers": "Виберіть Пакети", + "selectValidSubscriptionsOnly": "Виберіть тільки дійсні підписки", "sendFailed": "Відправка не вдалася, будь ласка, спробуйте ще раз", "sendNow": "Відправити зараз", "sendScope": "Обсяг відправлення", @@ -78,20 +143,33 @@ "sentAt": "Відправлено о", "specificUsers": "Конкретні користувачі", "specificUsersOnly": "Тільки додаткові електронні адреси (пропустити користувачів платформи)", + "startTime": "Час Початку", "status": "Статус", "stop": "Зупинити", "stopped": "Зупинено", "subject": "Тема електронного листа", "subscribedUsers": "Підписані користувачі", "subscribedUsersOnly": "Тільки підписані користувачі", + "subscribers": "Пакети", + "subscriptionCount": "Кількість Підписок", + "subscriptionValidityEndDate": "Дата Закінчення Дійсності Підписки", + "subscriptionValidityStartDate": "Дата Початку Дійсності Підписки", + "subscriptions": "підписки", "successCount": "Кількість успішних відправлень", "taskStatusRefreshed": "Статус завдання оновлено", "taskStoppedSuccessfully": "Завдання успішно зупинено", + "timeQuota": "Часова Квота", + "timeRange": "Часовий Інтервал", + "timeRangeShort": "Час", "totalSent": "Всього відправлено", "updateSuccess": "Успішно оновлено", "useMarkdownEditor": "Використовуйте редактор Markdown для написання змісту електронного листа з функцією попереднього перегляду", "users": "користувачі", + "validOnly": "Тільки Дійсні", + "validSubscriptionsOnly": "Тільки Дійсні Підписки", "view": "Переглянути", "viewAndManageEmailBroadcastTasks": "Переглянути та керувати завданнями електронної розсилки", - "viewContent": "Переглянути зміст" + "viewAndManageQuotaTasks": "Переглянути та керувати завданнями квоти", + "viewContent": "Переглянути зміст", + "yes": "Так" } diff --git a/apps/admin/locales/vi-VN/marketing.json b/apps/admin/locales/vi-VN/marketing.json index 6d8ee97..0b16a81 100644 --- a/apps/admin/locales/vi-VN/marketing.json +++ b/apps/admin/locales/vi-VN/marketing.json @@ -1,4 +1,7 @@ { + "active": "Hoạt động", + "activeStatus": "Trạng thái Hoạt động", + "addQuotaForUsers": "Thêm hạn ngạch cho người dùng", "additional": "Thêm", "additionalRecipientEmails": "Email người nhận bổ sung", "additionalRecipients": "Người nhận bổ sung", @@ -6,6 +9,7 @@ "allUsers": "Tất cả người dùng", "broadcastList": "Danh sách phát sóng", "broadcastLogs": "Nhật ký phát sóng", + "calculating": "Đang tính toán...", "cancel": "Hủy", "cannotBeEmpty": "không được để trống", "completed": "Đã hoàn thành", @@ -13,15 +17,27 @@ "confirmDelete": "Xác nhận xóa", "content": "Nội dung email", "create": "Tạo", + "createAndSendQuotaTasks": "Tạo và Gửi Nhiệm vụ Hạn ngạch", "createBroadcast": "Tạo phát sóng", "createNewEmailBroadcastCampaign": "Tạo chiến dịch phát sóng email mới", + "createQuotaTask": "Tạo Nhiệm vụ Hạn ngạch", + "createQuotaTaskDescription": "Thêm hạn ngạch theo lô cho các đăng ký đủ điều kiện", "createSuccess": "Tạo thành công", + "createTask": "Tạo Nhiệm vụ", "createdAt": "Được tạo vào", + "currentValidSubscriptionsOnly": "Chỉ các Đăng ký Hiện tại Hợp lệ", + "currentValidSubscriptionsOnlyShort": "Chỉ Hợp lệ", "dailyLimit": "Giới hạn hàng ngày phải ít nhất 1", "dailySendLimit": "Giới hạn gửi hàng ngày", + "dataQuota": "Hạn ngạch Dữ liệu", + "dayQuota": "Hạn ngạch Ngày", + "days": "Ngày", "delete": "Xóa", "deleteDescription": "Hành động này không thể hoàn tác. Bạn có chắc chắn muốn xóa không?", "deleteSuccess": "Xóa thành công", + "distributionScope": "Phạm vi Phân phối", + "distributionScopeDescription": "Chọn phạm vi đăng ký để nhận hạn ngạch", + "distributionSettings": "Cài đặt Phân phối", "edit": "Chỉnh sửa", "emailAddedToScheduledQueue": "Email đã được thêm vào hàng đợi gửi theo lịch", "emailBroadcast": "Phát sóng email", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "Khoảng thời gian email phải ít nhất 0.1 giây", "emailMarketing": "Tiếp thị qua email", "emailTaskManager": "Quản lý nhiệm vụ email", + "endTime": "Thời gian Kết thúc", + "enterAmount": "Nhập số tiền", + "enterPercentage": "Nhập tỷ lệ phần trăm", "errorMessage": "Thông báo lỗi", "estimatedRecipients": "Số lượng người nhận ước tính", "expiredSubscriptionUsersOnly": "Chỉ người dùng có đăng ký hết hạn", "expiredUsers": "Người dùng hết hạn", "failCount": "Số lần thất bại", "failed": "Thất bại", + "failedToCalculateRecipients": "Không thể tính toán người nhận", + "failedToCreateQuotaTask": "Không thể tạo nhiệm vụ hạn ngạch", "failedToRefreshTaskStatus": "Không thể làm mới trạng thái nhiệm vụ", "failedToStopTask": "Không thể dừng nhiệm vụ", + "fixedAmount": "Số tiền Cố định", + "gift": "Quà tặng", + "giftAmount": "Số tiền Quà tặng", + "giftRatio": "Tỷ lệ Quà tặng", + "giftRatioDescription": "Tỷ lệ phần trăm hạn ngạch để tặng dựa trên số tiền tiêu thụ đăng ký (%)", + "giftType": "Loại Số tiền Quà tặng", + "giftValue": "Giá trị Quà tặng", "inProgress": "Đang tiến hành", + "inactive": "Không hoạt động", + "includeSubscriptionsValidAfter": "Bao gồm các đăng ký hợp lệ sau ngày này", + "includeSubscriptionsValidBefore": "Bao gồm các đăng ký hợp lệ trước ngày này", "includeUsersRegisteredAfter": "Bao gồm người dùng đã đăng ký sau ngày này", "includeUsersRegisteredBefore": "Bao gồm người dùng đã đăng ký trước ngày này", "intervalTimeBetweenEmails": "Thời gian giữa mỗi email", + "invoiceAmountRatioToGiftAmount": "Tỷ lệ số tiền hóa đơn so với số tiền quà tặng", "leaveEmptyForImmediateSend": "Để trống để gửi ngay lập tức", "logList": "Danh sách nhật ký", "marketingManagement": "Quản lý tiếp thị", "maximumNumberPerDay": "Số lượng email tối đa gửi mỗi ngày", + "mustBeGreaterThanOrEqualToZero": "Phải lớn hơn hoặc bằng không", + "no": "Không", "noSubscriptionUsersOnly": "Chỉ người dùng không có đăng ký", + "noSubscriptions": "Không có Đăng ký", + "noTimeLimit": "Không có Giới hạn Thời gian", "nonSubscribers": "Người không đăng ký", "notStarted": "Chưa bắt đầu", + "numberOfDaysForTheQuota": "Số ngày để gia hạn thời gian hết hạn đăng ký", "onePerLine": "một trên mỗi dòng", "only": "chỉ", "pending": "Đang chờ", + "percentageAmount": "Số tiền Tỷ lệ phần trăm", + "percentageAmountDescription": "Số tiền quà tặng theo tỷ lệ phần trăm dựa trên giá gói hiện tại", "pleaseEnter": "Vui lòng nhập", + "pleaseEnterAmount": "Vui lòng nhập số tiền", + "pleaseEnterPercentage": "Vui lòng nhập tỷ lệ phần trăm", "pleaseEnterValidEmailAddresses": "Vui lòng nhập địa chỉ email hợp lệ, một địa chỉ trên mỗi dòng", + "pleaseSelectSubscribers": "Vui lòng chọn gói", "processing": "Đang xử lý...", "progress": "Tiến độ", + "quotaBroadcast": "Phân phối Hạn ngạch", + "quotaDays": "Gia hạn Ngày Hết hạn", + "quotaService": "Dịch vụ Hạn ngạch", + "quotaTaskCreatedSuccessfully": "Nhiệm vụ hạn ngạch đã được tạo thành công", + "quotaTaskManager": "Quản lý Nhiệm vụ Hạn ngạch", + "quotaTasks": "Nhiệm vụ Hạn ngạch", + "quotaType": "Loại Hạn ngạch", + "quotaTypeDescription": "Chọn loại hạn ngạch để phân phối", "recipient": "Người nhận", "recipientEmail": "Email người nhận", + "recipientScope": "Phạm vi Người nhận", "recipientType": "Loại người nhận", "registrationEndDate": "Ngày kết thúc đăng ký", + "registrationEndTime": "Thời gian Kết thúc Đăng ký", "registrationStartDate": "Ngày bắt đầu đăng ký", + "registrationStartTime": "Thời gian Bắt đầu Đăng ký", + "resetTraffic": "Đặt lại Lưu lượng", + "resetTrafficDescription": "Có đặt lại lưu lượng đã sử dụng của đăng ký không", "scheduleSend": "Lên lịch gửi", "scheduledSend": "Gửi theo lịch", "scheduledSendTimeMustBeLater": "Thời gian gửi theo lịch phải muộn hơn thời gian hiện tại", + "scheduledTime": "Thời gian Đã lên lịch", + "selectDistributionScope": "Chọn Phạm vi Phân phối", + "selectGiftType": "Chọn Loại Số tiền Quà tặng", + "selectParametersToCalculate": "Chọn các tham số để tính toán số lượng người nhận", + "selectQuotaType": "Chọn Loại Hạn ngạch", + "selectRecipientScope": "Chọn Phạm vi Người nhận", + "selectRegistrationEndTime": "Chọn Thời gian Kết thúc Đăng ký", + "selectRegistrationStartTime": "Chọn Thời gian Bắt đầu Đăng ký", "selectSendScope": "Chọn phạm vi gửi", "selectSendTime": "Chọn thời gian gửi, để trống để gửi ngay lập tức", + "selectSubscribers": "Chọn Gói", + "selectValidSubscriptionsOnly": "Chọn chỉ các đăng ký hiện tại hợp lệ", "sendFailed": "Gửi thất bại, vui lòng thử lại", "sendNow": "Gửi ngay", "sendScope": "Phạm vi gửi", @@ -78,20 +143,33 @@ "sentAt": "Đã gửi vào", "specificUsers": "Người dùng cụ thể", "specificUsersOnly": "Chỉ email bổ sung (bỏ qua người dùng nền tảng)", + "startTime": "Thời gian Bắt đầu", "status": "Trạng thái", "stop": "Dừng", "stopped": "Đã dừng", "subject": "Chủ đề email", "subscribedUsers": "Người dùng đã đăng ký", "subscribedUsersOnly": "Chỉ người dùng đã đăng ký", + "subscribers": "Gói", + "subscriptionCount": "Số lượng Đăng ký", + "subscriptionValidityEndDate": "Ngày Hết hạn Hiệu lực Đăng ký", + "subscriptionValidityStartDate": "Ngày Bắt đầu Hiệu lực Đăng ký", + "subscriptions": "đăng ký", "successCount": "Số lần thành công", "taskStatusRefreshed": "Trạng thái nhiệm vụ đã được làm mới", "taskStoppedSuccessfully": "Nhiệm vụ đã dừng thành công", + "timeQuota": "Hạn ngạch Thời gian", + "timeRange": "Khoảng Thời gian", + "timeRangeShort": "Thời gian", "totalSent": "Tổng số đã gửi", "updateSuccess": "Cập nhật thành công", "useMarkdownEditor": "Sử dụng trình soạn thảo Markdown để viết nội dung email với chức năng xem trước", "users": "người dùng", + "validOnly": "Chỉ Hợp lệ", + "validSubscriptionsOnly": "Chỉ các Đăng ký Hợp lệ", "view": "Xem", "viewAndManageEmailBroadcastTasks": "Xem và quản lý các nhiệm vụ phát sóng email", - "viewContent": "Xem nội dung" + "viewAndManageQuotaTasks": "Xem và quản lý các nhiệm vụ hạn ngạch", + "viewContent": "Xem nội dung", + "yes": "Có" } diff --git a/apps/admin/locales/zh-CN/marketing.json b/apps/admin/locales/zh-CN/marketing.json index 60c633e..83dd441 100644 --- a/apps/admin/locales/zh-CN/marketing.json +++ b/apps/admin/locales/zh-CN/marketing.json @@ -1,11 +1,15 @@ { + "active": "激活", + "activeStatus": "激活状态", + "addQuotaForUsers": "为订阅添加配额", "additional": "额外", "additionalRecipientEmails": "额外收件人邮箱", "additionalRecipients": "额外收件人", "additionalRecipientsDescription": "这些邮箱将额外收到邮件,不受上述用户筛选条件影响", - "allUsers": "所有用户", + "allUsers": "全部用户", "broadcastList": "群发列表", "broadcastLogs": "群发日志", + "calculating": "计算中...", "cancel": "取消", "cannotBeEmpty": "不能为空", "completed": "已完成", @@ -13,15 +17,27 @@ "confirmDelete": "确认删除", "content": "邮件内容", "create": "创建", + "createAndSendQuotaTasks": "创建和分发配额任务", "createBroadcast": "创建群发", "createNewEmailBroadcastCampaign": "创建新的邮件群发活动", + "createQuotaTask": "创建配额任务", + "createQuotaTaskDescription": "为符合条件的订阅批量添加配额", "createSuccess": "创建成功", + "createTask": "创建任务", "createdAt": "创建时间", + "currentValidSubscriptionsOnly": "仅当前有效订阅", + "currentValidSubscriptionsOnlyShort": "仅有效", "dailyLimit": "每日限制必须至少为1", "dailySendLimit": "每日发送限制", + "dataQuota": "流量配额", + "dayQuota": "天数配额", + "days": "天", "delete": "删除", "deleteDescription": "此操作无法撤销,确定要删除吗?", "deleteSuccess": "删除成功", + "distributionScope": "分发范围", + "distributionScopeDescription": "选择要接收配额的订阅范围", + "distributionSettings": "分发设置", "edit": "编辑", "emailAddedToScheduledQueue": "邮件已添加到定时发送队列", "emailBroadcast": "邮件群发", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "邮件间隔必须至少为0.1秒", "emailMarketing": "邮件营销", "emailTaskManager": "邮件任务管理", + "endTime": "结束时间", + "enterAmount": "请输入金额", + "enterPercentage": "请输入百分比", "errorMessage": "错误信息", "estimatedRecipients": "预估收件人", "expiredSubscriptionUsersOnly": "仅过期订阅用户", "expiredUsers": "过期用户", "failCount": "失败数量", "failed": "发送失败", + "failedToCalculateRecipients": "计算收件人失败", + "failedToCreateQuotaTask": "创建配额任务失败", "failedToRefreshTaskStatus": "刷新任务状态失败", "failedToStopTask": "停止任务失败", + "fixedAmount": "固定金额", + "gift": "赠送", + "giftAmount": "赠送金额", + "giftRatio": "赠送比例", + "giftRatioDescription": "根据订阅消费金额赠送配额的比例(%)", + "giftType": "赠送金额类型", + "giftValue": "赠送值", "inProgress": "进行中", + "inactive": "未激活", + "includeSubscriptionsValidAfter": "包含在此日期当天或之后有效的订阅", + "includeSubscriptionsValidBefore": "包含在此日期当天或之前有效的订阅", "includeUsersRegisteredAfter": "包含在此日期当天或之后注册的用户", "includeUsersRegisteredBefore": "包含在此日期当天或之前注册的用户", "intervalTimeBetweenEmails": "每封邮件之间的间隔时间", + "invoiceAmountRatioToGiftAmount": "发票金额比例到赠送金额", "leaveEmptyForImmediateSend": "留空表示立即发送", "logList": "日志列表", "marketingManagement": "营销管理", "maximumNumberPerDay": "每天发送邮件的最大数量", + "mustBeGreaterThanOrEqualToZero": "必须大于等于0", + "no": "否", "noSubscriptionUsersOnly": "仅无订阅用户", + "noSubscriptions": "无套餐", + "noTimeLimit": "无时间限制", "nonSubscribers": "非订阅用户", "notStarted": "未开始", + "numberOfDaysForTheQuota": "延长订阅到期时间的天数", "onePerLine": "每行一个", "only": "仅", "pending": "待发送", + "percentageAmount": "百分比金额", + "percentageAmountDescription": "基于当前套餐的价格赠送百分比金额", "pleaseEnter": "请输入", + "pleaseEnterAmount": "请输入金额", + "pleaseEnterPercentage": "请输入百分比", "pleaseEnterValidEmailAddresses": "请输入有效的邮箱地址,每行一个", + "pleaseSelectSubscribers": "请选择套餐", "processing": "处理中...", "progress": "进度", + "quotaBroadcast": "配额分发", + "quotaDays": "天数", + "quotaService": "配额服务", + "quotaTaskCreatedSuccessfully": "配额任务创建成功", + "quotaTaskManager": "配额任务管理", + "quotaTasks": "配额任务", + "quotaType": "配额类型", + "quotaTypeDescription": "选择要分发的配额类型", "recipient": "收件人", "recipientEmail": "收件人邮箱", + "recipientScope": "收件人范围", "recipientType": "收件人类型", "registrationEndDate": "注册结束日期", + "registrationEndTime": "注册结束时间", "registrationStartDate": "注册开始日期", + "registrationStartTime": "注册开始时间", + "resetTraffic": "重置流量", + "resetTrafficDescription": "是否重置订阅的已用流量", "scheduleSend": "定时发送", "scheduledSend": "定时发送", "scheduledSendTimeMustBeLater": "定时发送时间必须晚于当前时间", + "scheduledTime": "计划时间", + "selectDistributionScope": "选择分发范围", + "selectGiftType": "选择赠送金额类型", + "selectParametersToCalculate": "选择参数以计算收件人数量", + "selectQuotaType": "选择配额类型", + "selectRecipientScope": "选择收件人范围", + "selectRegistrationEndTime": "选择注册结束时间", + "selectRegistrationStartTime": "选择注册开始时间", "selectSendScope": "选择发送范围", "selectSendTime": "选择发送时间,留空表示立即发送", + "selectSubscribers": "选择套餐", + "selectValidSubscriptionsOnly": "仅当前有效的订阅", "sendFailed": "发送失败,请重试", "sendNow": "立即发送", "sendScope": "发送范围", @@ -78,20 +143,33 @@ "sentAt": "发送时间", "specificUsers": "指定用户", "specificUsersOnly": "仅额外邮箱(跳过平台用户)", + "startTime": "开始时间", "status": "状态", "stop": "停止", "stopped": "已停止", "subject": "邮件主题", "subscribedUsers": "订阅用户", "subscribedUsersOnly": "仅订阅用户", + "subscribers": "套餐", + "subscriptionCount": "订阅数", + "subscriptionValidityEndDate": "订阅有效期结束日期", + "subscriptionValidityStartDate": "订阅有效期开始日期", + "subscriptions": "个套餐", "successCount": "成功数量", "taskStatusRefreshed": "任务状态已刷新", "taskStoppedSuccessfully": "任务停止成功", + "timeQuota": "时长配额", + "timeRange": "时间范围", + "timeRangeShort": "时间", "totalSent": "总发送数", "updateSuccess": "更新成功", "useMarkdownEditor": "使用Markdown编辑器编写邮件内容,支持预览功能", "users": "用户", + "validOnly": "仅有效", + "validSubscriptionsOnly": "仅有效订阅", "view": "查看", "viewAndManageEmailBroadcastTasks": "查看和管理邮件群发任务", - "viewContent": "查看内容" + "viewAndManageQuotaTasks": "查看和管理配额任务", + "viewContent": "查看内容", + "yes": "是" } diff --git a/apps/admin/locales/zh-HK/marketing.json b/apps/admin/locales/zh-HK/marketing.json index c7904bd..22f8981 100644 --- a/apps/admin/locales/zh-HK/marketing.json +++ b/apps/admin/locales/zh-HK/marketing.json @@ -1,4 +1,7 @@ { + "active": "活躍", + "activeStatus": "活躍狀態", + "addQuotaForUsers": "為訂閱添加配額", "additional": "附加", "additionalRecipientEmails": "附加收件人電郵", "additionalRecipients": "附加收件人", @@ -6,6 +9,7 @@ "allUsers": "所有用戶", "broadcastList": "廣播列表", "broadcastLogs": "廣播日誌", + "calculating": "計算中...", "cancel": "取消", "cannotBeEmpty": "不能為空", "completed": "已完成", @@ -13,15 +17,27 @@ "confirmDelete": "確認刪除", "content": "電郵內容", "create": "創建", + "createAndSendQuotaTasks": "創建並分發配額任務", "createBroadcast": "創建廣播", "createNewEmailBroadcastCampaign": "創建新的電郵廣播活動", + "createQuotaTask": "創建配額任務", + "createQuotaTaskDescription": "批量添加符合條件的訂閱配額", "createSuccess": "創建成功", + "createTask": "創建任務", "createdAt": "創建於", + "currentValidSubscriptionsOnly": "僅限當前有效訂閱", + "currentValidSubscriptionsOnlyShort": "僅限有效", "dailyLimit": "每日限額必須至少為 1", "dailySendLimit": "每日發送限額", + "dataQuota": "數據配額", + "dayQuota": "日配額", + "days": "天", "delete": "刪除", "deleteDescription": "此操作無法撤銷。你確定要刪除嗎?", "deleteSuccess": "刪除成功", + "distributionScope": "分發範圍", + "distributionScopeDescription": "選擇接收配額的訂閱範圍", + "distributionSettings": "分發設置", "edit": "編輯", "emailAddedToScheduledQueue": "電郵已添加到預定發送隊列", "emailBroadcast": "電郵廣播", @@ -32,42 +48,91 @@ "emailIntervalMinimum": "電郵間隔必須至少為 0.1 秒", "emailMarketing": "電郵營銷", "emailTaskManager": "電郵任務管理器", + "endTime": "結束時間", + "enterAmount": "輸入金額", + "enterPercentage": "輸入百分比", "errorMessage": "錯誤信息", "estimatedRecipients": "預估收件人", "expiredSubscriptionUsersOnly": "僅限過期訂閱用戶", "expiredUsers": "過期用戶", "failCount": "失敗次數", "failed": "失敗", + "failedToCalculateRecipients": "計算接收者失敗", + "failedToCreateQuotaTask": "創建配額任務失敗", "failedToRefreshTaskStatus": "無法刷新任務狀態", "failedToStopTask": "無法停止任務", + "fixedAmount": "固定金額", + "gift": "贈品", + "giftAmount": "贈品金額", + "giftRatio": "贈品比例", + "giftRatioDescription": "根據訂閱消費金額贈送的配額百分比 (%)", + "giftType": "贈品金額類型", + "giftValue": "贈品價值", "inProgress": "進行中", + "inactive": "不活躍", + "includeSubscriptionsValidAfter": "包括在此日期之後有效的訂閱", + "includeSubscriptionsValidBefore": "包括在此日期之前有效的訂閱", "includeUsersRegisteredAfter": "包括在此日期之後註冊的用戶", "includeUsersRegisteredBefore": "包括在此日期之前註冊的用戶", "intervalTimeBetweenEmails": "每封電郵之間的間隔時間", + "invoiceAmountRatioToGiftAmount": "發票金額與贈品金額的比例", "leaveEmptyForImmediateSend": "留空以立即發送", "logList": "日誌列表", "marketingManagement": "營銷管理", "maximumNumberPerDay": "每日最多發送電郵數量", + "mustBeGreaterThanOrEqualToZero": "必須大於或等於零", + "no": "否", "noSubscriptionUsersOnly": "僅限無訂閱用戶", + "noSubscriptions": "沒有訂閱", + "noTimeLimit": "無時間限制", "nonSubscribers": "非訂閱者", "notStarted": "尚未開始", + "numberOfDaysForTheQuota": "延長訂閱到期的天數", "onePerLine": "每行一個", "only": "僅限", "pending": "待處理", + "percentageAmount": "百分比金額", + "percentageAmountDescription": "根據當前套餐價格的贈品百分比金額", "pleaseEnter": "請輸入", + "pleaseEnterAmount": "請輸入金額", + "pleaseEnterPercentage": "請輸入百分比", "pleaseEnterValidEmailAddresses": "請輸入有效的電郵地址,每行一個", + "pleaseSelectSubscribers": "請選擇套餐", "processing": "處理中...", "progress": "進度", + "quotaBroadcast": "配額分發", + "quotaDays": "延長到期天數", + "quotaService": "配額服務", + "quotaTaskCreatedSuccessfully": "配額任務創建成功", + "quotaTaskManager": "配額任務管理器", + "quotaTasks": "配額任務", + "quotaType": "配額類型", + "quotaTypeDescription": "選擇要分發的配額類型", "recipient": "收件人", "recipientEmail": "收件人電郵", + "recipientScope": "接收者範圍", "recipientType": "收件人類型", "registrationEndDate": "註冊結束日期", + "registrationEndTime": "註冊結束時間", "registrationStartDate": "註冊開始日期", + "registrationStartTime": "註冊開始時間", + "resetTraffic": "重置流量", + "resetTrafficDescription": "是否重置訂閱使用的流量", "scheduleSend": "預定發送", "scheduledSend": "預定發送", "scheduledSendTimeMustBeLater": "預定發送時間必須晚於當前時間", + "scheduledTime": "預定時間", + "selectDistributionScope": "選擇分發範圍", + "selectGiftType": "選擇贈品金額類型", + "selectParametersToCalculate": "選擇計算接收者數量的參數", + "selectQuotaType": "選擇配額類型", + "selectRecipientScope": "選擇接收者範圍", + "selectRegistrationEndTime": "選擇註冊結束時間", + "selectRegistrationStartTime": "選擇註冊開始時間", "selectSendScope": "選擇發送範圍", "selectSendTime": "選擇發送時間,留空以立即發送", + "selectSubscribers": "選擇套餐", + "selectValidSubscriptionsOnly": "僅選擇當前有效的訂閱", "sendFailed": "發送失敗,請重試", "sendNow": "立即發送", "sendScope": "發送範圍", @@ -78,20 +143,33 @@ "sentAt": "發送於", "specificUsers": "特定用戶", "specificUsersOnly": "僅限附加電郵(跳過平台用戶)", + "startTime": "開始時間", "status": "狀態", "stop": "停止", "stopped": "已停止", "subject": "電郵主題", "subscribedUsers": "已訂閱用戶", "subscribedUsersOnly": "僅限已訂閱用戶", + "subscribers": "套餐", + "subscriptionCount": "訂閱數量", + "subscriptionValidityEndDate": "訂閱有效期結束日期", + "subscriptionValidityStartDate": "訂閱有效期開始日期", + "subscriptions": "訂閱", "successCount": "成功次數", "taskStatusRefreshed": "任務狀態已刷新", "taskStoppedSuccessfully": "任務已成功停止", + "timeQuota": "時間配額", + "timeRange": "時間範圍", + "timeRangeShort": "時間", "totalSent": "總發送數量", "updateSuccess": "更新成功", "useMarkdownEditor": "使用 Markdown 編輯器撰寫電郵內容並提供預覽功能", "users": "用戶", + "validOnly": "僅限有效", + "validSubscriptionsOnly": "僅限有效訂閱", "view": "查看", "viewAndManageEmailBroadcastTasks": "查看和管理電郵廣播任務", - "viewContent": "查看內容" + "viewAndManageQuotaTasks": "查看和管理配額任務", + "viewContent": "查看內容", + "yes": "是" } diff --git a/apps/admin/services/admin/marketing.ts b/apps/admin/services/admin/marketing.ts index 4c31374..ca03b45 100644 --- a/apps/admin/services/admin/marketing.ts +++ b/apps/admin/services/admin/marketing.ts @@ -85,3 +85,54 @@ export async function stopBatchSendEmailTask( ...(options || {}), }); } + +/** Create a quota task POST /v1/admin/marketing/quota/create */ +export async function createQuotaTask( + body: API.CreateQuotaTaskRequest, + options?: { [key: string]: any }, +) { + return request('/v1/admin/marketing/quota/create', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** Query quota task list GET /v1/admin/marketing/quota/list */ +export async function queryQuotaTaskList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.QueryQuotaTaskListParams, + options?: { [key: string]: any }, +) { + return request( + '/v1/admin/marketing/quota/list', + { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }, + ); +} + +/** Query quota task pre-count POST /v1/admin/marketing/quota/pre-count */ +export async function queryQuotaTaskPreCount( + body: API.QueryQuotaTaskPreCountRequest, + options?: { [key: string]: any }, +) { + return request( + '/v1/admin/marketing/quota/pre-count', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }, + ); +} diff --git a/apps/admin/services/admin/typings.d.ts b/apps/admin/services/admin/typings.d.ts index dd0e092..a7ff466 100644 --- a/apps/admin/services/admin/typings.d.ts +++ b/apps/admin/services/admin/typings.d.ts @@ -152,7 +152,7 @@ declare namespace API { subject: string; content: string; recipients: string; - scope: string; + scope: number; register_start_time: number; register_end_time: number; additional: string; @@ -226,7 +226,7 @@ declare namespace API { type CreateBatchSendEmailTaskRequest = { subject: string; content: string; - scope: string; + scope: number; register_start_time?: number; register_end_time?: number; additional?: string; @@ -296,6 +296,17 @@ declare namespace API { enable: boolean; }; + type CreateQuotaTaskRequest = { + subscribers: number[]; + is_active: boolean; + start_time: number; + end_time: number; + reset_traffic: boolean; + days: number; + gift_type: number; + gift_value: number; + }; + type CreateServerRequest = { name: string; country?: string; @@ -854,14 +865,14 @@ declare namespace API { type GetBatchSendEmailTaskListParams = { page: number; size: number; - scope?: string; + scope?: number; status?: number; }; type GetBatchSendEmailTaskListRequest = { page: number; size: number; - scope?: string; + scope?: number; status?: number; }; @@ -995,7 +1006,7 @@ declare namespace API { }; type GetPreSendEmailCountRequest = { - scope: string; + scope: number; register_start_time?: number; register_end_time?: number; }; @@ -1571,6 +1582,45 @@ declare namespace API { list: OrderDetail[]; }; + type QueryQuotaTaskListParams = { + page: number; + size: number; + status?: number; + }; + + type QueryQuotaTaskListRequest = { + page: number; + size: number; + status?: number; + }; + + type QueryQuotaTaskListResponse = { + total: number; + list: QuotaTask[]; + }; + + type QueryQuotaTaskPreCountRequest = { + subscribers: number[]; + is_active: boolean; + start_time: number; + end_time: number; + }; + + type QueryQuotaTaskPreCountResponse = { + count: number; + }; + + type QueryQuotaTaskStatusRequest = { + id: number; + }; + + type QueryQuotaTaskStatusResponse = { + status: number; + current: number; + total: number; + errors: string; + }; + type QuerySubscribeGroupListResponse = { list: SubscribeGroup[]; total: number; @@ -1596,6 +1646,26 @@ declare namespace API { total: number; }; + type QuotaTask = { + id: number; + subscribers: number[]; + is_active: boolean; + start_time: number; + end_time: number; + reset_traffic: boolean; + days: number; + gift_type: number; + gift_value: number; + /** UserSubscribe IDs */ + objects: number[]; + status: number; + total: number; + current: number; + errors: string; + created_at: number; + updated_at: number; + }; + type RechargeOrderRequest = { amount: number; payment: number; diff --git a/apps/user/services/common/index.ts b/apps/user/services/common/index.ts index 61ba129..73b3bda 100644 --- a/apps/user/services/common/index.ts +++ b/apps/user/services/common/index.ts @@ -1,5 +1,5 @@ // @ts-ignore - + // API 更新时间: // API 唯一标识: import * as auth from './auth'; diff --git a/apps/user/services/user/index.ts b/apps/user/services/user/index.ts index 12fe8d0..f988131 100644 --- a/apps/user/services/user/index.ts +++ b/apps/user/services/user/index.ts @@ -1,5 +1,5 @@ // @ts-ignore - + // API 更新时间: // API 唯一标识: import * as announcement from './announcement'; diff --git a/packages/ui/src/custom-components/pro-table/pro-table.tsx b/packages/ui/src/custom-components/pro-table/pro-table.tsx index 25c517d..8b6ae3c 100644 --- a/packages/ui/src/custom-components/pro-table/pro-table.tsx +++ b/packages/ui/src/custom-components/pro-table/pro-table.tsx @@ -94,11 +94,15 @@ export function ProTable< initialFilters, }: ProTableProps) { const [sorting, setSorting] = useState([]); - const [columnFilters, setColumnFilters] = useState(() => - initialFilters - ? (Object.entries(initialFilters).map(([id, value]) => ({ id, value })) as ColumnFiltersState) - : [], - ); + const [columnFilters, setColumnFilters] = useState(() => { + if (initialFilters) { + return Object.entries(initialFilters).map(([id, value]) => ({ + id, + value, + })) as ColumnFiltersState; + } + return []; + }); const [columnVisibility, setColumnVisibility] = useState({}); const [rowSelection, setRowSelection] = useState({}); const [data, setData] = useState([]); @@ -107,7 +111,7 @@ export function ProTable< pageIndex: 0, pageSize: 10, }); - const [loading, setLoading] = useState(false); + const loading = useRef(false); const table = useReactTable({ data, @@ -173,7 +177,8 @@ export function ProTable< }); const fetchData = async () => { - setLoading(true); + if (loading.current) return; + loading.current = true; try { const response = await request( { @@ -187,7 +192,7 @@ export function ProTable< } catch (error) { console.log('Fetch data error:', error); } finally { - setLoading(false); + loading.current = false; } }; const reset = async () => { @@ -209,17 +214,7 @@ export function ProTable< useEffect(() => { fetchData(); // eslint-disable-next-line react-hooks/exhaustive-deps - }, [pagination.pageIndex, pagination.pageSize, columnFilters]); - - useEffect(() => { - if (initialFilters) { - const newFilters = Object.entries(initialFilters).map(([id, value]) => ({ - id, - value, - })) as ColumnFiltersState; - setColumnFilters(newFilters); - } - }, [initialFilters]); + }, [pagination.pageIndex, pagination.pageSize, JSON.stringify(columnFilters)]); const selectedRows = table.getSelectedRowModel().flatRows.map((row) => row.original); const selectedCount = selectedRows.length; @@ -336,7 +331,7 @@ export function ProTable< - {loading && ( + {loading.current && (