done ui
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
"actions": "Actions",
|
||||
"status": "Status",
|
||||
"videos": "Videos",
|
||||
"selected": "{count} selected",
|
||||
"selected": "{{count}} selected",
|
||||
"copy": "Copy"
|
||||
},
|
||||
"app": {
|
||||
@@ -211,6 +211,10 @@
|
||||
"chromecast": {
|
||||
"title": "Chromecast",
|
||||
"description": "Allow casting to Chromecast devices"
|
||||
},
|
||||
"encrytion_m3u8": {
|
||||
"title": "HLS Encryption (m3u8)",
|
||||
"description": "Enable encryption for HLS streams (Anti-download, VIP only)"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -240,10 +244,12 @@
|
||||
"clearDataReject": "Cancel"
|
||||
},
|
||||
"toast": {
|
||||
"deleteAccountSummary": "Account deletion requested",
|
||||
"deleteAccountDetail": "Your account deletion request has been submitted.",
|
||||
"deleteAccountSummary": "Account deleted",
|
||||
"deleteAccountDetail": "Your account and associated data have been permanently deleted.",
|
||||
"clearDataSummary": "Data cleared",
|
||||
"clearDataDetail": "All your data has been permanently deleted."
|
||||
"clearDataDetail": "All your data has been permanently deleted.",
|
||||
"failedSummary": "Action failed",
|
||||
"failedDetail": "Failed to complete the requested action."
|
||||
}
|
||||
},
|
||||
"domainsDns": {
|
||||
@@ -282,13 +288,18 @@
|
||||
"removedSummary": "Domain Removed",
|
||||
"removedDetail": "{domain} has been removed from your whitelist.",
|
||||
"copiedSummary": "Copied",
|
||||
"copiedDetail": "Embed code copied to clipboard."
|
||||
"copiedDetail": "Embed code copied to clipboard.",
|
||||
"failedSummary": "Action failed",
|
||||
"failedDetail": "Failed to load or update domains."
|
||||
}
|
||||
},
|
||||
"adsVast": {
|
||||
"createTemplate": "Create Template",
|
||||
"infoBanner": "VAST (Video Ad Serving Template) is an XML schema for serving ad tags to video players.",
|
||||
"createdOn": "Created {date}",
|
||||
"readOnlyTitle": "Upgrade required",
|
||||
"readOnlyMessage": "Ads & VAST is read-only on the free plan. Upgrade your plan to create, edit, delete, enable, or set default templates.",
|
||||
"defaultBadge": "Default",
|
||||
"createdOn": "Created {{date}}",
|
||||
"emptyTitle": "No VAST templates yet",
|
||||
"emptySubtitle": "Create a template to start monetizing your videos",
|
||||
"formats": {
|
||||
@@ -300,6 +311,10 @@
|
||||
"enabled": "enabled",
|
||||
"disabled": "disabled"
|
||||
},
|
||||
"actions": {
|
||||
"default": "Default",
|
||||
"setDefault": "Set default"
|
||||
},
|
||||
"table": {
|
||||
"template": "Template",
|
||||
"format": "Format",
|
||||
@@ -315,6 +330,10 @@
|
||||
"adFormat": "Ad Format",
|
||||
"adInterval": "Ad Interval (seconds)",
|
||||
"adIntervalPlaceholder": "30",
|
||||
"defaultLabel": "Default template",
|
||||
"defaultCheckbox": "Use this template by default for new videos",
|
||||
"defaultHint": "When enabled, newly created videos automatically use this active template.",
|
||||
"defaultDisabledHint": "Enable this template before setting it as default.",
|
||||
"update": "Update",
|
||||
"create": "Create"
|
||||
},
|
||||
@@ -339,11 +358,17 @@
|
||||
"createdDetail": "VAST template has been created.",
|
||||
"enabledSummary": "Template Enabled",
|
||||
"disabledSummary": "Template Disabled",
|
||||
"defaultUpdatedSummary": "Default Updated",
|
||||
"defaultUpdatedDetail": "{name} is now the default template for new videos.",
|
||||
"upgradeRequiredSummary": "Upgrade required",
|
||||
"upgradeRequiredDetail": "Upgrade your plan to manage Ads & VAST.",
|
||||
"toggleDetail": "{name} has been {state}.",
|
||||
"deletedSummary": "Template Deleted",
|
||||
"deletedDetail": "VAST template has been removed.",
|
||||
"copiedSummary": "Copied",
|
||||
"copiedDetail": "URL copied to clipboard."
|
||||
"copiedDetail": "URL copied to clipboard.",
|
||||
"failedSummary": "Action failed",
|
||||
"failedDetail": "Failed to load or update VAST templates."
|
||||
}
|
||||
},
|
||||
"profile": {
|
||||
@@ -353,7 +378,7 @@
|
||||
"username": "Username",
|
||||
"email": "Email Address",
|
||||
"storageUsage": "Storage Usage",
|
||||
"storageUsedOfLimit": "{used} of {limit} used",
|
||||
"storageUsedOfLimit": "{{used}} of {{limit}} used",
|
||||
"editProfile": "Edit Profile",
|
||||
"changePassword": "Change Password"
|
||||
},
|
||||
@@ -373,26 +398,51 @@
|
||||
},
|
||||
"billing": {
|
||||
"walletBalance": "Wallet Balance",
|
||||
"currentBalance": "Current balance: {balance}",
|
||||
"currentBalance": "Current balance: {{balance}}",
|
||||
"topUp": "Top Up",
|
||||
"availablePlans": "Available Plans",
|
||||
"availablePlansHint": "Choose the plan that best fits your needs",
|
||||
"planStorage": "{storage} Storage",
|
||||
"planDuration": "{duration} Max Duration",
|
||||
"planUploads": "{count} Uploads / day",
|
||||
"planStorage": "{{storage}} Storage",
|
||||
"planDuration": "{{duration}} Max Duration",
|
||||
"planUploads": "{{count}} Uploads / day",
|
||||
"currentPlan": "Current Plan",
|
||||
"processing": "Processing...",
|
||||
"upgrade": "Upgrade",
|
||||
"storage": "Storage",
|
||||
"storageUsedOfLimit": "{used} of {limit} used",
|
||||
"monthlyUploads": "Monthly Uploads",
|
||||
"uploadsUsedOfLimit": "{used} of {limit} uploads",
|
||||
"storageUsedOfLimit": "{{used}} of {{limit}} used",
|
||||
"totalVideos": "Total videos",
|
||||
"totalVideosUsedOfLimit": "{{used}} of {{limit}} videos",
|
||||
"paymentHistory": "Payment History",
|
||||
"paymentHistorySubtitle": "Your past payments and invoices",
|
||||
"noPaymentHistory": "No payment history found.",
|
||||
"download": "Download",
|
||||
"durationMinutes": "{minutes} mins",
|
||||
"durationMinutes": "{{minutes}} mins",
|
||||
"unknownPlan": "Unknown",
|
||||
"walletTopup": "Wallet Top-up",
|
||||
"termOption": "{{months}} month",
|
||||
"termOption_other": "{{months}} months",
|
||||
"paymentMethod": {
|
||||
"wallet": "Wallet balance",
|
||||
"topup": "Top up and pay"
|
||||
},
|
||||
"subscription": {
|
||||
"activeTitle": "Plan active",
|
||||
"activeDescription": " {{plan}} is active until {{date}}",
|
||||
"expiringTitle": "Expiring soon",
|
||||
"expiringDescription": " {{plan}} expires on {{date}}",
|
||||
"expiredTitle": "Plan expired",
|
||||
"expiredDescription": "Your last subscription ended on {{date}}",
|
||||
"freeTitle": "Free access",
|
||||
"freeDescription": "You are currently using the free plan."
|
||||
},
|
||||
"history": {
|
||||
"validUntil": "Valid until {{date}}"
|
||||
},
|
||||
"cycle": {
|
||||
"MONTHLY": "Monthly",
|
||||
"QUARTERLY": "Quarterly",
|
||||
"YEARLY": "Yearly"
|
||||
},
|
||||
"table": {
|
||||
"date": "Date",
|
||||
"amount": "Amount",
|
||||
@@ -405,6 +455,31 @@
|
||||
"failed": "Failed",
|
||||
"pending": "Pending"
|
||||
},
|
||||
"upgradeDialog": {
|
||||
"title": "Upgrade or renew plan",
|
||||
"selectedPlan": "Selected plan",
|
||||
"basePrice": "Base monthly price",
|
||||
"perMonthBase": "Used as the monthly base for the selected term",
|
||||
"termTitle": "Billing term",
|
||||
"termHint": "Choose how long you want to activate or extend this plan.",
|
||||
"totalLabel": "Total",
|
||||
"walletBalanceLabel": "Wallet balance",
|
||||
"shortfallLabel": "Shortfall",
|
||||
"paymentMethodTitle": "How do you want to pay?",
|
||||
"paymentMethodHint": "If your wallet is short, you can top up the difference and complete the plan purchase in one flow.",
|
||||
"walletOptionDescription": "Try using your current wallet balance first.",
|
||||
"topupOptionDescription": "Top up at least {{shortfall}} to complete the purchase.",
|
||||
"walletCoveredHint": "Your wallet balance already covers this purchase.",
|
||||
"walletInsufficientHint": "Your wallet is short by {{shortfall}}. Switch to the top-up option to complete the purchase.",
|
||||
"topupAmountLabel": "Top-up amount",
|
||||
"topupAmountPlaceholder": "Enter top-up amount",
|
||||
"topupAmountHint": "Any amount above {{shortfall}} will stay in your wallet after the upgrade.",
|
||||
"payWithWallet": "Pay with wallet",
|
||||
"topupAndUpgrade": "Top up and upgrade",
|
||||
"choosePlan": "Choose plan",
|
||||
"selecting": "Opening...",
|
||||
"footerHint": "The new term will be added from your current expiry if your subscription is still active."
|
||||
},
|
||||
"topupDialog": {
|
||||
"title": "Top Up Wallet",
|
||||
"subtitle": "Select an amount or enter a custom amount to add to your wallet.",
|
||||
@@ -415,17 +490,19 @@
|
||||
},
|
||||
"toast": {
|
||||
"subscriptionSuccessSummary": "Subscription Successful",
|
||||
"subscriptionSuccessDetail": "Successfully subscribed to {plan}",
|
||||
"subscriptionSuccessDetail": "Successfully activated {{plan}} for {{term}}",
|
||||
"subscriptionFailedSummary": "Subscription Failed",
|
||||
"subscriptionFailedDetail": "Failed to subscribe",
|
||||
"topupSuccessSummary": "Top-up Successful",
|
||||
"topupSuccessDetail": "{amount} has been added to your wallet.",
|
||||
"topupSuccessDetail": "{{amount}} has been added to your wallet.",
|
||||
"topupFailedSummary": "Top-up Failed",
|
||||
"topupFailedDetail": "Failed to process top-up.",
|
||||
"downloadingSummary": "Downloading",
|
||||
"downloadingDetail": "Downloading invoice #{invoiceId}...",
|
||||
"downloadedSummary": "Downloaded",
|
||||
"downloadedDetail": "Invoice #{invoiceId} downloaded successfully"
|
||||
"downloadedDetail": "Invoice #{invoiceId} downloaded successfully",
|
||||
"downloadFailedSummary": "Download Failed",
|
||||
"downloadFailedDetail": "Failed to download invoice."
|
||||
}
|
||||
},
|
||||
"securityConnected": {
|
||||
@@ -561,7 +638,6 @@
|
||||
"totalVideos": "Total Videos",
|
||||
"totalViews": "Total Views",
|
||||
"storageUsed": "Storage Used",
|
||||
"uploadsThisMonth": "Uploads This Month",
|
||||
"trendVsLastMonth": "vs last month"
|
||||
},
|
||||
"quickActions": {
|
||||
@@ -608,7 +684,7 @@
|
||||
},
|
||||
"storage": {
|
||||
"title": "Storage Usage",
|
||||
"usedOfLimit": "{used} of {limit} used",
|
||||
"usedOfLimit": "{{used}} of {{limit}} used",
|
||||
"breakdown": {
|
||||
"videos": "Videos",
|
||||
"thumbnails": "Thumbnails & Assets",
|
||||
@@ -628,19 +704,19 @@
|
||||
"uploadAction": "Upload Video",
|
||||
"uploadDropTitle": "Drop to upload",
|
||||
"uploadDropSubtitle": "Files will be added to the upload queue",
|
||||
"deleteSelectedConfirm": "Delete {count} videos?",
|
||||
"deleteSelectedConfirm": "Delete {{count}} videos?",
|
||||
"deleteSingleConfirm": "Are you sure you want to delete this video?",
|
||||
"retry": "Try Again",
|
||||
"emptyTitle": "No videos found",
|
||||
"emptyDescription": "You haven't uploaded any videos yet. Start by uploading your first video!",
|
||||
"emptyAction": "Upload Video",
|
||||
"duplicateSummary": "Duplicate files skipped",
|
||||
"duplicateDetailOne": "{count} file is already in the queue.",
|
||||
"duplicateDetailOther": "{count} files are already in the queue."
|
||||
"duplicateDetailOne": "{{count}} file is already in the queue.",
|
||||
"duplicateDetailOther": "{{count}} files are already in the queue."
|
||||
},
|
||||
"filters": {
|
||||
"searchPlaceholder": "Search videos...",
|
||||
"rangeOfTotal": "{first}–{last} of {total}",
|
||||
"rangeOfTotal": "{first}–{last} of {{total}}",
|
||||
"previousPageAria": "Previous page",
|
||||
"nextPageAria": "Next page",
|
||||
"allStatus": "All Status",
|
||||
@@ -660,7 +736,7 @@
|
||||
"delete": "Delete"
|
||||
},
|
||||
"bulk": {
|
||||
"selected": "{count} selected",
|
||||
"selected": "{{count}} selected",
|
||||
"delete": "Delete"
|
||||
},
|
||||
"copyModal": {
|
||||
@@ -684,10 +760,13 @@
|
||||
"title": "Edit video",
|
||||
"titleLabel": "Title",
|
||||
"titlePlaceholder": "Enter video title",
|
||||
"descriptionLabel": "Description",
|
||||
"descriptionPlaceholder": "Enter video description",
|
||||
"adTemplateLabel": "Ad Template",
|
||||
"adTemplateNone": "No ads",
|
||||
"adTemplateDefault": "Default",
|
||||
"adTemplateUpgradeHint": "Upgrade your plan to customize ad templates for this video.",
|
||||
"adTemplateNoAdsHint": "No ad template selected. This video will play without ads.",
|
||||
"subtitlesTitle": "Subtitles",
|
||||
"subtitleTracks": "{count} tracks",
|
||||
"subtitleTracks": "{{count}} tracks",
|
||||
"noSubtitles": "No subtitles uploaded yet",
|
||||
"uploadSubtitle": "Upload Subtitle",
|
||||
"subtitleFile": "Subtitle File (VTT, SRT, ASS, SSA)",
|
||||
@@ -774,8 +853,8 @@
|
||||
"payments": "Payments"
|
||||
},
|
||||
"stats": {
|
||||
"total": "{count} notifications",
|
||||
"unread": "{count} unread"
|
||||
"total": "{{count}} notifications",
|
||||
"unread": "{{count}} unread"
|
||||
},
|
||||
"actions": {
|
||||
"markAllRead": "Mark all read",
|
||||
@@ -796,9 +875,9 @@
|
||||
"subtitle": "You're all caught up! Check back later."
|
||||
},
|
||||
"time": {
|
||||
"minutesAgo": "{count} minutes ago",
|
||||
"hoursAgo": "{count} hours ago",
|
||||
"daysAgo": "{count} days ago"
|
||||
"minutesAgo": "{{count}} minutes ago",
|
||||
"hoursAgo": "{{count}} hours ago",
|
||||
"daysAgo": "{{count}} days ago"
|
||||
},
|
||||
"mocks": {
|
||||
"videoProcessed": {
|
||||
@@ -830,23 +909,23 @@
|
||||
"upload": {
|
||||
"dialog": {
|
||||
"title": "Upload Videos",
|
||||
"subtitle": "Add up to {maxItems} videos per batch",
|
||||
"subtitle": "Add up to {{maxItems}} videos per batch",
|
||||
"mode": {
|
||||
"local": "Local",
|
||||
"remote": "Remote URL"
|
||||
},
|
||||
"queueFullTitle": "Queue is full",
|
||||
"queueFullDescription": "Maximum {maxItems} videos per batch. Start or clear the current queue first.",
|
||||
"slotsRemaining": "{remaining} / {maxItems} slots remaining",
|
||||
"queueFullDescription": "Maximum {{maxItems}} videos per batch. Start or clear the current queue first.",
|
||||
"slotsRemaining": "{{remaining}} / {{maxItems}} slots remaining",
|
||||
"formatsHint": "MP4, MOV, MKV · max 10 GB per file",
|
||||
"close": "Close",
|
||||
"startUpload": "Start Upload ({count})",
|
||||
"startUpload": "Start Upload ({{count}})",
|
||||
"duplicateFilesSummary": "Duplicate files skipped",
|
||||
"duplicateFilesDetailOne": "{count} file is already in the queue.",
|
||||
"duplicateFilesDetailOther": "{count} files are already in the queue.",
|
||||
"duplicateFilesDetailOne": "{{count}} file is already in the queue.",
|
||||
"duplicateFilesDetailOther": "{{count}} files are already in the queue.",
|
||||
"duplicateUrlsSummary": "Duplicate URLs skipped",
|
||||
"duplicateUrlsDetailOne": "{count} URL is already in the queue.",
|
||||
"duplicateUrlsDetailOther": "{count} URLs are already in the queue."
|
||||
"duplicateUrlsDetailOne": "{{count}} URL is already in the queue.",
|
||||
"duplicateUrlsDetailOther": "{{count}} URLs are already in the queue."
|
||||
},
|
||||
"dropzone": {
|
||||
"releaseToAdd": "Release to add",
|
||||
@@ -869,7 +948,7 @@
|
||||
"status": {
|
||||
"pending": "Pending",
|
||||
"uploading": "Uploading...",
|
||||
"uploadingThreads": "Uploading · {threads} threads",
|
||||
"uploadingThreads": "Uploading · {{threads}} threads",
|
||||
"processing": "Processing...",
|
||||
"complete": "Done",
|
||||
"error": "Failed",
|
||||
@@ -882,7 +961,7 @@
|
||||
},
|
||||
"bulkActions": {
|
||||
"title": "Quick Settings",
|
||||
"applyToPending": "Apply to {count} pending files",
|
||||
"applyToPending": "Apply to {{count}} pending files",
|
||||
"selectCategory": "Select category...",
|
||||
"category": {
|
||||
"learning": "Learning",
|
||||
@@ -895,15 +974,15 @@
|
||||
},
|
||||
"indicator": {
|
||||
"allDone": "All done",
|
||||
"uploading": "Uploading {count} files...",
|
||||
"waiting": "{count} files waiting",
|
||||
"completeProgress": "{complete} of {total} complete",
|
||||
"uploading": "Uploading {{count}} files...",
|
||||
"waiting": "{{count}} files waiting",
|
||||
"completeProgress": "{{complete}} of {{total}} complete",
|
||||
"start": "Start",
|
||||
"viewVideos": "View Videos",
|
||||
"addMoreFiles": "Add more files"
|
||||
},
|
||||
"errors": {
|
||||
"chunkUploadFailed": "Failed to upload chunk {index}",
|
||||
"chunkUploadFailed": "Failed to upload chunk {{index}}",
|
||||
"mergeFailed": "Merge failed"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"actions": "Hành động",
|
||||
"status": "Trạng thái",
|
||||
"videos": "Video",
|
||||
"selected": "{count} mục đã chọn",
|
||||
"selected": "{{count}} mục đã chọn",
|
||||
"copy": "Sao chép"
|
||||
},
|
||||
"app": {
|
||||
@@ -211,6 +211,10 @@
|
||||
"chromecast": {
|
||||
"title": "Chromecast",
|
||||
"description": "Cho phép cast tới thiết bị Chromecast"
|
||||
},
|
||||
"encrytion_m3u8": {
|
||||
"title": "Mã hóa HLS (m3u8)",
|
||||
"description": "Bật mã hóa cho luồng HLS (Chống download trái phép, chỉ dành cho VIP)"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -240,10 +244,12 @@
|
||||
"clearDataReject": "Hủy"
|
||||
},
|
||||
"toast": {
|
||||
"deleteAccountSummary": "Đã gửi yêu cầu xóa tài khoản",
|
||||
"deleteAccountDetail": "Yêu cầu xóa tài khoản của bạn đã được gửi.",
|
||||
"deleteAccountSummary": "Đã xóa tài khoản",
|
||||
"deleteAccountDetail": "Tài khoản và dữ liệu liên quan của bạn đã bị xóa vĩnh viễn.",
|
||||
"clearDataSummary": "Đã xóa dữ liệu",
|
||||
"clearDataDetail": "Toàn bộ dữ liệu của bạn đã bị xóa vĩnh viễn."
|
||||
"clearDataDetail": "Toàn bộ dữ liệu của bạn đã bị xóa vĩnh viễn.",
|
||||
"failedSummary": "Thao tác thất bại",
|
||||
"failedDetail": "Không thể hoàn tất thao tác đã yêu cầu."
|
||||
}
|
||||
},
|
||||
"domainsDns": {
|
||||
@@ -282,13 +288,18 @@
|
||||
"removedSummary": "Đã xóa tên miền",
|
||||
"removedDetail": "{domain} đã được xóa khỏi whitelist.",
|
||||
"copiedSummary": "Đã sao chép",
|
||||
"copiedDetail": "Đã sao chép mã nhúng vào clipboard."
|
||||
"copiedDetail": "Đã sao chép mã nhúng vào clipboard.",
|
||||
"failedSummary": "Thao tác thất bại",
|
||||
"failedDetail": "Không thể tải hoặc cập nhật danh sách tên miền."
|
||||
}
|
||||
},
|
||||
"adsVast": {
|
||||
"createTemplate": "Tạo mẫu",
|
||||
"infoBanner": "VAST (Video Ad Serving Template) là schema XML dùng để phân phối ad tags cho trình phát video.",
|
||||
"createdOn": "Tạo ngày {date}",
|
||||
"readOnlyTitle": "Cần nâng cấp gói",
|
||||
"readOnlyMessage": "Ads & VAST ở chế độ chỉ đọc với gói free. Hãy nâng cấp gói để tạo, sửa, xóa, bật/tắt hoặc đặt mẫu mặc định.",
|
||||
"defaultBadge": "Mặc định",
|
||||
"createdOn": "Tạo ngày {{date}}",
|
||||
"emptyTitle": "Chưa có mẫu VAST",
|
||||
"emptySubtitle": "Tạo mẫu để bắt đầu kiếm tiền từ video",
|
||||
"formats": {
|
||||
@@ -300,6 +311,10 @@
|
||||
"enabled": "bật",
|
||||
"disabled": "tắt"
|
||||
},
|
||||
"actions": {
|
||||
"default": "Mặc định",
|
||||
"setDefault": "Đặt mặc định"
|
||||
},
|
||||
"table": {
|
||||
"template": "Mẫu",
|
||||
"format": "Định dạng",
|
||||
@@ -315,6 +330,10 @@
|
||||
"adFormat": "Định dạng quảng cáo",
|
||||
"adInterval": "Khoảng cách quảng cáo (giây)",
|
||||
"adIntervalPlaceholder": "30",
|
||||
"defaultLabel": "Mẫu mặc định",
|
||||
"defaultCheckbox": "Dùng mẫu này mặc định cho video mới",
|
||||
"defaultHint": "Khi bật, video mới tạo sẽ tự động dùng mẫu đang active này.",
|
||||
"defaultDisabledHint": "Hãy bật mẫu này trước khi đặt làm mặc định.",
|
||||
"update": "Cập nhật",
|
||||
"create": "Tạo"
|
||||
},
|
||||
@@ -339,11 +358,17 @@
|
||||
"createdDetail": "Mẫu VAST đã được tạo.",
|
||||
"enabledSummary": "Đã bật mẫu",
|
||||
"disabledSummary": "Đã tắt mẫu",
|
||||
"defaultUpdatedSummary": "Đã cập nhật mặc định",
|
||||
"defaultUpdatedDetail": "{name} hiện là mẫu mặc định cho video mới.",
|
||||
"upgradeRequiredSummary": "Cần nâng cấp gói",
|
||||
"upgradeRequiredDetail": "Hãy nâng cấp gói để quản lý Ads & VAST.",
|
||||
"toggleDetail": "{name} đã được {state}.",
|
||||
"deletedSummary": "Đã xóa mẫu",
|
||||
"deletedDetail": "Mẫu VAST đã được gỡ bỏ.",
|
||||
"copiedSummary": "Đã sao chép",
|
||||
"copiedDetail": "Đã sao chép URL vào clipboard."
|
||||
"copiedDetail": "Đã sao chép URL vào clipboard.",
|
||||
"failedSummary": "Thao tác thất bại",
|
||||
"failedDetail": "Không thể tải hoặc cập nhật mẫu VAST."
|
||||
}
|
||||
},
|
||||
"profile": {
|
||||
@@ -353,7 +378,7 @@
|
||||
"username": "Tên người dùng",
|
||||
"email": "Địa chỉ email",
|
||||
"storageUsage": "Dung lượng sử dụng",
|
||||
"storageUsedOfLimit": "Đã dùng {used} trên {limit}",
|
||||
"storageUsedOfLimit": "Đã dùng {{used}} trên {{limit}}",
|
||||
"editProfile": "Chỉnh sửa hồ sơ",
|
||||
"changePassword": "Đổi mật khẩu"
|
||||
},
|
||||
@@ -373,26 +398,50 @@
|
||||
},
|
||||
"billing": {
|
||||
"walletBalance": "Số dư ví",
|
||||
"currentBalance": "Số dư hiện tại: {balance}",
|
||||
"currentBalance": "Số dư hiện tại: {{balance}}",
|
||||
"topUp": "Nạp tiền",
|
||||
"availablePlans": "Các gói khả dụng",
|
||||
"availablePlansHint": "Chọn gói phù hợp nhất với nhu cầu của bạn",
|
||||
"planStorage": "{storage} dung lượng",
|
||||
"planDuration": "{duration} thời lượng tối đa",
|
||||
"planUploads": "{count} lượt tải / ngày",
|
||||
"planStorage": "{{storage}} dung lượng",
|
||||
"planDuration": "{{duration}} thời lượng tối đa",
|
||||
"planUploads": "{{count}} lượt tải / ngày",
|
||||
"currentPlan": "Gói hiện tại",
|
||||
"processing": "Đang xử lý...",
|
||||
"upgrade": "Nâng cấp",
|
||||
"storage": "Dung lượng",
|
||||
"storageUsedOfLimit": "Đã dùng {used} trên {limit}",
|
||||
"monthlyUploads": "Lượt tải tháng này",
|
||||
"uploadsUsedOfLimit": "{used} trên {limit} lượt tải",
|
||||
"storageUsedOfLimit": "Đã dùng {{used}} trên {{limit}}",
|
||||
"totalVideos": "Tổng video",
|
||||
"totalVideosUsedOfLimit": "{{used}} trên {{limit}} video",
|
||||
"paymentHistory": "Lịch sử thanh toán",
|
||||
"paymentHistorySubtitle": "Các khoản thanh toán và hóa đơn trước đây của bạn",
|
||||
"noPaymentHistory": "Không tìm thấy lịch sử thanh toán.",
|
||||
"download": "Tải xuống",
|
||||
"durationMinutes": "{minutes} phút",
|
||||
"durationMinutes": "{{minutes}} phút",
|
||||
"unknownPlan": "Không xác định",
|
||||
"walletTopup": "Nạp tiền ví",
|
||||
"termOption": "{{months}} tháng",
|
||||
"paymentMethod": {
|
||||
"wallet": "Dùng số dư ví",
|
||||
"topup": "Nạp thêm và thanh toán"
|
||||
},
|
||||
"subscription": {
|
||||
"activeTitle": "Gói đang hoạt động",
|
||||
"activeDescription": " {{plan}} có hiệu lực đến {{date}}",
|
||||
"expiringTitle": "Sắp hết hạn",
|
||||
"expiringDescription": " {{plan}} sẽ hết hạn vào {{date}}",
|
||||
"expiredTitle": "Gói đã hết hạn",
|
||||
"expiredDescription": "Gói gần nhất của bạn đã kết thúc vào {{date}}",
|
||||
"freeTitle": "Gói miễn phí",
|
||||
"freeDescription": "Bạn hiện đang sử dụng gói miễn phí."
|
||||
},
|
||||
"history": {
|
||||
"validUntil": "Hiệu lực đến {{date}}"
|
||||
},
|
||||
"cycle": {
|
||||
"MONTHLY": "Tháng",
|
||||
"QUARTERLY": "Quý",
|
||||
"YEARLY": "Năm"
|
||||
},
|
||||
"table": {
|
||||
"date": "Ngày",
|
||||
"amount": "Số tiền",
|
||||
@@ -405,6 +454,31 @@
|
||||
"failed": "Thất bại",
|
||||
"pending": "Đang chờ"
|
||||
},
|
||||
"upgradeDialog": {
|
||||
"title": "Nâng cấp hoặc gia hạn gói",
|
||||
"selectedPlan": "Gói đã chọn",
|
||||
"basePrice": "Giá cơ bản mỗi tháng",
|
||||
"perMonthBase": "Được dùng làm giá cơ sở cho kỳ hạn bạn chọn",
|
||||
"termTitle": "Kỳ hạn thanh toán",
|
||||
"termHint": "Chọn thời gian bạn muốn kích hoạt hoặc gia hạn gói này.",
|
||||
"totalLabel": "Tổng tiền",
|
||||
"walletBalanceLabel": "Số dư ví",
|
||||
"shortfallLabel": "Còn thiếu",
|
||||
"paymentMethodTitle": "Bạn muốn thanh toán theo cách nào?",
|
||||
"paymentMethodHint": "Nếu ví chưa đủ, bạn có thể nạp phần thiếu và hoàn tất mua gói trong cùng một flow.",
|
||||
"walletOptionDescription": "Thử dùng số dư ví hiện tại trước.",
|
||||
"topupOptionDescription": "Nạp ít nhất {{shortfall}} để hoàn tất giao dịch.",
|
||||
"walletCoveredHint": "Số dư ví hiện tại đã đủ để thanh toán gói này.",
|
||||
"walletInsufficientHint": "Ví của bạn còn thiếu {{shortfall}}. Hãy chuyển sang phương án nạp thêm để hoàn tất giao dịch.",
|
||||
"topupAmountLabel": "Số tiền nạp thêm",
|
||||
"topupAmountPlaceholder": "Nhập số tiền muốn nạp",
|
||||
"topupAmountHint": "Phần tiền nạp vượt quá {{shortfall}} sẽ được giữ lại trong ví sau khi nâng cấp.",
|
||||
"payWithWallet": "Thanh toán bằng ví",
|
||||
"topupAndUpgrade": "Nạp thêm và nâng cấp",
|
||||
"choosePlan": "Chọn gói này",
|
||||
"selecting": "Đang mở...",
|
||||
"footerHint": "Nếu gói hiện tại vẫn còn hạn, kỳ hạn mới sẽ được cộng tiếp từ ngày hết hạn hiện tại."
|
||||
},
|
||||
"topupDialog": {
|
||||
"title": "Nạp tiền vào ví",
|
||||
"subtitle": "Chọn số tiền hoặc nhập số tiền tùy chỉnh để nạp vào ví.",
|
||||
@@ -415,17 +489,19 @@
|
||||
},
|
||||
"toast": {
|
||||
"subscriptionSuccessSummary": "Đăng ký thành công",
|
||||
"subscriptionSuccessDetail": "Đăng ký gói {plan} thành công",
|
||||
"subscriptionSuccessDetail": "Đã kích hoạt {{plan}} trong {{term}}",
|
||||
"subscriptionFailedSummary": "Đăng ký thất bại",
|
||||
"subscriptionFailedDetail": "Không thể đăng ký gói",
|
||||
"topupSuccessSummary": "Nạp tiền thành công",
|
||||
"topupSuccessDetail": "{amount} đã được cộng vào ví của bạn.",
|
||||
"topupSuccessDetail": "{{amount}} đã được cộng vào ví của bạn.",
|
||||
"topupFailedSummary": "Nạp tiền thất bại",
|
||||
"topupFailedDetail": "Không thể xử lý nạp tiền.",
|
||||
"downloadingSummary": "Đang tải",
|
||||
"downloadingDetail": "Đang tải hóa đơn #{invoiceId}...",
|
||||
"downloadedSummary": "Đã tải xong",
|
||||
"downloadedDetail": "Hóa đơn #{invoiceId} đã được tải thành công"
|
||||
"downloadedDetail": "Hóa đơn #{invoiceId} đã được tải thành công",
|
||||
"downloadFailedSummary": "Tải xuống thất bại",
|
||||
"downloadFailedDetail": "Không thể tải hóa đơn."
|
||||
}
|
||||
},
|
||||
"securityConnected": {
|
||||
@@ -561,7 +637,6 @@
|
||||
"totalVideos": "Tổng số video",
|
||||
"totalViews": "Tổng lượt xem",
|
||||
"storageUsed": "Dung lượng đã dùng",
|
||||
"uploadsThisMonth": "Lượt tải lên tháng này",
|
||||
"trendVsLastMonth": "so với tháng trước"
|
||||
},
|
||||
"quickActions": {
|
||||
@@ -608,7 +683,7 @@
|
||||
},
|
||||
"storage": {
|
||||
"title": "Sử dụng dung lượng",
|
||||
"usedOfLimit": "Đã dùng {used} trên {limit}",
|
||||
"usedOfLimit": "Đã dùng {{used}} trên {{limit}}",
|
||||
"breakdown": {
|
||||
"videos": "Video",
|
||||
"thumbnails": "Thumbnail & tài nguyên",
|
||||
@@ -628,15 +703,15 @@
|
||||
"uploadAction": "Tải video lên",
|
||||
"uploadDropTitle": "Thả để tải lên",
|
||||
"uploadDropSubtitle": "Tệp sẽ được thêm vào hàng đợi tải lên",
|
||||
"deleteSelectedConfirm": "Xóa {count} video?",
|
||||
"deleteSelectedConfirm": "Xóa {{count}} video?",
|
||||
"deleteSingleConfirm": "Bạn có chắc muốn xóa video này?",
|
||||
"retry": "Thử lại",
|
||||
"emptyTitle": "Không có video",
|
||||
"emptyDescription": "Bạn chưa tải video nào. Hãy bắt đầu với video đầu tiên!",
|
||||
"emptyAction": "Tải video lên",
|
||||
"duplicateSummary": "Đã bỏ qua tệp trùng lặp",
|
||||
"duplicateDetailOne": "{count} tệp đã có trong hàng đợi.",
|
||||
"duplicateDetailOther": "{count} tệp đã có trong hàng đợi."
|
||||
"duplicateDetailOne": "{{count}} tệp đã có trong hàng đợi.",
|
||||
"duplicateDetailOther": "{{count}} tệp đã có trong hàng đợi."
|
||||
},
|
||||
"filters": {
|
||||
"searchPlaceholder": "Tìm kiếm video...",
|
||||
@@ -660,7 +735,7 @@
|
||||
"delete": "Xóa"
|
||||
},
|
||||
"bulk": {
|
||||
"selected": "{count} mục đã chọn",
|
||||
"selected": "{{count}} mục đã chọn",
|
||||
"delete": "Xóa"
|
||||
},
|
||||
"copyModal": {
|
||||
@@ -684,10 +759,13 @@
|
||||
"title": "Chỉnh sửa video",
|
||||
"titleLabel": "Tiêu đề",
|
||||
"titlePlaceholder": "Nhập tiêu đề video",
|
||||
"descriptionLabel": "Mô tả",
|
||||
"descriptionPlaceholder": "Nhập mô tả video",
|
||||
"adTemplateLabel": "Mẫu quảng cáo",
|
||||
"adTemplateNone": "Không có quảng cáo",
|
||||
"adTemplateDefault": "Mặc định",
|
||||
"adTemplateUpgradeHint": "Nâng cấp gói để tùy chỉnh mẫu quảng cáo cho video này.",
|
||||
"adTemplateNoAdsHint": "Chưa chọn mẫu quảng cáo. Video này sẽ phát không có quảng cáo.",
|
||||
"subtitlesTitle": "Phụ đề",
|
||||
"subtitleTracks": "{count} track",
|
||||
"subtitleTracks": "{{count}} track",
|
||||
"noSubtitles": "Chưa có phụ đề",
|
||||
"uploadSubtitle": "Tải phụ đề",
|
||||
"subtitleFile": "Tệp phụ đề (VTT, SRT, ASS, SSA)",
|
||||
@@ -774,8 +852,8 @@
|
||||
"payments": "Thanh toán"
|
||||
},
|
||||
"stats": {
|
||||
"total": "{count} thông báo",
|
||||
"unread": "{count} chưa đọc"
|
||||
"total": "{{count}} thông báo",
|
||||
"unread": "{{count}} chưa đọc"
|
||||
},
|
||||
"actions": {
|
||||
"markAllRead": "Đánh dấu đã đọc tất cả",
|
||||
@@ -796,9 +874,9 @@
|
||||
"subtitle": "Bạn đã xem hết! Hãy quay lại sau."
|
||||
},
|
||||
"time": {
|
||||
"minutesAgo": "{count} phút trước",
|
||||
"hoursAgo": "{count} giờ trước",
|
||||
"daysAgo": "{count} ngày trước"
|
||||
"minutesAgo": "{{count}} phút trước",
|
||||
"hoursAgo": "{{count}} giờ trước",
|
||||
"daysAgo": "{{count}} ngày trước"
|
||||
},
|
||||
"mocks": {
|
||||
"videoProcessed": {
|
||||
@@ -830,23 +908,23 @@
|
||||
"upload": {
|
||||
"dialog": {
|
||||
"title": "Tải video lên",
|
||||
"subtitle": "Thêm tối đa {maxItems} video mỗi đợt",
|
||||
"subtitle": "Thêm tối đa {{maxItems}} video mỗi đợt",
|
||||
"mode": {
|
||||
"local": "Tệp cục bộ",
|
||||
"remote": "URL từ xa"
|
||||
},
|
||||
"queueFullTitle": "Hàng đợi đã đầy",
|
||||
"queueFullDescription": "Tối đa {maxItems} video mỗi đợt. Hãy bắt đầu hoặc xóa hàng đợi hiện tại trước.",
|
||||
"slotsRemaining": "Còn {remaining} / {maxItems} vị trí",
|
||||
"queueFullDescription": "Tối đa {{maxItems}} video mỗi đợt. Hãy bắt đầu hoặc xóa hàng đợi hiện tại trước.",
|
||||
"slotsRemaining": "Còn {{remaining}} / {{maxItems}} vị trí",
|
||||
"formatsHint": "MP4, MOV, MKV · tối đa 10 GB mỗi tệp",
|
||||
"close": "Đóng",
|
||||
"startUpload": "Bắt đầu tải ({count})",
|
||||
"startUpload": "Bắt đầu tải ({{count}})",
|
||||
"duplicateFilesSummary": "Đã bỏ qua tệp trùng lặp",
|
||||
"duplicateFilesDetailOne": "{count} tệp đã có trong hàng đợi.",
|
||||
"duplicateFilesDetailOther": "{count} tệp đã có trong hàng đợi.",
|
||||
"duplicateFilesDetailOne": "{{count}} tệp đã có trong hàng đợi.",
|
||||
"duplicateFilesDetailOther": "{{count}} tệp đã có trong hàng đợi.",
|
||||
"duplicateUrlsSummary": "Đã bỏ qua URL trùng lặp",
|
||||
"duplicateUrlsDetailOne": "{count} URL đã có trong hàng đợi.",
|
||||
"duplicateUrlsDetailOther": "{count} URL đã có trong hàng đợi."
|
||||
"duplicateUrlsDetailOne": "{{count}} URL đã có trong hàng đợi.",
|
||||
"duplicateUrlsDetailOther": "{{count}} URL đã có trong hàng đợi."
|
||||
},
|
||||
"dropzone": {
|
||||
"releaseToAdd": "Thả để thêm",
|
||||
@@ -869,7 +947,7 @@
|
||||
"status": {
|
||||
"pending": "Chờ tải",
|
||||
"uploading": "Đang tải lên...",
|
||||
"uploadingThreads": "Đang tải · {threads} luồng",
|
||||
"uploadingThreads": "Đang tải · {{threads}} luồng",
|
||||
"processing": "Đang xử lý...",
|
||||
"complete": "Hoàn tất",
|
||||
"error": "Thất bại",
|
||||
@@ -882,7 +960,7 @@
|
||||
},
|
||||
"bulkActions": {
|
||||
"title": "Thiết lập nhanh",
|
||||
"applyToPending": "Áp dụng cho {count} tệp đang chờ",
|
||||
"applyToPending": "Áp dụng cho {{count}} tệp đang chờ",
|
||||
"selectCategory": "Chọn danh mục...",
|
||||
"category": {
|
||||
"learning": "Học tập",
|
||||
@@ -895,15 +973,15 @@
|
||||
},
|
||||
"indicator": {
|
||||
"allDone": "Hoàn tất",
|
||||
"uploading": "Đang tải lên {count} tệp...",
|
||||
"waiting": "{count} tệp đang chờ",
|
||||
"completeProgress": "Hoàn tất {complete} / {total}",
|
||||
"uploading": "Đang tải lên {{count}} tệp...",
|
||||
"waiting": "{{count}} tệp đang chờ",
|
||||
"completeProgress": "Hoàn tất {{complete}} / {{total}}",
|
||||
"start": "Bắt đầu",
|
||||
"viewVideos": "Xem video",
|
||||
"addMoreFiles": "Thêm tệp"
|
||||
},
|
||||
"errors": {
|
||||
"chunkUploadFailed": "Không thể tải phần {index}",
|
||||
"chunkUploadFailed": "Không thể tải phần {{index}}",
|
||||
"mergeFailed": "Gộp tệp thất bại"
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user