diff --git a/docs/plugins/multi-tenant.mdx b/docs/plugins/multi-tenant.mdx index 406e20a2f58..e99740454e8 100644 --- a/docs/plugins/multi-tenant.mdx +++ b/docs/plugins/multi-tenant.mdx @@ -54,8 +54,15 @@ The plugin accepts an object with the following properties: ```ts type MultiTenantPluginConfig = { /** - * After a tenant is deleted, the plugin will attempt - * to clean up related documents + * Base path for your application + * + * https://nextjs.org/docs/app/api-reference/config/next-config-js/basePath + * + * @default undefined + */ + basePath?: string + /** + * After a tenant is deleted, the plugin will attempt to clean up related documents * - removing documents with the tenant ID * - removing the tenant from users * @@ -68,15 +75,18 @@ type MultiTenantPluginConfig = { collections: { [key in CollectionSlug]?: { /** - * Set to `true` if you want the collection to - * behave as a global + * Set to `true` if you want the collection to behave as a global * * @default false */ isGlobal?: boolean /** - * Set to `false` if you want to manually apply - * the baseFilter + * Overrides for the tenant field, will override the entire tenantField configuration + */ + tenantFieldOverrides?: CollectionTenantFieldConfigOverrides + /** + * Set to `false` if you want to manually apply the baseListFilter + * Set to `false` if you want to manually apply the baseFilter * * @default true */ @@ -94,8 +104,7 @@ type MultiTenantPluginConfig = { */ useBaseListFilter?: boolean /** - * Set to `false` if you want to handle collection access - * manually without the multi-tenant constraints applied + * Set to `false` if you want to handle collection access manually without the multi-tenant constraints applied * * @default true */ @@ -104,8 +113,7 @@ type MultiTenantPluginConfig = { } /** * Enables debug mode - * - Makes the tenant field visible in the - * admin UI within applicable collections + * - Makes the tenant field visible in the admin UI within applicable collections * * @default false */ @@ -117,27 +125,41 @@ type MultiTenantPluginConfig = { */ enabled?: boolean /** - * Field configuration for the field added - * to all tenant enabled collections + * Localization for the plugin */ - tenantField?: { - access?: RelationshipField['access'] - /** - * The name of the field added to all tenant - * enabled collections - * - * @default 'tenant' - */ - name?: string + i18n?: { + translations: { + [key in AcceptedLanguages]?: { + /** + * @default 'You are about to change ownership from <0>{{fromTenant}} to <0>{{toTenant}}' + */ + 'confirm-modal-tenant-switch--body'?: string + /** + * `tenantLabel` defaults to the value of the `nav-tenantSelector-label` translation + * + * @default 'Confirm {{tenantLabel}} change' + */ + 'confirm-modal-tenant-switch--heading'?: string + /** + * @default 'Assigned Tenant' + */ + 'field-assignedTenant-label'?: string + /** + * @default 'Tenant' + */ + 'nav-tenantSelector-label'?: string + } + } } /** - * Field configuration for the field added - * to the users collection + * Field configuration for the field added to all tenant enabled collections + */ + tenantField?: RootTenantFieldConfigOverrides + /** + * Field configuration for the field added to the users collection * - * If `includeDefaultField` is `false`, you must - * include the field on your users collection manually - * This is useful if you want to customize the field - * or place the field in a specific location + * If `includeDefaultField` is `false`, you must include the field on your users collection manually + * This is useful if you want to customize the field or place the field in a specific location */ tenantsArrayField?: | { @@ -158,8 +180,7 @@ type MultiTenantPluginConfig = { */ arrayTenantFieldName?: string /** - * When `includeDefaultField` is `true`, the field will - * be added to the users collection automatically + * When `includeDefaultField` is `true`, the field will be added to the users collection automatically */ includeDefaultField?: true /** @@ -176,8 +197,7 @@ type MultiTenantPluginConfig = { arrayFieldName?: string arrayTenantFieldName?: string /** - * When `includeDefaultField` is `false`, you must - * include the field on your users collection manually + * When `includeDefaultField` is `false`, you must include the field on your users collection manually */ includeDefaultField?: false rowFields?: never @@ -186,8 +206,9 @@ type MultiTenantPluginConfig = { /** * Customize tenant selector label * - * Either a string or an object where the keys are i18n - * codes and the values are the string labels + * Either a string or an object where the keys are i18n codes and the values are the string labels + * + * @deprecated Use `i18n.translations` instead. */ tenantSelectorLabel?: | Partial<{ @@ -201,27 +222,25 @@ type MultiTenantPluginConfig = { */ tenantsSlug?: string /** - * Function that determines if a user has access - * to _all_ tenants + * Function that determines if a user has access to _all_ tenants * * Useful for super-admin type users */ userHasAccessToAllTenants?: ( - user: ConfigTypes extends { user: unknown } ? ConfigTypes['user'] : User, + user: ConfigTypes extends { user: unknown } + ? ConfigTypes['user'] + : TypedUser, ) => boolean /** - * Opt out of adding access constraints to - * the tenants collection + * Opt out of adding access constraints to the tenants collection */ useTenantsCollectionAccess?: boolean /** - * Opt out including the baseFilter to filter - * tenants by selected tenant + * Opt out including the baseListFilter to filter tenants by selected tenant */ useTenantsListFilter?: boolean /** - * Opt out including the baseFilter to filter - * users by selected tenant + * Opt out including the baseListFilter to filter users by selected tenant */ useUsersTenantFilter?: boolean } diff --git a/packages/plugin-multi-tenant/src/components/TenantSelector/index.tsx b/packages/plugin-multi-tenant/src/components/TenantSelector/index.tsx index ae9b26929dc..f0d1a050b8d 100644 --- a/packages/plugin-multi-tenant/src/components/TenantSelector/index.tsx +++ b/packages/plugin-multi-tenant/src/components/TenantSelector/index.tsx @@ -92,7 +92,9 @@ export const TenantSelector = ({ label, viewType }: { label: string; viewType?:
} - heading={t('plugin-multi-tenant:confirm-tenant-switch--heading', { - tenantLabel: getTranslation(label, i18n), + heading={t('plugin-multi-tenant:confirm-modal-tenant-switch--heading', { + tenantLabel: label + ? getTranslation(label, i18n) + : t('plugin-multi-tenant:nav-tenantSelector-label'), })} modalSlug={confirmSwitchTenantSlug} onConfirm={() => { diff --git a/packages/plugin-multi-tenant/src/exports/fields.ts b/packages/plugin-multi-tenant/src/exports/fields.ts index 7dd1ac44771..b333696f273 100644 --- a/packages/plugin-multi-tenant/src/exports/fields.ts +++ b/packages/plugin-multi-tenant/src/exports/fields.ts @@ -1,2 +1 @@ -export { tenantField } from '../fields/tenantField/index.js' export { tenantsArrayField } from '../fields/tenantsArrayField/index.js' diff --git a/packages/plugin-multi-tenant/src/fields/tenantField/index.ts b/packages/plugin-multi-tenant/src/fields/tenantField/index.ts index a8b80564ebe..643b8d16f2e 100644 --- a/packages/plugin-multi-tenant/src/fields/tenantField/index.ts +++ b/packages/plugin-multi-tenant/src/fields/tenantField/index.ts @@ -1,65 +1,83 @@ -import { type RelationshipField } from 'payload' +import type { RelationshipFieldSingleValidation, SingleRelationshipField } from 'payload' + import { APIError } from 'payload' +import type { RootTenantFieldConfigOverrides } from '../../types.js' + import { defaults } from '../../defaults.js' import { getCollectionIDType } from '../../utilities/getCollectionIDType.js' import { getTenantFromCookie } from '../../utilities/getTenantFromCookie.js' type Args = { - access?: RelationshipField['access'] debug?: boolean name: string + overrides?: RootTenantFieldConfigOverrides tenantsCollectionSlug: string unique: boolean } export const tenantField = ({ name = defaults.tenantFieldName, - access = undefined, debug, + overrides: _overrides = {}, tenantsCollectionSlug = defaults.tenantCollectionSlug, unique, -}: Args): RelationshipField => ({ - name, - type: 'relationship', - access, - admin: { - allowCreate: false, - allowEdit: false, - components: { - Field: { - clientProps: { - debug, - unique, +}: Args): SingleRelationshipField => { + const { validate, ...overrides } = _overrides || {} + return { + ...(overrides || {}), + name, + type: 'relationship', + access: overrides?.access || {}, + admin: { + allowCreate: false, + allowEdit: false, + disableListColumn: true, + disableListFilter: true, + ...(overrides?.admin || {}), + components: { + ...(overrides?.admin?.components || {}), + Field: { + path: '@payloadcms/plugin-multi-tenant/client#TenantField', + ...(typeof overrides?.admin?.components?.Field !== 'string' + ? overrides?.admin?.components?.Field || {} + : {}), + clientProps: { + ...(typeof overrides?.admin?.components?.Field !== 'string' + ? (overrides?.admin?.components?.Field || {})?.clientProps + : {}), + debug, + unique, + }, }, - path: '@payloadcms/plugin-multi-tenant/client#TenantField', }, }, - disableListColumn: true, - disableListFilter: true, - }, - hasMany: false, - hooks: { - beforeChange: [ - ({ req, value }) => { - const idType = getCollectionIDType({ - collectionSlug: tenantsCollectionSlug, - payload: req.payload, - }) - if (!value) { - const tenantFromCookie = getTenantFromCookie(req.headers, idType) - if (tenantFromCookie) { - return tenantFromCookie + hasMany: false, + hooks: { + ...(overrides.hooks || []), + beforeChange: [ + ({ req, value }) => { + const idType = getCollectionIDType({ + collectionSlug: tenantsCollectionSlug, + payload: req.payload, + }) + if (!value) { + const tenantFromCookie = getTenantFromCookie(req.headers, idType) + if (tenantFromCookie) { + return tenantFromCookie + } + throw new APIError('You must select a tenant', 400, null, true) } - throw new APIError('You must select a tenant', 400, null, true) - } - return idType === 'number' ? parseFloat(value) : value - }, - ], - }, - index: true, - // @ts-expect-error translations are not typed for this plugin - label: ({ t }) => t('plugin-multi-tenant:field-assignedTentant-label'), - relationTo: tenantsCollectionSlug, - unique, -}) + return idType === 'number' ? parseFloat(value) : value + }, + ...(overrides?.hooks?.beforeChange || []), + ], + }, + index: true, + validate: (validate as RelationshipFieldSingleValidation) || undefined, + // @ts-expect-error translations are not typed for this plugin + label: overrides?.label || (({ t }) => t('plugin-multi-tenant:field-assignedTenant-label')), + relationTo: tenantsCollectionSlug, + unique, + } +} diff --git a/packages/plugin-multi-tenant/src/index.ts b/packages/plugin-multi-tenant/src/index.ts index 88383982bab..fe8a71560b6 100644 --- a/packages/plugin-multi-tenant/src/index.ts +++ b/packages/plugin-multi-tenant/src/index.ts @@ -40,7 +40,6 @@ export const multiTenantPlugin = pluginConfig?.tenantsArrayField?.arrayFieldName || defaults.tenantsArrayFieldName const tenantsArrayTenantFieldName = pluginConfig?.tenantsArrayField?.arrayTenantFieldName || defaults.tenantsArrayTenantFieldName - const tenantSelectorLabel = pluginConfig.tenantSelectorLabel || defaults.tenantSelectorLabel const basePath = pluginConfig.basePath || defaults.basePath /** @@ -69,37 +68,6 @@ export const multiTenantPlugin = incomingConfig.collections = [] } - /** - * Add tenant selector localized labels - */ - if (typeof tenantSelectorLabel === 'object') { - if (!incomingConfig.i18n) { - incomingConfig.i18n = {} - } - Object.entries(tenantSelectorLabel).forEach(([_locale, label]) => { - const locale = _locale as AcceptedLanguages - if (!incomingConfig.i18n) { - incomingConfig.i18n = {} - } - if (!incomingConfig.i18n.translations) { - incomingConfig.i18n.translations = {} - } - if (!(locale in incomingConfig.i18n.translations)) { - incomingConfig.i18n.translations[locale] = {} - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - if (!('multiTenant' in incomingConfig.i18n.translations[locale])) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - incomingConfig.i18n.translations[locale].multiTenant = {} - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - incomingConfig.i18n.translations[locale].multiTenant.selectorLabel = label - }) - } - /** * Add tenants array field to users collection */ @@ -284,6 +252,10 @@ export const multiTenantPlugin = tenantsCollectionSlug, }) + const overrides = pluginConfig.collections[collection.slug]?.tenantFieldOverrides + ? pluginConfig.collections[collection.slug]?.tenantFieldOverrides + : pluginConfig.tenantField || {} + /** * Add tenant field to enabled collections */ @@ -291,9 +263,9 @@ export const multiTenantPlugin = 0, 0, tenantField({ - ...(pluginConfig?.tenantField || {}), name: tenantFieldName, debug: pluginConfig.debug, + overrides, tenantsCollectionSlug, unique: isGlobal, }), @@ -382,7 +354,7 @@ export const multiTenantPlugin = */ incomingConfig.admin.components.beforeNavLinks.push({ clientProps: { - label: tenantSelectorLabel, + label: pluginConfig.tenantSelectorLabel || undefined, }, path: '@payloadcms/plugin-multi-tenant/client#TenantSelector', }) @@ -390,22 +362,30 @@ export const multiTenantPlugin = /** * Merge plugin translations */ - - const simplifiedTranslations = Object.entries(translations).reduce( - (acc, [key, value]) => { - acc[key] = value.translations - return acc - }, - {} as Record, - ) - - incomingConfig.i18n = { - ...incomingConfig.i18n, - translations: deepMergeSimple( - simplifiedTranslations, - incomingConfig.i18n?.translations ?? {}, - ), + if (!incomingConfig.i18n) { + incomingConfig.i18n = {} } + Object.entries(translations).forEach(([locale, pluginI18nObject]) => { + const typedLocale = locale as AcceptedLanguages + if (!incomingConfig.i18n!.translations) { + incomingConfig.i18n!.translations = {} + } + if (!(typedLocale in incomingConfig.i18n!.translations)) { + incomingConfig.i18n!.translations[typedLocale] = {} + } + if (!('plugin-multi-tenant' in incomingConfig.i18n!.translations[typedLocale]!)) { + ;(incomingConfig.i18n!.translations[typedLocale] as PluginDefaultTranslationsObject)[ + 'plugin-multi-tenant' + ] = {} as PluginDefaultTranslationsObject['plugin-multi-tenant'] + } + + ;(incomingConfig.i18n!.translations[typedLocale] as PluginDefaultTranslationsObject)[ + 'plugin-multi-tenant' + ] = { + ...pluginI18nObject.translations['plugin-multi-tenant'], + ...(pluginConfig.i18n?.translations?.[typedLocale] || {}), + } + }) return incomingConfig } diff --git a/packages/plugin-multi-tenant/src/translations/languages/ar.ts b/packages/plugin-multi-tenant/src/translations/languages/ar.ts index 74f2e3cf265..9d6fa76eebf 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/ar.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/ar.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const arTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': + 'confirm-modal-tenant-switch--body': 'أنت على وشك تغيير الملكية من <0>{{fromTenant}} إلى <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'تأكيد تغيير {{tenantLabel}}', - 'field-assignedTentant-label': 'المستأجر المعين', + 'confirm-modal-tenant-switch--heading': 'تأكيد تغيير {{tenantLabel}}', + 'field-assignedTenant-label': 'المستأجر المعين', + 'nav-tenantSelector-label': 'المستأجر', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/az.ts b/packages/plugin-multi-tenant/src/translations/languages/az.ts index 0f122d5dcb0..39969c2a3f5 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/az.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/az.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const azTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Siz <0>{{fromTenant}} mülkiyyətini <0>{{toTenant}} mülkiyyətinə dəyişdirəcəksiniz.', - 'confirm-tenant-switch--heading': '{{tenantLabel}} dəyişikliyini təsdiqləyin', - 'field-assignedTentant-label': 'Təyin edilmiş İcarəçi', + 'confirm-modal-tenant-switch--body': + 'Siz <0>{{fromTenant}}-dən <0>{{toTenant}}-a mülkiyyəti dəyişməyə hazırlaşırsınız', + 'confirm-modal-tenant-switch--heading': '{{tenantLabel}} dəyişikliyini təsdiqləyin', + 'field-assignedTenant-label': 'Təyin edilmiş İcarəçi', + 'nav-tenantSelector-label': 'Kirayəçi', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/bg.ts b/packages/plugin-multi-tenant/src/translations/languages/bg.ts index e37f81c8698..a8db5743942 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/bg.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/bg.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const bgTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': + 'confirm-modal-tenant-switch--body': 'Предстои да промените собствеността от <0>{{fromTenant}} на <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Потвърдете промяната на {{tenantLabel}}', - 'field-assignedTentant-label': 'Назначен наемател', + 'confirm-modal-tenant-switch--heading': 'Потвърждаване на промяна в {{tenantLabel}}', + 'field-assignedTenant-label': 'Назначен наемател', + 'nav-tenantSelector-label': 'Потребител', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/bnBd.ts b/packages/plugin-multi-tenant/src/translations/languages/bnBd.ts new file mode 100644 index 00000000000..b1389b170d4 --- /dev/null +++ b/packages/plugin-multi-tenant/src/translations/languages/bnBd.ts @@ -0,0 +1,16 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const bnBdTranslations: PluginDefaultTranslationsObject = { + 'plugin-multi-tenant': { + 'confirm-modal-tenant-switch--body': + 'আপনি <0>{{fromTenant}} থেকে <0>{{toTenant}} তে মালিকানা পরিবর্তন করতে চলেছেন।', + 'confirm-modal-tenant-switch--heading': '{{tenantLabel}} পরিবর্তন নিশ্চিত করুন', + 'field-assignedTenant-label': 'নির্ধারিত টেনেন্ট', + 'nav-tenantSelector-label': 'ভাড়াটিয়া', + }, +} + +export const bnBd: PluginLanguage = { + dateFNSKey: 'bn-BD', + translations: bnBdTranslations, +} diff --git a/packages/plugin-multi-tenant/src/translations/languages/bnIn.ts b/packages/plugin-multi-tenant/src/translations/languages/bnIn.ts new file mode 100644 index 00000000000..bf43d4d9ea9 --- /dev/null +++ b/packages/plugin-multi-tenant/src/translations/languages/bnIn.ts @@ -0,0 +1,16 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const bnInTranslations: PluginDefaultTranslationsObject = { + 'plugin-multi-tenant': { + 'confirm-modal-tenant-switch--body': + 'আপনি স্বত্বাধিকার পরিবর্তন করতে চলেছেন <0>{{fromTenant}} থেকে <0>{{toTenant}} এ।', + 'confirm-modal-tenant-switch--heading': '{{tenantLabel}} পরিবর্তন নিশ্চিত করুন', + 'field-assignedTenant-label': 'নির্ধারিত টেনেন্ট', + 'nav-tenantSelector-label': 'ভাড়াটিয়া', + }, +} + +export const bnIn: PluginLanguage = { + dateFNSKey: 'bn-IN', + translations: bnInTranslations, +} diff --git a/packages/plugin-multi-tenant/src/translations/languages/ca.ts b/packages/plugin-multi-tenant/src/translations/languages/ca.ts index 01d1135ecb3..a95e1e4fc8c 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/ca.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/ca.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const caTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Estàs a punt de canviar la propietat de <0>{{fromTenant}} a <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Confirmeu el canvi de {{tenantLabel}}', - 'field-assignedTentant-label': 'Llogater Assignat', + 'confirm-modal-tenant-switch--body': + 'Està a punt de canviar la propietat de <0>{{fromTenant}} a <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Confirmeu el canvi de {{tenantLabel}}', + 'field-assignedTenant-label': 'Llogater Assignat', + 'nav-tenantSelector-label': 'Inquilí', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/cs.ts b/packages/plugin-multi-tenant/src/translations/languages/cs.ts index ba184d63bc6..29ec6f4e4b2 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/cs.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/cs.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const csTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': + 'confirm-modal-tenant-switch--body': 'Chystáte se změnit vlastnictví z <0>{{fromTenant}} na <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Potvrďte změnu {{tenantLabel}}', - 'field-assignedTentant-label': 'Přiřazený nájemce', + 'confirm-modal-tenant-switch--heading': 'Potvrďte změnu {{tenantLabel}}', + 'field-assignedTenant-label': 'Přiřazený nájemce', + 'nav-tenantSelector-label': 'Nájemce', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/da.ts b/packages/plugin-multi-tenant/src/translations/languages/da.ts index e6e32fd7fc2..4b51069e7a6 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/da.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/da.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const daTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Du er ved at ændre ejerskab fra <0>{{fromTenant}} til <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Bekræft {{tenantLabel}} ændring', - 'field-assignedTentant-label': 'Tildelt Lejer', + 'confirm-modal-tenant-switch--body': + 'Du er ved at skifte ejerskab fra <0>{{fromTenant}} til <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Bekræft ændring af {{tenantLabel}}', + 'field-assignedTenant-label': 'Tildelt Lejer', + 'nav-tenantSelector-label': 'Lejer', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/de.ts b/packages/plugin-multi-tenant/src/translations/languages/de.ts index f709cef41b0..29300a27417 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/de.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/de.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const deTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Sie sind dabei, den Besitz von <0>{{fromTenant}} auf <0>{{toTenant}} zu übertragen.', - 'confirm-tenant-switch--heading': 'Bestätigen Sie die Änderung von {{tenantLabel}}.', - 'field-assignedTentant-label': 'Zugewiesener Mandant', + 'confirm-modal-tenant-switch--body': + 'Sie sind dabei, den Besitz von <0>{{fromTenant}} zu <0>{{toTenant}} zu ändern.', + 'confirm-modal-tenant-switch--heading': 'Bestätigung der Änderung von {{tenantLabel}}', + 'field-assignedTenant-label': 'Zugewiesener Mandant', + 'nav-tenantSelector-label': 'Mieter', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/en.ts b/packages/plugin-multi-tenant/src/translations/languages/en.ts index 35391929a81..7b41128e449 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/en.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/en.ts @@ -2,10 +2,11 @@ import type { PluginLanguage } from '../types.js' export const enTranslations = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': + 'confirm-modal-tenant-switch--body': 'You are about to change ownership from <0>{{fromTenant}} to <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Confirm {{tenantLabel}} change', - 'field-assignedTentant-label': 'Assigned Tenant', + 'confirm-modal-tenant-switch--heading': 'Confirm {{tenantLabel}} change', + 'field-assignedTenant-label': 'Assigned Tenant', + 'nav-tenantSelector-label': 'Tenant', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/es.ts b/packages/plugin-multi-tenant/src/translations/languages/es.ts index cacf035d439..e9d33e9766e 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/es.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/es.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const esTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': + 'confirm-modal-tenant-switch--body': 'Está a punto de cambiar la propiedad de <0>{{fromTenant}} a <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Confirme el cambio de {{tenantLabel}}', - 'field-assignedTentant-label': 'Inquilino Asignado', + 'confirm-modal-tenant-switch--heading': 'Confirme el cambio de {{tenantLabel}}', + 'field-assignedTenant-label': 'Inquilino Asignado', + 'nav-tenantSelector-label': 'Inquilino', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/et.ts b/packages/plugin-multi-tenant/src/translations/languages/et.ts index 71dfa3ade7e..a95155807e0 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/et.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/et.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const etTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Te olete tegemas omandiõiguse muudatust <0>{{fromTenant}}lt <0>{{toTenant}}le.', - 'confirm-tenant-switch--heading': 'Kinnita {{tenantLabel}} muutus', - 'field-assignedTentant-label': 'Määratud üürnik', + 'confirm-modal-tenant-switch--body': + 'Te olete just muutmas omandiõigust <0>{{fromTenant}} -lt <0>{{toTenant}} -le.', + 'confirm-modal-tenant-switch--heading': 'Kinnita {{tenantLabel}} muutus', + 'field-assignedTenant-label': 'Määratud üürnik', + 'nav-tenantSelector-label': 'Üürnik', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/fa.ts b/packages/plugin-multi-tenant/src/translations/languages/fa.ts index d719529be85..99d5f8c54ac 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/fa.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/fa.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const faTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'شما در حال تغییر مالکیت از <0>{{fromTenant}} به <0>{{toTenant}} هستید', - 'confirm-tenant-switch--heading': 'تایید تغییر {{tenantLabel}}', - 'field-assignedTentant-label': 'مستاجر اختصاص یافته', + 'confirm-modal-tenant-switch--body': + 'شما در حال تغییر مالکیت از <0>{{fromTenant}} به <0>{{toTenant}} هستید.', + 'confirm-modal-tenant-switch--heading': 'تأیید تغییر {{tenantLabel}}', + 'field-assignedTenant-label': 'مستاجر اختصاص یافته', + 'nav-tenantSelector-label': 'مستاجر', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/fr.ts b/packages/plugin-multi-tenant/src/translations/languages/fr.ts index 542505c01fd..ac692ced09d 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/fr.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/fr.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const frTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': + 'confirm-modal-tenant-switch--body': 'Vous êtes sur le point de changer la propriété de <0>{{fromTenant}} à <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Confirmer le changement de {{tenantLabel}}', - 'field-assignedTentant-label': 'Locataire Attribué', + 'confirm-modal-tenant-switch--heading': 'Confirmer le changement de {{tenantLabel}}', + 'field-assignedTenant-label': 'Locataire Attribué', + 'nav-tenantSelector-label': 'Locataire', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/he.ts b/packages/plugin-multi-tenant/src/translations/languages/he.ts index 008204fa244..42a21fd6266 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/he.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/he.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const heTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': + 'confirm-modal-tenant-switch--body': 'אתה עומד לשנות בעלות מ- <0>{{fromTenant}} ל- <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'אשר שינוי {{tenantLabel}}', - 'field-assignedTentant-label': 'דייר מוקצה', + 'confirm-modal-tenant-switch--heading': 'אשר שינוי {{tenantLabel}}', + 'field-assignedTenant-label': 'דייר מוקצה', + 'nav-tenantSelector-label': 'דייר', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/hr.ts b/packages/plugin-multi-tenant/src/translations/languages/hr.ts index af4f9ecd52c..acf94bc57d2 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/hr.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/hr.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const hrTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Upravo ćete promijeniti vlasništvo sa <0>{{fromTenant}} na <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Potvrdi promjenu {{tenantLabel}}', - 'field-assignedTentant-label': 'Dodijeljeni stanar', + 'confirm-modal-tenant-switch--body': + 'Na rubu ste promjene vlasništva iz <0>{{fromTenant}} u <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Potvrdite promjenu {{tenantLabel}}', + 'field-assignedTenant-label': 'Dodijeljeni stanar', + 'nav-tenantSelector-label': 'Podstanar', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/hu.ts b/packages/plugin-multi-tenant/src/translations/languages/hu.ts index dbf8174ba7e..4eed8bdcb32 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/hu.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/hu.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const huTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Ön azon van, hogy megváltoztassa a tulajdonjogot <0>{{fromTenant}}-ről <0>{{toTenant}}-re.', - 'confirm-tenant-switch--heading': 'Erősítse meg a(z) {{tenantLabel}} változtatást', - 'field-assignedTentant-label': 'Kijelölt Bérlő', + 'confirm-modal-tenant-switch--body': + 'Közel áll ahhoz, hogy megváltoztassa a tulajdonságot <0>{{fromTenant}} -ból <0>{{toTenant}} -ba.', + 'confirm-modal-tenant-switch--heading': 'Erősítse meg a {{tenantLabel}} változást', + 'field-assignedTenant-label': 'Kijelölt Bérlő', + 'nav-tenantSelector-label': 'Bérlő', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/hy.ts b/packages/plugin-multi-tenant/src/translations/languages/hy.ts index 10911dcd229..e1edf58f1c4 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/hy.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/hy.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const hyTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Դուք պատրաստ եք փոխել գերեցդիմատնին ընկերությունը <0>{{fromTenant}}-ից <0>{{toTenant}}-ին', - 'confirm-tenant-switch--heading': 'Հաստատեք {{tenantLabel}} փոփոխությունը', - 'field-assignedTentant-label': 'Հանձնարարված վարձակալ', + 'confirm-modal-tenant-switch--body': + 'Դուք պատրաստվում եք փոխել սեփականությունը <0>{{fromTenant}}-ից <0>{{toTenant}}-ին:', + 'confirm-modal-tenant-switch--heading': 'Հաստատեք {{tenantLabel}}֊ի փոփոխությունը', + 'field-assignedTenant-label': 'Հանձնարարված վարձակալ', + 'nav-tenantSelector-label': 'Տենանտ', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/id.ts b/packages/plugin-multi-tenant/src/translations/languages/id.ts new file mode 100644 index 00000000000..3902fd8dfca --- /dev/null +++ b/packages/plugin-multi-tenant/src/translations/languages/id.ts @@ -0,0 +1,16 @@ +import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js' + +export const idTranslations: PluginDefaultTranslationsObject = { + 'plugin-multi-tenant': { + 'confirm-modal-tenant-switch--body': + 'Anda akan mengubah kepemilikan dari <0>{{fromTenant}} ke <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Konfirmasi perubahan {{tenantLabel}}', + 'field-assignedTenant-label': 'Penyewa yang Ditugaskan', + 'nav-tenantSelector-label': 'Penyewa', + }, +} + +export const id: PluginLanguage = { + dateFNSKey: 'id', + translations: idTranslations, +} diff --git a/packages/plugin-multi-tenant/src/translations/languages/it.ts b/packages/plugin-multi-tenant/src/translations/languages/it.ts index 86bc1ca1842..31cca2a856c 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/it.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/it.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const itTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Stai per cambiare proprietà da <0>{{fromTenant}} a <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Conferma il cambiamento di {{tenantLabel}}', - 'field-assignedTentant-label': 'Inquilino Assegnato', + 'confirm-modal-tenant-switch--body': + 'Stai per cambiare il possesso da <0>{{fromTenant}} a <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Conferma il cambiamento di {{tenantLabel}}', + 'field-assignedTenant-label': 'Inquilino Assegnato', + 'nav-tenantSelector-label': 'Inquilino', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/ja.ts b/packages/plugin-multi-tenant/src/translations/languages/ja.ts index 6e9a818036d..972a41ed8b6 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/ja.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/ja.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const jaTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'あなたは所有権を<0>{{fromTenant}}から<0>{{toTenant}}へ変更しようとしています', - 'confirm-tenant-switch--heading': '{{tenantLabel}}の変更を確認してください', - 'field-assignedTentant-label': '割り当てられたテナント', + 'confirm-modal-tenant-switch--body': + 'あなたは、<0>{{fromTenant}}から<0>{{toTenant}}への所有権を変更しようとしています。', + 'confirm-modal-tenant-switch--heading': '{{tenantLabel}}の変更を確認します', + 'field-assignedTenant-label': '割り当てられたテナント', + 'nav-tenantSelector-label': 'テナント', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/ko.ts b/packages/plugin-multi-tenant/src/translations/languages/ko.ts index 309ba3ea210..bf3fa55b3f7 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/ko.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/ko.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const koTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - '<0>{{fromTenant}}에서 <0>{{toTenant}}으로 소유권을 변경하려고 합니다.', - 'confirm-tenant-switch--heading': '{{tenantLabel}} 변경을 확인하세요', - 'field-assignedTentant-label': '지정된 세입자', + 'confirm-modal-tenant-switch--body': + '<0>{{fromTenant}}에서 <0>{{toTenant}}로 소유권을 변경하려고 합니다.', + 'confirm-modal-tenant-switch--heading': '{{tenantLabel}} 변경 확인', + 'field-assignedTenant-label': '지정된 세입자', + 'nav-tenantSelector-label': '세입자', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/lt.ts b/packages/plugin-multi-tenant/src/translations/languages/lt.ts index ad4cf34470d..4b36dce6d0c 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/lt.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/lt.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const ltTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Jūs ketinate pakeisti nuosavybės teisę iš <0>{{fromTenant}} į <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Patvirtinkite {{tenantLabel}} pakeitimą', - 'field-assignedTentant-label': 'Paskirtas nuomininkas', + 'confirm-modal-tenant-switch--body': + 'Jūs ketinate pakeisti nuosavybę iš <0>{{fromTenant}} į <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Patvirtinkite {{tenantLabel}} pakeitimą', + 'field-assignedTenant-label': 'Paskirtas nuomininkas', + 'nav-tenantSelector-label': 'Nuomininkas', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/lv.ts b/packages/plugin-multi-tenant/src/translations/languages/lv.ts index 03b57339c8f..54720124c67 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/lv.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/lv.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const lvTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': + 'confirm-modal-tenant-switch--body': 'Jūs gatavojaties mainīt īpašumtiesības no <0>{{fromTenant}} uz <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Apstipriniet {{tenantLabel}} izmaiņu', - 'field-assignedTentant-label': 'Piešķirts īrnieks', + 'confirm-modal-tenant-switch--heading': 'Apstipriniet {{tenantLabel}} izmaiņu', + 'field-assignedTenant-label': 'Piešķirts nomnieks', + 'nav-tenantSelector-label': 'Nomnieks', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/my.ts b/packages/plugin-multi-tenant/src/translations/languages/my.ts index 0642543d3b0..06414b551d0 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/my.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/my.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const myTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Anda akan mengubah pemilikan dari <0>{{fromTenant}} ke <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Sahkan perubahan {{tenantLabel}}', - 'field-assignedTentant-label': 'ခွဲစိုက်ထားသော အငှားယူသူ', + 'confirm-modal-tenant-switch--body': + 'Anda akan menukar pemilikan dari <0>{{fromTenant}} kepada <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Sahkan perubahan {{tenantLabel}}', + 'field-assignedTenant-label': 'ခွဲစိုက်ထားသော အငှားယူသူ', + 'nav-tenantSelector-label': 'Penyewa', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/nb.ts b/packages/plugin-multi-tenant/src/translations/languages/nb.ts index ec1c8e5315c..1485f4eb724 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/nb.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/nb.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const nbTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': + 'confirm-modal-tenant-switch--body': 'Du er i ferd med å endre eierskap fra <0>{{fromTenant}} til <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Bekreft {{tenantLabel}} endring', - 'field-assignedTentant-label': 'Tildelt leietaker', + 'confirm-modal-tenant-switch--heading': 'Bekreft endring av {{tenantLabel}}', + 'field-assignedTenant-label': 'Tildelt leietaker', + 'nav-tenantSelector-label': 'Leietaker', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/nl.ts b/packages/plugin-multi-tenant/src/translations/languages/nl.ts index 853c6a40d46..f57a27d82e9 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/nl.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/nl.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const nlTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'U staat op het punt het eigendom te wijzigen van <0>{{fromTenant}} naar <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Bevestig wijziging van {{tenantLabel}}', - 'field-assignedTentant-label': 'Toegewezen Huurder', + 'confirm-modal-tenant-switch--body': + 'U staat op het punt om eigenaarschap te wijzigen van <0>{{fromTenant}} naar <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Bevestig wijziging van {{tenantLabel}}', + 'field-assignedTenant-label': 'Toegewezen Huurder', + 'nav-tenantSelector-label': 'Huurder', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/pl.ts b/packages/plugin-multi-tenant/src/translations/languages/pl.ts index a07ff219d92..2e8fd219747 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/pl.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/pl.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const plTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': + 'confirm-modal-tenant-switch--body': 'Za chwilę nastąpi zmiana właściciela z <0>{{fromTenant}} na <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Potwierdź zmianę {{tenantLabel}}', - 'field-assignedTentant-label': 'Przypisany Najemca', + 'confirm-modal-tenant-switch--heading': 'Potwierdź zmianę {{tenantLabel}}', + 'field-assignedTenant-label': 'Przypisany Najemca', + 'nav-tenantSelector-label': 'Najemca', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/pt.ts b/packages/plugin-multi-tenant/src/translations/languages/pt.ts index 7a1e2d758b3..5ca864fb697 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/pt.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/pt.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const ptTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Você está prestes a alterar a propriedade de <0>{{fromTenant}} para <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Confirme a alteração de {{tenantLabel}}', - 'field-assignedTentant-label': 'Inquilino Atribuído', + 'confirm-modal-tenant-switch--body': + 'Está prestes a mudar a propriedade de <0>{{fromTenant}} para <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Confirme a alteração do {{tenantLabel}}', + 'field-assignedTenant-label': 'Inquilino Atribuído', + 'nav-tenantSelector-label': 'Inquilino', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/ro.ts b/packages/plugin-multi-tenant/src/translations/languages/ro.ts index 95f6dd19c96..52bd9f85da0 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/ro.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/ro.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const roTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Sunteți pe punctul de a schimba proprietatea de la <0>{{fromTenant}} la <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Confirmați schimbarea {{tenantLabel}}', - 'field-assignedTentant-label': 'Locatar Atribuit', + 'confirm-modal-tenant-switch--body': + 'Sunteți pe cale să schimbați proprietatea de la <0>{{fromTenant}} la <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Confirmați modificarea {{tenantLabel}}', + 'field-assignedTenant-label': 'Locatar Atribuit', + 'nav-tenantSelector-label': 'Locatar', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/rs.ts b/packages/plugin-multi-tenant/src/translations/languages/rs.ts index dd76ce74e49..e9176c4e480 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/rs.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/rs.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const rsTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Upravo ćete promeniti vlasništvo sa <0>{{fromTenant}} na <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Potvrdi promena {{tenantLabel}}', - 'field-assignedTentant-label': 'Dodeljen stanar', + 'confirm-modal-tenant-switch--body': + 'Na putu ste da promenite vlasništvo od <0>{{fromTenant}} do <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Potvrdite promenu {{tenantLabel}}', + 'field-assignedTenant-label': 'Dodeljen stanar', + 'nav-tenantSelector-label': 'Podstanar', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/rsLatin.ts b/packages/plugin-multi-tenant/src/translations/languages/rsLatin.ts index e381b0b5c20..aa744c021d2 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/rsLatin.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/rsLatin.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const rsLatinTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': + 'confirm-modal-tenant-switch--body': 'Uskoro ćete promeniti vlasništvo sa <0>{{fromTenant}} na <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Potvrdite promenu {{tenantLabel}}', - 'field-assignedTentant-label': 'Dodeljen stanar', + 'confirm-modal-tenant-switch--heading': 'Potvrdite promenu {{tenantLabel}}', + 'field-assignedTenant-label': 'Dodeljen stanar', + 'nav-tenantSelector-label': 'Podstanar', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/ru.ts b/packages/plugin-multi-tenant/src/translations/languages/ru.ts index 6649ff40250..ab246ed30b8 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/ru.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/ru.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const ruTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': + 'confirm-modal-tenant-switch--body': 'Вы собираетесь изменить владельца с <0>{{fromTenant}} на <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Подтвердите изменение {{tenantLabel}}', - 'field-assignedTentant-label': 'Назначенный Арендатор', + 'confirm-modal-tenant-switch--heading': 'Подтвердите изменение {{tenantLabel}}', + 'field-assignedTenant-label': 'Назначенный Арендатор', + 'nav-tenantSelector-label': 'Арендатор', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/sk.ts b/packages/plugin-multi-tenant/src/translations/languages/sk.ts index da565a65333..5664add516a 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/sk.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/sk.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const skTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': + 'confirm-modal-tenant-switch--body': 'Chystáte sa zmeniť vlastníctvo z <0>{{fromTenant}} na <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Potvrďte zmenu {{tenantLabel}}', - 'field-assignedTentant-label': 'Pridelený nájomca', + 'confirm-modal-tenant-switch--heading': 'Potvrďte zmenu {{tenantLabel}}', + 'field-assignedTenant-label': 'Pridelený nájomca', + 'nav-tenantSelector-label': 'Nájomca', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/sl.ts b/packages/plugin-multi-tenant/src/translations/languages/sl.ts index 0726c47ecad..40b2df7e746 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/sl.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/sl.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const slTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Ravno ste pred spremembo lastništva iz <0>{{fromTenant}} na <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Potrdi spremembo {{tenantLabel}}', - 'field-assignedTentant-label': 'Dodeljen najemnik', + 'confirm-modal-tenant-switch--body': + 'Pravkar ste na točki, da spremenite lastništvo iz <0>{{fromTenant}} v <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Potrdite spremembo {{tenantLabel}}', + 'field-assignedTenant-label': 'Dodeljen najemnik', + 'nav-tenantSelector-label': 'Najemnik', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/sv.ts b/packages/plugin-multi-tenant/src/translations/languages/sv.ts index ee01da7591d..418ef934f43 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/sv.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/sv.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const svTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Du är på väg att ändra ägare från <0>{{fromTenant}} till <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Bekräfta ändring av {{tenantLabel}}', - 'field-assignedTentant-label': 'Tilldelad hyresgäst', + 'confirm-modal-tenant-switch--body': + 'Du är på väg att ändra ägande från <0>{{fromTenant}} till <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Bekräfta ändring av {{tenantLabel}}', + 'field-assignedTenant-label': 'Tilldelad hyresgäst', + 'nav-tenantSelector-label': 'Hyresgäst', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/th.ts b/packages/plugin-multi-tenant/src/translations/languages/th.ts index 2625f6aab52..78a8f4480fe 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/th.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/th.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const thTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'คุณกำลังจะเปลี่ยนความเป็นเจ้าของจาก <0>{{fromTenant}} เป็น <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'ยืนยันการเปลี่ยนแปลง {{tenantLabel}}', - 'field-assignedTentant-label': 'ผู้เช่าที่ได้รับการกำหนด', + 'confirm-modal-tenant-switch--body': + 'คุณกำลังจะเปลี่ยนสิทธิ์การเป็นเจ้าของจาก <0>{{fromTenant}} ไปยัง <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'ยืนยันการเปลี่ยนแปลง {{tenantLabel}}', + 'field-assignedTenant-label': 'ผู้เช่าที่ได้รับการกำหนด', + 'nav-tenantSelector-label': 'ผู้เช่า', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/tr.ts b/packages/plugin-multi-tenant/src/translations/languages/tr.ts index 6969d5e2d1a..7bb284bce2b 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/tr.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/tr.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const trTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - "Sahipliği <0>{{fromTenant}}'den <0>{{toTenant}}'e değiştirmek üzeresiniz.", - 'confirm-tenant-switch--heading': '{{tenantLabel}} değişikliğini onayla', - 'field-assignedTentant-label': 'Atanan Kiracı', + 'confirm-modal-tenant-switch--body': + "<0>{{fromTenant}}'den <0>{{toTenant}}'ye sahipliği değiştirmek üzeresiniz.", + 'confirm-modal-tenant-switch--heading': '{{tenantLabel}} değişikliğini onayla', + 'field-assignedTenant-label': 'Atanan Kiracı', + 'nav-tenantSelector-label': 'Kiracı', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/uk.ts b/packages/plugin-multi-tenant/src/translations/languages/uk.ts index 7dda25d194c..40f921470b6 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/uk.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/uk.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const ukTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Ви збираєтесь змінити власність з <0>{{fromTenant}} на <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Підтвердіть зміну {{tenantLabel}}', - 'field-assignedTentant-label': 'Призначений орендар', + 'confirm-modal-tenant-switch--body': + 'Ви збираєтеся змінити власність з <0>{{fromTenant}} на <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Підтвердіть зміну {{tenantLabel}}', + 'field-assignedTenant-label': 'Призначений орендар', + 'nav-tenantSelector-label': 'Орендар', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/vi.ts b/packages/plugin-multi-tenant/src/translations/languages/vi.ts index d3e30dabb7e..a9e28f8701b 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/vi.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/vi.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const viTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - 'Bạn đang chuẩn bị chuyển quyền sở hữu từ <0>{{fromTenant}} sang <0>{{toTenant}}', - 'confirm-tenant-switch--heading': 'Xác nhận thay đổi {{tenantLabel}}', - 'field-assignedTentant-label': 'Người thuê đã được chỉ định', + 'confirm-modal-tenant-switch--body': + 'Bạn sắp chuyển quyền sở hữu từ <0>{{fromTenant}} đến <0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': 'Xác nhận thay đổi {{tenantLabel}}', + 'field-assignedTenant-label': 'Người thuê đã được chỉ định', + 'nav-tenantSelector-label': 'Người thuê', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/zh.ts b/packages/plugin-multi-tenant/src/translations/languages/zh.ts index 41255d9fb86..2bb02710cc1 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/zh.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/zh.ts @@ -2,9 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const zhTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': '您即将将所有权从<0>{{fromTenant}}更改为<0>{{toTenant}}', - 'confirm-tenant-switch--heading': '确认更改{{tenantLabel}}', - 'field-assignedTentant-label': '指定租户', + 'confirm-modal-tenant-switch--body': + '您即将从<0>{{fromTenant}}更改为<0>{{toTenant}}的所有权', + 'confirm-modal-tenant-switch--heading': '确认更改{{tenantLabel}}', + 'field-assignedTenant-label': '指定租户', + 'nav-tenantSelector-label': '租户', }, } diff --git a/packages/plugin-multi-tenant/src/translations/languages/zhTw.ts b/packages/plugin-multi-tenant/src/translations/languages/zhTw.ts index 462691ddf49..8ff3cbd6a64 100644 --- a/packages/plugin-multi-tenant/src/translations/languages/zhTw.ts +++ b/packages/plugin-multi-tenant/src/translations/languages/zhTw.ts @@ -2,10 +2,11 @@ import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.j export const zhTwTranslations: PluginDefaultTranslationsObject = { 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': - '您即將變更擁有者,從 <0>{{fromTenant}} 切換為 <0>{{toTenant}}', - 'confirm-tenant-switch--heading': '確認變更 {{tenantLabel}}', - 'field-assignedTentant-label': '指派的租用戶', + 'confirm-modal-tenant-switch--body': + '您即將從<0>{{fromTenant}}變更所有權至<0>{{toTenant}}', + 'confirm-modal-tenant-switch--heading': '確認變更 {{tenantLabel}}', + 'field-assignedTenant-label': '指派的租用戶', + 'nav-tenantSelector-label': '租戶', }, } diff --git a/packages/plugin-multi-tenant/src/translations/types.ts b/packages/plugin-multi-tenant/src/translations/types.ts index 60daa75d716..4f8b5079ba2 100644 --- a/packages/plugin-multi-tenant/src/translations/types.ts +++ b/packages/plugin-multi-tenant/src/translations/types.ts @@ -4,9 +4,10 @@ import type { enTranslations } from './languages/en.js' export type PluginLanguage = Language<{ 'plugin-multi-tenant': { - 'confirm-tenant-switch--body': string - 'confirm-tenant-switch--heading': string - 'field-assignedTentant-label': string + 'confirm-modal-tenant-switch--body': string + 'confirm-modal-tenant-switch--heading': string + 'field-assignedTenant-label': string + 'nav-tenantSelector-label': string } }> diff --git a/packages/plugin-multi-tenant/src/types.ts b/packages/plugin-multi-tenant/src/types.ts index 1f0e37236ac..7b87c90a3ea 100644 --- a/packages/plugin-multi-tenant/src/types.ts +++ b/packages/plugin-multi-tenant/src/types.ts @@ -1,5 +1,12 @@ import type { AcceptedLanguages } from '@payloadcms/translations' -import type { ArrayField, CollectionSlug, Field, RelationshipField, TypedUser } from 'payload' +import type { + ArrayField, + CollectionSlug, + Field, + RelationshipField, + SingleRelationshipField, + TypedUser, +} from 'payload' export type MultiTenantPluginConfig = { /** @@ -30,6 +37,11 @@ export type MultiTenantPluginConfig = { */ isGlobal?: boolean /** + * Overrides for the tenant field, will override the entire tenantField configuration + */ + tenantFieldOverrides?: CollectionTenantFieldConfigOverrides + /** + * Set to `false` if you want to manually apply the baseListFilter * Set to `false` if you want to manually apply the baseFilter * * @default true @@ -69,17 +81,36 @@ export type MultiTenantPluginConfig = { */ enabled?: boolean /** - * Field configuration for the field added to all tenant enabled collections + * Localization for the plugin */ - tenantField?: { - access?: RelationshipField['access'] - /** - * The name of the field added to all tenant enabled collections - * - * @default 'tenant' - */ - name?: string + i18n?: { + translations: { + [key in AcceptedLanguages]?: { + /** + * @default 'You are about to change ownership from <0>{{fromTenant}} to <0>{{toTenant}}' + */ + 'confirm-modal-tenant-switch--body'?: string + /** + * `tenantLabel` defaults to the value of the `nav-tenantSelector-label` translation + * + * @default 'Confirm {{tenantLabel}} change' + */ + 'confirm-modal-tenant-switch--heading'?: string + /** + * @default 'Assigned Tenant' + */ + 'field-assignedTenant-label'?: string + /** + * @default 'Tenant' + */ + 'nav-tenantSelector-label'?: string + } + } } + /** + * Field configuration for the field added to all tenant enabled collections + */ + tenantField?: RootTenantFieldConfigOverrides /** * Field configuration for the field added to the users collection * @@ -132,6 +163,8 @@ export type MultiTenantPluginConfig = { * Customize tenant selector label * * Either a string or an object where the keys are i18n codes and the values are the string labels + * + * @deprecated Use `i18n.translations` instead. */ tenantSelectorLabel?: | Partial<{ @@ -166,6 +199,30 @@ export type MultiTenantPluginConfig = { useUsersTenantFilter?: boolean } +export type RootTenantFieldConfigOverrides = Partial< + Omit< + SingleRelationshipField, + | '_sanitized' + | 'hasMany' + | 'hidden' + | 'index' + | 'localized' + | 'max' + | 'maxRows' + | 'min' + | 'minRows' + | 'relationTo' + | 'required' + | 'type' + | 'unique' + | 'virtual' + > +> + +export type CollectionTenantFieldConfigOverrides = Partial< + Omit +> + export type Tenant = { id: IDType name: string diff --git a/packages/richtext-lexical/src/features/migrations/slateToLexical/converter/index.ts b/packages/richtext-lexical/src/features/migrations/slateToLexical/converter/index.ts index de3e59f625e..bb174374123 100644 --- a/packages/richtext-lexical/src/features/migrations/slateToLexical/converter/index.ts +++ b/packages/richtext-lexical/src/features/migrations/slateToLexical/converter/index.ts @@ -124,7 +124,7 @@ export function convertTextNode(node: SlateNode): SerializedTextNode { format: convertNodeToFormat(node), mode: 'normal', style: '', - text: node.text ?? "", + text: node.text ?? '', version: 1, } } diff --git a/packages/translations/src/languages/zhTw.ts b/packages/translations/src/languages/zhTw.ts index 749186aaa00..52bd3cbf41d 100644 --- a/packages/translations/src/languages/zhTw.ts +++ b/packages/translations/src/languages/zhTw.ts @@ -25,14 +25,14 @@ export const zhTwTranslations: DefaultTranslationsObject = { failedToUnlock: '解除鎖定失敗', forceUnlock: '強制解除鎖定', forgotPassword: '忘記密碼', - forgotPasswordEmailInstructions: - '請輸入您的電子郵件。您將會收到一封包含密碼重設指示的郵件。', + forgotPasswordEmailInstructions: '請輸入您的電子郵件。您將會收到一封包含密碼重設指示的郵件。', forgotPasswordQuestion: '忘記密碼?', forgotPasswordUsernameInstructions: '請輸入您的使用者名稱。重設密碼的指示將會寄送至該帳號所綁定的電子郵件。', generate: '產生', generateNewAPIKey: '產生新的 API 金鑰', - generatingNewAPIKeyWillInvalidate: '產生新的 API 金鑰將會使原本的金鑰<1>失效。確定要繼續嗎?', + generatingNewAPIKeyWillInvalidate: + '產生新的 API 金鑰將會使原本的金鑰<1>失效。確定要繼續嗎?', lockUntil: '鎖定至', logBackIn: '重新登入', loggedIn: '若要使用其他使用者登入,請先<0>登出。', @@ -187,8 +187,10 @@ export const zhTwTranslations: DefaultTranslationsObject = { moveFolder: '移動資料夾', moveItemsToFolderConfirmation: '您即將移動 <1>{{count}} 個 {{label}} 到 <2>{{toFolder}}。確定要繼續?', - moveItemsToRootConfirmation: '您即將移動 <1>{{count}} 個 {{label}} 到根資料夾。確定要繼續?', - moveItemToFolderConfirmation: '您即將移動 <1>{{title}} 到 <2>{{toFolder}}。確定要繼續?', + moveItemsToRootConfirmation: + '您即將移動 <1>{{count}} 個 {{label}} 到根資料夾。確定要繼續?', + moveItemToFolderConfirmation: + '您即將移動 <1>{{title}} 到 <2>{{toFolder}}。確定要繼續?', moveItemToRootConfirmation: '您即將移動 <1>{{title}} 到根資料夾。確定要繼續?', movingFromFolder: '正在從 {{fromFolder}} 移動 {{title}}', newFolder: '新增資料夾', @@ -390,8 +392,7 @@ export const zhTwTranslations: DefaultTranslationsObject = { success: '成功', successfullyCreated: '已成功建立 {{label}}。', successfullyDuplicated: '已成功複製 {{label}}。', - successfullyReindexed: - '已成功重新索引 {{collections}} 中 {{total}} 筆文件中的 {{count}} 筆。', + successfullyReindexed: '已成功重新索引 {{collections}} 中 {{total}} 筆文件中的 {{count}} 筆。', takeOver: '接手編輯', thisLanguage: '中文(繁體)', time: '時間', diff --git a/test/plugin-multi-tenant/config.ts b/test/plugin-multi-tenant/config.ts index a047a051bfa..a57daf85c7c 100644 --- a/test/plugin-multi-tenant/config.ts +++ b/test/plugin-multi-tenant/config.ts @@ -44,7 +44,15 @@ export default buildConfigWithDefaults({ isGlobal: true, }, }, - tenantSelectorLabel: { en: 'Site', es: 'Site in es' }, + i18n: { + translations: { + en: { + 'field-assignedTenant-label': 'Currently Assigned Site', + 'nav-tenantSelector-label': 'Filter By Site', + 'confirm-modal-tenant-switch--heading': 'Confirm Site Change', + }, + }, + }, }), ], typescript: {