diff --git a/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/components/TableDataWrapper/index.module.scss b/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/components/TableDataWrapper/index.module.scss
index 5b50c07dd..6a21ce7d8 100644
--- a/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/components/TableDataWrapper/index.module.scss
+++ b/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/components/TableDataWrapper/index.module.scss
@@ -10,3 +10,8 @@
justify-content: flex-start;
}
}
+
+.extraInfo {
+ font: var(--font-body-3);
+ color: var(--color-text-secondary);
+}
diff --git a/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/components/TableDataWrapper/index.tsx b/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/components/TableDataWrapper/index.tsx
index 00f006c5e..5f2204d0f 100644
--- a/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/components/TableDataWrapper/index.tsx
+++ b/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/components/TableDataWrapper/index.tsx
@@ -11,19 +11,23 @@ type Props = {
children: ReactNode;
tip?: ReactNode;
isLeftAligned?: boolean;
+ extraInfo?: ReactNode;
};
-function TableDataWrapper({ children, tip, isLeftAligned }: Props) {
+function TableDataWrapper({ children, tip, isLeftAligned, extraInfo }: Props) {
return (
-
- {children}
- {tip && (
-
-
-
-
-
- )}
+
+
+ {children}
+ {tip && (
+
+
+
+
+
+ )}
+
+ {extraInfo &&
{extraInfo}
}
);
}
diff --git a/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/renderers/GenericFeatureFlag.tsx b/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/renderers/GenericFeatureFlag.tsx
index 062a3bcbb..7f6056e0a 100644
--- a/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/renderers/GenericFeatureFlag.tsx
+++ b/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/renderers/GenericFeatureFlag.tsx
@@ -13,43 +13,32 @@ type Props = {
*/
isEnabled?: boolean;
/**
- * Whether the feature is in beta.
- * Often used with the `paymentType` prop.
- * - `false`:
- * - When `isEnabled` is `true`, it will display a checkmark.
- * - When `isEnabled` is `false`, it will display '-'.
- * - `true`:
- * - when the `paymentType` is `add-on` or `undefined`, it will display 'Add-on (Beta)', or it will display '-'.
- * - when the `paymentType` is `usage`, it will display 'Beta'.
+ * The payment type of the feature.
*/
- isBeta?: boolean;
- /**
- * Used with the `isBeta` prop to indicate the payment type of the feature.
- */
- paymentType?: 'add-on' | 'usage';
+ isAddOnForPlan?: boolean;
/**
* The tip phrase key to show
*/
tipPhraseKey?: TFuncKey<'translation', 'admin_console.subscription.quota_table'>;
+ customContent?: React.ReactNode;
};
/**
* Render a feature flag to indicate whether a feature is enabled or not in the plan comparison table.
- * - **For normal features**:
- * - If `isEnabled` is `undefined`, it will display 'Contact us'.
- * - If `isEnabled` is `true`, it will display a checkmark.
- * - **For beta features**:
- * - If `isBeta` is `true` and the feature is enabled:
- * - If `paymentType` is `add-on` or `undefined`, it will display 'Add-on (Beta)'.
- * - If `paymentType` is `usage`, it will display 'Beta'.
- * - If `isBeta` is `false` or the feature is disabled: works the same as normal features.
- *
+ * - If `isEnabled` is `undefined`, it will display 'Contact us'.
+ * - If `isEnabled` is `true`, it will display a checkmark.
+ * - If `isEnabled` is `false`, it will display a dash.
* @example
* ```tsx
*
* ```
*/
-function GenericFeatureFlag({ isEnabled, isBeta, tipPhraseKey, paymentType }: Props) {
+function GenericFeatureFlag({
+ isEnabled,
+ tipPhraseKey,
+ isAddOnForPlan = false,
+ customContent,
+}: Props) {
if (isEnabled === undefined) {
return
;
}
@@ -57,18 +46,9 @@ function GenericFeatureFlag({ isEnabled, isBeta, tipPhraseKey, paymentType }: Pr
return (
)}
+ extraInfo={cond(isAddOnForPlan &&
)}
>
- {isEnabled
- ? cond(!isBeta &&
) ?? (
-
- )
- : '-'}
+ {customContent ?? (isEnabled ?
: '-')}
);
}
diff --git a/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/renderers/GenericQuotaLimit.tsx b/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/renderers/GenericQuotaLimit.tsx
index c7c7136d3..5a4f7b395 100644
--- a/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/renderers/GenericQuotaLimit.tsx
+++ b/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/renderers/GenericQuotaLimit.tsx
@@ -12,6 +12,7 @@ type Props = {
tipPhraseKey?: TFuncKey<'translation', 'admin_console.subscription.quota_table'>;
tipInterpolation?: Record
;
hasCheckmark?: boolean;
+ extraInfo?: ReactNode;
formatter?: (quota: number) => string | ReactNode;
};
@@ -20,6 +21,7 @@ function GenericQuotaLimit({
tipPhraseKey,
tipInterpolation,
hasCheckmark,
+ extraInfo,
formatter,
}: Props) {
if (quota === undefined) {
@@ -37,7 +39,7 @@ function GenericQuotaLimit({
if (quota === null) {
return (
-
+
{hasCheckmark && }
@@ -45,7 +47,7 @@ function GenericQuotaLimit({
}
return (
-
+
{quota === 0 ? (
'-'
) : (
diff --git a/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/renderers/index.tsx b/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/renderers/index.tsx
index 8e7cdeaa7..f22c5bab0 100644
--- a/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/renderers/index.tsx
+++ b/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/renderers/index.tsx
@@ -10,6 +10,13 @@ import BasePrice from './BasePrice';
import GenericFeatureFlag from './GenericFeatureFlag';
import GenericQuotaLimit from './GenericQuotaLimit';
+const m2mAppUnitPrice = 8;
+const resourceUnitPrice = 3;
+const ssoUnitPrice = 48;
+const mfaPrice = 48;
+const maoDisplayLimit = 100;
+const maoUnitPrice = 0.64;
+
export const quotaValueRenderer: Record<
keyof SubscriptionPlanTable,
(planTableData: SubscriptionPlanTableData) => ReactNode
@@ -37,19 +44,60 @@ export const quotaValueRenderer: Record<
applicationsLimit: ({ table: { applicationsLimit } }) => (
),
- machineToMachineLimit: ({ id, table: { machineToMachineLimit } }) => (
-
- ),
+ machineToMachineLimit: ({ id, table: { machineToMachineLimit } }) => {
+ const isPaidPlan = id === ReservedPlanId.Hobby;
+
+ return (
+
+ )
+ )}
+ formatter={cond(
+ isPaidPlan &&
+ ((quota) => (
+
+ ))
+ )}
+ />
+ );
+ },
// Resources
- resourcesLimit: ({ id, table: { resourcesLimit } }) => (
-
- ),
+ resourcesLimit: ({ id, table: { resourcesLimit } }) => {
+ const isPaidPlan = id === ReservedPlanId.Hobby;
+ return (
+
+ )
+ )}
+ formatter={cond(
+ isPaidPlan &&
+ ((quota) => (
+
+ ))
+ )}
+ />
+ );
+ },
scopesPerResourceLimit: ({ table: { scopesPerResourceLimit } }) => (
),
@@ -68,14 +116,24 @@ export const quotaValueRenderer: Record<
),
i18nEnabled: ({ table: { i18nEnabled } }) => ,
// UserAuthentication
- mfaEnabled: ({ table: { mfaEnabled } }) => (
-
- ),
+ mfaEnabled: ({ id, table: { mfaEnabled } }) => {
+ const isPaidPlan = id === ReservedPlanId.Hobby;
+ return (
+
+ )
+ )}
+ />
+ );
+ },
omniSignInEnabled: ({ table: { omniSignInEnabled } }) => (
),
@@ -97,14 +155,24 @@ export const quotaValueRenderer: Record<
standardConnectorsLimit: ({ table: { standardConnectorsLimit } }) => (
),
- ssoEnabled: ({ table: { ssoEnabled } }) => (
-
- ),
+ ssoEnabled: ({ id, table: { ssoEnabled } }) => {
+ const isPaidPlan = id === ReservedPlanId.Hobby;
+ return (
+
+ )
+ )}
+ />
+ );
+ },
// Roles
userManagementEnabled: ({ table: { userManagementEnabled } }) => (
@@ -117,14 +185,38 @@ export const quotaValueRenderer: Record<
),
// Organizations
- organizationsEnabled: ({ table: { organizationsEnabled } }) => (
-
- ),
+ organizationsEnabled: ({ id, table: { organizationsEnabled } }) => {
+ const isPaidPlan = id === ReservedPlanId.Hobby;
+ return (
+
+ )
+ )}
+ formatter={cond(
+ isPaidPlan &&
+ ((quota) => (
+
+ ))
+ )}
+ />
+ );
+ },
allowedUsersPerOrganization: ({ table: { allowedUsersPerOrganization } }) => (
),
diff --git a/packages/phrases/src/locales/de/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/de/translation/admin-console/subscription/quota-table.ts
index 699f64d64..dcddb39a6 100644
--- a/packages/phrases/src/locales/de/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/de/translation/admin-console/subscription/quota-table.ts
@@ -81,18 +81,20 @@ const quota_table = {
paid_token_limit_tip:
'Kostenlos bis {{value}}M umlaufende Tokens. Wir können Gebühren hinzufügen, wenn Sie über {{value}}M Tokens hinausgehen, sobald wir die Preise finalisieren.',
paid_quota_limit_tip:
- 'Wir können Gebühren für Funktionen hinzufügen, die Ihre Kontingentgrenze überschreiten, sobald wir die Preise finalisieren.',
- beta_feature_tip:
- 'Während der Beta-Phase kostenfrei zu benutzen. Wir werden mit der finalen Festlegung der Zusatzkosten beginnen.',
- usage_based_beta_feature_tip:
- 'Während der Beta-Phase kostenfrei zu benutzen. Wir werden mit der finalen Festlegung der organisationsbasierten nutzungsabhängigen Preise beginnen.',
- beta: 'Beta',
- add_on_beta: 'Add-on (Beta)',
+ 'Logto wird Gebühren für Funktionen hinzufügen, die über Ihr Kontingent hinausgehen. Sie können es kostenlos verwenden, bis wir etwa im 2. Quartal 2024 mit der Berechnung beginnen.',
+ paid_add_on_feature_tip:
+ 'Dies ist eine Zusatzfunktion. Sie können sie kostenlos verwenden, bis wir etwa im 2. Quartal 2024 mit der Berechnung beginnen.',
million: '{{value, number}} Millionen',
mau_tip:
'MAU (monatlich aktive Benutzer) bedeutet die Anzahl der eindeutigen Benutzer, die in einem Abrechnungsmonat mindestens einen Token mit Logto ausgetauscht haben.',
tokens_tip:
'Alle Arten von Tokens, die von Logto ausgegeben wurden, einschließlich Zugriffstoken, Aktualisierungstoken, usw.',
+ included: '{{value, number}} inklusive',
+ included_mao: '{{value, number}} MAO enthalten',
+ extra_quota_price: 'Dann ${{value, number}} pro Monat / je danach',
+ per_month_each: '${{value, number}} pro Monat / je',
+ extra_mao_price: 'Dann ${{value, number}} pro MAO',
+ per_month: '${{value, number}} pro Monat',
};
export default Object.freeze(quota_table);
diff --git a/packages/phrases/src/locales/en/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/en/translation/admin-console/subscription/quota-table.ts
index 8636cbcf9..553bb50fd 100644
--- a/packages/phrases/src/locales/en/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/en/translation/admin-console/subscription/quota-table.ts
@@ -81,18 +81,20 @@ const quota_table = {
paid_token_limit_tip:
'Free for {{value}}M token issued. We may add charges if you go beyond {{value}}M tokens once we finalize the prices.',
paid_quota_limit_tip:
- 'We may add charges for features that go beyond your quota limit as add-ons once we finalize the prices.',
- beta_feature_tip:
- 'Free to use during the beta phase. We will begin charging once we finalize the add-on pricing.',
- usage_based_beta_feature_tip:
- 'Free to use during the beta phase. We will begin charging once we finalize the org usage-based pricing.',
- beta: 'Beta',
- add_on_beta: 'Add-on (Beta)',
+ "Logto will add charges for features that go beyond your quota limit. You can use it at no cost until we're beginning charging around Q2 2024.",
+ paid_add_on_feature_tip:
+ "This is an add-on feature. You can use it at no cost until we're beginning charging around Q2 2024.",
million: '{{value, number}} million',
mau_tip:
'MAU (monthly active user) means the number of unique users who have exchanged at least one token with Logto in a billing month.',
tokens_tip:
'All kinds of tokens that issued by Logto, including access token, refresh token, etc.',
+ included: '{{value, number}} included',
+ included_mao: '{{value, number}} MAO included',
+ extra_quota_price: 'Then ${{value, number}} per mo / ea after',
+ per_month_each: '${{value, number}} per mo / ea',
+ extra_mao_price: 'Then ${{value, number}} per MAO',
+ per_month: '${{value, number}} per mo',
};
export default Object.freeze(quota_table);
diff --git a/packages/phrases/src/locales/es/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/es/translation/admin-console/subscription/quota-table.ts
index 7a345ad22..b3475dbb0 100644
--- a/packages/phrases/src/locales/es/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/es/translation/admin-console/subscription/quota-table.ts
@@ -81,18 +81,20 @@ const quota_table = {
paid_token_limit_tip:
'Gratis para {{value}}M tokens emitidos. Es posible que agreguemos cargos si supera los {{value}}M tokens una vez que finalicemos los precios.',
paid_quota_limit_tip:
- 'Podemos agregar cargos por funciones que excedan su límite de cuota como complementos una vez que finalicemos los precios.',
- beta_feature_tip:
- 'Gratis durante la fase beta. Comenzaremos a cobrar una vez que finalicemos la fijación de precios del complemento.',
- usage_based_beta_feature_tip:
- 'Gratis durante la fase beta. Comenzaremos a cobrar una vez que finalicemos los precios basados en el uso de la organización.',
- beta: 'Beta',
- add_on_beta: 'Complemento (Beta)',
+ 'Logto agregará cargos por funciones que excedan su límite de cuota. Puede usarlo sin costo hasta que comencemos a cobrar aproximadamente en el segundo trimestre de 2024.',
+ paid_add_on_feature_tip:
+ 'Esta es una característica adicional. Puede usarla sin costo hasta que comencemos a cobrar aproximadamente en el segundo trimestre de 2024.',
million: '{{value, number}} millones',
mau_tip:
'MAU (usuario activo mensual) significa el número de usuarios únicos que han intercambiado al menos un token con Logto en un mes de facturación.',
tokens_tip:
'Todo tipo de tokens emitidos por Logto, incluyendo tokens de acceso, tokens de actualización, etc.',
+ included: 'incluido{{value, number}}',
+ included_mao: '{{value, number}} MAO incluido',
+ extra_quota_price: 'Luego ${{value, number}} por mes / cada uno después',
+ per_month_each: '${{value, number}} por mes / cada uno',
+ extra_mao_price: 'Luego ${{value, number}} por MAO',
+ per_month: '${{value, number}} por mes',
};
export default Object.freeze(quota_table);
diff --git a/packages/phrases/src/locales/fr/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/fr/translation/admin-console/subscription/quota-table.ts
index c71a6e4f2..b8edc63c4 100644
--- a/packages/phrases/src/locales/fr/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/fr/translation/admin-console/subscription/quota-table.ts
@@ -81,18 +81,20 @@ const quota_table = {
paid_token_limit_tip:
'Gratuit pour {{value}}M jeton émis. Nous pouvons ajouter des frais si vous dépassez {{value}}M jetons une fois que nous aurons finalisé les prix.',
paid_quota_limit_tip:
- 'Nous pouvons facturer des fonctionnalités qui dépassent votre limite de quotas en tant que modules complémentaires une fois que nous aurons finalisé les prix.',
- beta_feature_tip:
- 'Gratuit à utiliser pendant la phase bêta. Nous commencerons à facturer une fois que nous aurons finalisé les tarifs des modules complémentaires.',
- usage_based_beta_feature_tip:
- "Gratuit à utiliser pendant la phase bêta. Nous commencerons à facturer une fois que nous aurons finalisé les tarifs basés sur l'usage de l'organisation.",
- beta: 'Bêta',
- add_on_beta: 'Module complémentaire (Bêta)',
+ "Logto ajoutera des frais pour les fonctionnalités qui dépassent votre limite de quota. Vous pouvez l'utiliser gratuitement jusqu'à ce que nous commencions à facturer vers le deuxième trimestre 2024.",
+ paid_add_on_feature_tip:
+ "Il s'agit d'une fonctionnalité supplémentaire. Vous pouvez l'utiliser gratuitement jusqu'à ce que nous commencions à facturer vers le deuxième trimestre 2024.",
million: '{{value, number}} million',
mau_tip:
"MAU (utilisateur actif mensuel) signifie le nombre d'utilisateurs uniques qui ont échangé au moins un jeton avec Logto au cours d'un mois de facturation.",
tokens_tip:
"Tous types de jetons émis par Logto, y compris les jetons d'accès, les jetons de rafraîchissement, etc.",
+ included: '{{value, number}} inclus',
+ included_mao: '{{value, number}} MAO inclus',
+ extra_quota_price: 'Ensuite ${{value, number}} par mois / chacun après',
+ per_month_each: '${{value, number}} par mois / chacun',
+ extra_mao_price: 'Ensuite ${{value, number}} par MAO',
+ per_month: '${{value, number}} par mois',
};
export default Object.freeze(quota_table);
diff --git a/packages/phrases/src/locales/it/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/it/translation/admin-console/subscription/quota-table.ts
index dec962de1..764fc9ba6 100644
--- a/packages/phrases/src/locales/it/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/it/translation/admin-console/subscription/quota-table.ts
@@ -81,18 +81,20 @@ const quota_table = {
paid_token_limit_tip:
'Gratuito per {{value}}M token rilasciati. Potremmo aggiungere costi se superi {{value}}M token una volta che finalizziamo i prezzi.',
paid_quota_limit_tip:
- 'Potremmo aggiungere costi per funzionalità che superano il limite di quota come componenti aggiuntivi una volta che finalizziamo i prezzi.',
- beta_feature_tip:
- 'Gratuito durante la fase beta. Inizieremo a addebitare una volta che finalizziamo i prezzi delle componenti aggiuntive.',
- usage_based_beta_feature_tip:
- "Gratuito durante la fase beta. Inizieremo a addebitare una volta che finalizziamo i prezzi basati sull'utilizzo dell'org.",
- beta: 'Beta',
- add_on_beta: 'Componente Aggiuntivo (Beta)',
+ 'Logto addebiterà costi per le funzionalità che superano il limite della tua quota. Puoi usarlo gratuitamente fino a quando inizieremo a addebitare circa nel secondo trimestre del 2024.',
+ paid_add_on_feature_tip:
+ 'Questa è una funzionalità aggiuntiva. Puoi usarla gratuitamente fino a quando inizieremo a addebitare circa nel secondo trimestre del 2024.',
million: '{{value, number}} milioni',
mau_tip:
'MAU (utente attivo mensile) significa il numero di utenti unici che hanno scambiato almeno un token con Logto in un mese di fatturazione.',
tokens_tip:
'Tutti i tipi di token emessi da Logto, inclusi token di accesso, token di aggiornamento, ecc.',
+ included: '{{value, number}} incluso',
+ included_mao: '{{value, number}} MAO inclusi',
+ extra_quota_price: 'Quindi ${{value, number}} al mese / ognuno dopo',
+ per_month_each: '${{value, number}} al mese / ognuno',
+ extra_mao_price: 'Quindi ${{value, number}} per MAO',
+ per_month: '${{value, number}} al mese',
};
export default Object.freeze(quota_table);
diff --git a/packages/phrases/src/locales/ja/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/ja/translation/admin-console/subscription/quota-table.ts
index 9d058f35e..3db299183 100644
--- a/packages/phrases/src/locales/ja/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/ja/translation/admin-console/subscription/quota-table.ts
@@ -81,18 +81,20 @@ const quota_table = {
paid_token_limit_tip:
'無料 {{value}}M トークン発行。価格設定が最終決定した場合、{{value}}M トークンを超えると追加料金が発生する可能性があります。',
paid_quota_limit_tip:
- '価格設定が最終決定した場合、クォータ制限を超える機能について追加料金が発生することがあります。',
- beta_feature_tip:
- 'ベータフェーズ中は無料です。アドオンの価格設定が最終決定した後、請求を開始します。',
- usage_based_beta_feature_tip:
- 'ベータフェーズ中は無料です。組織の使用に基づく価格設定が最終決定した後、請求を開始します。',
- beta: 'ベータ',
- add_on_beta: 'アドオン(ベータ版)',
+ 'Logtoはクォータ制限を超える機能に対して料金を追加します。2024年第2四半期ごろまでは無料でご利用いただけます。',
+ paid_add_on_feature_tip:
+ 'これはアドオン機能です。2024年第2四半期ごろまでは無料でご利用いただけます。',
million: '{{value, number}} 万',
mau_tip:
'MAU(月間アクティブユーザー)とは、請求月において少なくとも1つのトークンをLogtoと交換したユニークなユーザーの数を指します。',
tokens_tip:
'Logtoによって発行されたすべての種類のトークン、アクセストークン、リフレッシュトークンなどを含みます。',
+ included: '{{value, number}} 込み',
+ included_mao: '{{value, number}} MAO込み',
+ extra_quota_price: 'その後、各${{value, number}} / 月ごと',
+ per_month_each: '各${{value, number}} / 月ごと',
+ extra_mao_price: 'その後、MAOごとに${{value, number}}',
+ per_month: '${{value, number}} / 月ごと',
};
export default Object.freeze(quota_table);
diff --git a/packages/phrases/src/locales/ko/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/ko/translation/admin-console/subscription/quota-table.ts
index 4dff2abbd..1b9ae1250 100644
--- a/packages/phrases/src/locales/ko/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/ko/translation/admin-console/subscription/quota-table.ts
@@ -81,16 +81,19 @@ const quota_table = {
paid_token_limit_tip:
'무료 {{value}}M 토큰 발급. 가격 확정 후 {{value}}M 토큰을 초과하면 추가 요금이 부과될 수 있습니다.',
paid_quota_limit_tip:
- '가격 확정 후 할당량 제한을 초과하는 기능에 대해 부가 기능으로 요금이 부과될 수 있습니다.',
- beta_feature_tip: '베타 단계에서 무료입니다. 부가 기능 가격 확정 후 요금이 부과됩니다.',
- usage_based_beta_feature_tip:
- '베타 단계에서 무료입니다. 조직 사용량 기반 요금 책정 후 요금이 부과됩니다.',
- beta: '베타',
- add_on_beta: '부가 기능 (베타)',
+ 'Logto는 할당량 제한을 초과하는 기능에 대해 요금을 부과할 것입니다. 2024년 제2분기까지는 무료로 사용할 수 있습니다.',
+ paid_add_on_feature_tip:
+ '이것은 부가 기능입니다. 2024년 제2분기까지는 무료로 사용할 수 있습니다.',
million: '{{value, number}} 백만',
mau_tip:
'MAU (월간 활성 사용자)는 빌링 월에 Logto와 적어도 하나의 토큰을 교환한 고유 사용자 수를 의미합니다.',
tokens_tip: 'Logto에서 발행한 모든 종류의 토큰, 액세스 토큰, 리프레시 토큰 등을 포함합니다.',
+ included: '{{value, number}} 포함',
+ included_mao: '{{value, number}} MAO 포함',
+ extra_quota_price: '이후 월당 ${{value, number}} / 각각',
+ per_month_each: '월당 ${{value, number}} / 각각',
+ extra_mao_price: '이후 MAO당 ${{value, number}}',
+ per_month: '월당 ${{value, number}}',
};
export default Object.freeze(quota_table);
diff --git a/packages/phrases/src/locales/pl-pl/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/pl-pl/translation/admin-console/subscription/quota-table.ts
index 70245b9cf..b75addaef 100644
--- a/packages/phrases/src/locales/pl-pl/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/pl-pl/translation/admin-console/subscription/quota-table.ts
@@ -81,18 +81,20 @@ const quota_table = {
paid_token_limit_tip:
'Bezpłatne do wydania {{value}} M tokenów. Możemy doliczyć opłaty, jeśli przekroczysz limity {{value}} M tokenów, gdy ustalimy ostateczne ceny.',
paid_quota_limit_tip:
- 'Możemy doliczyć opłaty za funkcje po przekroczeniu limitów kwoty jako dodatki, gdy ustalimy ostateczne ceny.',
- beta_feature_tip:
- 'Darmowe w trakcie fazy beta. Będziemy pobierać opłaty po zakończeniu fazy beta przy ustaleniu cen dodatków.',
- usage_based_beta_feature_tip:
- 'Darmowe w trakcie fazy beta. Będziemy pobierać opłaty po zakończeniu fazy beta przy ustaleniu opłat w oparciu o użycie organizacji.',
- beta: 'Beta',
- add_on_beta: 'Dodatkowy (Beta)',
+ 'Logto będzie naliczać opłaty za funkcje przekraczające limit kontyngentu. Możesz go używać bezpłatnie do czasu rozpoczęcia naliczania opłat, około II kwartał 2024 roku.',
+ paid_add_on_feature_tip:
+ 'To jest funkcja dodatkowa. Możesz z niej korzystać bezpłatnie do czasu rozpoczęcia naliczania opłat, około II kwartał 2024 roku.',
million: '{{value, number}} milion',
mau_tip:
'MAU (miesięczny aktywny użytkownik) oznacza liczbę unikalnych użytkowników, którzy wymienili co najmniej jeden token z Logto w miesiącu rozliczeniowym.',
tokens_tip:
'Wszystkie rodzaje tokenów wydanych przez Logto, w tym tokeny dostępu, tokeny odświeżania, itp.',
+ included: '{{value, number}} zawarte',
+ included_mao: '{{value, number}} MAO wliczone',
+ extra_quota_price: 'Następnie ${{value, number}} za miesiąc / każdy po',
+ per_month_each: '${{value, number}} za miesiąc / każdy',
+ extra_mao_price: 'Następnie ${{value, number}} za MAO',
+ per_month: '${{value, number}} za miesiąc',
};
export default Object.freeze(quota_table);
diff --git a/packages/phrases/src/locales/pt-br/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/pt-br/translation/admin-console/subscription/quota-table.ts
index 6a3a8a4dd..ed36430e9 100644
--- a/packages/phrases/src/locales/pt-br/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/pt-br/translation/admin-console/subscription/quota-table.ts
@@ -81,18 +81,20 @@ const quota_table = {
paid_token_limit_tip:
'Grátis para {{value}}M tokens emitidos. Podemos cobrar se você ultrapassar {{value}}M tokens após finalizarmos os preços.',
paid_quota_limit_tip:
- 'Podemos adicionar cobranças para recursos que ultrapassarem o limite da sua cota como complementos, uma vez que finalizarmos os preços.',
- beta_feature_tip:
- 'Grátis durante a fase beta. Começaremos a cobrar uma vez que finalizarmos os preços dos complementos.',
- usage_based_beta_feature_tip:
- 'Grátis durante a fase beta. Começaremos a cobrar uma vez que finalizarmos os preços baseados no uso da organização.',
- beta: 'Beta',
- add_on_beta: 'Complemento (Beta)',
+ 'O Logto adicionará cobranças por recursos que ultrapassarem seu limite de cota. Você pode usá-lo gratuitamente até começarmos a cobrar, aproximadamente no segundo trimestre de 2024.',
+ paid_add_on_feature_tip:
+ 'Esta é uma função adicional. Você pode usá-la gratuitamente até começarmos a cobrar, aproximadamente no segundo trimestre de 2024.',
million: '{{value, number}} milhão',
mau_tip:
'MAU (usuário ativo mensal) significa o número de usuários únicos que trocaram pelo menos um token com o Logto em um mês de faturamento.',
tokens_tip:
'Todos os tipos de tokens emitidos pelo Logto, incluindo token de acesso, token de atualização, etc.',
+ included: 'incluído{{value, number}}',
+ included_mao: '{{value, number}} MAO incluído',
+ extra_quota_price: 'Então ${{value, number}} por mês / cada depois',
+ per_month_each: '${{value, number}} por mês / cada',
+ extra_mao_price: 'Então ${{value, number}} por MAO',
+ per_month: '${{value, number}} por mês',
};
export default Object.freeze(quota_table);
diff --git a/packages/phrases/src/locales/pt-pt/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/pt-pt/translation/admin-console/subscription/quota-table.ts
index 58b0ca2d2..2a4a2bdb9 100644
--- a/packages/phrases/src/locales/pt-pt/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/pt-pt/translation/admin-console/subscription/quota-table.ts
@@ -81,18 +81,20 @@ const quota_table = {
paid_token_limit_tip:
'Gratuito para {{value}}M de tokens emitidos. Podemos adicionar taxas se exceder {{value}}M de tokens assim que finalizarmos os preços.',
paid_quota_limit_tip:
- 'Podemos adicionar taxas para funcionalidades que excedam o limite da sua quota como suplementos assim que finalizarmos os preços.',
- beta_feature_tip:
- 'Gratuito durante a fase beta. Começaremos a cobrar assim que finalizarmos os preços dos suplementos.',
- usage_based_beta_feature_tip:
- 'Gratuito durante a fase beta. Começaremos a cobrar assim que finalizarmos os preços baseados no uso da organização.',
- beta: 'Beta',
- add_on_beta: 'Suplemento (Beta)',
+ 'O Logto adicionará encargos por funcionalidades que ultrapassem o seu limite de quota. Pode utilizá-lo sem custos até começarmos a cobrar, aproximadamente no segundo trimestre de 2024.',
+ paid_add_on_feature_tip:
+ 'Esta é uma funcionalidade adicional. Pode utilizá-la sem custos até começarmos a cobrar, aproximadamente no segundo trimestre de 2024.',
million: '{{value, number}} milhão',
mau_tip:
'MAU (utilizador ativo mensal) significa o número de utilizadores únicos que trocaram pelo menos um token com o Logto num mês de faturação.',
tokens_tip:
'Todos os tipos de tokens emitidos pelo Logto, incluindo token de acesso, token de atualização, etc.',
+ included: 'incluído{{value, number}}',
+ included_mao: '{{value, number}} MAO incluída',
+ extra_quota_price: 'Depois ${{value, number}} por mês / cada um depois',
+ per_month_each: '${{value, number}} por mês / cada um',
+ extra_mao_price: 'Depois ${{value, number}} por MAO',
+ per_month: '${{value, number}} por mês',
};
export default Object.freeze(quota_table);
diff --git a/packages/phrases/src/locales/ru/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/ru/translation/admin-console/subscription/quota-table.ts
index 71cfa32a7..13f9d5ed6 100644
--- a/packages/phrases/src/locales/ru/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/ru/translation/admin-console/subscription/quota-table.ts
@@ -81,18 +81,20 @@ const quota_table = {
paid_token_limit_tip:
'Бесплатно для выданных токенов: {{value}} млн. Мы можем начислить плату, если вы превысите {{value}} млн. токенов, когда мы окончательно установим цены.',
paid_quota_limit_tip:
- 'Мы можем начислить плату за функции, выходящие за пределы вашей квоты, как дополнительные услуги, когда мы окончательно установим цены.',
- beta_feature_tip:
- 'Бесплатно во время бета-тестирования. Мы начнем взимать плату, как только установим цены на дополнительные услуги.',
- usage_based_beta_feature_tip:
- 'Бесплатно во время бета-тестирования. Мы начнем взимать плату, как только установим цены на использование по организации.',
- beta: 'Бета-тестирование',
- add_on_beta: 'Дополнение (бета-тестирование)',
+ 'Logto добавит плату за функции, выходящие за пределы вашего лимита квоты. Вы можете использовать его бесплатно до начала взимания платы, примерно с 2 квартала 2024 года.',
+ paid_add_on_feature_tip:
+ 'Это дополнительная функция. Вы можете использовать ее бесплатно до начала взимания платы, примерно с 2 квартала 2024 года.',
million: '{{value, number}} миллионов',
mau_tip:
'MAU (месячно активные пользователи) означает количество уникальных пользователей, которые обменялись хотя бы одним токеном с Logto за месяц расчета.',
tokens_tip:
'Все виды токенов, выпущенных Logto, включая токены доступа, токены обновления и т. д.',
+ included: 'включено{{value, number}}',
+ included_mao: '{{value, number}} MAO включено',
+ extra_quota_price: 'Затем ${{value, number}} в месяц / за каждый после',
+ per_month_each: '${{value, number}} в месяц / за каждый',
+ extra_mao_price: 'Затем ${{value, number}} за MAO',
+ per_month: '${{value, number}} в месяц',
};
export default Object.freeze(quota_table);
diff --git a/packages/phrases/src/locales/tr-tr/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/tr-tr/translation/admin-console/subscription/quota-table.ts
index ddd60e670..dfec3f2e5 100644
--- a/packages/phrases/src/locales/tr-tr/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/tr-tr/translation/admin-console/subscription/quota-table.ts
@@ -81,18 +81,20 @@ const quota_table = {
paid_token_limit_tip:
'Free for {{value}}M token issued. We may add charges if you go beyond {{value}}M tokens once we finalize the prices.',
paid_quota_limit_tip:
- 'We may add charges for features that go beyond your quota limit as add-ons once we finalize the prices.',
- beta_feature_tip:
- 'Free to use during the beta phase. We will begin charging once we finalize the add-on pricing.',
- usage_based_beta_feature_tip:
- 'Free to use during the beta phase. We will begin charging once we finalize the org usage-based pricing.',
- beta: 'Beta',
- add_on_beta: 'Ek hizmet (Beta)',
+ "Logto, kota limitinizi aşan özellikler için ücretlendirme ekleyecektir. Şarjımıza başlamadan önce, yaklaşık olarak 2024 Q2'ye kadar ücretsiz olarak kullanabilirsiniz.",
+ paid_add_on_feature_tip:
+ "Bu bir ek özelliktir. Şarjımıza başlamadan önce, yaklaşık olarak 2024 Q2'ye kadar ücretsiz olarak kullanabilirsiniz.",
million: '{{value, number}} milyon',
mau_tip:
'MAU (aylık aktif kullanıcı) Logto ile en az bir token değiştiren benzersiz kullanıcı sayısını ifade eder.',
tokens_tip:
'Logto tarafından ihraç edilen erişim tokeni, yenileme tokeni vb. dahil olmak üzere tüm token türleri.',
+ included: '{{value, number}} dahil',
+ included_mao: '{{value, number}} MAO dahil',
+ extra_quota_price: 'Sonra aylık ${{value, number}} / sonrasında her biri',
+ per_month_each: 'Aylık ${{value, number}} / her biri',
+ extra_mao_price: 'Sonra MAO başına ${{value, number}}',
+ per_month: 'Aylık ${{value, number}}',
};
export default Object.freeze(quota_table);
diff --git a/packages/phrases/src/locales/zh-cn/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/zh-cn/translation/admin-console/subscription/quota-table.ts
index 65adec6c0..1d690d8f1 100644
--- a/packages/phrases/src/locales/zh-cn/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/zh-cn/translation/admin-console/subscription/quota-table.ts
@@ -80,15 +80,19 @@ const quota_table = {
free_token_limit_tip: '免费发行{{value}}M令牌。',
paid_token_limit_tip:
'免费发行{{value}}M令牌。我们可能会在定价确定后,如果您的令牌超过{{value}}M,则会加收费用。',
- paid_quota_limit_tip: '一旦我们确定价格,我们可能会对超出配额限制的功能添加额外费用。',
- beta_feature_tip: '在测试阶段免费使用。一旦我们确定附加功能的定价,我们将开始收费。',
- usage_based_beta_feature_tip:
- '在测试阶段免费使用。一旦我们确定基于组织使用情况的定价,我们将开始收费。',
- beta: '测试版',
- add_on_beta: '附加功能(测试版)',
+ paid_quota_limit_tip:
+ 'Logto将为超出配额限制的功能添加费用。在我们从2024年第二季度开始收费之前,您可以免费使用它。',
+ paid_add_on_feature_tip:
+ '这是一个附加功能。在我们从2024年第二季度开始收费之前,您可以免费使用它。',
million: '{{value, number}} 百万',
mau_tip: 'MAU(月活跃用户)表示在一个计费月内与 Logto 交换过至少一个令牌的独立用户数量。',
tokens_tip: 'Logto 发行的所有类型令牌,包括访问令牌、刷新令牌等。',
+ included: '已包含{{value, number}}',
+ included_mao: '已包含 {{value, number}} MAO',
+ extra_quota_price: '然后每月 ${{value, number}} / 每个之后',
+ per_month_each: '每月 ${{value, number}} / 每个',
+ extra_mao_price: '然后每 MAO ${{value, number}}',
+ per_month: '每月 ${{value, number}}',
};
export default Object.freeze(quota_table);
diff --git a/packages/phrases/src/locales/zh-hk/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/zh-hk/translation/admin-console/subscription/quota-table.ts
index 4880d60ca..0134dd2ef 100644
--- a/packages/phrases/src/locales/zh-hk/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/zh-hk/translation/admin-console/subscription/quota-table.ts
@@ -80,15 +80,19 @@ const quota_table = {
free_token_limit_tip: '免費發行 {{value}}M 個令牌。',
paid_token_limit_tip:
'免費發行 {{value}}M 個令牌。一旦我們確定價格,如果您超出{{value}}M個令牌,我們可能會加收費用。',
- paid_quota_limit_tip: '一旦我們確定價格,我們可能會以附加功能的形式為超出配額限制的功能收費。',
- beta_feature_tip: '在測試版階段免費使用。我們確定附加功能的價格後將開始收費。',
- usage_based_beta_feature_tip:
- '在測試版階段免費使用。我們確定組織基於使用情況的價格後將開始收費。',
- beta: '測試版',
- add_on_beta: '附加功能(測試版)',
+ paid_quota_limit_tip:
+ 'Logto將為超出配額限制的功能添加費用。在我們從2024年第二季度開始收費之前,您可以免費使用它。',
+ paid_add_on_feature_tip:
+ '這是一個附加功能。在我們從2024年第二季度開始收費之前,您可以免費使用它。',
million: '{{value, number}} 百萬',
mau_tip: 'MAU(月活躍用戶)表示在一個結算月內與 Logto 交換過至少一個令牌的獨立用戶數量。',
tokens_tip: 'Logto 發行的所有類型令牌,包括訪問令牌、刷新令牌等。',
+ included: '已包含 {{value, number}}',
+ included_mao: '已包含 {{value, number}} MAO',
+ extra_quota_price: '然後每月 ${{value, number}} / 每個之後',
+ per_month_each: '每月 ${{value, number}} / 每個',
+ extra_mao_price: '然後每 MAO ${{value, number}}',
+ per_month: '每月 ${{value, number}}',
};
export default Object.freeze(quota_table);
diff --git a/packages/phrases/src/locales/zh-tw/translation/admin-console/subscription/quota-table.ts b/packages/phrases/src/locales/zh-tw/translation/admin-console/subscription/quota-table.ts
index 1e04f774a..f62f397cb 100644
--- a/packages/phrases/src/locales/zh-tw/translation/admin-console/subscription/quota-table.ts
+++ b/packages/phrases/src/locales/zh-tw/translation/admin-console/subscription/quota-table.ts
@@ -81,15 +81,18 @@ const quota_table = {
paid_token_limit_tip:
'免費發行 {{value}}M 標記。一旦我們確定價格,如果您超過 {{value}}M 標記,我們可能會加收費用。',
paid_quota_limit_tip:
- '一旦我們確定價格,如果您超出配額限制的功能,我們可能會將其作為附加功能收費。',
- beta_feature_tip: '在測試版階段免費使用。一旦我們確定附加功能的定價,我們將開始收費。',
- usage_based_beta_feature_tip:
- '在測試版階段免費使用。一旦我們確定組織使用量的定價,我們將開始收費。',
- beta: '測試版',
- add_on_beta: '附加功能(測試版)',
+ 'Logto將為超出配額限制的功能添加費用。在我們從2024年第二季度開始收費之前,您可以免費使用它。',
+ paid_add_on_feature_tip:
+ '這是一個附加功能。在我們從2024年第二季度開始收費之前,您可以免費使用它。',
million: '{{value, number}} 百萬',
mau_tip: 'MAU(月活躍使用者)表示在一個計費月內與 Logto 交換過至少一個令牌的獨立使用者數量。',
tokens_tip: 'Logto 發行的所有類型令牌,包括訪問令牌、刷新令牌等。',
+ included: '已包含{{value, number}}',
+ included_mao: '已包含 {{value, number}} MAO',
+ extra_quota_price: '然後每月 ${{value, number}} / 每個之後',
+ per_month_each: '每月 ${{value, number}} / 每個',
+ extra_mao_price: '然後每 MAO ${{value, number}}',
+ per_month: '每月 ${{value, number}}',
};
export default Object.freeze(quota_table);