🎉 chore(init): project initialization

This commit is contained in:
web@ppanel
2024-11-14 01:22:43 +07:00
commit 829edfa824
479 changed files with 61413 additions and 0 deletions
@@ -0,0 +1,30 @@
{
"actions": "Actions",
"announcementList": "Announcement List",
"cancel": "Cancel",
"confirm": "Confirm",
"confirmDelete": "Are you sure you want to delete?",
"content": "Content",
"create": "Create",
"createAnnouncement": "Create Announcement",
"createSuccess": "Create Success",
"delete": "Delete",
"deleteDescription": "Once deleted, the data cannot be recovered. Please proceed with caution.",
"deleteSuccess": "Delete Success",
"edit": "Edit",
"editAnnouncement": "Edit Announcement",
"enable": "Enable",
"form": {
"cancel": "Cancel",
"confirm": "Confirm",
"content": "Content",
"contentPlaceholder": "Please enter announcement content (supports Markdown)",
"title": "Title",
"titlePlaceholder": "Please enter"
},
"hide": "Hide",
"show": "Show",
"title": "Title",
"updateSuccess": "Update Success",
"updatedAt": "Updated At"
}
+39
View File
@@ -0,0 +1,39 @@
{
"check": {
"checking": "Checking...",
"continue": "Continue",
"description": "Please enter your email to continue logging in or registering.",
"email": "Please enter a valid email address.",
"title": "Login/Register",
"whitelist": "The email domain is not in the allowed whitelist."
},
"login": {
"description": "Please enter your account information to log in.",
"forgotPassword": "Forgot Password?",
"success": "Login successful!",
"switchAccount": "Register/Switch Account",
"title": "Login"
},
"logout": "Logout",
"orWithEmail": "Or with Email",
"register": {
"description": "Create a new account, fill in your information to register.",
"existingAccount": "Already have an account?",
"get": "Get",
"invite": "Invitation code",
"message": "#### Dear User, Hello!\n\nThank you for your attention and support. Due to adjustments in site operation strategy, we have closed the new user registration function. During this period, existing users will not be affected.\n\nWe are committed to providing you with better service and experience, so we will conduct comprehensive system optimization and feature upgrades during the registration closure. In the future, we will welcome you with better content and services.\n\nPlease follow our website and social media platforms to get the latest updates and notifications. Thank you for your understanding and support.\n\nIf you have any questions or need assistance, please feel free to contact our customer service team.\n\n**Thank you again for your support and understanding.**",
"passwordMismatch": "Passwords do not match",
"success": "Registration successful, automatically logged in!",
"switchToLogin": "Login/Reset Email",
"title": "Register"
},
"reset": {
"description": "Please enter your email address to reset your password.",
"existingAccount": "Already have an account?",
"get": "Get",
"success": "Password reset successful, automatically switched to login!",
"switchToLogin": "Login/Register",
"title": "Reset Password"
},
"tos": "Terms of Service"
}
+46
View File
@@ -0,0 +1,46 @@
{
"empty": [
"Imagine this place filled with exciting content! For now, you'll have to use your imagination...",
"This area mysteriously disappeared, but we're summoning it back!",
"Oh no, nothing happened... Feel free to fill in the blank!",
"It's like being at a concert and realizing there's no one on stage... Want to go up and perform?",
"You've found a blank canvas! How about building a house?",
"This area is currently empty, but creativity starts here!",
"Nothing here... but don't worry, it's just the beginning!",
"There were supposed to be big surprises here, but they slipped away!",
"There's nothing here for now, like an empty snack cabinet.",
"This empty space is waiting for its star to take the stage!"
],
"request": {
"10001": "Database query failed, please try again later",
"10002": "Data update failed, please try again later",
"10003": "Data save failed, please try again later",
"10004": "Data deletion failed, please try again later",
"20001": "The username is already registered",
"20002": "User not found",
"20003": "Incorrect password, please try again",
"20004": "Your account has been disabled",
"30001": "Node already exists",
"30002": "Node not found",
"30003": "Node group already exists",
"30004": "Node group not found",
"30005": "There is data in the node group, cannot be deleted",
"400": "Invalid request parameters, please check and resubmit",
"40002": "Please retry after logging in",
"40003": "Invalid login information, please log in again",
"40004": "Login session expired, please log in again",
"401": "Request is too frequent, please try again later",
"500": "Internal server error, we are working on fixing it urgently",
"undefined": "System error occurred, please try again later"
},
"table": {
"actions": "Actions",
"asc": "Ascending",
"desc": "Descending",
"hide": "Hide",
"pageInfo": "Page {current} of {total}",
"rowsPerPage": "Rows per page",
"selectedItems": "Selected {total} rows"
},
"unlimited": "Unlimited"
}
+50
View File
@@ -0,0 +1,50 @@
{
"actions": "Actions",
"amount": "Amount",
"cancel": "Cancel",
"code": "Code",
"confirm": "Confirm",
"confirmDelete": "Are you sure you want to delete?",
"count": "Count",
"couponList": "Coupon List",
"create": "Create",
"createCoupon": "Create Coupon",
"createSuccess": "Create Success",
"delete": "Delete",
"deleteSuccess": "Delete Success",
"deleteWarning": "Once deleted, data cannot be recovered. Please proceed with caution.",
"discount": "Discount",
"edit": "Edit",
"editCoupon": "Edit Coupon",
"enable": "Enable",
"form": {
"amountDiscount": "Amount Discount",
"cancel": "Cancel",
"confirm": "Confirm",
"count": "Max Usage Count",
"countPlaceholder": "Max Usage Count (leave blank for no limit)",
"customCouponCode": "Custom Coupon Code",
"customCouponCodePlaceholder": "Custom Coupon Code (leave blank for auto-generation)",
"enterCouponName": "Enter Coupon Name",
"enterValue": "Enter Value",
"expireTime": "Expire Time",
"name": "Name",
"percentageDiscount": "Percentage Discount",
"selectServer": "Select Subscription",
"selectTime": "Select Time",
"specifiedServer": "Specified Subscription",
"startTime": "Start Time",
"type": "Coupon Type",
"userLimit": "Max Usage Count per User",
"userLimitPlaceholder": "Max Usage Count per User (leave blank for no limit)"
},
"name": "Name",
"percentage": "Percentage",
"remainingTimes": "Remaining",
"subscribe": "Subscribe",
"type": "Type",
"unlimited": "Unlimited",
"updateSuccess": "Update Success",
"usedTimes": "Usage Times",
"validityPeriod": "Validity Period"
}
+29
View File
@@ -0,0 +1,29 @@
{
"DocumentList": "Document List",
"actions": "Actions",
"cancel": "Cancel",
"confirm": "Confirm",
"confirmDelete": "Are you sure you want to delete?",
"create": "Create",
"createDocument": "Create Document",
"createSuccess": "Create Success",
"delete": "Delete",
"deleteDescription": "Once deleted, the data cannot be recovered. Please proceed with caution.",
"deleteSuccess": "Delete Success",
"edit": "Edit",
"editDocument": "Edit Document",
"form": {
"cancel": "Cancel",
"confirm": "Confirm",
"content": "Content",
"tags": "Tags",
"tagsPlaceholder": "Use Enter or comma (,) to enter multiple tags",
"title": "Title",
"titlePlaceholder": "Please enter"
},
"show": "Show",
"tags": "Tags",
"title": "Title",
"updateSuccess": "Update Success",
"updatedAt": "Updated At"
}
+1
View File
@@ -0,0 +1 @@
{}
+24
View File
@@ -0,0 +1,24 @@
{
"cs-CZ": "Czech",
"de-DE": "German",
"en-US": "English",
"es-ES": "Spanish",
"es-MX": "Spanish (Mexico)",
"fi-FI": "Finnish",
"fr-FR": "French",
"hi-IN": "Hindi",
"hu-HU": "Hungarian",
"ja-JP": "Japanese",
"ko-KR": "Korean",
"no-NO": "Norwegian",
"pl-PL": "Polish",
"pt-BR": "Portuguese (Brazil)",
"ro-RO": "Romanian",
"ru-RU": "Russian",
"th-TH": "Thai",
"tr-TR": "Turkish",
"uk-UA": "Ukrainian",
"vi-VN": "Vietnamese",
"zh-CN": "Chinese (Simplified)",
"zh-TW": "Chinese (Traditional)"
}
+17
View File
@@ -0,0 +1,17 @@
{
"Announcement Management": "Announcement Management",
"Coupon Management": "Coupon Management",
"Dashboard": "Dashboard",
"Document Management": "Document Management",
"Finance": "Finance",
"Order Management": "Order Management",
"Payment Config": "Payment Config",
"Server": "Server",
"Server Management": "Server Management",
"Settings": "Settings",
"Subscribe Management": "Subscribe Management",
"System Config": "System Config",
"Ticket Management": "Ticket Management",
"User": "User",
"User Management": "User Management"
}
+29
View File
@@ -0,0 +1,29 @@
{
"amount": "Amount",
"failed": "Failed",
"feAmount": "Fee Amount",
"method": "Payment Method",
"methods": {
"alipay_f2f": "Alipay (Face to Face)",
"balance": "Balance",
"epay": "Epay",
"stripe_alipay": "Stripe (Alipay)",
"stripe_wechat_pay": "Stripe (WeChat)"
},
"orderNumber": "Order Number",
"reductionPrice": "Discount Amount",
"status": "Order Status",
"subscribe": "Subscribe",
"subscribePrice": "Subscription Price",
"total": "Total",
"tradeNo": "Transaction Number",
"type": {
"0": "Type",
"1": "New Purchase",
"2": "Renewal",
"3": "Reset Traffic",
"4": "Recharge"
},
"updateTime": "Update Time",
"user": "User"
}
+41
View File
@@ -0,0 +1,41 @@
{
"aliPay": "Alipay payment",
"alipayf2f": {
"appId": "Alipay App ID",
"invoiceName": "Custom Product Name",
"invoiceNameDescription": "Will be displayed on Alipay bill",
"privateKey": "Alipay Private Key",
"publicKey": "Alipay Public Key"
},
"enable": "Enable",
"enableDescription": "Enable this payment method",
"epay": {
"key": "KEY",
"pid": "PID",
"url": "URL"
},
"feeMode": "Fee Mode",
"feeModeDescription": "Fee charging method for additional fees",
"feeModeItems": ["No Fee", "Percentage", "Fixed Amount", "Both"],
"feePercent": "Percentage Fee (optional)",
"feePercentDescription": "Add fee on top of order amount",
"fixedFee": "Fixed Fee (optional)",
"fixedFeeDescription": "Add fixed fee on top of order amount",
"iconUrl": "Icon URL (optional)",
"iconUrlDescription": "Used for frontend display",
"inputPlaceholder": "Please enter",
"key": "KEY",
"notifyUrl": "Custom Notification Domain (optional)",
"notifyUrlDescription": "Gateway notifications will be sent to this domain",
"pid": "PID",
"saveSuccess": "Save Successful",
"showName": "Display Name",
"showNameDescription": "Used for frontend display",
"stripe": {
"publicKey": "PUBLIC KEY",
"secretKey": "SECRET KEY",
"webhookSecret": "WEBHOOK Secret Key"
},
"url": "URL",
"wechatPay": "WeChat Pay"
}
+111
View File
@@ -0,0 +1,111 @@
{
"group": {
"actions": "Actions",
"cancel": "Cancel",
"confirm": "Confirm",
"confirmDelete": "Are you sure you want to delete?",
"create": "Create",
"createNodeGroup": "Create Node Group",
"createdSuccessfully": "Created successfully",
"delete": "Delete",
"deleteWarning": "Data will not be recoverable after deletion. Please proceed with caution.",
"deletedSuccessfully": "Deleted successfully",
"description": "Description",
"edit": "Edit",
"editNodeGroup": "Edit Node Group",
"form": {
"cancel": "Cancel",
"confirm": "Confirm",
"description": "Description",
"name": "Name"
},
"name": "Name",
"title": "Node Group List",
"updatedAt": "Updated At"
},
"node": {
"actions": "Actions",
"address": "Address",
"all": "All",
"cancel": "Cancel",
"confirm": "Confirm",
"confirmDelete": "Are you sure you want to delete?",
"create": "Create",
"createNode": "Create Node",
"createSuccess": "Created successfully",
"delete": "Delete",
"deleteSuccess": "Deleted successfully",
"deleteWarning": "Data will not be recoverable after deletion. Please proceed with caution.",
"edit": "Edit",
"editNode": "Edit Node",
"enable": "Enable",
"form": {
"Address or IP": "Address or IP",
"Host Name": "Host Name",
"allowInsecure": "Allow Insecure",
"cancel": "Cancel",
"confirm": "Confirm",
"edit": "Edit",
"editSecurity": "Edit Security Configuration",
"enableRelay": "Enable Relay",
"enableTLS": "Enable TLS",
"enableTls": "TLS",
"encryptionMethod": "Encryption Method",
"name": "Name",
"networkType": "Transport Protocol",
"nodeGroupId": "Node Group ID",
"password": "Password",
"path": "Path",
"port": "Server Port",
"protocol": "Protocol",
"relayHost": "Relay Host",
"relayPort": "Relay Port",
"remarks": "Remarks",
"security": "Security",
"security_config": {
"fingerprint": "Fingerprint",
"privateKey": "Private Key",
"privateKeyPlaceholder": "Leave blank for auto-generation",
"proxyProtocol": "Proxy Protocol",
"publicKey": "Public Key",
"publicKeyPlaceholder": "Leave blank for auto-generation",
"serverAddress": "Server Address",
"serverAddressPlaceholder": "REALITY target address, default using SNI",
"serverName": "Server Name (SNI)",
"serverNamePlaceholder": "REALITY required, consistent with backend",
"serverPort": "Server Port",
"serverPortPlaceholder": "REALITY target port, default 443",
"shortId": "Short ID",
"shortIdPlaceholder": "Leave blank for auto-generation"
},
"selectEncryptionMethod": "Select Encryption Method",
"selectNodeGroup": "Select Node Group",
"selectProtocol": "Select Protocol",
"serverAddr": "Server IP",
"serverName": "Service Name",
"serviceName": "Service Name",
"sni": "Server Name Indication (SNI)",
"speedLimit": "Speed Limit",
"speedLimitPlaceholder": "Unlimited",
"trafficRatio": "Traffic Rate",
"transport": "Transport Protocol Configuration",
"xtls": "XTLS Flow Control Algorithm"
},
"name": "Name",
"node": "Node",
"nodeGroup": "Node Group",
"rate": "Rate",
"relay": "Relay",
"serverAddr": "Server IP",
"speedLimit": "Speed Limit",
"status": "Status",
"trafficRatio": "Traffic Rate",
"type": "Type",
"updateSuccess": "Update successful",
"updatedAt": "Updated At"
},
"tabs": {
"node": "Node",
"nodeGroup": "Node Group"
}
}
+78
View File
@@ -0,0 +1,78 @@
{
"actions": "Actions",
"cancel": "Cancel",
"confirm": "Confirm",
"confirmDelete": "Are you sure you want to delete?",
"create": "Create",
"createSubscribe": "Create Subscription",
"createSuccess": "Create Successful",
"delete": "Delete",
"deleteSuccess": "Delete Successful",
"deleteWarning": "Data cannot be recovered after deletion. Please proceed with caution.",
"deviceLimit": "Device Limit/Unit",
"edit": "Edit",
"editSubscribe": "Edit Subscription",
"form": {
"cancel": "Cancel",
"confirm": "Confirm",
"description": "Description",
"deviceLimit": "Device Limit",
"discount": "Discount",
"discountDescription": "Set discount based on unit price",
"discountMonths": "Months",
"discountPercent": "Discount Percentage",
"duration": "Duration (months)",
"inventory": "Inventory",
"name": "Name",
"noLimit": "No Limit",
"quota": "Purchase Limit",
"replacement": "Reset Price (per time)",
"selectSubscribeGroup": "Select Subscription Group",
"server": "Server",
"serverGroup": "Server Group",
"speedLimit": "Speed Limit (Mbps)",
"subscribeGroup": "Subscription Group",
"traffic": "Traffic",
"unit_price": "Monthly Price"
},
"group": {
"actions": "Actions",
"cancel": "Cancel",
"confirm": "Confirm",
"confirmDelete": "Are you sure you want to delete?",
"create": "Create",
"createSubscribeGroup": "Create Subscription Group",
"createSuccess": "Create Successful",
"delete": "Delete",
"deleteSuccess": "Delete Successful",
"deleteWarning": "Data cannot be recovered after deletion. Please proceed with caution.",
"description": "Description",
"edit": "Edit",
"editSubscribeGroup": "Edit Subscription Group",
"form": {
"cancel": "Cancel",
"confirm": "Confirm",
"description": "Description",
"name": "Name"
},
"name": "Name",
"title": "Subscription Group List",
"updateSuccess": "Update Successful",
"updatedAt": "Updated At"
},
"inventory": "Inventory",
"name": "Name",
"quota": "Purchase Limit/Time",
"replacement": "Reset Price/Time",
"sell": "Sell",
"show": "Show",
"subscribe": "Subscribe",
"subscribeGroup": "Subscription Group",
"tabs": {
"subscribe": "Subscribe",
"subscribeGroup": "Subscription Group"
},
"traffic": "Traffic",
"unitPrice": "Price/Month",
"updateSuccess": "Update Successful"
}
+156
View File
@@ -0,0 +1,156 @@
{
"currency": {
"accessKey": "Access Key",
"accessKeyDescription": "API key provided for free by https://exchangerate.host",
"currencySymbol": "Currency Symbol",
"currencySymbolDescription": "Used for display purposes only; changing this will affect all currency units in the system",
"currencyUnit": "Currency Unit",
"currencyUnitDescription": "Used for display purposes only; changing this will affect all currency units in the system",
"saveSuccess": "Save Successful"
},
"email": {
"expiration_email_template": "Expiration Notice Template",
"expiration_email_templateDescription": "The {after}.variable{before} placeholders will be replaced with actual data. Ensure to keep these variables.",
"inputPlaceholder": "Enter value...",
"maintenance_email_template": "Maintenance Notice Template",
"maintenance_email_templateDescription": "The {after}.variable{before} placeholders will be replaced with actual data. Ensure to keep these variables.",
"saveSuccess": "Configuration saved successfully.",
"sendFailure": "Failed to send test email, please check the configuration.",
"sendSuccess": "Test email sent successfully.",
"sendTestEmail": "Send Test Email",
"sendTestEmailDescription": "Send a test email to verify the configuration.",
"senderAddress": "Sender Address",
"senderAddressDescription": "The default email address used for sending emails.",
"smtpAccount": "SMTP Account",
"smtpAccountDescription": "The email account used for authentication.",
"smtpEncryptionMethod": "SMTP Encryption Method",
"smtpEncryptionMethodDescription": "Choose whether to enable SSL encryption.",
"smtpPassword": "SMTP Password",
"smtpPasswordDescription": "The password for the SMTP account.",
"smtpServerAddress": "SMTP Server Address",
"smtpServerAddressDescription": "Specify the server address used for sending emails.",
"smtpServerPort": "SMTP Server Port",
"smtpServerPortDescription": "Specify the port used to connect to the SMTP server.",
"verify_email_template": "Verification Email Template",
"verify_email_templateDescription": "The {after}.variable{before} placeholders will be replaced with actual data. Ensure to keep these variables."
},
"invite": {
"commissionFirstTimeOnly": "Commission for First Purchase Only",
"commissionFirstTimeOnlyDescription": "When enabled, commission is generated only on the inviter's first payment; you can configure individual users in user management",
"enableForcedInvite": "Enable Forced Invite",
"enableForcedInviteDescription": "When enabled, only invited users can register",
"inputPlaceholder": "Enter",
"inviteCommissionPercentage": "Invite Commission Percentage",
"inviteCommissionPercentageDescription": "Default global commission distribution ratio; you can configure individual ratios in user management",
"saveSuccess": "Save Successful"
},
"node": {
"communicationKey": "Communication Key",
"communicationKeyDescription": "Key for node communication to ensure data security",
"inputPlaceholder": "Enter",
"nodePullInterval": "Node Pull Interval",
"nodePullIntervalDescription": "Frequency (in seconds) for nodes to fetch data from the panel",
"nodePushInterval": "Node Push Interval",
"nodePushIntervalDescription": "Frequency for nodes to push data to the panel",
"saveSuccess": "Save Successful"
},
"register": {
"emailSuffixWhitelist": "Email Suffix Whitelist",
"emailSuffixWhitelistDescription": "When enabled, only emails with suffixes in the list can register",
"emailVerification": "Email Verification",
"emailVerificationDescription": "When enabled, users will need to verify their email",
"ipRegistrationLimit": "IP Registration Limit",
"ipRegistrationLimitDescription": "When enabled, IPs that meet the rule requirements will be restricted from registering; note that IP determination may cause issues due to CDNs or frontend proxies",
"penaltyTime": "Penalty Time (minutes)",
"penaltyTimeDescription": "Users must wait for the penalty time to expire before registering again",
"registrationLimitCount": "Registration Limit Count",
"registrationLimitCountDescription": "Enable penalty after reaching registration limit",
"saveSuccess": "Save Successful",
"stopNewUserRegistration": "Stop New User Registration",
"stopNewUserRegistrationDescription": "When enabled, no one can register",
"trialRegistration": "Trial Registration",
"trialRegistrationDescription": "Enable trial registration; modify trial package and duration first",
"whitelistSuffixes": "Whitelist Suffixes",
"whitelistSuffixesDescription": "Used for email verification during registration; one per line",
"whitelistSuffixesPlaceholder": "Enter email suffixes, one per line"
},
"site": {
"logo": "Logo",
"logoDescription": "Used for displaying the logo in designated locations",
"logoPlaceholder": "Enter the URL of the logo, without ending with '/'",
"saveSuccess": "Save Successful",
"siteDesc": "Site Description",
"siteDescDescription": "Used for displaying the site description in designated locations",
"siteDescPlaceholder": "Enter site description",
"siteDomain": "Site Domain",
"siteDomainDescription": "Domain address of the current website, e.g., used in emails",
"siteDomainPlaceholder": "Please enter the domain address. For multiple domains, please enter one per line.",
"siteName": "Site Name",
"siteNameDescription": "Used for displaying the site name in designated locations",
"siteNamePlaceholder": "Enter site name"
},
"subscription": {
"add": "Add",
"app": "App",
"appDescription": "Configure app download URL and import rules; remember to save after modification",
"appDownloadURL": "App Download URL",
"appIcon": "App Icon",
"appName": "App Name",
"delete": "Delete",
"reset": "Reset",
"save": "Save",
"saveSuccess": "Save Successful",
"singleSubscriptionMode": "Single Subscription Mode",
"singleSubscriptionModeDescription": "When enabled, all user subscriptions will be converted to balance",
"subscriptionDomain": "Subscription Domain",
"subscriptionDomainDescription": "Used for subscription; leave blank to use site domain",
"subscriptionDomainPlaceholder": "Enter subscription domain, one per line",
"subscriptionPath": "Subscription Path",
"subscriptionPathDescription": "Used for subscription",
"subscriptionPathPlaceholder": "Enter",
"subscriptionProtocol": "Subscription Protocol",
"wildcardResolution": "Wildcard Resolution",
"wildcardResolutionDescription": "Used for subscription"
},
"tabs": {
"currency": "Currency",
"email": "Email",
"invite": "Invite",
"node": "Node",
"register": "Register",
"site": "Site",
"subscription": "Subscription",
"telegram": "Telegram",
"tos": "Terms of Service",
"verify": "Verify"
},
"telegram": {
"botToken": "Bot Token",
"botTokenDescription": "Enter the token provided by Botfather",
"enableBotNotifications": "Enable Bot Notifications",
"enableBotNotificationsDescription": "When enabled, the bot will send basic notifications to linked Telegram admins and users",
"groupURL": "Group URL",
"groupURLDescription": "If filled, will be displayed to users or used in required locations",
"inputPlaceholderBotToken": "0000000000:xxxxxxxxx_xxxxxxxxxxxxxxx",
"inputPlaceholderGroupURL": "https://t.me/xxxxxx",
"saveSuccess": "Save Successful"
},
"tos": {
"saveSuccess": "Save Successful",
"title": "Terms of Service"
},
"verify": {
"inputPlaceholder": "Enter",
"loginVerificationCode": "Login Verification Code",
"loginVerificationCodeDescription": "Human verification during login",
"registrationVerificationCode": "Registration Verification Code",
"registrationVerificationCodeDescription": "Human verification during registration",
"resetPasswordVerificationCode": "Reset Password Verification Code",
"resetPasswordVerificationCodeDescription": "Human verification during password reset",
"saveSuccess": "Save Successful",
"turnstileSecret": "Turnstile Secret Key",
"turnstileSecretDescription": "Turnstile secret key provided by Cloudflare",
"turnstileSiteKey": "Turnstile Site Key",
"turnstileSiteKeyDescription": "Turnstile site key provided by Cloudflare"
}
}
+19
View File
@@ -0,0 +1,19 @@
{
"actions": "Actions",
"cancel": "Cancel",
"check": "Check",
"close": "Close",
"closeSuccess": "Closed successfully",
"closeWarning": "Once closed, the ticket cannot be operated on. Please proceed with caution.",
"confirm": "Confirm",
"confirmClose": "Are you sure you want to close?",
"createdAt": "Created At",
"inputPlaceholder": "Please enter your question, we will reply as soon as possible.",
"open": "Open",
"reply": "Reply",
"status": ["Status", "Pending Follow-up", "Pending Reply", "Resolved", "Closed"],
"ticketList": "Ticket List",
"title": "Title",
"updatedAt": "Updated At",
"user": "User"
}
+38
View File
@@ -0,0 +1,38 @@
{
"actions": "Actions",
"balance": "Balance",
"cancel": "Cancel",
"confirm": "Confirm",
"confirmDelete": "Are you sure you want to delete?",
"create": "Create",
"createSuccess": "Create successful",
"createUser": "Create User",
"createdAt": "Created At",
"delete": "Delete",
"deleteDescription": "Data cannot be recovered after deletion, please proceed with caution.",
"deleteSuccess": "Delete successful",
"edit": "Edit",
"editUser": "Edit User",
"email": "Email",
"enable": "Enable",
"form": {
"balance": "Balance",
"balancePlaceholder": "Balance",
"cancel": "Cancel",
"confirm": "Confirm",
"invalidEmailFormat": "Invalid email format",
"inviteCode": "Invite Code",
"inviteCodePlaceholder": "Enter invite code (leave blank to generate)",
"manager": "Manager",
"password": "Password",
"passwordPlaceholder": "Enter new password (optional)",
"refererId": "Referer ID",
"refererIdPlaceholder": "Enter referer ID",
"userEmail": "User Email",
"userEmailPlaceholder": "Enter user email"
},
"referer": "Referer",
"updateSuccess": "Update successful",
"userList": "User List",
"userName": "User Email"
}