🎉 chore(init): project initialization
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"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"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"empty": [
|
||||
"Imagine this space 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 discovering an empty stage at a concert... Why not 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!",
|
||||
"This place was supposed to have a big surprise, but the surprise slipped away!",
|
||||
"There's nothing here for now, like an empty snack cabinet.",
|
||||
"This empty space is waiting for its protagonist to take the stage!"
|
||||
],
|
||||
"list": {
|
||||
"pageInfo": "Page {current} of {total}",
|
||||
"rowsPerPage": "Rows per page",
|
||||
"selectedItems": "{total} items selected"
|
||||
},
|
||||
"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 has already been registered",
|
||||
"20002": "User not found",
|
||||
"20003": "Incorrect password, please re-enter",
|
||||
"20004": "Your account has been disabled",
|
||||
"30001": "The node already exists",
|
||||
"30002": "Node not found",
|
||||
"30003": "The node group already exists",
|
||||
"30004": "Node group not found",
|
||||
"30005": "There is still data in the node group, cannot be deleted",
|
||||
"400": "Request parameters are incorrect, please check and resubmit",
|
||||
"40002": "Please retry after logging in",
|
||||
"40003": "Invalid login information, please log in again",
|
||||
"40004": "Login session has expired, please log in again",
|
||||
"401": "Request is too frequent, please try again later",
|
||||
"500": "Internal system error, we are urgently fixing it",
|
||||
"undefined": "System error occurred, please try again later"
|
||||
},
|
||||
"unlimited": "Unlimited"
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Confirm",
|
||||
"confirmResetSubscription": "Are you sure you want to reset the subscription address?",
|
||||
"copy": "Copy",
|
||||
"copyFailure": "Copy failed, please copy manually",
|
||||
"copySuccess": "Copy successful",
|
||||
"download": "Download",
|
||||
"expirationDays": "Expiration Days",
|
||||
"import": "Import",
|
||||
"latestAnnouncement": "Latest Announcement",
|
||||
"manualImportMessage": "This app does not support activation. Please import manually. The subscription address has been copied.",
|
||||
"mySubscriptions": "My Subscriptions",
|
||||
"nextResetDays": "Next Reset in Days",
|
||||
"prompt": "Prompt",
|
||||
"purchaseSubscription": "Purchase Subscription",
|
||||
"qrCode": "QR Code",
|
||||
"resetSubscription": "Reset Subscription Address",
|
||||
"resetSuccess": "Reset successful",
|
||||
"scanToSubscribe": "Scan to Subscribe",
|
||||
"subscriptionUrl": "Subscription URL",
|
||||
"totalTraffic": "Total Traffic",
|
||||
"unknown": "Unknown",
|
||||
"used": "Used"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"back": "Back",
|
||||
"category": "Category",
|
||||
"read": "Read",
|
||||
"tags": "Tags",
|
||||
"title": "Title",
|
||||
"updatedAt": "Updated At"
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"choose_plan": "Choose Your Plan",
|
||||
"choose_plan_desc": "Let's select the plan that best suits you and explore it happily.",
|
||||
"global_network_desc": "Easily access our services while on the move.",
|
||||
"huge_network": "Vast and Fast Global Network",
|
||||
"started": "Get Started",
|
||||
"tos": "Terms of Service",
|
||||
"welcome": "Welcome to"
|
||||
}
|
||||
@@ -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)"
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"accountBalance": "Account Balance",
|
||||
"copyInviteLink": "Copy Invite Link",
|
||||
"copySuccess": "Invite Link Copied Successfully",
|
||||
"inviteCode": "Invite Code",
|
||||
"invitees": "Invitees",
|
||||
"recharge": "Recharge",
|
||||
"totalCommission": "Total Commission"
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"announcement": "Announcement List",
|
||||
"dashboard": "Dashboard",
|
||||
"document": "Documentation",
|
||||
"finance": "Finance",
|
||||
"help": "Help",
|
||||
"logout": "Logout",
|
||||
"order": "Order List",
|
||||
"payment": "Order Details",
|
||||
"personal": "Personal",
|
||||
"profile": "Profile",
|
||||
"server": "Service",
|
||||
"subscribe": "Subscribe",
|
||||
"ticket": "My Tickets",
|
||||
"wallet": "Wallet"
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"balanceRecharge": "Balance Recharge",
|
||||
"buyNow": "Buy Now",
|
||||
"buySubscription": "Buy Subscription",
|
||||
"cancel": "Cancel",
|
||||
"createdAt": "Created At",
|
||||
"description": "One-click recharge, easy to handle",
|
||||
"detail": "Detail",
|
||||
"enterAmount": "Enter recharge amount",
|
||||
"enterCoupon": "Enter Coupon Code",
|
||||
"goToPayment": "Go to Payment",
|
||||
"methods": {
|
||||
"alipay_f2f": "Alipay (Face to Face)",
|
||||
"balance": "Balance",
|
||||
"epay": "Epay",
|
||||
"stripe_alipay": "Stripe (Alipay)",
|
||||
"stripe_wechat_pay": "Stripe (WeChat)"
|
||||
},
|
||||
"month": "month",
|
||||
"months": "months",
|
||||
"name": "Name",
|
||||
"orderClosed": "Order Closed",
|
||||
"orderList": "Order List",
|
||||
"orderNo": "Order Number",
|
||||
"orderNumber": "Order Number",
|
||||
"payment": "Payment",
|
||||
"paymentAmount": "Payment Amount",
|
||||
"paymentMethod": "Payment Method",
|
||||
"paymentSuccess": "Payment Success",
|
||||
"productList": "Product List",
|
||||
"purchaseDuration": "Purchase Duration",
|
||||
"recharge": "Recharge",
|
||||
"rechargeAmount": "Recharge Amount",
|
||||
"rechargeNow": "Recharge Now",
|
||||
"renew": "Renew",
|
||||
"renewSubscription": "Renew Subscription",
|
||||
"resetPrice": "Reset Price",
|
||||
"resetTraffic": "Reset Traffic",
|
||||
"resetTrafficDescription": "Reset traffic for the current month only",
|
||||
"resetTrafficTitle": "Reset Traffic",
|
||||
"scanToPay": "Scan to Pay",
|
||||
"status": {
|
||||
"0": "Status",
|
||||
"1": "Pending",
|
||||
"2": "Paid",
|
||||
"3": "Cancelled",
|
||||
"4": "Closed",
|
||||
"5": "Completed"
|
||||
},
|
||||
"subscribeNow": "Subscribe Now",
|
||||
"timeExpired": "Payment Time Expired",
|
||||
"type": {
|
||||
"0": "Type",
|
||||
"1": "New Purchase",
|
||||
"2": "Renewal",
|
||||
"3": "Reset Traffic",
|
||||
"4": "Recharge"
|
||||
},
|
||||
"viewDocument": "View Document",
|
||||
"waitingForPayment": "Waiting for Payment"
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"accountSettings": {
|
||||
"accountSettings": "Account Settings",
|
||||
"loginPassword": "Login Password",
|
||||
"newPassword": "New Password",
|
||||
"passwordMismatch": "Passwords do not match",
|
||||
"repeatNewPassword": "Repeat New Password",
|
||||
"updatePassword": "Update Password",
|
||||
"updateSuccess": "Update Successful"
|
||||
},
|
||||
"notify": {
|
||||
"bind": "Bind",
|
||||
"emailNotification": "Email Notification",
|
||||
"notificationSettings": "Notification Settings",
|
||||
"telegramId": "Telegram ID",
|
||||
"telegramIdPlaceholder": "Enter Telegram ID",
|
||||
"telegramNotification": "Telegram Notification",
|
||||
"updateSuccess": "Update Successful"
|
||||
},
|
||||
"notifyEvent": {
|
||||
"balanceChange": "Balance Change",
|
||||
"finance": "Finance",
|
||||
"login": "Login",
|
||||
"notificationEvents": "Notification Events",
|
||||
"subscribe": "Subscribe",
|
||||
"updateSuccess": "Update Successful"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"all": "All",
|
||||
"billing": {
|
||||
"billingTitle": "Product Billing",
|
||||
"couponDiscount": "Coupon Discount",
|
||||
"duration": "Duration",
|
||||
"fee": "Fee",
|
||||
"months": "months",
|
||||
"price": "Price",
|
||||
"productDiscount": "Product Discount",
|
||||
"total": "Total"
|
||||
},
|
||||
"buy": "Buy",
|
||||
"category": "Category",
|
||||
"detail": {
|
||||
"availableTraffic": "Available Traffic",
|
||||
"connectedDevices": "Connected Devices",
|
||||
"connectionSpeed": "Connection Speed",
|
||||
"productDetail": "Product Details"
|
||||
},
|
||||
"methods": {
|
||||
"alipay_f2f": "Alipay (Face to Face)",
|
||||
"balance": "Balance",
|
||||
"epay": "Epay",
|
||||
"stripe_alipay": "Stripe (Alipay)",
|
||||
"stripe_wechat_pay": "Stripe (WeChat)"
|
||||
},
|
||||
"perMonth": "Per Month",
|
||||
"productDescription": "Product Description",
|
||||
"products": "Products"
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"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?",
|
||||
"createSuccess": "Creation successful",
|
||||
"createTicket": "Create ticket",
|
||||
"createTicketDescription": "We will reply to the ticket within 24 hours",
|
||||
"description": "Description",
|
||||
"inputPlaceholder": "Please enter your question, we will reply as soon as possible.",
|
||||
"reply": "Reply",
|
||||
"status": ["Status", "Pending Reply", "Pending Follow-up", "Resolved", "Closed"],
|
||||
"submit": "Submit",
|
||||
"ticketList": "Ticket List",
|
||||
"title": "Title",
|
||||
"updatedAt": "Updated At"
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"amount": "Amount",
|
||||
"balance": "Balance",
|
||||
"createdAt": "Time",
|
||||
"title": "Account Balance",
|
||||
"type": {
|
||||
"0": "Type",
|
||||
"1": "Recharge",
|
||||
"2": "Withdrawal",
|
||||
"3": "Purchase",
|
||||
"4": "Refund",
|
||||
"5": "Reward",
|
||||
"6": "Commission"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
import { getRequestConfig } from 'next-intl/server';
|
||||
import { cookies, headers } from 'next/headers';
|
||||
|
||||
const locales = ['zh-CN', 'en-US'];
|
||||
|
||||
export default getRequestConfig(async () => {
|
||||
const browserLocale = (await headers()).get('Accept-Language')?.split(',')?.[0] || '';
|
||||
const defaultLocale = locales.includes(browserLocale) ? browserLocale : '';
|
||||
const cookieLocale = (await cookies()).get('locale')?.value || '';
|
||||
|
||||
const locale =
|
||||
cookieLocale || defaultLocale || process.env.NEXT_PUBLIC_DEFAULT_LANGUAGE || locales[0];
|
||||
|
||||
const messages = {
|
||||
language: (await import(`./${locale}/language.json`)).default,
|
||||
menu: (await import(`./${locale}/menu.json`)).default,
|
||||
auth: (await import(`./${locale}/auth.json`)).default,
|
||||
common: (await import(`./${locale}/common.json`)).default,
|
||||
layout: (await import(`./${locale}/layout.json`)).default,
|
||||
index: (await import(`./${locale}/index.json`)).default,
|
||||
dashboard: (await import(`./${locale}/dashboard.json`)).default,
|
||||
profile: (await import(`./${locale}/profile.json`)).default,
|
||||
subscribe: (await import(`./${locale}/subscribe.json`)).default,
|
||||
order: (await import(`./${locale}/order.json`)).default,
|
||||
wallet: (await import(`./${locale}/wallet.json`)).default,
|
||||
ticket: (await import(`./${locale}/ticket.json`)).default,
|
||||
document: (await import(`./${locale}/document.json`)).default,
|
||||
};
|
||||
|
||||
return {
|
||||
locale,
|
||||
messages,
|
||||
};
|
||||
});
|
||||
@@ -0,0 +1,8 @@
|
||||
import { getLocale } from '@/utils/common';
|
||||
import { createTranslator } from 'next-intl';
|
||||
|
||||
export async function getTranslations(namespace: string) {
|
||||
const locale = getLocale();
|
||||
const messages = (await import(`./${locale}/${namespace}.json`)).default;
|
||||
return createTranslator({ locale, messages });
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"check": {
|
||||
"checking": "正在验证...",
|
||||
"continue": "继续",
|
||||
"description": "请输入您的电子邮件以继续登录或注册。",
|
||||
"email": "请输入有效的邮箱地址。",
|
||||
"title": "登录/注册",
|
||||
"whitelist": "邮箱域名不在允许的白名单中。"
|
||||
},
|
||||
"login": {
|
||||
"description": "请输入您的账户信息以登录。",
|
||||
"forgotPassword": "忘记密码?",
|
||||
"success": "登录成功!",
|
||||
"switchAccount": "注册/切换账号",
|
||||
"title": "登录"
|
||||
},
|
||||
"orWithEmail": "或使用邮箱",
|
||||
"register": {
|
||||
"description": "创建新账户,填写您的信息以注册。",
|
||||
"existingAccount": "已有账户?",
|
||||
"get": "获取",
|
||||
"invite": "邀请码",
|
||||
"message": "#### 尊敬的用户,您好!\n\n感谢您对我们的关注和支持。由于站点运营策略的调整,我们已关闭新用户注册功能。在此期间,现有用户的使用不会受到任何影响。\n\n我们致力于为您提供更好的服务和体验,因此将在关闭注册期间进行全面的系统优化和功能升级。未来,我们将以更优质的内容和服务迎接您的到来。\n\n请关注我们的网站和社交媒体平台,获取最新的动态和通知。感谢您的理解与支持。\n\n如有任何疑问或需要帮助,请随时联系我们的客服团队。\n\n**再次感谢您的支持与理解。**",
|
||||
"passwordMismatch": "两次密码输入不一致",
|
||||
"success": "注册成功,已自动登录!",
|
||||
"switchToLogin": "登录/重置邮箱",
|
||||
"title": "注册"
|
||||
},
|
||||
"reset": {
|
||||
"description": "请输入您的电子邮件地址以重置密码。",
|
||||
"existingAccount": "已有账户?",
|
||||
"get": "获取",
|
||||
"success": "重置密码成功,已自动切换到登录!",
|
||||
"switchToLogin": "登录/注册",
|
||||
"title": "重置密码"
|
||||
},
|
||||
"tos": "服务条款"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"empty": [
|
||||
"想象一下这里充满了精彩的内容!暂时只能靠想象了…",
|
||||
"这片区域神秘消失了,我们正在召唤它回来!",
|
||||
"哎呀,什么都没发生…你可以自己填点什么!",
|
||||
"这就像在演唱会上发现舞台上没人…要不你上去表演?",
|
||||
"你找到了一片空白乐土!要不要建个房子?",
|
||||
"这里暂时空无一物,但创意从这里开始!",
|
||||
"什么也没有…但别担心,这只是个开始!",
|
||||
"这里原本准备了大惊喜,结果惊喜溜走了!",
|
||||
"暂时什么都没有,就像零食柜被吃空了一样。",
|
||||
"这片空地在等它的主角登场!"
|
||||
],
|
||||
"list": {
|
||||
"pageInfo": "第 {current} 页,共 {total} 页",
|
||||
"rowsPerPage": "每页行数",
|
||||
"selectedItems": "已选择 {total} 行"
|
||||
},
|
||||
"request": {
|
||||
"10001": "数据库查询失败,请稍后重试",
|
||||
"10002": "数据更新失败,请稍后重试",
|
||||
"10003": "数据保存失败,请稍后重试",
|
||||
"10004": "数据删除失败,请稍后重试",
|
||||
"20001": "该用户名已被注册",
|
||||
"20002": "找不到该用户",
|
||||
"20003": "密码错误,请重新输入",
|
||||
"20004": "您的账号已被禁用",
|
||||
"30001": "该节点已存在",
|
||||
"30002": "找不到该节点",
|
||||
"30003": "该节点组已存在",
|
||||
"30004": "找不到该节点组",
|
||||
"30005": "节点组中还有数据,无法删除",
|
||||
"400": "请求参数有误,请检查后重新提交",
|
||||
"40002": "请登录后重试",
|
||||
"40003": "登录信息无效,请重新登录",
|
||||
"40004": "登录已过期,请重新登录",
|
||||
"401": "请求过于频繁,请稍后重试",
|
||||
"500": "系统内部错误,我们正在紧急修复",
|
||||
"undefined": "系统发生错误,请稍后重试"
|
||||
},
|
||||
"unlimited": "无限制"
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"cancel": "取消",
|
||||
"confirm": "确认",
|
||||
"confirmResetSubscription": "是否确认重置订阅地址?",
|
||||
"copy": "复制",
|
||||
"copyFailure": "复制失败,请手动复制",
|
||||
"copySuccess": "复制成功",
|
||||
"download": "下载",
|
||||
"expirationDays": "到期时间/天",
|
||||
"import": "导入",
|
||||
"latestAnnouncement": "最新公告",
|
||||
"manualImportMessage": "该应用暂不支持唤起,请手动导入,已自动复制订阅地址",
|
||||
"mySubscriptions": "我的订阅",
|
||||
"nextResetDays": "下次重置/天",
|
||||
"prompt": "提示",
|
||||
"purchaseSubscription": "购买订阅",
|
||||
"qrCode": "二维码",
|
||||
"resetSubscription": "重置订阅地址",
|
||||
"resetSuccess": "重置成功",
|
||||
"scanToSubscribe": "扫描订阅",
|
||||
"subscriptionUrl": "订阅地址",
|
||||
"totalTraffic": "总流量",
|
||||
"unknown": "未知",
|
||||
"used": "已用"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"back": "返回",
|
||||
"category": "分类",
|
||||
"read": "阅读",
|
||||
"tags": "分类",
|
||||
"title": "标题",
|
||||
"updatedAt": "更新时间"
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"choose_plan": "选择您的套餐",
|
||||
"choose_plan_desc": "让我们选择最适合您的套餐,快乐地探索它。",
|
||||
"global_network_desc": "让您在移动地点时更轻松地看到我们的服务。",
|
||||
"huge_network": "庞大的快速全球网络",
|
||||
"started": "开始使用",
|
||||
"tos": "服务协议",
|
||||
"welcome": "欢迎来到"
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"cs-CZ": "捷克语",
|
||||
"de-DE": "德语",
|
||||
"en-US": "英语",
|
||||
"es-ES": "西班牙语",
|
||||
"es-MX": "西班牙语(墨西哥)",
|
||||
"fi-FI": "芬兰语",
|
||||
"fr-FR": "法语",
|
||||
"hi-IN": "印地语",
|
||||
"hu-HU": "匈牙利语",
|
||||
"ja-JP": "日语",
|
||||
"ko-KR": "韩语",
|
||||
"no-NO": "挪威语",
|
||||
"pl-PL": "波兰语",
|
||||
"pt-BR": "葡萄牙语(巴西)",
|
||||
"ro-RO": "罗马尼亚语",
|
||||
"ru-RU": "俄语",
|
||||
"th-TH": "泰语",
|
||||
"tr-TR": "土耳其语",
|
||||
"uk-UA": "乌克兰语",
|
||||
"vi-VN": "越南语",
|
||||
"zh-CN": "中文(简体)",
|
||||
"zh-TW": "中文(繁体)"
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"accountBalance": "账户余额",
|
||||
"copyInviteLink": "复制邀请链接",
|
||||
"copySuccess": "邀请链接复制成功",
|
||||
"inviteCode": "邀请码",
|
||||
"invitees": "邀请人数",
|
||||
"recharge": "充值",
|
||||
"totalCommission": "佣金总额"
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"announcement": "公告列表",
|
||||
"dashboard": "主页",
|
||||
"document": "使用文档",
|
||||
"finance": "财务",
|
||||
"help": "帮助",
|
||||
"logout": "退出登录",
|
||||
"order": "订单列表",
|
||||
"payment": "订单详情",
|
||||
"personal": "个人",
|
||||
"profile": "个人中心",
|
||||
"server": "服务",
|
||||
"subscribe": "购买订阅",
|
||||
"ticket": "我的工单",
|
||||
"wallet": "财务中心"
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"balanceRecharge": "余额充值",
|
||||
"buyNow": "立即购买",
|
||||
"buySubscription": "购买订阅",
|
||||
"cancel": "取消",
|
||||
"createdAt": "创建时间",
|
||||
"description": "一键充值,轻松搞定",
|
||||
"detail": "详情",
|
||||
"enterAmount": "请输入充值金额",
|
||||
"enterCoupon": "请输入折扣码",
|
||||
"goToPayment": "前往支付",
|
||||
"methods": {
|
||||
"alipay_f2f": "支付宝(面对面)",
|
||||
"balance": "余额",
|
||||
"epay": "易支付",
|
||||
"stripe_alipay": "Stripe(支付宝)",
|
||||
"stripe_wechat_pay": "Stripe(微信)"
|
||||
},
|
||||
"month": "个月",
|
||||
"months": "个月",
|
||||
"name": "名称",
|
||||
"orderClosed": "订单已关闭",
|
||||
"orderList": "订单列表",
|
||||
"orderNo": "订单号",
|
||||
"orderNumber": "订单编号",
|
||||
"payment": "去支付",
|
||||
"paymentAmount": "支付金额",
|
||||
"paymentMethod": "支付方式",
|
||||
"paymentSuccess": "支付成功",
|
||||
"productList": "产品列表",
|
||||
"purchaseDuration": "购买时长",
|
||||
"recharge": "充值",
|
||||
"rechargeAmount": "充值金额",
|
||||
"rechargeNow": "立即充值",
|
||||
"renew": "续费",
|
||||
"renewSubscription": "续费订阅",
|
||||
"resetPrice": "重置价格",
|
||||
"resetTraffic": "重置流量",
|
||||
"resetTrafficDescription": "仅重置当月流量哦",
|
||||
"resetTrafficTitle": "重置流量",
|
||||
"scanToPay": "请扫码支付",
|
||||
"status": {
|
||||
"0": "状态",
|
||||
"1": "待支付",
|
||||
"2": "已支付",
|
||||
"3": "已取消",
|
||||
"4": "已关闭",
|
||||
"5": "已完成"
|
||||
},
|
||||
"subscribeNow": "立即订阅",
|
||||
"timeExpired": "支付时间已过",
|
||||
"type": {
|
||||
"0": "类型",
|
||||
"1": "新购",
|
||||
"2": "续费",
|
||||
"3": "重置流量",
|
||||
"4": "充值"
|
||||
},
|
||||
"viewDocument": "查看文档",
|
||||
"waitingForPayment": "等待支付"
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"accountSettings": {
|
||||
"accountSettings": "账户设置",
|
||||
"loginPassword": "登录密码",
|
||||
"newPassword": "新密码",
|
||||
"passwordMismatch": "两次密码输入不一致",
|
||||
"repeatNewPassword": "重复新密码",
|
||||
"updatePassword": "更新密码",
|
||||
"updateSuccess": "更新成功"
|
||||
},
|
||||
"notify": {
|
||||
"bind": "绑定",
|
||||
"emailNotification": "邮件通知",
|
||||
"notificationSettings": "通知设置",
|
||||
"telegramId": "Telegram ID",
|
||||
"telegramIdPlaceholder": "输入 Telegram ID",
|
||||
"telegramNotification": "Telegram 通知",
|
||||
"updateSuccess": "更新成功"
|
||||
},
|
||||
"notifyEvent": {
|
||||
"balanceChange": "余额变动",
|
||||
"finance": "财务",
|
||||
"login": "登录",
|
||||
"notificationEvents": "通知事件",
|
||||
"subscribe": "订阅",
|
||||
"updateSuccess": "更新成功"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"all": "全部",
|
||||
"billing": {
|
||||
"billingTitle": "商品账单",
|
||||
"couponDiscount": "折扣码优惠",
|
||||
"duration": "套餐时长",
|
||||
"fee": "手续费",
|
||||
"months": "个月",
|
||||
"price": "价格",
|
||||
"productDiscount": "商品折扣",
|
||||
"total": "总价"
|
||||
},
|
||||
"buy": "购买",
|
||||
"category": "类别",
|
||||
"detail": {
|
||||
"availableTraffic": "可用流量",
|
||||
"connectedDevices": "同时连接 IP 数",
|
||||
"connectionSpeed": "连接速度",
|
||||
"productDetail": "商品详情"
|
||||
},
|
||||
"methods": {
|
||||
"alipay_f2f": "支付宝(面对面)",
|
||||
"balance": "余额",
|
||||
"epay": "易支付",
|
||||
"stripe_alipay": "Stripe(支付宝)",
|
||||
"stripe_wechat_pay": "Stripe(微信)"
|
||||
},
|
||||
"perMonth": "月",
|
||||
"productDescription": "商品描述",
|
||||
"products": "商品"
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"cancel": "取消",
|
||||
"check": "查看",
|
||||
"close": "关闭",
|
||||
"closeSuccess": "工单关闭成功",
|
||||
"closeWarning": "关闭工单后将无法继续回复。",
|
||||
"confirm": "确认",
|
||||
"confirmClose": "确认关闭工单吗?",
|
||||
"createSuccess": "创建成功",
|
||||
"createTicket": "创建工单",
|
||||
"createTicketDescription": "工单24小时内回复哦",
|
||||
"description": "描述",
|
||||
"inputPlaceholder": "输入您的消息",
|
||||
"reply": "回复",
|
||||
"status": {
|
||||
"0": "状态",
|
||||
"1": "待处理",
|
||||
"2": "处理中",
|
||||
"3": "已解决",
|
||||
"4": "已关闭"
|
||||
},
|
||||
"submit": "提交",
|
||||
"ticketList": "工单列表",
|
||||
"title": "标题",
|
||||
"updatedAt": "更新时间"
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"amount": "金额",
|
||||
"balance": "余额",
|
||||
"createdAt": "时间",
|
||||
"title": "账户余额",
|
||||
"type": {
|
||||
"0": "类型",
|
||||
"1": "充值",
|
||||
"2": "提取",
|
||||
"3": "购买",
|
||||
"4": "退款",
|
||||
"5": "奖励",
|
||||
"6": "佣金"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user