- Remove BillingWalletRow.vue component. - Update PlayerConfigsTable.vue to use JSX syntax and improve rendering logic. - Enhance auth store with currency and date formatting utilities. - Add ListIcon and MoneyCheck icon components. - Implement PaymentHistory component for displaying payment history with download functionality. - Create PlanSelection component for selecting billing plans with improved UI. - Introduce UpgradeDialog component for handling plan upgrades and payment methods.
1284 lines
49 KiB
JSON
1284 lines
49 KiB
JSON
{
|
||
"common": {
|
||
"save": "Save",
|
||
"close": "Close",
|
||
"cancel": "Cancel",
|
||
"connect": "Connect",
|
||
"disconnect": "Disconnect",
|
||
"upload": "Upload",
|
||
"loading": "Loading",
|
||
"actions": "Actions",
|
||
"status": "Status",
|
||
"videos": "Videos",
|
||
"selected": "{{count}} selected",
|
||
"copy": "Copy"
|
||
},
|
||
"app": {
|
||
"name": "EcoStream"
|
||
},
|
||
"auth": {
|
||
"layout": {
|
||
"login": {
|
||
"headTitle": "Login to your account",
|
||
"title": "Sign in to your dashboard",
|
||
"subtitle": "Please enter your details to sign in."
|
||
},
|
||
"signup": {
|
||
"headTitle": "Create your account",
|
||
"title": "Create your account",
|
||
"subtitle": "Please fill in the information to create your account."
|
||
},
|
||
"forgot": {
|
||
"headTitle": "Reset your password",
|
||
"title": "Forgot your password?",
|
||
"subtitle": "Enter your email address and we'll send you a link to reset your password."
|
||
}
|
||
},
|
||
"login": {
|
||
"email": "Email",
|
||
"password": "Password",
|
||
"forgotPassword": "Forgot password?",
|
||
"signIn": "Sign in",
|
||
"google": "Google",
|
||
"noAccount": "Don't have an account?",
|
||
"signUp": "Sign up",
|
||
"errors": {
|
||
"emailRequired": "Email is required.",
|
||
"emailInvalid": "Invalid email address.",
|
||
"passwordRequired": "Password is required."
|
||
}
|
||
},
|
||
"signup": {
|
||
"fullName": "Full Name",
|
||
"email": "Email address",
|
||
"password": "Password",
|
||
"passwordHint": "Must be at least 8 characters.",
|
||
"createAccount": "Create Account",
|
||
"alreadyHave": "Already have an account?",
|
||
"signIn": "Sign in",
|
||
"placeholders": {
|
||
"name": "John Doe",
|
||
"email": "you@example.com",
|
||
"password": "Create a password"
|
||
},
|
||
"errors": {
|
||
"nameRequired": "Name is required.",
|
||
"emailRequired": "Email is required.",
|
||
"emailInvalid": "Invalid email address.",
|
||
"passwordMin": "Password must be at least 8 characters."
|
||
}
|
||
},
|
||
"forgot": {
|
||
"description": "Enter your email address and we'll send you a link to reset your password.",
|
||
"email": "Email address",
|
||
"sendResetLink": "Send Reset Link",
|
||
"backToSignIn": "Back to Sign in",
|
||
"placeholders": {
|
||
"email": "you@example.com"
|
||
},
|
||
"errors": {
|
||
"emailRequired": "Email is required.",
|
||
"emailInvalid": "Invalid email address."
|
||
},
|
||
"toast": {
|
||
"successSummary": "Success",
|
||
"successDetail": "Reset link sent",
|
||
"errorSummary": "Error",
|
||
"errorDetail": "An error occurred"
|
||
}
|
||
},
|
||
"errors": {
|
||
"loginNoUserData": "Login failed: No user data received",
|
||
"loginFailed": "Login failed: {error}",
|
||
"registrationFailedFallback": "Registration failed",
|
||
"registrationFailed": "Registration failed: {error}",
|
||
"updateProfileFailed": "Failed to update profile: {error}",
|
||
"changePasswordFailed": "Failed to change password: {error}",
|
||
"unknown": "Unknown error"
|
||
}
|
||
},
|
||
"nav": {
|
||
"overview": "Overview",
|
||
"videos": "Videos",
|
||
"notification": "Notification",
|
||
"settings": "Settings"
|
||
},
|
||
"settings": {
|
||
"menu": {
|
||
"securityGroup": "Security",
|
||
"preferencesGroup": "Preferences",
|
||
"integrationsGroup": "Integrations",
|
||
"dangerGroup": "Danger Zone",
|
||
"security": "Security",
|
||
"billing": "Billing & Plans",
|
||
"notifications": "Notifications",
|
||
"playerGroup": "Player",
|
||
"playerConfigs": "Player Configs",
|
||
"domains": "Allowed Domains",
|
||
"ads": "Ads & VAST",
|
||
"danger": "Danger Zone"
|
||
},
|
||
"content": {
|
||
"fallbackTitle": "Settings",
|
||
"fallbackSubtitle": "Manage your account settings and preferences.",
|
||
"security": {
|
||
"title": "Security & Connected Apps",
|
||
"subtitle": "Manage your security settings and connected applications."
|
||
},
|
||
"notifications": {
|
||
"title": "Notifications",
|
||
"subtitle": "Choose how you want to receive notifications and updates."
|
||
},
|
||
"preferences": {
|
||
"title": "Preferences",
|
||
"subtitle": "Manage your account preferences and notification channels."
|
||
},
|
||
"billing": {
|
||
"title": "Billing & Plans",
|
||
"subtitle": "Your current subscription and billing information."
|
||
},
|
||
"domains": {
|
||
"title": "Allowed Domains",
|
||
"subtitle": "Add domains to your whitelist to allow embedding content via iframe."
|
||
},
|
||
"ads": {
|
||
"title": "Ads & VAST",
|
||
"subtitle": "Create and manage VAST ad templates for your videos."
|
||
},
|
||
"playerConfigs": {
|
||
"title": "Player Configs",
|
||
"subtitle": "Create and manage player configurations for your videos."
|
||
},
|
||
"danger": {
|
||
"title": "Danger Zone",
|
||
"subtitle": "Irreversible and destructive actions. Be careful!"
|
||
}
|
||
},
|
||
"notificationSettings": {
|
||
"saveChanges": "Save Changes",
|
||
"types": {
|
||
"email": {
|
||
"title": "Email Notifications",
|
||
"description": "Receive updates and alerts via email"
|
||
},
|
||
"push": {
|
||
"title": "Push Notifications",
|
||
"description": "Get instant alerts in your browser"
|
||
},
|
||
"marketing": {
|
||
"title": "Marketing Emails",
|
||
"description": "Receive promotions and product updates"
|
||
},
|
||
"telegram": {
|
||
"title": "Telegram Notifications",
|
||
"description": "Receive updates via Telegram"
|
||
}
|
||
},
|
||
"toast": {
|
||
"savedSummary": "Settings Saved",
|
||
"savedDetail": "Your notification settings have been saved.",
|
||
"failedSummary": "Save Failed",
|
||
"failedDetail": "Failed to save settings."
|
||
}
|
||
},
|
||
"playerSettings": {
|
||
"toast": {
|
||
"savedSummary": "Settings Saved",
|
||
"savedDetail": "Your player settings have been saved.",
|
||
"failedSummary": "Save Failed",
|
||
"failedDetail": "Failed to save settings."
|
||
},
|
||
"items": {
|
||
"autoplay": {
|
||
"title": "Autoplay",
|
||
"description": "Automatically start videos when loaded"
|
||
},
|
||
"loop": {
|
||
"title": "Loop",
|
||
"description": "Repeat video when it ends"
|
||
},
|
||
"muted": {
|
||
"title": "Muted",
|
||
"description": "Start videos with sound muted"
|
||
},
|
||
"showControls": {
|
||
"title": "Show Controls",
|
||
"description": "Display player controls (play, pause, volume)"
|
||
},
|
||
"pip": {
|
||
"title": "Picture in Picture",
|
||
"description": "Enable Picture-in-Picture mode"
|
||
},
|
||
"airplay": {
|
||
"title": "AirPlay",
|
||
"description": "Allow streaming to Apple devices via AirPlay"
|
||
},
|
||
"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)"
|
||
}
|
||
}
|
||
},
|
||
"dangerZone": {
|
||
"deleteAccount": {
|
||
"title": "Delete Account",
|
||
"description": "Permanently delete your account and all associated data.",
|
||
"button": "Delete Account"
|
||
},
|
||
"clearData": {
|
||
"title": "Clear All Data",
|
||
"description": "Remove all your videos, playlists, and activity history.",
|
||
"button": "Clear Data"
|
||
},
|
||
"warning": {
|
||
"title": "Warning",
|
||
"description": "These actions are permanent and cannot be undone. Make sure you have backed up any important data before proceeding."
|
||
},
|
||
"confirm": {
|
||
"deleteAccountMessage": "Are you sure you want to delete your account? This action cannot be undone.",
|
||
"deleteAccountHeader": "Delete Account",
|
||
"deleteAccountAccept": "Delete",
|
||
"deleteAccountReject": "Cancel",
|
||
"clearDataMessage": "Are you sure you want to clear all your data? This action cannot be undone.",
|
||
"clearDataHeader": "Clear All Data",
|
||
"clearDataAccept": "Clear",
|
||
"clearDataReject": "Cancel"
|
||
},
|
||
"toast": {
|
||
"deleteAccountSummary": "Account deleted",
|
||
"deleteAccountDetail": "Your account and associated data have been permanently deleted.",
|
||
"clearDataSummary": "Data cleared",
|
||
"clearDataDetail": "All your data has been permanently deleted.",
|
||
"failedSummary": "Action failed",
|
||
"failedDetail": "Failed to complete the requested action."
|
||
}
|
||
},
|
||
"domainsDns": {
|
||
"addDomain": "Add Domain",
|
||
"infoBanner": "Only domains in your whitelist can embed your content using iframe.",
|
||
"table": {
|
||
"domain": "Domain",
|
||
"addedDate": "Added Date"
|
||
},
|
||
"emptyTitle": "No domains in whitelist",
|
||
"emptySubtitle": "Add a domain to allow iframe embedding",
|
||
"embedCodeTitle": "Embed Code",
|
||
"copyCode": "Copy Code",
|
||
"embedCodeHint": "Use this iframe code to embed content on your whitelisted domains.",
|
||
"dialog": {
|
||
"title": "Add Domain to Whitelist",
|
||
"domainLabel": "Domain Name",
|
||
"domainPlaceholder": "example.com",
|
||
"domainHint": "Enter domain without www or https:// (e.g., example.com)",
|
||
"importantTitle": "Important",
|
||
"importantDetail": "Only add domains that you own and control."
|
||
},
|
||
"confirm": {
|
||
"removeMessage": "Are you sure you want to remove {domain} from your whitelist? Embedded iframes from this domain will no longer work.",
|
||
"removeHeader": "Remove Domain",
|
||
"removeAccept": "Remove",
|
||
"removeReject": "Cancel"
|
||
},
|
||
"toast": {
|
||
"invalidSummary": "Invalid Domain",
|
||
"invalidDetail": "Please enter a valid domain name.",
|
||
"duplicateSummary": "Domain Already Added",
|
||
"duplicateDetail": "This domain is already in your whitelist.",
|
||
"addedSummary": "Domain Added",
|
||
"addedDetail": "{domain} has been added to your whitelist.",
|
||
"removedSummary": "Domain Removed",
|
||
"removedDetail": "{domain} has been removed from your whitelist.",
|
||
"copiedSummary": "Copied",
|
||
"copiedDetail": "Embed code copied to clipboard.",
|
||
"failedSummary": "Action failed",
|
||
"failedDetail": "Failed to load or update domains."
|
||
}
|
||
},
|
||
"playerConfigs": {
|
||
"createConfig": "Create Config",
|
||
"infoBanner": "Player configs let you customize playback behavior such as autoplay, loop, controls, and casting features.",
|
||
"freePlanTitle": "Free plan limit",
|
||
"freePlanMessage": "Free accounts can create and manage 1 player config. After you create one, create is disabled until you delete it.",
|
||
"reconciliationTitle": "Too many configs for free plan",
|
||
"reconciliationMessage": "Your account still has more than 1 player config from a previous paid plan. Delete extra configs until only 1 remains to edit, enable, or set a default again.",
|
||
"readOnlyTitle": "Free plan limit",
|
||
"readOnlyMessage": "Free accounts can manage 1 player config. Delete extra configs after downgrade to continue editing.",
|
||
"defaultBadge": "Default",
|
||
"createdOn": "Created {{date}}",
|
||
"emptyTitle": "No player configs yet",
|
||
"emptySubtitle": "Create your first config to customize video playback",
|
||
"items": {
|
||
"autoplay": {
|
||
"title": "Autoplay",
|
||
"description": "Automatically start videos when loaded"
|
||
},
|
||
"loop": {
|
||
"title": "Loop",
|
||
"description": "Repeat video when it ends"
|
||
},
|
||
"muted": {
|
||
"title": "Muted",
|
||
"description": "Start videos with sound muted"
|
||
},
|
||
"showControls": {
|
||
"title": "Show Controls",
|
||
"description": "Display player controls during playback"
|
||
},
|
||
"pip": {
|
||
"title": "Picture in Picture",
|
||
"description": "Enable Picture-in-Picture mode"
|
||
},
|
||
"airplay": {
|
||
"title": "AirPlay",
|
||
"description": "Allow streaming to Apple devices via AirPlay"
|
||
},
|
||
"chromecast": {
|
||
"title": "Chromecast",
|
||
"description": "Allow casting to Chromecast devices"
|
||
},
|
||
"encrytionM3u8": {
|
||
"title": "HLS Encryption (m3u8)",
|
||
"description": "Enable encryption for HLS streams."
|
||
}
|
||
},
|
||
"badges": {
|
||
"autoplay": "Autoplay",
|
||
"loop": "Loop",
|
||
"muted": "Muted",
|
||
"controls": "Controls",
|
||
"pip": "PiP",
|
||
"airplay": "AirPlay",
|
||
"chromecast": "Chromecast",
|
||
"encrytionM3u8": "Encrypted HLS",
|
||
"logo": "Logo"
|
||
},
|
||
"state": {
|
||
"enabled": "enabled",
|
||
"disabled": "disabled"
|
||
},
|
||
"actions": {
|
||
"default": "Default",
|
||
"setDefault": "Set Default"
|
||
},
|
||
"table": {
|
||
"name": "Name",
|
||
"settings": "Settings"
|
||
},
|
||
"dialog": {
|
||
"editTitle": "Edit Config",
|
||
"createTitle": "Create Player Config",
|
||
"name": "Config Name",
|
||
"namePlaceholder": "e.g., Mobile Player, Desktop Player",
|
||
"description": "Description",
|
||
"descriptionPlaceholder": "Brief description for this config",
|
||
"playbackOptions": "Playback Options",
|
||
"castingOptions": "Casting Options",
|
||
"advancedOptions": "Advanced Options",
|
||
"logoUrl": "Logo URL",
|
||
"logoUrlPlaceholder": "https://example.com/logo.png",
|
||
"logoUrlHint": "Optional logo image shown in the player overlay.",
|
||
"defaultLabel": "Default Config",
|
||
"defaultCheckbox": "Use this config as default for new videos",
|
||
"defaultHint": "When enabled, newly created videos will automatically use this active config.",
|
||
"defaultDisabledHint": "Please enable this config before setting it as default.",
|
||
"update": "Update",
|
||
"create": "Create"
|
||
},
|
||
"confirm": {
|
||
"deleteMessage": "Are you sure you want to delete \"{name}\"?",
|
||
"deleteHeader": "Delete Config",
|
||
"deleteAccept": "Delete",
|
||
"deleteReject": "Cancel"
|
||
},
|
||
"toast": {
|
||
"nameRequiredSummary": "Name required",
|
||
"nameRequiredDetail": "Please enter a config name.",
|
||
"updatedSummary": "Config updated",
|
||
"updatedDetail": "Player config has been updated.",
|
||
"createdSummary": "Config created",
|
||
"createdDetail": "Player config has been created.",
|
||
"enabledSummary": "Config enabled",
|
||
"disabledSummary": "Config disabled",
|
||
"defaultUpdatedSummary": "Default updated",
|
||
"defaultUpdatedDetail": "{name} is now the default config for new videos.",
|
||
"upgradeRequiredSummary": "Config limit reached",
|
||
"upgradeRequiredDetail": "Free accounts can only have 1 player config.",
|
||
"limitSummary": "Config limit reached",
|
||
"limitDetail": "Free accounts can only have 1 player config.",
|
||
"reconciliationSummary": "Delete extra configs",
|
||
"reconciliationDetail": "Delete extra player configs until only 1 remains to continue managing them on the free plan.",
|
||
"toggleDetail": "{name} has been {state}.",
|
||
"deletedSummary": "Config deleted",
|
||
"deletedDetail": "Player config has been removed.",
|
||
"failedSummary": "Action failed",
|
||
"failedDetail": "Failed to load or update player configs."
|
||
}
|
||
},
|
||
"adsVast": {
|
||
"createTemplate": "Create Template",
|
||
"infoBanner": "VAST (Video Ad Serving Template) is an XML schema for serving ad tags to video players.",
|
||
"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": {
|
||
"preRoll": "Pre-roll",
|
||
"midRoll": "Mid-roll",
|
||
"postRoll": "Post-roll"
|
||
},
|
||
"state": {
|
||
"enabled": "enabled",
|
||
"disabled": "disabled"
|
||
},
|
||
"actions": {
|
||
"default": "Default",
|
||
"setDefault": "Set default"
|
||
},
|
||
"table": {
|
||
"template": "Template",
|
||
"format": "Format",
|
||
"vastUrl": "VAST URL"
|
||
},
|
||
"dialog": {
|
||
"editTitle": "Edit Template",
|
||
"createTitle": "Create VAST Template",
|
||
"templateName": "Template Name",
|
||
"templateNamePlaceholder": "e.g., Main Pre-roll Ad",
|
||
"vastUrlLabel": "VAST Tag URL",
|
||
"vastUrlPlaceholder": "https://ads.example.com/vast/tag.xml",
|
||
"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"
|
||
},
|
||
"confirm": {
|
||
"deleteMessage": "Are you sure you want to delete \"{name}\"?",
|
||
"deleteHeader": "Delete Template",
|
||
"deleteAccept": "Delete",
|
||
"deleteReject": "Cancel"
|
||
},
|
||
"toast": {
|
||
"nameRequiredSummary": "Name Required",
|
||
"nameRequiredDetail": "Please enter a template name.",
|
||
"urlRequiredSummary": "VAST URL Required",
|
||
"urlRequiredDetail": "Please enter the VAST tag URL.",
|
||
"invalidUrlSummary": "Invalid URL",
|
||
"invalidUrlDetail": "Please enter a valid URL.",
|
||
"durationRequiredSummary": "Duration Required",
|
||
"durationRequiredDetail": "Mid-roll ads require a duration/interval.",
|
||
"updatedSummary": "Template Updated",
|
||
"updatedDetail": "VAST template has been updated.",
|
||
"createdSummary": "Template Created",
|
||
"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.",
|
||
"failedSummary": "Action failed",
|
||
"failedDetail": "Failed to load or update VAST templates."
|
||
}
|
||
},
|
||
"profile": {
|
||
"title": "Profile Information",
|
||
"subtitle": "Manage your personal information and account details.",
|
||
"userFallback": "User",
|
||
"username": "Username",
|
||
"email": "Email Address",
|
||
"storageUsage": "Storage Usage",
|
||
"storageUsedOfLimit": "{{used}} used",
|
||
"editProfile": "Edit Profile",
|
||
"changePassword": "Change Password"
|
||
},
|
||
"connectedAccounts": {
|
||
"title": "Connected Accounts",
|
||
"email": {
|
||
"label": "Email",
|
||
"connected": "Connected",
|
||
"notConnected": "Not connected",
|
||
"disconnected": "Disconnected"
|
||
},
|
||
"telegram": {
|
||
"label": "Telegram",
|
||
"hint": "Get notified via Telegram",
|
||
"connectedFallback": "Connected"
|
||
}
|
||
},
|
||
"billing": {
|
||
"walletBalance": "Wallet 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",
|
||
"currentPlan": "Current Plan",
|
||
"processing": "Processing...",
|
||
"upgrade": "Upgrade",
|
||
"storage": "Storage",
|
||
"storageUsedOfLimit": "{{used}} used",
|
||
"totalVideos": "Total videos",
|
||
"totalVideosUsedOfLimit": "{{used}} videos",
|
||
"paymentHistory": "Payment History",
|
||
"paymentHistorySubtitle": "Your past payments and invoices",
|
||
"noPaymentHistory": "No payment history found.",
|
||
"download": "Download",
|
||
"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": " Active until {{date}}",
|
||
"expiringTitle": "Expiring soon",
|
||
"expiringDescription": " 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",
|
||
"plan": "Plan",
|
||
"status": "Status",
|
||
"invoice": "Invoice"
|
||
},
|
||
"status": {
|
||
"success": "Success",
|
||
"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.",
|
||
"customAmount": "Custom Amount",
|
||
"enterAmount": "Enter amount",
|
||
"hint": "Minimum top-up amount is $1. Funds will be added to your wallet immediately after payment.",
|
||
"proceed": "Proceed to Payment"
|
||
},
|
||
"toast": {
|
||
"subscriptionSuccessSummary": "Subscription Successful",
|
||
"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.",
|
||
"topupFailedSummary": "Top-up Failed",
|
||
"topupFailedDetail": "Failed to process top-up.",
|
||
"downloadingSummary": "Downloading",
|
||
"downloadingDetail": "Downloading invoice #{invoiceId}...",
|
||
"downloadedSummary": "Downloaded",
|
||
"downloadedDetail": "Invoice #{invoiceId} downloaded successfully",
|
||
"downloadFailedSummary": "Download Failed",
|
||
"downloadFailedDetail": "Failed to download invoice."
|
||
}
|
||
},
|
||
"securityConnected": {
|
||
"header": {
|
||
"title": "Security & Connected Accounts",
|
||
"subtitle": "Manage your security settings and connected services."
|
||
},
|
||
"accountStatus": {
|
||
"label": "Account Status",
|
||
"detail": "Your account is in good standing",
|
||
"badge": "Active"
|
||
},
|
||
"language": {
|
||
"label": "Language",
|
||
"detail": "Choose your preferred display language",
|
||
"save": "Save Language",
|
||
"options": {
|
||
"en": "English",
|
||
"vi": "Tiếng Việt"
|
||
},
|
||
"toast": {
|
||
"successSummary": "Language Saved",
|
||
"successDetail": "Language has been updated.",
|
||
"errorSummary": "Save Failed",
|
||
"errorDetail": "Failed to save language on server. Applied from cookie fallback."
|
||
}
|
||
},
|
||
"twoFactor": {
|
||
"label": "Two-Factor Authentication",
|
||
"enabled": "2FA is enabled",
|
||
"disabled": "Add an extra layer of security"
|
||
},
|
||
"changePassword": {
|
||
"label": "Change Password",
|
||
"detail": "Update your account password",
|
||
"button": "Change Password",
|
||
"dialog": {
|
||
"title": "Change Password",
|
||
"subtitle": "Enter your current password and choose a new password.",
|
||
"current": "Current Password",
|
||
"new": "New Password",
|
||
"confirm": "Confirm New Password",
|
||
"currentPlaceholder": "Enter current password",
|
||
"newPlaceholder": "Enter new password",
|
||
"confirmPlaceholder": "Confirm new password",
|
||
"submit": "Change Password",
|
||
"cancel": "Cancel",
|
||
"errors": {
|
||
"mismatch": "Passwords do not match",
|
||
"minLength": "Password must be at least 6 characters",
|
||
"default": "Failed to change password"
|
||
}
|
||
},
|
||
"toast": {
|
||
"successSummary": "Password Changed",
|
||
"successDetail": "Your password has been changed successfully."
|
||
}
|
||
},
|
||
"logout": {
|
||
"label": "Logout",
|
||
"detail": "Sign out of your account on this device.",
|
||
"button": "Logout",
|
||
"confirm": {
|
||
"message": "Are you sure you want to log out of your account?",
|
||
"header": "Log Out",
|
||
"accept": "Log Out",
|
||
"reject": "Cancel"
|
||
}
|
||
},
|
||
"email": {
|
||
"label": "Email",
|
||
"connected": "Connected",
|
||
"disconnected": "Not connected",
|
||
"badgeConnected": "Connected",
|
||
"badgeDisconnected": "Disconnected"
|
||
},
|
||
"telegram": {
|
||
"label": "Telegram",
|
||
"detailDisconnected": "Get notified via Telegram",
|
||
"connectedFallback": "Connected",
|
||
"connect": "Connect",
|
||
"disconnect": "Disconnect"
|
||
},
|
||
"twoFactorDialog": {
|
||
"title": "Enable Two-Factor Authentication",
|
||
"subtitle": "Scan the QR code below with your authenticator app (Google Authenticator, Authy, etc.)",
|
||
"secret": "Secret Key:",
|
||
"codeLabel": "Verification Code",
|
||
"codePlaceholder": "Enter 6-digit code",
|
||
"cancel": "Cancel",
|
||
"verify": "Verify & Enable"
|
||
},
|
||
"toast": {
|
||
"twoFactorEnabledSummary": "2FA Enabled",
|
||
"twoFactorEnabledDetail": "Two-factor authentication has been enabled successfully.",
|
||
"twoFactorEnableFailedSummary": "Enable 2FA Failed",
|
||
"twoFactorEnableFailedDetail": "Failed to enable two-factor authentication.",
|
||
"twoFactorDisableFailedSummary": "Disable 2FA Failed",
|
||
"twoFactorDisableFailedDetail": "Failed to disable two-factor authentication.",
|
||
"twoFactorDisabledSummary": "2FA Disabled",
|
||
"twoFactorDisabledDetail": "Two-factor authentication has been disabled.",
|
||
"twoFactorInvalidCodeSummary": "Enable 2FA Failed",
|
||
"twoFactorInvalidCodeDetail": "Invalid verification code. Please try again.",
|
||
"telegramConnectedSummary": "Telegram Connected",
|
||
"telegramConnectedDetail": "Connected to {username}",
|
||
"telegramConnectFailedSummary": "Connection Failed",
|
||
"telegramConnectFailedDetail": "Failed to connect Telegram account.",
|
||
"telegramDisconnectedSummary": "Telegram Disconnected",
|
||
"telegramDisconnectedDetail": "Your Telegram account has been disconnected.",
|
||
"telegramDisconnectFailedSummary": "Disconnect Failed",
|
||
"telegramDisconnectFailedDetail": "Failed to disconnect Telegram account."
|
||
}
|
||
}
|
||
},
|
||
"pageHeader": {
|
||
"dashboard": "Dashboard",
|
||
"settings": "Settings"
|
||
},
|
||
"confirm": {
|
||
"defaultHeader": "Confirm",
|
||
"defaultAccept": "OK",
|
||
"defaultReject": "Cancel"
|
||
},
|
||
"toast": {
|
||
"dismissAria": "Dismiss"
|
||
},
|
||
"network": {
|
||
"offline": {
|
||
"title": "You're offline",
|
||
"description": "Your internet connection appears to be unavailable. Check your network and we'll reconnect automatically when you're back online.",
|
||
"action": "Try again"
|
||
}
|
||
},
|
||
"overview": {
|
||
"welcome": {
|
||
"title": "Hello, {{name}}",
|
||
"subtitle": "Here's what's happening with your content today."
|
||
},
|
||
"stats": {
|
||
"totalVideos": "Total Videos",
|
||
"totalViews": "Total Views",
|
||
"storageUsed": "Storage Used",
|
||
"trendVsLastMonth": "vs last month",
|
||
"unlimited": "Unlimited"
|
||
},
|
||
"admin-quickActions": {
|
||
"title": "Admin Quick Actions",
|
||
"manageUsers": {
|
||
"title": "Manage Users",
|
||
"description": "View and manage all user accounts"
|
||
},
|
||
"viewReports": {
|
||
"title": "View Reports",
|
||
"description": "Access detailed analytics and reports"
|
||
},
|
||
"systemSettings": {
|
||
"title": "System Settings",
|
||
"description": "Configure system-wide settings and preferences"
|
||
},
|
||
"billingOverview": {
|
||
"title": "Billing Overview",
|
||
"description": "Monitor billing and subscription details"
|
||
}
|
||
},
|
||
"quickActions": {
|
||
"title": "Quick Actions",
|
||
"uploadVideo": {
|
||
"title": "Upload Video",
|
||
"description": "Upload a new video to your library"
|
||
},
|
||
"videoLibrary": {
|
||
"title": "Video Library",
|
||
"description": "Browse all your videos"
|
||
},
|
||
"analytics": {
|
||
"title": "Analytics",
|
||
"description": "Track performance & insights"
|
||
},
|
||
"managePlan": {
|
||
"title": "Manage Plan",
|
||
"description": "Upgrade or change your plan"
|
||
}
|
||
},
|
||
"referral": {
|
||
"title": "Referral Link",
|
||
"subtitle": "Share your referral link and earn commissions from referred users!"
|
||
},
|
||
"recentVideos": {
|
||
"title": "Recent Videos",
|
||
"viewAll": "View all",
|
||
"emptyTitle": "No videos found",
|
||
"emptyDescription": "You haven't uploaded any videos yet. Start by uploading your first video!",
|
||
"emptyAction": "Upload Video",
|
||
"table": {
|
||
"video": "Video",
|
||
"status": "Status",
|
||
"duration": "Duration",
|
||
"uploadDate": "Upload Date",
|
||
"actions": "Actions"
|
||
},
|
||
"noDescription": "No description",
|
||
"unknownStatus": "Unknown",
|
||
"actionEdit": "Edit",
|
||
"actionShare": "Share",
|
||
"actionDelete": "Delete"
|
||
},
|
||
"storage": {
|
||
"title": "Storage Usage",
|
||
"usedOfLimit": "{{used}} of {{limit}} used",
|
||
"breakdown": {
|
||
"videos": "Videos",
|
||
"thumbnails": "Thumbnails & Assets",
|
||
"other": "Other Files"
|
||
},
|
||
"lowStorage": {
|
||
"title": "Storage running low",
|
||
"message": "Consider upgrading your plan to get more storage.",
|
||
"viewPlans": "View plans"
|
||
}
|
||
}
|
||
},
|
||
"video": {
|
||
"page": {
|
||
"title": "My Videos",
|
||
"description": "Manage and organize your video library",
|
||
"uploadAction": "Upload Video",
|
||
"uploadDropTitle": "Drop to upload",
|
||
"uploadDropSubtitle": "Files will be added to the upload queue",
|
||
"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."
|
||
},
|
||
"filters": {
|
||
"searchPlaceholder": "Search videos...",
|
||
"rangeOfTotal": "{{first}}–{{last}} of {{total}}",
|
||
"previousPageAria": "Previous page",
|
||
"nextPageAria": "Next page",
|
||
"allStatus": "All Status",
|
||
"ready": "Ready",
|
||
"processing": "Processing",
|
||
"failed": "Failed"
|
||
},
|
||
"table": {
|
||
"video": "Video",
|
||
"status": "Status",
|
||
"size": "Size",
|
||
"created": "Created",
|
||
"actions": "Actions",
|
||
"noDescription": "No description",
|
||
"copyLink": "Copy link",
|
||
"edit": "Edit",
|
||
"delete": "Delete"
|
||
},
|
||
"bulk": {
|
||
"selected": "{{count}} selected",
|
||
"delete": "Delete"
|
||
},
|
||
"copyModal": {
|
||
"title": "Get sharing address",
|
||
"playerAddress": "Player address",
|
||
"embedPlayer": "Embed player (recommended)",
|
||
"thumbnail": "Thumbnail URL",
|
||
"hls": "HLS link (VIP only)",
|
||
"hlsPlaceholder": "HLS link available for VIP with whitelisted domain",
|
||
"hlsHint": "This link redirects to a signed HLS URL and only works on whitelisted domains.",
|
||
"warningTitle": "Warning",
|
||
"warningDetail": "Make sure shared files comply with local laws and confirm you understand the responsibilities involved when distributing content.",
|
||
"reminderTitle": "Reminder",
|
||
"reminderDetail": "The embed player can auto switch fallback nodes and works well on mobile. Raw HLS links rely on your own player and must be used only on whitelisted domains.",
|
||
"toastCopiedSummary": "Copied",
|
||
"toastCopiedDetail": "Copied to clipboard",
|
||
"toastErrorSummary": "Error",
|
||
"toastErrorDetail": "Failed to load video details"
|
||
},
|
||
"detailModal": {
|
||
"title": "Edit video",
|
||
"titleLabel": "Title",
|
||
"titlePlaceholder": "Enter video title",
|
||
"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",
|
||
"noSubtitles": "No subtitles uploaded yet",
|
||
"uploadSubtitle": "Upload Subtitle",
|
||
"subtitleFile": "Subtitle File (VTT, SRT, ASS, SSA)",
|
||
"languageCode": "Language Code *",
|
||
"languagePlaceholder": "en, vi, etc.",
|
||
"displayName": "Display Name (Optional)",
|
||
"displayNamePlaceholder": "English, Tiếng Việt, etc.",
|
||
"uploadSubtitleButton": "Upload Subtitle",
|
||
"cancel": "Cancel",
|
||
"saveChanges": "Save Changes",
|
||
"errors": {
|
||
"titleRequired": "Title is required."
|
||
},
|
||
"toast": {
|
||
"loadErrorSummary": "Error",
|
||
"loadErrorDetail": "Failed to load video details",
|
||
"saveSuccessSummary": "Success",
|
||
"saveSuccessDetail": "Video updated successfully",
|
||
"saveErrorSummary": "Error",
|
||
"saveErrorDetail": "Failed to save changes",
|
||
"subtitleInfoSummary": "Info",
|
||
"subtitleInfoDetail": "Subtitle upload not yet implemented"
|
||
}
|
||
},
|
||
"detailPage": {
|
||
"title": "Video Detail",
|
||
"description": "View and manage video details",
|
||
"loadingBreadcrumb": "Loading...",
|
||
"detailsTitle": "Video Details",
|
||
"copyValueTitle": "Copy value",
|
||
"videoTagFallback": "Your browser does not support the video tag.",
|
||
"saving": "Saving...",
|
||
"cancelEditTitle": "Cancel editing",
|
||
"reloadTitle": "Reload video",
|
||
"reloadButton": "Reload",
|
||
"confirmDelete": {
|
||
"message": "Are you sure you want to delete this video? This action cannot be undone.",
|
||
"header": "Confirm Delete",
|
||
"accept": "Delete",
|
||
"reject": "Cancel"
|
||
},
|
||
"toast": {
|
||
"reloadSummary": "Info",
|
||
"reloadDetail": "Reloading video...",
|
||
"deleteSuccessSummary": "Success",
|
||
"deleteSuccessDetail": "Video deleted successfully",
|
||
"deleteErrorSummary": "Error",
|
||
"deleteErrorDetail": "Failed to delete video",
|
||
"copySummary": "Copied",
|
||
"copyDetail": "{label} copied to clipboard"
|
||
},
|
||
"videoInfo": {
|
||
"videoId": "Video ID",
|
||
"thumbnailUrl": "Thumbnail URL",
|
||
"embedUrl": "Embed URL",
|
||
"iframeCode": "Iframe Code",
|
||
"shareLink": "Share Link"
|
||
}
|
||
},
|
||
"cardPopover": {
|
||
"download": "Download",
|
||
"copyLink": "Copy link",
|
||
"edit": "Edit",
|
||
"delete": "Delete",
|
||
"toast": {
|
||
"copySuccessSummary": "Success",
|
||
"copySuccessDetail": "Video link copied",
|
||
"copyErrorSummary": "Error",
|
||
"copyErrorDetail": "Failed to copy link",
|
||
"downloadSuccessSummary": "Success",
|
||
"downloadSuccessDetail": "Downloading video...",
|
||
"downloadErrorSummary": "Error",
|
||
"downloadErrorDetail": "Video file not found"
|
||
}
|
||
}
|
||
},
|
||
"notification": {
|
||
"title": "Notifications",
|
||
"subtitle": "Stay updated with your latest activities and alerts.",
|
||
"tabs": {
|
||
"all": "All",
|
||
"unread": "Unread",
|
||
"videos": "Videos",
|
||
"payments": "Payments"
|
||
},
|
||
"stats": {
|
||
"total": "{{count}} notifications",
|
||
"unread": "{{count}} unread"
|
||
},
|
||
"actions": {
|
||
"markAllRead": "Mark all read",
|
||
"clearAll": "Clear all",
|
||
"viewAll": "View all notifications",
|
||
"viewVideo": "View video",
|
||
"viewReceipt": "View receipt",
|
||
"upgradePlan": "Upgrade plan",
|
||
"tryNow": "Try it now"
|
||
},
|
||
"item": {
|
||
"viewDetails": "View Details",
|
||
"markAsRead": "Mark as read",
|
||
"delete": "Delete"
|
||
},
|
||
"empty": {
|
||
"title": "No notifications",
|
||
"subtitle": "You're all caught up! Check back later."
|
||
},
|
||
"time": {
|
||
"minutesAgo": "{{count}} minutes ago",
|
||
"hoursAgo": "{{count}} hours ago",
|
||
"daysAgo": "{{count}} days ago"
|
||
},
|
||
"mocks": {
|
||
"videoProcessed": {
|
||
"title": "Video processing complete",
|
||
"message": "Your video \"Summer Vacation 2024\" has been successfully processed and is now ready to stream."
|
||
},
|
||
"paymentSuccess": {
|
||
"title": "Payment successful",
|
||
"message": "Your subscription to Pro Plan has been renewed successfully. Next billing date: Feb 25, 2026."
|
||
},
|
||
"storageWarning": {
|
||
"title": "Storage almost full",
|
||
"message": "You have used 85% of your storage quota. Consider upgrading your plan for more space."
|
||
},
|
||
"uploadSuccess": {
|
||
"title": "Upload successful",
|
||
"message": "Your video \"Product Demo v2\" has been uploaded successfully."
|
||
},
|
||
"maintenance": {
|
||
"title": "Scheduled maintenance",
|
||
"message": "We will perform scheduled maintenance on Jan 30, 2026 from 2:00 AM to 4:00 AM UTC."
|
||
},
|
||
"newFeature": {
|
||
"title": "New feature available",
|
||
"message": "We just launched video analytics! Track your video performance with detailed insights."
|
||
}
|
||
}
|
||
},
|
||
"upload": {
|
||
"dialog": {
|
||
"title": "Upload Videos",
|
||
"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",
|
||
"formatsHint": "MP4, MOV, MKV · max 10 GB per file",
|
||
"close": "Close",
|
||
"startUpload": "Start Upload ({{count}})",
|
||
"duplicateFilesSummary": "Duplicate files skipped",
|
||
"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."
|
||
},
|
||
"dropzone": {
|
||
"releaseToAdd": "Release to add",
|
||
"dropHere": "Drop videos here",
|
||
"browse": "or click anywhere to browse"
|
||
},
|
||
"remote": {
|
||
"placeholder": "Paste video URLs here, one per line\n\nhttps://example.com/video.mp4\nhttps://drive.google.com/...",
|
||
"providersHint": "Google Drive, Dropbox supported",
|
||
"addUrls": "Add URLs"
|
||
},
|
||
"queue": {
|
||
"empty": "Empty queue!",
|
||
"totalSize": "Total size:",
|
||
"zeroSize": "0 MB"
|
||
},
|
||
"queueItem": {
|
||
"remoteFileName": "Remote File",
|
||
"unknownSize": "Unknown",
|
||
"status": {
|
||
"pending": "Pending",
|
||
"uploading": "Uploading...",
|
||
"uploadingThreads": "Uploading · {{threads}} threads",
|
||
"processing": "Processing...",
|
||
"complete": "Done",
|
||
"error": "Failed",
|
||
"fetching": "Fetching..."
|
||
}
|
||
},
|
||
"infoTip": {
|
||
"title": "Tip: For fastest processing",
|
||
"description": "Upload videos in H.264 video codec + AAC audio codec format (e.g., MP4 with H.264/AAC). Videos in this format will be processed much faster (seconds instead of minutes) because they do not need re-encoding."
|
||
},
|
||
"bulkActions": {
|
||
"title": "Quick Settings",
|
||
"applyToPending": "Apply to {{count}} pending files",
|
||
"selectCategory": "Select category...",
|
||
"category": {
|
||
"learning": "Learning",
|
||
"entertainment": "Entertainment"
|
||
},
|
||
"visibility": {
|
||
"public": "Public",
|
||
"private": "Private"
|
||
}
|
||
},
|
||
"indicator": {
|
||
"allDone": "All done",
|
||
"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}}",
|
||
"mergeFailed": "Merge failed"
|
||
}
|
||
},
|
||
"home": {
|
||
"nav": {
|
||
"features": "Features",
|
||
"pricing": "Pricing",
|
||
"login": "Log in",
|
||
"startFree": "Start for free"
|
||
},
|
||
"hero": {
|
||
"titleLine1": "Video infrastructure for",
|
||
"titleLine2": "modern internet.",
|
||
"subtitle": "Seamlessly host, encode, and stream video with our developer-first API. Optimized for speed, built for scale.",
|
||
"getStarted": "Get Started",
|
||
"uploadVideo": "Upload video"
|
||
},
|
||
"features": {
|
||
"heading": "Everything you need to ship video",
|
||
"subtitle": "Focus on building your product. We'll handle the complex video infrastructure.",
|
||
"global": {
|
||
"title": "Global Edge Network",
|
||
"description": "Content delivered from 200+ PoPs worldwide. Automatic region selection ensures the lowest latency for every viewer."
|
||
},
|
||
"live": {
|
||
"title": "Streaming API",
|
||
"description": "Scale to millions of concurrent viewers with ultra-low latency. RTMP ingest and HLS playback supported natively.",
|
||
"status": "Live Status",
|
||
"onAir": "On Air",
|
||
"bitrate": "Bitrate:",
|
||
"fps": "FPS:",
|
||
"latency": "Latency:",
|
||
"bitrateValue": "6000 kbps",
|
||
"fpsValue": "60",
|
||
"latencyValue": "~2s"
|
||
},
|
||
"encoding": {
|
||
"title": "Instant Encoding",
|
||
"description": "Upload raw files and get optimized HLS/DASH streams in seconds."
|
||
},
|
||
"analytics": {
|
||
"title": "Deep Analytics",
|
||
"description": "Session-level insights, quality of experience (QoE) metrics, and more."
|
||
}
|
||
},
|
||
"pricing": {
|
||
"title": "Simple, transparent pricing",
|
||
"subtitle": "Choose the plan that fits your needs. No hidden fees.",
|
||
"perMonth": "/mo",
|
||
"hobby": {
|
||
"name": "Hobby",
|
||
"features": [
|
||
"Unlimited upload",
|
||
"1 Hour of Storage",
|
||
"Standard Support"
|
||
],
|
||
"button": "Start Free"
|
||
},
|
||
"pro": {
|
||
"name": "Pro",
|
||
"features": [
|
||
"Ads free player",
|
||
"Support M3U8",
|
||
"Unlimited upload",
|
||
"Custom ads"
|
||
],
|
||
"button": "Get Started",
|
||
"tag": "POPULAR"
|
||
},
|
||
"scale": {
|
||
"name": "Scale",
|
||
"features": ["5 TB Bandwidth", "500 Hours Storage", "Priority Support"],
|
||
"button": "Contact Sales",
|
||
"tag": "Best Value"
|
||
}
|
||
},
|
||
"footer": {
|
||
"description": "Building the video layer of the internet. Designed for developers.",
|
||
"product": "Product",
|
||
"productFeatures": "Features",
|
||
"productPricing": "Pricing",
|
||
"productShowcase": "Showcase",
|
||
"company": "Company",
|
||
"companyAbout": "About",
|
||
"companyBlog": "Blog",
|
||
"companyCareers": "Careers",
|
||
"legal": "Legal",
|
||
"privacy": "Privacy",
|
||
"terms": "Terms",
|
||
"copyright": "© {year} EcoStream Inc. All rights reserved."
|
||
},
|
||
"head": {
|
||
"title": "EcoStream - Video infrastructure for modern internet",
|
||
"description": "Seamlessly host, encode, and stream video with our developer-first API. Optimized for speed, built for scale."
|
||
}
|
||
},
|
||
"legal": {
|
||
"common": {
|
||
"heading": "Legal & Privacy Policy",
|
||
"subheading": "Legal & Privacy Policy",
|
||
"description": "Our legal and privacy policy."
|
||
},
|
||
"terms": {
|
||
"title": "Terms and Conditions - Ecostream",
|
||
"description": "Read Ecostream's terms and conditions for using our video hosting and streaming services.",
|
||
"pageHeading": "Terms and Conditions Details",
|
||
"pageSubheading": "Terms and Conditions",
|
||
"pageDescription": "Our terms and conditions set forth important guidelines and rules for using Ecostream's services.",
|
||
"sections": {
|
||
"acceptanceTitle": "1. Acceptance of Terms",
|
||
"acceptanceText": "By accessing and using Ecostream, you accept and agree to be bound by the terms and provision of this agreement.",
|
||
"usageTitle": "2. Service Usage",
|
||
"usageText": "You agree to use our service only for lawful purposes. You are prohibited from posting or transmitting any unlawful, threatening, libelous, defamatory, obscene, or profane material. We reserve the right to terminate accounts that violate these terms.",
|
||
"ownershipTitle": "3. Content Ownership",
|
||
"ownershipText": "You retain all rights and ownership of the content you upload to Ecostream. However, by uploading content, you grant us a license to host, store, and display the content as necessary to provide our services.",
|
||
"liabilityTitle": "4. Limitation of Liability",
|
||
"liabilityText": "Ecostream shall not be liable for any direct, indirect, incidental, special, or consequential damages resulting from the use or inability to use our service.",
|
||
"changesTitle": "5. Changes to Terms",
|
||
"changesText": "We reserve the right to modify these terms at any time. Your continued use of the service after any such changes constitutes your acceptance of the new terms."
|
||
}
|
||
},
|
||
"privacy": {
|
||
"title": "Privacy Policy - Ecostream",
|
||
"description": "Read about Ecostream's commitment to protecting your privacy and data security.",
|
||
"pageHeading": "Legal & Privacy Policy",
|
||
"pageSubheading": "Legal & Privacy Policy",
|
||
"pageDescription": "Our legal and privacy policy.",
|
||
"sections": {
|
||
"policyTitle": "1. Privacy Policy",
|
||
"policyText": "At Ecostream, we take your privacy seriously. This policy describes how we collect, use, and protect your personal information. We only collect information that is necessary for the operation of our service, including email addresses for account creation and payment information for subscription processing.",
|
||
"dataCollectionTitle": "2. Data Collection",
|
||
"dataCollectionText": "We collect data such as IP addresses, browser types, and access times to analyze trends and improve our service. Uploaded content is stored securely and is only accessed as required for the delivery of our hosting services.",
|
||
"cookieTitle": "3. Cookie Policy",
|
||
"cookieText": "We use cookies to maintain user sessions and preferences. By using our website, you consent to the use of cookies in accordance with this policy.",
|
||
"dmcaTitle": "4. DMCA & Copyright",
|
||
"dmcaText": "Ecostream respects the intellectual property rights of others. We respond to notices of alleged copyright infringement in accordance with the Digital Millennium Copyright Act (DMCA). Please report any copyright violations to our support team."
|
||
}
|
||
}
|
||
},
|
||
"notFound": {
|
||
"headTitle": "404 - Page Not Found",
|
||
"title": "404 - Page Not Found",
|
||
"description": "The page you are looking for does not exist.",
|
||
"backHome": "Go back to Home"
|
||
}
|
||
}
|