{recurring === SubscriptionRecurring.Yearly ? (
-
Yearly
+
+ {t['com.affine.payment.cloud.pricing-plan.toggle-yearly']()}
+
) : (
<>
- Billed Yearly
+
+ {t[
+ 'com.affine.payment.cloud.pricing-plan.toggle-billed-yearly'
+ ]()}
+
{yearlyDiscount ? (
- Saving {yearlyDiscount}%
+ {t['com.affine.payment.cloud.pricing-plan.toggle-discount']({
+ discount: yearlyDiscount,
+ })}
) : null}
>
@@ -201,8 +209,8 @@ const Settings = () => {
const cloudSelect = (
- Hosted by AFFiNE.Pro
- We host, no technical setup required.
+ {t['com.affine.payment.cloud.pricing-plan.select.title']()}
+ {t['com.affine.payment.cloud.pricing-plan.select.caption']()}
);
diff --git a/packages/frontend/core/src/components/affine/setting-modal/general-setting/plans/style.css.ts b/packages/frontend/core/src/components/affine/setting-modal/general-setting/plans/style.css.ts
index f14fe13b00..bf0b03daca 100644
--- a/packages/frontend/core/src/components/affine/setting-modal/general-setting/plans/style.css.ts
+++ b/packages/frontend/core/src/components/affine/setting-modal/general-setting/plans/style.css.ts
@@ -153,6 +153,13 @@ export const planTitleTitle = style({
fontSize: cssVar('fontBase'),
lineHeight: '20px',
});
+export const planTitleTitleCaption = style({
+ fontWeight: 500,
+ fontSize: cssVar('fontXs'),
+ lineHeight: '20px',
+ color: cssVar('textSecondaryColor'),
+ marginLeft: 4,
+});
export const planPriceWrapper = style({
minHeight: '28px',
lineHeight: 1,
diff --git a/packages/frontend/graphql/src/schema.ts b/packages/frontend/graphql/src/schema.ts
index fc01dd81fc..c8fb983623 100644
--- a/packages/frontend/graphql/src/schema.ts
+++ b/packages/frontend/graphql/src/schema.ts
@@ -82,6 +82,7 @@ export enum ServerDeploymentType {
}
export enum ServerFeature {
+ Copilot = 'Copilot',
OAuth = 'OAuth',
Payment = 'Payment',
}
diff --git a/packages/frontend/i18n/src/resources/en.json b/packages/frontend/i18n/src/resources/en.json
index e506a808d0..3baccc8c67 100644
--- a/packages/frontend/i18n/src/resources/en.json
+++ b/packages/frontend/i18n/src/resources/en.json
@@ -834,6 +834,82 @@
"com.affine.pageMode.all": "all",
"com.affine.pageMode.edgeless": "Edgeless",
"com.affine.pageMode.page": "Page",
+ "com.affine.payment.cloud.pricing-plan.select.title": "Hosted by AFFiNE.Pro",
+ "com.affine.payment.cloud.pricing-plan.select.caption": "We host, no technical setup required.",
+ "com.affine.payment.cloud.pricing-plan.toggle-yearly": "Yearly",
+ "com.affine.payment.cloud.pricing-plan.toggle-billed-yearly": "Billed Yearly",
+ "com.affine.payment.cloud.pricing-plan.toggle-discount": "Saving {{discount}}%",
+ "com.affine.payment.cloud.free.name": "FOSS + Basic",
+ "com.affine.payment.cloud.free.description": "Open-Source under MIT license.",
+ "com.affine.payment.cloud.free.title": "Free forever",
+ "com.affine.payment.cloud.free.benefit.g1": "Include in FOSS",
+ "com.affine.payment.cloud.free.benefit.g1-1": "Unlimited Local Workspaces",
+ "com.affine.payment.cloud.free.benefit.g1-2": "Unlimited use and Customization",
+ "com.affine.payment.cloud.free.benefit.g1-3": "Unlimited Doc and Edgeless editing",
+ "com.affine.payment.cloud.free.benefit.g2": "Include in Basic",
+ "com.affine.payment.cloud.free.benefit.g2-1": "10 GB of Cloud Storage.",
+ "com.affine.payment.cloud.free.benefit.g2-2": "10 MB of Maximum file size.",
+ "com.affine.payment.cloud.free.benefit.g2-3": "Up to 3 members per Workspace.",
+ "com.affine.payment.cloud.free.benefit.g2-4": "7-days Cloud Time Machine file version history.",
+ "com.affine.payment.cloud.free.benefit.g2-5": "Up to 3 login devices.",
+ "com.affine.payment.cloud.pro.name": "Pro",
+ "com.affine.payment.cloud.pro.description": "For family and small teams.",
+ "com.affine.payment.cloud.pro.title.price-monthly": "{{price}} per month",
+ "com.affine.payment.cloud.pro.title.billed-yearly": "billed yearly",
+ "com.affine.payment.cloud.pro.benefit.g1": "Include in Pro",
+ "com.affine.payment.cloud.pro.benefit.g1-1": "Everything in AFFiNE FOSS & Basic.",
+ "com.affine.payment.cloud.pro.benefit.g1-2": "100 GB of Cloud Storage.",
+ "com.affine.payment.cloud.pro.benefit.g1-3": "100 MB of Maximum file size.",
+ "com.affine.payment.cloud.pro.benefit.g1-4": "Up to 10 members per Workspace.",
+ "com.affine.payment.cloud.pro.benefit.g1-5": "30-days Cloud Time Machine file version history.",
+ "com.affine.payment.cloud.pro.benefit.g1-6": "Add comments on Doc and Edgeless.",
+ "com.affine.payment.cloud.pro.benefit.g1-7": "Community Support.",
+ "com.affine.payment.cloud.pro.benefit.g1-8": "Real-time Syncing & Collaboration for more people.",
+ "com.affine.payment.cloud.team.name": "Team / Enterprise",
+ "com.affine.payment.cloud.team.description": "Best for scalable teams.",
+ "com.affine.payment.cloud.team.title": "Contact Sales",
+ "com.affine.payment.cloud.team.benefit.g1": "Both in Team & Enterprise",
+ "com.affine.payment.cloud.team.benefit.g1-1": "Everything in AFFiNE Pro.",
+ "com.affine.payment.cloud.team.benefit.g1-2": "Advanced Permission control, Page history and Review mode.",
+ "com.affine.payment.cloud.team.benefit.g1-3": "Pay for seats, fits all team size.",
+ "com.affine.payment.cloud.team.benefit.g1-4": "Email & Slack Support.",
+ "com.affine.payment.cloud.team.benefit.g2": "Enterprise only",
+ "com.affine.payment.cloud.team.benefit.g2-1": "SSO Authorization.",
+ "com.affine.payment.cloud.team.benefit.g2-2": "Solutions & Best Practices for Dedicated needs.",
+ "com.affine.payment.cloud.team.benefit.g2-3": "Embed-able & Integrations with IT support.",
+ "com.affine.payment.ai.pricing-plan.title-caption-1": "Turn all your ideas into reality",
+ "com.affine.payment.ai.pricing-plan.title-caption-2": "A true multimodal AI copilot.",
+ "com.affine.payment.ai.pricing-plan.title": "AFFiNE AI",
+ "com.affine.payment.ai.pricing-plan.caption-purchased": "You have purchased AFFiNE AI",
+ "com.affine.payment.ai.pricing-plan.caption-free": "You are current on the Basic plan.",
+ "com.affine.payment.ai.pricing-plan.learn": "Learn About AFFiNE AI",
+ "com.affine.payment.ai.billing-tip.next-bill-at": "You have purchased AFFiNE AI. The next payment date is {{due}}.",
+ "com.affine.payment.ai.billing-tip.end-at": "You have purchased AFFiNE AI. The expiration date is {{end}}.",
+ "com.affine.payment.ai.action.cancel.confirm.title": "Cancel Subscription",
+ "com.affine.payment.ai.action.cancel.confirm.description": "If you end your subscription now, you can still use AFFiNE AI until the end of this billing period.",
+ "com.affine.payment.ai.action.cancel.confirm.confirm-text": "Cancel Subscription",
+ "com.affine.payment.ai.action.cancel.confirm.cancel-text": "Keep AFFiNE AI",
+ "com.affine.payment.ai.action.cancel.button-label": "Cancel Subscription",
+ "com.affine.payment.ai.action.login.button-label": "Login",
+ "com.affine.payment.ai.action.resume.confirm.title": "Resume Auto-Renewal?",
+ "com.affine.payment.ai.action.resume.confirm.description": "Are you sure you want to resume the subscription for AFFiNE AI? This means your payment method will be charged automatically at the end of each billing cycle, starting from the next billing cycle.",
+ "com.affine.payment.ai.action.resume.confirm.confirm-text": "Confirm",
+ "com.affine.payment.ai.action.resume.confirm.cancel-text": "Cancel",
+ "com.affine.payment.ai.action.resume.confirm.notify.title": "Subscription Updated",
+ "com.affine.payment.ai.action.resume.confirm.notify.msg": "You will be charged in the next billing cycle.",
+ "com.affine.payment.ai.action.resume.button-label": "Resume",
+ "com.affine.payment.ai.benefit.g1": "Write with you",
+ "com.affine.payment.ai.benefit.g1-1": "Create quality content from sentences to articles on topics you need",
+ "com.affine.payment.ai.benefit.g1-2": "Rewrite like the professionals",
+ "com.affine.payment.ai.benefit.g1-3": "Change the tones / fix spelling & grammar",
+ "com.affine.payment.ai.benefit.g2": "Draw with you",
+ "com.affine.payment.ai.benefit.g2-1": "Visualize your mind, magically",
+ "com.affine.payment.ai.benefit.g2-2": "Turn your outline into beautiful, engaging presentations",
+ "com.affine.payment.ai.benefit.g2-3": "Summarize your content into structured mind-map",
+ "com.affine.payment.ai.benefit.g3": "Plan with you",
+ "com.affine.payment.ai.benefit.g3-1": "Memorize and tidy up your knowledge",
+ "com.affine.payment.ai.benefit.g3-2": "Auto-sorting and auto-tagging",
+ "com.affine.payment.ai.benefit.g3-3": "Open source & Privacy ensured",
"com.affine.payment.benefit-1": "Unlimited local workspaces",
"com.affine.payment.benefit-2": "Unlimited login devices",
"com.affine.payment.benefit-3": "Unlimited blocks",