Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/i18n/locales/de/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -1168,7 +1168,7 @@
"contactSales": "Vertrieb kontaktieren",
"managePlan": "Plan verwalten",
"hostedPlans": "Gehostete Pläne",
"hostedPlansDescription": "Wir hosten alles auf Hetzner (EU). Sie zahlen für Hosting, Rechenleistung und Support.",
"hostedPlansDescription": "Vollständig verwalteter Cloud-Service, gehostet in der EU. Wir kümmern uns um alles.",
"free": {
"name": "Kostenlos",
"price": "€0",
Expand Down Expand Up @@ -1221,6 +1221,7 @@
},
"myPlan": {
"title": "Mein Plan",
"comingSoon": "Demnächst",
"comingSoonTitle": "Abonnementverwaltung kommt bald",
"comingSoonSubtitle": "Professionelle Abonnementfunktionen werden finalisiert",
"comingSoonDescription": "Wir entwickeln ein umfassendes Abonnementverwaltungssystem. Derzeit sind alle Funktionen kostenlos verfügbar.",
Expand Down
3 changes: 2 additions & 1 deletion src/i18n/locales/en/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -1449,7 +1449,7 @@
"contactSales": "Contact Sales",
"managePlan": "Manage Plan",
"hostedPlans": "Hosted Plans",
"hostedPlansDescription": "We host everything on Hetzner (EU). You pay for hosting, compute, and support.",
"hostedPlansDescription": "Fully managed cloud service hosted in the EU. We take care of everything.",
"free": {
"name": "Free",
"price": "€0",
Expand Down Expand Up @@ -1502,6 +1502,7 @@
},
"myPlan": {
"title": "My Plan",
"comingSoon": "Coming Soon",
"comingSoonTitle": "Subscription Management Coming Soon",
"comingSoonSubtitle": "Professional subscription features are being finalized",
"comingSoonDescription": "We're building a comprehensive subscription management system. Currently, all features are available for free.",
Expand Down
3 changes: 2 additions & 1 deletion src/i18n/locales/nl/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -1438,7 +1438,7 @@
"contactSales": "Contact verkoop",
"managePlan": "Abonnement beheren",
"hostedPlans": "Gehoste abonnementen",
"hostedPlansDescription": "Wij hosten alles op Hetzner (EU). U betaalt voor hosting, rekenkracht en ondersteuning.",
"hostedPlansDescription": "Volledig beheerde clouddienst gehost in de EU. Wij regelen alles.",
"free": {
"name": "Gratis",
"price": "€0",
Expand Down Expand Up @@ -1492,6 +1492,7 @@
"myPlan": {
"title": "Mijn abonnement",
"subtitle": "Beheer uw abonnement en gebruik",
"comingSoon": "Binnenkort",
"comingSoonTitle": "Abonnementsbeheer komt binnenkort",
"comingSoonSubtitle": "Professionele abonnementsfuncties worden afgerond",
"comingSoonDescription": "We bouwen een uitgebreid abonnementsbeheer systeem. Momenteel zijn alle functies gratis beschikbaar.",
Expand Down
9 changes: 5 additions & 4 deletions src/pages/common/MyPlan.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ import { Spinner } from "@/components/ui/spinner";
import { cn } from "@/lib/utils";
import { useSubscription } from "@/hooks/useSubscription";

const pricingTiers = [
const getPricingTiers = (t: (key: string) => string) => [
{
id: "free",
name: "Free",
price: "€0",
price: t("myPlan.comingSoon"),
description: "Try it. Very limited.",
features: [
"25 jobs per month",
Expand All @@ -42,7 +42,7 @@ const pricingTiers = [
{
id: "pro",
name: "Pro",
price: "€97",
price: t("myPlan.comingSoon"),
popular: true,
description: "Real usage, email support.",
features: [
Expand All @@ -58,7 +58,7 @@ const pricingTiers = [
{
id: "premium",
name: "Premium",
price: "€497",
price: t("myPlan.comingSoon"),
description: "High limits, SSO, priority support.",
features: [
"Fair use (high limits)",
Expand Down Expand Up @@ -117,6 +117,7 @@ export const MyPlan: React.FC = () => {
}

const currentPlan = subscription?.plan || "free";
const pricingTiers = getPricingTiers(t);
const currentTier = pricingTiers.find((tier) => tier.id === currentPlan);

const getPlanGradient = (plan: string) => {
Expand Down
Loading