diff --git a/apps/user/public/assets/locales/en-US/dashboard.json b/apps/user/public/assets/locales/en-US/dashboard.json
index 8ca073d..bbc8be3 100644
--- a/apps/user/public/assets/locales/en-US/dashboard.json
+++ b/apps/user/public/assets/locales/en-US/dashboard.json
@@ -31,5 +31,13 @@
"subscriptionUrl": "Subscription URL",
"totalTraffic": "Total Traffic",
"unknown": "Unknown",
- "used": "Used"
+ "used": "Used",
+ "redeemCode": "Redeem Code",
+ "redeemCodeTitle": "Redeem Code",
+ "redeemCodeDescription": "Enter redemption code to get subscription plan",
+ "enterRedemptionCode": "Please enter redemption code",
+ "redeemButton": "Redeem Now",
+ "redeeming": "Redeeming...",
+ "redeemSuccess": "Redemption successful! Subscription has been activated.",
+ "redeemFailed": "Redemption failed"
}
diff --git a/apps/user/public/assets/locales/zh-CN/dashboard.json b/apps/user/public/assets/locales/zh-CN/dashboard.json
index 5e573b2..2eb4e5a 100644
--- a/apps/user/public/assets/locales/zh-CN/dashboard.json
+++ b/apps/user/public/assets/locales/zh-CN/dashboard.json
@@ -31,5 +31,13 @@
"subscriptionUrl": "订阅链接",
"totalTraffic": "总流量",
"unknown": "未知",
- "used": "已使用"
+ "used": "已使用",
+ "redeemCode": "兑换 CDK",
+ "redeemCodeTitle": "CDK 兑换",
+ "redeemCodeDescription": "输入兑换码以获取订阅套餐",
+ "enterRedemptionCode": "请输入兑换码",
+ "redeemButton": "立即兑换",
+ "redeeming": "兑换中...",
+ "redeemSuccess": "兑换成功!",
+ "redeemFailed": "兑换失败"
}
diff --git a/apps/user/src/sections/user/dashboard/content.tsx b/apps/user/src/sections/user/dashboard/content.tsx
index db0b531..09ef784 100644
--- a/apps/user/src/sections/user/dashboard/content.tsx
+++ b/apps/user/src/sections/user/dashboard/content.tsx
@@ -47,6 +47,7 @@ import Subscribe from "../../subscribe";
import Renewal from "../../subscribe/renewal";
import ResetTraffic from "../../subscribe/reset-traffic";
import Unsubscribe from "../../subscribe/unsubscribe";
+import RedeemCode from "./redeem-code";
const platforms: (keyof API.DownloadLink)[] = [
"windows",
@@ -164,6 +165,7 @@ export default function Content() {
+