@strapi/i18n 5.49.0 → 5.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/admin/index.js +1 -0
  2. package/dist/admin/index.js.map +1 -1
  3. package/dist/admin/index.mjs +1 -0
  4. package/dist/admin/index.mjs.map +1 -1
  5. package/dist/admin/src/contentReleasesHooks/releaseDetailsView.d.ts +1 -1
  6. package/dist/admin/src/services/relations.d.ts +2 -2
  7. package/dist/admin/src/services/settings.d.ts +1 -1
  8. package/dist/admin/src/utils/schemas.d.ts +6 -6
  9. package/dist/admin/translations/ja.json.js +92 -0
  10. package/dist/admin/translations/ja.json.js.map +1 -0
  11. package/dist/admin/translations/ja.json.mjs +90 -0
  12. package/dist/admin/translations/ja.json.mjs.map +1 -0
  13. package/dist/server/register.js +4 -0
  14. package/dist/server/register.js.map +1 -1
  15. package/dist/server/register.mjs +4 -0
  16. package/dist/server/register.mjs.map +1 -1
  17. package/dist/server/services/permissions/actions.js +95 -1
  18. package/dist/server/services/permissions/actions.js.map +1 -1
  19. package/dist/server/services/permissions/actions.mjs +95 -1
  20. package/dist/server/services/permissions/actions.mjs.map +1 -1
  21. package/dist/server/services/permissions/sections-builder.js +6 -4
  22. package/dist/server/services/permissions/sections-builder.js.map +1 -1
  23. package/dist/server/services/permissions/sections-builder.mjs +6 -4
  24. package/dist/server/services/permissions/sections-builder.mjs.map +1 -1
  25. package/dist/server/src/controllers/ai-localization-jobs.d.ts.map +1 -1
  26. package/dist/server/src/controllers/content-types.d.ts +2 -3
  27. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  28. package/dist/server/src/controllers/index.d.ts +2 -3
  29. package/dist/server/src/controllers/index.d.ts.map +1 -1
  30. package/dist/server/src/domain/locale.d.ts.map +1 -1
  31. package/dist/server/src/graphql.d.ts.map +1 -1
  32. package/dist/server/src/index.d.ts +11 -10
  33. package/dist/server/src/index.d.ts.map +1 -1
  34. package/dist/server/src/register.d.ts.map +1 -1
  35. package/dist/server/src/services/ai-localization-jobs.d.ts +1 -1
  36. package/dist/server/src/services/ai-localization-jobs.d.ts.map +1 -1
  37. package/dist/server/src/services/ai-localizations.d.ts.map +1 -1
  38. package/dist/server/src/services/fill-from-locale.d.ts.map +1 -1
  39. package/dist/server/src/services/index.d.ts +9 -7
  40. package/dist/server/src/services/index.d.ts.map +1 -1
  41. package/dist/server/src/services/localizations.d.ts.map +1 -1
  42. package/dist/server/src/services/permissions/actions.d.ts +5 -0
  43. package/dist/server/src/services/permissions/actions.d.ts.map +1 -1
  44. package/dist/server/src/services/permissions/conditions.d.ts.map +1 -1
  45. package/dist/server/src/services/permissions/engine.d.ts.map +1 -1
  46. package/dist/server/src/services/permissions/sections-builder.d.ts.map +1 -1
  47. package/dist/server/src/services/permissions.d.ts +5 -0
  48. package/dist/server/src/services/permissions.d.ts.map +1 -1
  49. package/dist/server/src/services/sanitize/index.d.ts +0 -1
  50. package/dist/server/src/services/sanitize/index.d.ts.map +1 -1
  51. package/dist/server/src/services/settings.d.ts.map +1 -1
  52. package/dist/server/src/utils/index.d.ts +15 -15
  53. package/dist/server/src/utils/index.d.ts.map +1 -1
  54. package/dist/server/src/validation/content-types.d.ts +2 -2
  55. package/dist/server/src/validation/content-types.d.ts.map +1 -1
  56. package/dist/server/src/validation/locales.d.ts +2 -2
  57. package/dist/server/src/validation/settings.d.ts +1 -1
  58. package/package.json +9 -9
@@ -53,6 +53,7 @@ function __variableDynamicImportRuntime1__(path) {
53
53
  case './translations/en.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/en.json.js')); });
54
54
  case './translations/es.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/es.json.js')); });
55
55
  case './translations/fr.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/fr.json.js')); });
56
+ case './translations/ja.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/ja.json.js')); });
56
57
  case './translations/ko.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/ko.json.js')); });
57
58
  case './translations/nl.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/nl.json.js')); });
58
59
  case './translations/pl.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/pl.json.js')); });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import get from 'lodash/get';\nimport * as yup from 'yup';\n\nimport { CheckboxConfirmation } from './components/CheckboxConfirmation';\nimport {\n BulkLocalePublishAction,\n BulkLocaleUnpublishAction,\n DeleteLocaleAction,\n LocalePickerAction,\n FillFromAnotherLocaleAction,\n AITranslationStatusAction,\n} from './components/CMHeaderActions';\nimport {\n DeleteModalAdditionalInfo,\n PublishModalAdditionalInfo,\n UnpublishModalAdditionalInfo,\n} from './components/CMListViewModalsAdditionalInformation';\nimport { LocalePicker } from './components/LocalePicker';\nimport { PERMISSIONS } from './constants';\nimport { mutateEditViewHook } from './contentManagerHooks/editView';\nimport { addColumnToTableHook } from './contentManagerHooks/listView';\nimport { addLocaleToReleasesHook } from './contentReleasesHooks/releaseDetailsView';\nimport { extendCTBAttributeInitialDataMiddleware } from './middlewares/extendCTBAttributeInitialData';\nimport { extendCTBInitialDataMiddleware } from './middlewares/extendCTBInitialData';\nimport { localeMiddleware } from './middlewares/rbac-middleware';\nimport { pluginId } from './pluginId';\nimport { i18nApi } from './services/api';\nimport { LOCALIZED_FIELDS } from './utils/fields';\nimport { getTranslation } from './utils/getTranslation';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\nimport { mutateCTBContentTypeSchema } from './utils/schemas';\n\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type {\n ContentManagerPlugin,\n DocumentActionComponent,\n HeaderActionComponent,\n} from '@strapi/content-manager/strapi-admin';\n\ntype ContentTypeBuilderFormsAPI = {\n addContentTypeSchemaMutation: (mutation: typeof mutateCTBContentTypeSchema) => void;\n components: {\n add: (component: { id: string; component: typeof CheckboxConfirmation }) => void;\n };\n extendContentType: (extension: {\n validator: () => Record<string, unknown>;\n form: {\n advanced: () => Array<Record<string, unknown>>;\n };\n }) => void;\n extendFields: (\n fields: typeof LOCALIZED_FIELDS,\n extension: {\n form: {\n advanced: (args: any) => Array<Record<string, unknown>>;\n };\n }\n ) => void;\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: StrapiApp) {\n app.addMiddlewares([extendCTBAttributeInitialDataMiddleware, extendCTBInitialDataMiddleware]);\n app.addMiddlewares([() => i18nApi.middleware]);\n app.addReducers({\n [i18nApi.reducerPath]: i18nApi.reducer,\n });\n app.addRBACMiddleware([localeMiddleware]);\n app.registerPlugin({\n id: pluginId,\n name: pluginId,\n });\n },\n bootstrap(app: StrapiApp) {\n // // Hook that adds a column into the CM's LV table\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);\n app.registerHook('Admin/CM/pages/EditView/mutate-edit-view-layout', mutateEditViewHook);\n // Hooks that checks if the locale is present in the release\n app.registerHook(\n 'ContentReleases/pages/ReleaseDetails/add-locale-in-releases',\n addLocaleToReleasesHook\n );\n\n // Add the settings link\n app.addSettingsLink('global', {\n intlLabel: {\n id: getTranslation('plugin.name'),\n defaultMessage: 'Internationalization',\n },\n id: 'internationalization',\n to: 'internationalization',\n Component: () =>\n import('./pages/SettingsPage').then((mod) => ({ default: mod.ProtectedSettingsPage })),\n permissions: PERMISSIONS.accessMain,\n });\n\n const contentManager = app.getPlugin('content-manager');\n const contentManagerApis = contentManager.apis as ContentManagerPlugin['config']['apis'];\n\n contentManagerApis.addDocumentHeaderAction([\n AITranslationStatusAction,\n LocalePickerAction,\n FillFromAnotherLocaleAction,\n ] as HeaderActionComponent[]);\n contentManagerApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n const indexOfDeleteAction = actions.findIndex((action) => action.type === 'delete');\n actions.splice(indexOfDeleteAction, 0, DeleteLocaleAction);\n return actions;\n });\n\n contentManagerApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n // When enabled the bulk locale publish action should be the first action\n // in 'More Document Actions' and therefore the third action in the array\n actions.splice(2, 0, BulkLocalePublishAction);\n actions.splice(5, 0, BulkLocaleUnpublishAction);\n return actions;\n });\n\n contentManager.injectComponent('listView', 'actions', {\n name: 'i18n-locale-filter',\n Component: LocalePicker,\n });\n\n contentManager.injectComponent('listView', 'publishModalAdditionalInfos', {\n name: 'i18n-publish-bullets-in-modal',\n Component: PublishModalAdditionalInfo,\n });\n\n contentManager.injectComponent('listView', 'unpublishModalAdditionalInfos', {\n name: 'i18n-unpublish-bullets-in-modal',\n Component: UnpublishModalAdditionalInfo,\n });\n\n contentManager.injectComponent('listView', 'deleteModalAdditionalInfos', {\n name: 'i18n-delete-bullets-in-modal',\n Component: DeleteModalAdditionalInfo,\n });\n\n const ctbPlugin = app.getPlugin('content-type-builder');\n\n if (ctbPlugin) {\n const ctbFormsAPI = ctbPlugin.apis.forms as ContentTypeBuilderFormsAPI;\n ctbFormsAPI.addContentTypeSchemaMutation(mutateCTBContentTypeSchema);\n ctbFormsAPI.components.add({ id: 'checkboxConfirmation', component: CheckboxConfirmation });\n\n ctbFormsAPI.extendContentType({\n validator: () => ({\n i18n: yup.object().shape({\n localized: yup.bool(),\n }),\n }),\n form: {\n advanced() {\n return [\n {\n name: 'pluginOptions.i18n.localized',\n description: {\n id: getTranslation('plugin.schema.i18n.localized.description-content-type'),\n defaultMessage: 'Allows translating an entry into different languages',\n },\n type: 'checkboxConfirmation',\n intlLabel: {\n id: getTranslation('plugin.schema.i18n.localized.label-content-type'),\n defaultMessage: 'Localization',\n },\n },\n ];\n },\n },\n });\n\n ctbFormsAPI.extendFields(LOCALIZED_FIELDS, {\n form: {\n advanced({ contentTypeSchema, forTarget, type, step }: any) {\n if (forTarget !== 'contentType') {\n return [];\n }\n\n const hasI18nEnabled = get(\n contentTypeSchema,\n ['pluginOptions', 'i18n', 'localized'],\n false\n );\n\n if (!hasI18nEnabled) {\n return [];\n }\n\n if (type === 'component' && step === '1') {\n return [];\n }\n\n return [\n {\n name: 'pluginOptions.i18n.localized',\n description: {\n id: getTranslation('plugin.schema.i18n.localized.description-field'),\n defaultMessage: 'The field can have different values in each locale',\n },\n type: 'checkbox',\n intlLabel: {\n id: getTranslation('plugin.schema.i18n.localized.label-field'),\n defaultMessage: 'Enable localization for this field',\n },\n },\n ];\n },\n },\n });\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["register","app","addMiddlewares","extendCTBAttributeInitialDataMiddleware","extendCTBInitialDataMiddleware","i18nApi","middleware","addReducers","reducerPath","reducer","addRBACMiddleware","localeMiddleware","registerPlugin","id","pluginId","name","bootstrap","registerHook","addColumnToTableHook","mutateEditViewHook","addLocaleToReleasesHook","addSettingsLink","intlLabel","getTranslation","defaultMessage","to","Component","then","mod","default","ProtectedSettingsPage","permissions","PERMISSIONS","accessMain","contentManager","getPlugin","contentManagerApis","apis","addDocumentHeaderAction","AITranslationStatusAction","LocalePickerAction","FillFromAnotherLocaleAction","addDocumentAction","actions","indexOfDeleteAction","findIndex","action","type","splice","DeleteLocaleAction","BulkLocalePublishAction","BulkLocaleUnpublishAction","injectComponent","LocalePicker","PublishModalAdditionalInfo","UnpublishModalAdditionalInfo","DeleteModalAdditionalInfo","ctbPlugin","ctbFormsAPI","forms","addContentTypeSchemaMutation","mutateCTBContentTypeSchema","components","add","component","CheckboxConfirmation","extendContentType","validator","i18n","yup","object","shape","localized","bool","form","advanced","description","extendFields","LOCALIZED_FIELDS","contentTypeSchema","forTarget","step","hasI18nEnabled","get","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import get from 'lodash/get';\nimport * as yup from 'yup';\n\nimport { CheckboxConfirmation } from './components/CheckboxConfirmation';\nimport {\n BulkLocalePublishAction,\n BulkLocaleUnpublishAction,\n DeleteLocaleAction,\n LocalePickerAction,\n FillFromAnotherLocaleAction,\n AITranslationStatusAction,\n} from './components/CMHeaderActions';\nimport {\n DeleteModalAdditionalInfo,\n PublishModalAdditionalInfo,\n UnpublishModalAdditionalInfo,\n} from './components/CMListViewModalsAdditionalInformation';\nimport { LocalePicker } from './components/LocalePicker';\nimport { PERMISSIONS } from './constants';\nimport { mutateEditViewHook } from './contentManagerHooks/editView';\nimport { addColumnToTableHook } from './contentManagerHooks/listView';\nimport { addLocaleToReleasesHook } from './contentReleasesHooks/releaseDetailsView';\nimport { extendCTBAttributeInitialDataMiddleware } from './middlewares/extendCTBAttributeInitialData';\nimport { extendCTBInitialDataMiddleware } from './middlewares/extendCTBInitialData';\nimport { localeMiddleware } from './middlewares/rbac-middleware';\nimport { pluginId } from './pluginId';\nimport { i18nApi } from './services/api';\nimport { LOCALIZED_FIELDS } from './utils/fields';\nimport { getTranslation } from './utils/getTranslation';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\nimport { mutateCTBContentTypeSchema } from './utils/schemas';\n\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type {\n ContentManagerPlugin,\n DocumentActionComponent,\n HeaderActionComponent,\n} from '@strapi/content-manager/strapi-admin';\n\ntype ContentTypeBuilderFormsAPI = {\n addContentTypeSchemaMutation: (mutation: typeof mutateCTBContentTypeSchema) => void;\n components: {\n add: (component: { id: string; component: typeof CheckboxConfirmation }) => void;\n };\n extendContentType: (extension: {\n validator: () => Record<string, unknown>;\n form: {\n advanced: () => Array<Record<string, unknown>>;\n };\n }) => void;\n extendFields: (\n fields: typeof LOCALIZED_FIELDS,\n extension: {\n form: {\n advanced: (args: any) => Array<Record<string, unknown>>;\n };\n }\n ) => void;\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: StrapiApp) {\n app.addMiddlewares([extendCTBAttributeInitialDataMiddleware, extendCTBInitialDataMiddleware]);\n app.addMiddlewares([() => i18nApi.middleware]);\n app.addReducers({\n [i18nApi.reducerPath]: i18nApi.reducer,\n });\n app.addRBACMiddleware([localeMiddleware]);\n app.registerPlugin({\n id: pluginId,\n name: pluginId,\n });\n },\n bootstrap(app: StrapiApp) {\n // // Hook that adds a column into the CM's LV table\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);\n app.registerHook('Admin/CM/pages/EditView/mutate-edit-view-layout', mutateEditViewHook);\n // Hooks that checks if the locale is present in the release\n app.registerHook(\n 'ContentReleases/pages/ReleaseDetails/add-locale-in-releases',\n addLocaleToReleasesHook\n );\n\n // Add the settings link\n app.addSettingsLink('global', {\n intlLabel: {\n id: getTranslation('plugin.name'),\n defaultMessage: 'Internationalization',\n },\n id: 'internationalization',\n to: 'internationalization',\n Component: () =>\n import('./pages/SettingsPage').then((mod) => ({ default: mod.ProtectedSettingsPage })),\n permissions: PERMISSIONS.accessMain,\n });\n\n const contentManager = app.getPlugin('content-manager');\n const contentManagerApis = contentManager.apis as ContentManagerPlugin['config']['apis'];\n\n contentManagerApis.addDocumentHeaderAction([\n AITranslationStatusAction,\n LocalePickerAction,\n FillFromAnotherLocaleAction,\n ] as HeaderActionComponent[]);\n contentManagerApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n const indexOfDeleteAction = actions.findIndex((action) => action.type === 'delete');\n actions.splice(indexOfDeleteAction, 0, DeleteLocaleAction);\n return actions;\n });\n\n contentManagerApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n // When enabled the bulk locale publish action should be the first action\n // in 'More Document Actions' and therefore the third action in the array\n actions.splice(2, 0, BulkLocalePublishAction);\n actions.splice(5, 0, BulkLocaleUnpublishAction);\n return actions;\n });\n\n contentManager.injectComponent('listView', 'actions', {\n name: 'i18n-locale-filter',\n Component: LocalePicker,\n });\n\n contentManager.injectComponent('listView', 'publishModalAdditionalInfos', {\n name: 'i18n-publish-bullets-in-modal',\n Component: PublishModalAdditionalInfo,\n });\n\n contentManager.injectComponent('listView', 'unpublishModalAdditionalInfos', {\n name: 'i18n-unpublish-bullets-in-modal',\n Component: UnpublishModalAdditionalInfo,\n });\n\n contentManager.injectComponent('listView', 'deleteModalAdditionalInfos', {\n name: 'i18n-delete-bullets-in-modal',\n Component: DeleteModalAdditionalInfo,\n });\n\n const ctbPlugin = app.getPlugin('content-type-builder');\n\n if (ctbPlugin) {\n const ctbFormsAPI = ctbPlugin.apis.forms as ContentTypeBuilderFormsAPI;\n ctbFormsAPI.addContentTypeSchemaMutation(mutateCTBContentTypeSchema);\n ctbFormsAPI.components.add({ id: 'checkboxConfirmation', component: CheckboxConfirmation });\n\n ctbFormsAPI.extendContentType({\n validator: () => ({\n i18n: yup.object().shape({\n localized: yup.bool(),\n }),\n }),\n form: {\n advanced() {\n return [\n {\n name: 'pluginOptions.i18n.localized',\n description: {\n id: getTranslation('plugin.schema.i18n.localized.description-content-type'),\n defaultMessage: 'Allows translating an entry into different languages',\n },\n type: 'checkboxConfirmation',\n intlLabel: {\n id: getTranslation('plugin.schema.i18n.localized.label-content-type'),\n defaultMessage: 'Localization',\n },\n },\n ];\n },\n },\n });\n\n ctbFormsAPI.extendFields(LOCALIZED_FIELDS, {\n form: {\n advanced({ contentTypeSchema, forTarget, type, step }: any) {\n if (forTarget !== 'contentType') {\n return [];\n }\n\n const hasI18nEnabled = get(\n contentTypeSchema,\n ['pluginOptions', 'i18n', 'localized'],\n false\n );\n\n if (!hasI18nEnabled) {\n return [];\n }\n\n if (type === 'component' && step === '1') {\n return [];\n }\n\n return [\n {\n name: 'pluginOptions.i18n.localized',\n description: {\n id: getTranslation('plugin.schema.i18n.localized.description-field'),\n defaultMessage: 'The field can have different values in each locale',\n },\n type: 'checkbox',\n intlLabel: {\n id: getTranslation('plugin.schema.i18n.localized.label-field'),\n defaultMessage: 'Enable localization for this field',\n },\n },\n ];\n },\n },\n });\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["register","app","addMiddlewares","extendCTBAttributeInitialDataMiddleware","extendCTBInitialDataMiddleware","i18nApi","middleware","addReducers","reducerPath","reducer","addRBACMiddleware","localeMiddleware","registerPlugin","id","pluginId","name","bootstrap","registerHook","addColumnToTableHook","mutateEditViewHook","addLocaleToReleasesHook","addSettingsLink","intlLabel","getTranslation","defaultMessage","to","Component","then","mod","default","ProtectedSettingsPage","permissions","PERMISSIONS","accessMain","contentManager","getPlugin","contentManagerApis","apis","addDocumentHeaderAction","AITranslationStatusAction","LocalePickerAction","FillFromAnotherLocaleAction","addDocumentAction","actions","indexOfDeleteAction","findIndex","action","type","splice","DeleteLocaleAction","BulkLocalePublishAction","BulkLocaleUnpublishAction","injectComponent","LocalePicker","PublishModalAdditionalInfo","UnpublishModalAdditionalInfo","DeleteModalAdditionalInfo","ctbPlugin","ctbFormsAPI","forms","addContentTypeSchemaMutation","mutateCTBContentTypeSchema","components","add","component","CheckboxConfirmation","extendContentType","validator","i18n","yup","object","shape","localized","bool","form","advanced","description","extendFields","LOCALIZED_FIELDS","contentTypeSchema","forTarget","step","hasI18nEnabled","get","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
@@ -26,6 +26,7 @@ function __variableDynamicImportRuntime1__(path) {
26
26
  case './translations/en.json': return import('./translations/en.json.mjs');
27
27
  case './translations/es.json': return import('./translations/es.json.mjs');
28
28
  case './translations/fr.json': return import('./translations/fr.json.mjs');
29
+ case './translations/ja.json': return import('./translations/ja.json.mjs');
29
30
  case './translations/ko.json': return import('./translations/ko.json.mjs');
30
31
  case './translations/nl.json': return import('./translations/nl.json.mjs');
31
32
  case './translations/pl.json': return import('./translations/pl.json.mjs');
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import get from 'lodash/get';\nimport * as yup from 'yup';\n\nimport { CheckboxConfirmation } from './components/CheckboxConfirmation';\nimport {\n BulkLocalePublishAction,\n BulkLocaleUnpublishAction,\n DeleteLocaleAction,\n LocalePickerAction,\n FillFromAnotherLocaleAction,\n AITranslationStatusAction,\n} from './components/CMHeaderActions';\nimport {\n DeleteModalAdditionalInfo,\n PublishModalAdditionalInfo,\n UnpublishModalAdditionalInfo,\n} from './components/CMListViewModalsAdditionalInformation';\nimport { LocalePicker } from './components/LocalePicker';\nimport { PERMISSIONS } from './constants';\nimport { mutateEditViewHook } from './contentManagerHooks/editView';\nimport { addColumnToTableHook } from './contentManagerHooks/listView';\nimport { addLocaleToReleasesHook } from './contentReleasesHooks/releaseDetailsView';\nimport { extendCTBAttributeInitialDataMiddleware } from './middlewares/extendCTBAttributeInitialData';\nimport { extendCTBInitialDataMiddleware } from './middlewares/extendCTBInitialData';\nimport { localeMiddleware } from './middlewares/rbac-middleware';\nimport { pluginId } from './pluginId';\nimport { i18nApi } from './services/api';\nimport { LOCALIZED_FIELDS } from './utils/fields';\nimport { getTranslation } from './utils/getTranslation';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\nimport { mutateCTBContentTypeSchema } from './utils/schemas';\n\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type {\n ContentManagerPlugin,\n DocumentActionComponent,\n HeaderActionComponent,\n} from '@strapi/content-manager/strapi-admin';\n\ntype ContentTypeBuilderFormsAPI = {\n addContentTypeSchemaMutation: (mutation: typeof mutateCTBContentTypeSchema) => void;\n components: {\n add: (component: { id: string; component: typeof CheckboxConfirmation }) => void;\n };\n extendContentType: (extension: {\n validator: () => Record<string, unknown>;\n form: {\n advanced: () => Array<Record<string, unknown>>;\n };\n }) => void;\n extendFields: (\n fields: typeof LOCALIZED_FIELDS,\n extension: {\n form: {\n advanced: (args: any) => Array<Record<string, unknown>>;\n };\n }\n ) => void;\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: StrapiApp) {\n app.addMiddlewares([extendCTBAttributeInitialDataMiddleware, extendCTBInitialDataMiddleware]);\n app.addMiddlewares([() => i18nApi.middleware]);\n app.addReducers({\n [i18nApi.reducerPath]: i18nApi.reducer,\n });\n app.addRBACMiddleware([localeMiddleware]);\n app.registerPlugin({\n id: pluginId,\n name: pluginId,\n });\n },\n bootstrap(app: StrapiApp) {\n // // Hook that adds a column into the CM's LV table\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);\n app.registerHook('Admin/CM/pages/EditView/mutate-edit-view-layout', mutateEditViewHook);\n // Hooks that checks if the locale is present in the release\n app.registerHook(\n 'ContentReleases/pages/ReleaseDetails/add-locale-in-releases',\n addLocaleToReleasesHook\n );\n\n // Add the settings link\n app.addSettingsLink('global', {\n intlLabel: {\n id: getTranslation('plugin.name'),\n defaultMessage: 'Internationalization',\n },\n id: 'internationalization',\n to: 'internationalization',\n Component: () =>\n import('./pages/SettingsPage').then((mod) => ({ default: mod.ProtectedSettingsPage })),\n permissions: PERMISSIONS.accessMain,\n });\n\n const contentManager = app.getPlugin('content-manager');\n const contentManagerApis = contentManager.apis as ContentManagerPlugin['config']['apis'];\n\n contentManagerApis.addDocumentHeaderAction([\n AITranslationStatusAction,\n LocalePickerAction,\n FillFromAnotherLocaleAction,\n ] as HeaderActionComponent[]);\n contentManagerApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n const indexOfDeleteAction = actions.findIndex((action) => action.type === 'delete');\n actions.splice(indexOfDeleteAction, 0, DeleteLocaleAction);\n return actions;\n });\n\n contentManagerApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n // When enabled the bulk locale publish action should be the first action\n // in 'More Document Actions' and therefore the third action in the array\n actions.splice(2, 0, BulkLocalePublishAction);\n actions.splice(5, 0, BulkLocaleUnpublishAction);\n return actions;\n });\n\n contentManager.injectComponent('listView', 'actions', {\n name: 'i18n-locale-filter',\n Component: LocalePicker,\n });\n\n contentManager.injectComponent('listView', 'publishModalAdditionalInfos', {\n name: 'i18n-publish-bullets-in-modal',\n Component: PublishModalAdditionalInfo,\n });\n\n contentManager.injectComponent('listView', 'unpublishModalAdditionalInfos', {\n name: 'i18n-unpublish-bullets-in-modal',\n Component: UnpublishModalAdditionalInfo,\n });\n\n contentManager.injectComponent('listView', 'deleteModalAdditionalInfos', {\n name: 'i18n-delete-bullets-in-modal',\n Component: DeleteModalAdditionalInfo,\n });\n\n const ctbPlugin = app.getPlugin('content-type-builder');\n\n if (ctbPlugin) {\n const ctbFormsAPI = ctbPlugin.apis.forms as ContentTypeBuilderFormsAPI;\n ctbFormsAPI.addContentTypeSchemaMutation(mutateCTBContentTypeSchema);\n ctbFormsAPI.components.add({ id: 'checkboxConfirmation', component: CheckboxConfirmation });\n\n ctbFormsAPI.extendContentType({\n validator: () => ({\n i18n: yup.object().shape({\n localized: yup.bool(),\n }),\n }),\n form: {\n advanced() {\n return [\n {\n name: 'pluginOptions.i18n.localized',\n description: {\n id: getTranslation('plugin.schema.i18n.localized.description-content-type'),\n defaultMessage: 'Allows translating an entry into different languages',\n },\n type: 'checkboxConfirmation',\n intlLabel: {\n id: getTranslation('plugin.schema.i18n.localized.label-content-type'),\n defaultMessage: 'Localization',\n },\n },\n ];\n },\n },\n });\n\n ctbFormsAPI.extendFields(LOCALIZED_FIELDS, {\n form: {\n advanced({ contentTypeSchema, forTarget, type, step }: any) {\n if (forTarget !== 'contentType') {\n return [];\n }\n\n const hasI18nEnabled = get(\n contentTypeSchema,\n ['pluginOptions', 'i18n', 'localized'],\n false\n );\n\n if (!hasI18nEnabled) {\n return [];\n }\n\n if (type === 'component' && step === '1') {\n return [];\n }\n\n return [\n {\n name: 'pluginOptions.i18n.localized',\n description: {\n id: getTranslation('plugin.schema.i18n.localized.description-field'),\n defaultMessage: 'The field can have different values in each locale',\n },\n type: 'checkbox',\n intlLabel: {\n id: getTranslation('plugin.schema.i18n.localized.label-field'),\n defaultMessage: 'Enable localization for this field',\n },\n },\n ];\n },\n },\n });\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["register","app","addMiddlewares","extendCTBAttributeInitialDataMiddleware","extendCTBInitialDataMiddleware","i18nApi","middleware","addReducers","reducerPath","reducer","addRBACMiddleware","localeMiddleware","registerPlugin","id","pluginId","name","bootstrap","registerHook","addColumnToTableHook","mutateEditViewHook","addLocaleToReleasesHook","addSettingsLink","intlLabel","getTranslation","defaultMessage","to","Component","then","mod","default","ProtectedSettingsPage","permissions","PERMISSIONS","accessMain","contentManager","getPlugin","contentManagerApis","apis","addDocumentHeaderAction","AITranslationStatusAction","LocalePickerAction","FillFromAnotherLocaleAction","addDocumentAction","actions","indexOfDeleteAction","findIndex","action","type","splice","DeleteLocaleAction","BulkLocalePublishAction","BulkLocaleUnpublishAction","injectComponent","LocalePicker","PublishModalAdditionalInfo","UnpublishModalAdditionalInfo","DeleteModalAdditionalInfo","ctbPlugin","ctbFormsAPI","forms","addContentTypeSchemaMutation","mutateCTBContentTypeSchema","components","add","component","CheckboxConfirmation","extendContentType","validator","i18n","yup","object","shape","localized","bool","form","advanced","description","extendFields","LOCALIZED_FIELDS","contentTypeSchema","forTarget","step","hasI18nEnabled","get","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA;AACA,YAAe;AACbA,IAAAA,QAAAA,CAAAA,CAASC,GAAc,EAAA;AACrBA,QAAAA,GAAAA,CAAIC,cAAc,CAAC;AAACC,YAAAA,uCAAAA;AAAyCC,YAAAA;AAA+B,SAAA,CAAA;AAC5FH,QAAAA,GAAAA,CAAIC,cAAc,CAAC;AAAC,YAAA,IAAMG,QAAQC;AAAW,SAAA,CAAA;AAC7CL,QAAAA,GAAAA,CAAIM,WAAW,CAAC;AACd,YAAA,CAACF,OAAAA,CAAQG,WAAW,GAAGH,QAAQI;AACjC,SAAA,CAAA;AACAR,QAAAA,GAAAA,CAAIS,iBAAiB,CAAC;AAACC,YAAAA;AAAiB,SAAA,CAAA;AACxCV,QAAAA,GAAAA,CAAIW,cAAc,CAAC;YACjBC,EAAAA,EAAIC,QAAAA;YACJC,IAAAA,EAAMD;AACR,SAAA,CAAA;AACF,IAAA,CAAA;AACAE,IAAAA,SAAAA,CAAAA,CAAUf,GAAc,EAAA;;QAEtBA,GAAAA,CAAIgB,YAAY,CAAC,gDAAA,EAAkDC,oBAAAA,CAAAA;QACnEjB,GAAAA,CAAIgB,YAAY,CAAC,iDAAA,EAAmDE,kBAAAA,CAAAA;;QAEpElB,GAAAA,CAAIgB,YAAY,CACd,6DAAA,EACAG,uBAAAA,CAAAA;;QAIFnB,GAAAA,CAAIoB,eAAe,CAAC,QAAA,EAAU;YAC5BC,SAAAA,EAAW;AACTT,gBAAAA,EAAAA,EAAIU,cAAAA,CAAe,aAAA,CAAA;gBACnBC,cAAAA,EAAgB;AAClB,aAAA;YACAX,EAAAA,EAAI,sBAAA;YACJY,EAAAA,EAAI,sBAAA;YACJC,SAAAA,EAAW,IACT,OAAO,0BAAA,CAAA,CAAwBC,IAAI,CAAC,CAACC,OAAS;AAAEC,wBAAAA,OAAAA,EAASD,IAAIE;qBAAsB,CAAA,CAAA;AACrFC,YAAAA,WAAAA,EAAaC,YAAYC;AAC3B,SAAA,CAAA;QAEA,MAAMC,cAAAA,GAAiBjC,GAAAA,CAAIkC,SAAS,CAAC,iBAAA,CAAA;QACrC,MAAMC,kBAAAA,GAAqBF,eAAeG,IAAI;AAE9CD,QAAAA,kBAAAA,CAAmBE,uBAAuB,CAAC;AACzCC,YAAAA,yBAAAA;AACAC,YAAAA,kBAAAA;AACAC,YAAAA;AACD,SAAA,CAAA;QACDL,kBAAAA,CAAmBM,iBAAiB,CAAC,CAACC,OAAAA,GAAAA;YACpC,MAAMC,mBAAAA,GAAsBD,QAAQE,SAAS,CAAC,CAACC,MAAAA,GAAWA,MAAAA,CAAOC,IAAI,KAAK,QAAA,CAAA;YAC1EJ,OAAAA,CAAQK,MAAM,CAACJ,mBAAAA,EAAqB,CAAA,EAAGK,kBAAAA,CAAAA;YACvC,OAAON,OAAAA;AACT,QAAA,CAAA,CAAA;QAEAP,kBAAAA,CAAmBM,iBAAiB,CAAC,CAACC,OAAAA,GAAAA;;;YAGpCA,OAAAA,CAAQK,MAAM,CAAC,CAAA,EAAG,CAAA,EAAGE,uBAAAA,CAAAA;YACrBP,OAAAA,CAAQK,MAAM,CAAC,CAAA,EAAG,CAAA,EAAGG,yBAAAA,CAAAA;YACrB,OAAOR,OAAAA;AACT,QAAA,CAAA,CAAA;QAEAT,cAAAA,CAAekB,eAAe,CAAC,UAAA,EAAY,SAAA,EAAW;YACpDrC,IAAAA,EAAM,oBAAA;YACNW,SAAAA,EAAW2B;AACb,SAAA,CAAA;QAEAnB,cAAAA,CAAekB,eAAe,CAAC,UAAA,EAAY,6BAAA,EAA+B;YACxErC,IAAAA,EAAM,+BAAA;YACNW,SAAAA,EAAW4B;AACb,SAAA,CAAA;QAEApB,cAAAA,CAAekB,eAAe,CAAC,UAAA,EAAY,+BAAA,EAAiC;YAC1ErC,IAAAA,EAAM,iCAAA;YACNW,SAAAA,EAAW6B;AACb,SAAA,CAAA;QAEArB,cAAAA,CAAekB,eAAe,CAAC,UAAA,EAAY,4BAAA,EAA8B;YACvErC,IAAAA,EAAM,8BAAA;YACNW,SAAAA,EAAW8B;AACb,SAAA,CAAA;QAEA,MAAMC,SAAAA,GAAYxD,GAAAA,CAAIkC,SAAS,CAAC,sBAAA,CAAA;AAEhC,QAAA,IAAIsB,SAAAA,EAAW;AACb,YAAA,MAAMC,WAAAA,GAAcD,SAAAA,CAAUpB,IAAI,CAACsB,KAAK;AACxCD,YAAAA,WAAAA,CAAYE,4BAA4B,CAACC,0BAAAA,CAAAA;YACzCH,WAAAA,CAAYI,UAAU,CAACC,GAAG,CAAC;gBAAElD,EAAAA,EAAI,sBAAA;gBAAwBmD,SAAAA,EAAWC;AAAqB,aAAA,CAAA;AAEzFP,YAAAA,WAAAA,CAAYQ,iBAAiB,CAAC;AAC5BC,gBAAAA,SAAAA,EAAW,KAAO;AAChBC,wBAAAA,IAAAA,EAAMC,GAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AACvBC,4BAAAA,SAAAA,EAAWH,IAAII,IAAI;AACrB,yBAAA;qBACF,CAAA;gBACAC,IAAAA,EAAM;AACJC,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO;AACL,4BAAA;gCACE5D,IAAAA,EAAM,8BAAA;gCACN6D,WAAAA,EAAa;AACX/D,oCAAAA,EAAAA,EAAIU,cAAAA,CAAe,uDAAA,CAAA;oCACnBC,cAAAA,EAAgB;AAClB,iCAAA;gCACAuB,IAAAA,EAAM,sBAAA;gCACNzB,SAAAA,EAAW;AACTT,oCAAAA,EAAAA,EAAIU,cAAAA,CAAe,iDAAA,CAAA;oCACnBC,cAAAA,EAAgB;AAClB;AACF;AACD,yBAAA;AACH,oBAAA;AACF;AACF,aAAA,CAAA;YAEAkC,WAAAA,CAAYmB,YAAY,CAACC,gBAAAA,EAAkB;gBACzCJ,IAAAA,EAAM;oBACJC,QAAAA,CAAAA,CAAS,EAAEI,iBAAiB,EAAEC,SAAS,EAAEjC,IAAI,EAAEkC,IAAI,EAAO,EAAA;AACxD,wBAAA,IAAID,cAAc,aAAA,EAAe;AAC/B,4BAAA,OAAO,EAAE;AACX,wBAAA;wBAEA,MAAME,cAAAA,GAAiBC,IACrBJ,iBAAAA,EACA;AAAC,4BAAA,eAAA;AAAiB,4BAAA,MAAA;AAAQ,4BAAA;yBAAY,EACtC,KAAA,CAAA;AAGF,wBAAA,IAAI,CAACG,cAAAA,EAAgB;AACnB,4BAAA,OAAO,EAAE;AACX,wBAAA;wBAEA,IAAInC,IAAAA,KAAS,WAAA,IAAekC,IAAAA,KAAS,GAAA,EAAK;AACxC,4BAAA,OAAO,EAAE;AACX,wBAAA;wBAEA,OAAO;AACL,4BAAA;gCACElE,IAAAA,EAAM,8BAAA;gCACN6D,WAAAA,EAAa;AACX/D,oCAAAA,EAAAA,EAAIU,cAAAA,CAAe,gDAAA,CAAA;oCACnBC,cAAAA,EAAgB;AAClB,iCAAA;gCACAuB,IAAAA,EAAM,UAAA;gCACNzB,SAAAA,EAAW;AACTT,oCAAAA,EAAAA,EAAIU,cAAAA,CAAe,0CAAA,CAAA;oCACnBC,cAAAA,EAAgB;AAClB;AACF;AACD,yBAAA;AACH,oBAAA;AACF;AACF,aAAA,CAAA;AACF,QAAA;AACF,IAAA,CAAA;IACA,MAAM4D,aAAAA,CAAAA,CAAc,EAAEC,OAAO,EAAyB,EAAA;QACpD,MAAMC,aAAAA,GAAgB,MAAMC,OAAAA,CAAQC,GAAG,CACrCH,OAAAA,CAAQI,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,YAAA,OAAO,iCAAM,CAAC,CAAC,eAAe,EAAEA,MAAAA,CAAO,KAAK,CAAC,CAAA,CAC1C/D,IAAI,CAAC,CAAC,EAAEE,OAAAA,EAAS8D,IAAI,EAAE,GAAA;gBACtB,OAAO;AACLA,oBAAAA,IAAAA,EAAMC,yBAAyBD,IAAAA,EAAM7E,QAAAA,CAAAA;AACrC4E,oBAAAA;AACF,iBAAA;AACF,YAAA,CAAA,CAAA,CACCG,KAAK,CAAC,IAAA;gBACL,OAAO;AACLF,oBAAAA,IAAAA,EAAM,EAAC;AACPD,oBAAAA;AACF,iBAAA;AACF,YAAA,CAAA,CAAA;AACJ,QAAA,CAAA,CAAA,CAAA;QAGF,OAAOH,OAAAA,CAAQO,OAAO,CAACR,aAAAA,CAAAA;AACzB,IAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import get from 'lodash/get';\nimport * as yup from 'yup';\n\nimport { CheckboxConfirmation } from './components/CheckboxConfirmation';\nimport {\n BulkLocalePublishAction,\n BulkLocaleUnpublishAction,\n DeleteLocaleAction,\n LocalePickerAction,\n FillFromAnotherLocaleAction,\n AITranslationStatusAction,\n} from './components/CMHeaderActions';\nimport {\n DeleteModalAdditionalInfo,\n PublishModalAdditionalInfo,\n UnpublishModalAdditionalInfo,\n} from './components/CMListViewModalsAdditionalInformation';\nimport { LocalePicker } from './components/LocalePicker';\nimport { PERMISSIONS } from './constants';\nimport { mutateEditViewHook } from './contentManagerHooks/editView';\nimport { addColumnToTableHook } from './contentManagerHooks/listView';\nimport { addLocaleToReleasesHook } from './contentReleasesHooks/releaseDetailsView';\nimport { extendCTBAttributeInitialDataMiddleware } from './middlewares/extendCTBAttributeInitialData';\nimport { extendCTBInitialDataMiddleware } from './middlewares/extendCTBInitialData';\nimport { localeMiddleware } from './middlewares/rbac-middleware';\nimport { pluginId } from './pluginId';\nimport { i18nApi } from './services/api';\nimport { LOCALIZED_FIELDS } from './utils/fields';\nimport { getTranslation } from './utils/getTranslation';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\nimport { mutateCTBContentTypeSchema } from './utils/schemas';\n\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type {\n ContentManagerPlugin,\n DocumentActionComponent,\n HeaderActionComponent,\n} from '@strapi/content-manager/strapi-admin';\n\ntype ContentTypeBuilderFormsAPI = {\n addContentTypeSchemaMutation: (mutation: typeof mutateCTBContentTypeSchema) => void;\n components: {\n add: (component: { id: string; component: typeof CheckboxConfirmation }) => void;\n };\n extendContentType: (extension: {\n validator: () => Record<string, unknown>;\n form: {\n advanced: () => Array<Record<string, unknown>>;\n };\n }) => void;\n extendFields: (\n fields: typeof LOCALIZED_FIELDS,\n extension: {\n form: {\n advanced: (args: any) => Array<Record<string, unknown>>;\n };\n }\n ) => void;\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: StrapiApp) {\n app.addMiddlewares([extendCTBAttributeInitialDataMiddleware, extendCTBInitialDataMiddleware]);\n app.addMiddlewares([() => i18nApi.middleware]);\n app.addReducers({\n [i18nApi.reducerPath]: i18nApi.reducer,\n });\n app.addRBACMiddleware([localeMiddleware]);\n app.registerPlugin({\n id: pluginId,\n name: pluginId,\n });\n },\n bootstrap(app: StrapiApp) {\n // // Hook that adds a column into the CM's LV table\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);\n app.registerHook('Admin/CM/pages/EditView/mutate-edit-view-layout', mutateEditViewHook);\n // Hooks that checks if the locale is present in the release\n app.registerHook(\n 'ContentReleases/pages/ReleaseDetails/add-locale-in-releases',\n addLocaleToReleasesHook\n );\n\n // Add the settings link\n app.addSettingsLink('global', {\n intlLabel: {\n id: getTranslation('plugin.name'),\n defaultMessage: 'Internationalization',\n },\n id: 'internationalization',\n to: 'internationalization',\n Component: () =>\n import('./pages/SettingsPage').then((mod) => ({ default: mod.ProtectedSettingsPage })),\n permissions: PERMISSIONS.accessMain,\n });\n\n const contentManager = app.getPlugin('content-manager');\n const contentManagerApis = contentManager.apis as ContentManagerPlugin['config']['apis'];\n\n contentManagerApis.addDocumentHeaderAction([\n AITranslationStatusAction,\n LocalePickerAction,\n FillFromAnotherLocaleAction,\n ] as HeaderActionComponent[]);\n contentManagerApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n const indexOfDeleteAction = actions.findIndex((action) => action.type === 'delete');\n actions.splice(indexOfDeleteAction, 0, DeleteLocaleAction);\n return actions;\n });\n\n contentManagerApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n // When enabled the bulk locale publish action should be the first action\n // in 'More Document Actions' and therefore the third action in the array\n actions.splice(2, 0, BulkLocalePublishAction);\n actions.splice(5, 0, BulkLocaleUnpublishAction);\n return actions;\n });\n\n contentManager.injectComponent('listView', 'actions', {\n name: 'i18n-locale-filter',\n Component: LocalePicker,\n });\n\n contentManager.injectComponent('listView', 'publishModalAdditionalInfos', {\n name: 'i18n-publish-bullets-in-modal',\n Component: PublishModalAdditionalInfo,\n });\n\n contentManager.injectComponent('listView', 'unpublishModalAdditionalInfos', {\n name: 'i18n-unpublish-bullets-in-modal',\n Component: UnpublishModalAdditionalInfo,\n });\n\n contentManager.injectComponent('listView', 'deleteModalAdditionalInfos', {\n name: 'i18n-delete-bullets-in-modal',\n Component: DeleteModalAdditionalInfo,\n });\n\n const ctbPlugin = app.getPlugin('content-type-builder');\n\n if (ctbPlugin) {\n const ctbFormsAPI = ctbPlugin.apis.forms as ContentTypeBuilderFormsAPI;\n ctbFormsAPI.addContentTypeSchemaMutation(mutateCTBContentTypeSchema);\n ctbFormsAPI.components.add({ id: 'checkboxConfirmation', component: CheckboxConfirmation });\n\n ctbFormsAPI.extendContentType({\n validator: () => ({\n i18n: yup.object().shape({\n localized: yup.bool(),\n }),\n }),\n form: {\n advanced() {\n return [\n {\n name: 'pluginOptions.i18n.localized',\n description: {\n id: getTranslation('plugin.schema.i18n.localized.description-content-type'),\n defaultMessage: 'Allows translating an entry into different languages',\n },\n type: 'checkboxConfirmation',\n intlLabel: {\n id: getTranslation('plugin.schema.i18n.localized.label-content-type'),\n defaultMessage: 'Localization',\n },\n },\n ];\n },\n },\n });\n\n ctbFormsAPI.extendFields(LOCALIZED_FIELDS, {\n form: {\n advanced({ contentTypeSchema, forTarget, type, step }: any) {\n if (forTarget !== 'contentType') {\n return [];\n }\n\n const hasI18nEnabled = get(\n contentTypeSchema,\n ['pluginOptions', 'i18n', 'localized'],\n false\n );\n\n if (!hasI18nEnabled) {\n return [];\n }\n\n if (type === 'component' && step === '1') {\n return [];\n }\n\n return [\n {\n name: 'pluginOptions.i18n.localized',\n description: {\n id: getTranslation('plugin.schema.i18n.localized.description-field'),\n defaultMessage: 'The field can have different values in each locale',\n },\n type: 'checkbox',\n intlLabel: {\n id: getTranslation('plugin.schema.i18n.localized.label-field'),\n defaultMessage: 'Enable localization for this field',\n },\n },\n ];\n },\n },\n });\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["register","app","addMiddlewares","extendCTBAttributeInitialDataMiddleware","extendCTBInitialDataMiddleware","i18nApi","middleware","addReducers","reducerPath","reducer","addRBACMiddleware","localeMiddleware","registerPlugin","id","pluginId","name","bootstrap","registerHook","addColumnToTableHook","mutateEditViewHook","addLocaleToReleasesHook","addSettingsLink","intlLabel","getTranslation","defaultMessage","to","Component","then","mod","default","ProtectedSettingsPage","permissions","PERMISSIONS","accessMain","contentManager","getPlugin","contentManagerApis","apis","addDocumentHeaderAction","AITranslationStatusAction","LocalePickerAction","FillFromAnotherLocaleAction","addDocumentAction","actions","indexOfDeleteAction","findIndex","action","type","splice","DeleteLocaleAction","BulkLocalePublishAction","BulkLocaleUnpublishAction","injectComponent","LocalePicker","PublishModalAdditionalInfo","UnpublishModalAdditionalInfo","DeleteModalAdditionalInfo","ctbPlugin","ctbFormsAPI","forms","addContentTypeSchemaMutation","mutateCTBContentTypeSchema","components","add","component","CheckboxConfirmation","extendContentType","validator","i18n","yup","object","shape","localized","bool","form","advanced","description","extendFields","LOCALIZED_FIELDS","contentTypeSchema","forTarget","step","hasI18nEnabled","get","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
@@ -18,7 +18,7 @@ interface AddLocaleToReleasesHookArgs {
18
18
  declare const addLocaleToReleasesHook: ({ displayedHeaders }: AddLocaleToReleasesHookArgs) => {
19
19
  displayedHeaders: ({
20
20
  key: string;
21
- fieldSchema: Schema.Attribute.Kind | 'custom';
21
+ fieldSchema: Schema.Attribute.Kind | "custom";
22
22
  metadatas: {
23
23
  label: {
24
24
  id: string;
@@ -1,6 +1,6 @@
1
1
  declare const useGetManyDraftRelationCountQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<{
2
- documentIds?: string[] | undefined;
3
- locale?: string | string[] | null | undefined;
2
+ documentIds?: import("@strapi/types/dist/modules/documents").ID[];
3
+ locale?: string | string[] | null;
4
4
  } & {
5
5
  model: string;
6
6
  }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "Locale" | "KeyStatistics" | "Settings" | "AILocalizationJobs", number, "adminApi">>;
@@ -1,5 +1,5 @@
1
1
  import type { UpdateSettings } from '../../../shared/contracts/settings';
2
2
  declare const useGetSettingsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "Locale" | "KeyStatistics" | "Settings" | "AILocalizationJobs", import("../../../shared/contracts/settings").Settings, "adminApi">>, useUpdatei18nSettingsMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<{
3
- aiLocalizations?: boolean | undefined;
3
+ aiLocalizations?: boolean;
4
4
  }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "Locale" | "KeyStatistics" | "Settings" | "AILocalizationJobs", UpdateSettings.Response, "adminApi">>;
5
5
  export { useGetSettingsQuery, useUpdatei18nSettingsMutation };
@@ -1,16 +1,16 @@
1
1
  import type { Schema } from '@strapi/types';
2
2
  declare const mutateCTBContentTypeSchema: (nextSchema: {
3
- pluginOptions: Schema.ContentType['pluginOptions'];
3
+ pluginOptions: Schema.ContentType["pluginOptions"];
4
4
  attributes: Schema.Attribute.AnyAttribute[];
5
5
  uid?: string;
6
6
  }, prevSchema?: {
7
- pluginOptions: Schema.ContentType['pluginOptions'];
7
+ pluginOptions: Schema.ContentType["pluginOptions"];
8
8
  attributes: Schema.Attribute.AnyAttribute[];
9
9
  uid?: string;
10
10
  }) => {
11
- pluginOptions: Schema.ContentType['pluginOptions'];
11
+ pluginOptions: Schema.ContentType["pluginOptions"];
12
12
  attributes: Schema.Attribute.AnyAttribute[];
13
- uid?: string | undefined;
13
+ uid?: string;
14
14
  } | {
15
15
  pluginOptions: Pick<{
16
16
  i18n: {
@@ -636,7 +636,7 @@ declare const mutateCTBContentTypeSchema: (nextSchema: {
636
636
  column?: Partial<Schema.Attribute.Column> | undefined;
637
637
  targetField?: string | undefined;
638
638
  options?: Schema.Attribute.UIDOptions | undefined;
639
- regex?: string | undefined;
639
+ regex?: RegExp["source"] | undefined;
640
640
  configurable?: boolean | undefined;
641
641
  default?: string | (() => string) | undefined;
642
642
  minLength?: number | undefined;
@@ -646,6 +646,6 @@ declare const mutateCTBContentTypeSchema: (nextSchema: {
646
646
  writable?: boolean | undefined;
647
647
  visible?: boolean | undefined;
648
648
  }, "type" | "required" | "column" | "visible" | "pluginOptions" | "conditions" | "writable" | "configurable" | "searchable">[];
649
- uid?: string | undefined;
649
+ uid?: string;
650
650
  };
651
651
  export { mutateCTBContentTypeSchema };
@@ -0,0 +1,92 @@
1
+ 'use strict';
2
+
3
+ var ja = {
4
+ "actions.delete.dialog.body": "このロケールを削除してもよろしいですか?",
5
+ "actions.delete.dialog.title": "確認",
6
+ "actions.delete.error": "ドキュメントロケールの削除中にエラーが発生しました。",
7
+ "actions.delete.label": "エントリーを削除({locale})",
8
+ "actions.select-locale": "ロケールを選択",
9
+ "CheckboxConfirmation.Modal.body": "無効にしますか?",
10
+ "CheckboxConfirmation.Modal.button-confirm": "はい、無効にする",
11
+ "CheckboxConfirmation.Modal.content": "ローカライゼーションを無効にすると、デフォルトロケールに関連付けられたコンテンツ(存在する場合)を除くすべてのコンテンツが削除されます。",
12
+ "CMEditViewAITranslation.job-completed": "AI翻訳が完了しました!",
13
+ "CMEditViewAITranslation.job-failed": "AI翻訳に失敗しました。もう一度お試しください。",
14
+ "CMEditViewAITranslation.settings-link": "{enabled, select, true {設定で無効にする} false {設定で有効にする} other {設定で有効にする}}",
15
+ "CMEditViewAITranslation.status-aria-label": "AI翻訳ステータス",
16
+ "CMEditViewAITranslation.status-description": "デフォルトロケールで変更を保存するたびに、AIがすべてのロケールのコンテンツを翻訳します。",
17
+ "CMEditViewAITranslation.status-title": "{enabled, select, true {AI翻訳有効} false {AI翻訳無効} other {AI翻訳無効}}",
18
+ "CMEditViewBulkLocale.continue-confirmation": "続行してもよろしいですか?",
19
+ "CMEditViewBulkLocale.draft-relation-warning": "一部のロケールは下書きエントリーに関連付けられています。公開するとアプリ内にリンク切れが発生する可能性があります。",
20
+ "CMEditViewBulkLocale.publication-status": "公開ステータス",
21
+ "CMEditViewBulkLocale.publish-title": "複数ロケールを公開",
22
+ "CMEditViewBulkLocale.status": "ステータス",
23
+ "CMEditViewBulkLocale.unpublish-title": "複数ロケールを非公開",
24
+ "CMEditViewCopyLocale.cancel-text": "いいえ、キャンセル",
25
+ "CMEditViewCopyLocale.copy-failure": "ロケールのコピーに失敗しました",
26
+ "CMEditViewCopyLocale.copy-success": "ロケールをコピーしました",
27
+ "CMEditViewCopyLocale.copy-text": "別のロケールから入力",
28
+ "CMEditViewCopyLocale.dialog.body": "現在のコンテンツは消去され、選択したロケールのコンテンツで上書きされます:",
29
+ "CMEditViewCopyLocale.dialog.field.label": "ロケール",
30
+ "CMEditViewCopyLocale.dialog.field.placeholder": "ロケールを選択...",
31
+ "CMEditViewCopyLocale.dialog.title": "確認",
32
+ "CMEditViewCopyLocale.submit-text": "はい、入力する",
33
+ "CMEditViewLocalePicker.locale.ai-translations": "AI翻訳:",
34
+ "CMEditViewLocalePicker.locale.create": "<bold>{locale}</bold>ロケールを作成",
35
+ "CMListView.popover.display-locales.label": "翻訳済みロケールを表示",
36
+ "CMListView.popover.display-locales.more": "{locales} + 他{count}件",
37
+ "components.Select.locales.not-available": "利用可能なコンテンツがありません",
38
+ "Field.localized": "この値は選択したロケール固有です",
39
+ "Field.not-localized": "この値はすべてのロケールで共通です",
40
+ "list-view.table.header.label": "利用可能なロケール",
41
+ "plugin.description.long": "管理パネルとAPIの両方から、異なる言語でコンテンツを作成・読み取り・更新できるプラグインです。",
42
+ "plugin.description.short": "管理パネルとAPIの両方から、異なる言語でコンテンツを作成・読み取り・更新できるプラグインです。",
43
+ "plugin.name": "国際化",
44
+ "plugin.schema.i18n.localized.description-content-type": "エントリーを異なる言語に翻訳できるようにします",
45
+ "plugin.schema.i18n.localized.description-field": "このフィールドは言語ごとに異なる値を持てます",
46
+ "plugin.schema.i18n.localized.label-content-type": "国際化",
47
+ "plugin.schema.i18n.localized.label-field": "このフィールドのローカライゼーションを有効にする",
48
+ "Settings.aiLocalizations.description": "コンテンツマネージャーで保存するたびに、AIがデフォルトロケールをもとに他のすべてのロケールを自動翻訳します。",
49
+ "Settings.aiLocalizations.label": "AI翻訳",
50
+ "Settings.list.actions.add": "新規ロケールを追加",
51
+ "Settings.list.actions.delete": "{name}ロケールを削除",
52
+ "Settings.list.actions.deleteAdditionalInfos": "アクティブなロケールバージョンが削除されます<em>(国際化)</em>",
53
+ "Settings.list.actions.edit": "{name}ロケールを編集",
54
+ "Settings.list.actions.publishAdditionalInfos": "アクティブなロケールバージョンが公開されます<em>(国際化)</em>",
55
+ "Settings.list.actions.unpublishAdditionalInfos": "アクティブなロケールバージョンが非公開になります<em>(国際化)</em>",
56
+ "Settings.list.description": "国際化プラグインの設定を構成します",
57
+ "Settings.list.empty.description": "これは通常の動作ではなく、データベースを手動で変更した可能性があります。Strapiを正しく使用するには、少なくとも1つのロケールがデータベースに保存されていることを確認してください。",
58
+ "Settings.list.empty.title": "ロケールがありません。",
59
+ "Settings.locales.default": "デフォルト",
60
+ "Settings.locales.list.sort.default": "デフォルトロケールで並べ替え",
61
+ "Settings.locales.list.sort.displayName": "表示名で並べ替え",
62
+ "Settings.locales.list.sort.id": "IDで並べ替え",
63
+ "Settings.locales.modal.advanced": "高度な設定",
64
+ "Settings.locales.modal.advanced.setAsDefault": "デフォルトロケールに設定",
65
+ "Settings.locales.modal.advanced.setAsDefault.hint": "デフォルトロケールは1つ必要です。変更するには別のロケールを選択してください",
66
+ "Settings.locales.modal.advanced.settings": "設定",
67
+ "Settings.locales.modal.base": "基本設定",
68
+ "Settings.locales.modal.create.code.error": "ロケールを選択してください",
69
+ "Settings.locales.modal.create.code.label": "ロケール",
70
+ "Settings.locales.modal.create.name.description": "ロケールは管理パネルでこの名前で表示されます",
71
+ "Settings.locales.modal.create.name.error.min": "ロケール表示名は50文字未満にしてください。",
72
+ "Settings.locales.modal.create.name.error.required": "ロケールの表示名を入力してください",
73
+ "Settings.locales.modal.create.name.label": "ロケール表示名",
74
+ "Settings.locales.modal.create.success": "ロケールを追加しました",
75
+ "Settings.locales.modal.delete.confirm": "はい、削除する",
76
+ "Settings.locales.modal.delete.message": "このロケールを削除すると、関連付けられたすべてのコンテンツが削除されます。残したいコンテンツがある場合は、先に別のロケールへ移し替えてください。",
77
+ "Settings.locales.modal.delete.secondMessage": "このロケールを削除しますか?",
78
+ "Settings.locales.modal.delete.success": "ロケールを削除しました",
79
+ "Settings.locales.modal.edit.confirmation": "完了",
80
+ "Settings.locales.modal.edit.success": "ロケールを編集しました",
81
+ "Settings.locales.modal.edit.tab.label": "I18Nの基本設定と高度な設定の切り替え",
82
+ "Settings.locales.modal.title": "設定",
83
+ "Settings.locales.row.default-locale": "デフォルトロケール",
84
+ "Settings.locales.row.displayName": "表示名",
85
+ "Settings.locales.row.id": "ID",
86
+ "Settings.permissions.loading": "権限を読み込み中",
87
+ "Settings.permissions.read.denied.description": "これを閲覧するには、システム管理者にお問い合わせください。",
88
+ "Settings.permissions.read.denied.title": "このコンテンツにアクセスする権限がありません。"
89
+ };
90
+
91
+ module.exports = ja;
92
+ //# sourceMappingURL=ja.json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ja.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,90 @@
1
+ var ja = {
2
+ "actions.delete.dialog.body": "このロケールを削除してもよろしいですか?",
3
+ "actions.delete.dialog.title": "確認",
4
+ "actions.delete.error": "ドキュメントロケールの削除中にエラーが発生しました。",
5
+ "actions.delete.label": "エントリーを削除({locale})",
6
+ "actions.select-locale": "ロケールを選択",
7
+ "CheckboxConfirmation.Modal.body": "無効にしますか?",
8
+ "CheckboxConfirmation.Modal.button-confirm": "はい、無効にする",
9
+ "CheckboxConfirmation.Modal.content": "ローカライゼーションを無効にすると、デフォルトロケールに関連付けられたコンテンツ(存在する場合)を除くすべてのコンテンツが削除されます。",
10
+ "CMEditViewAITranslation.job-completed": "AI翻訳が完了しました!",
11
+ "CMEditViewAITranslation.job-failed": "AI翻訳に失敗しました。もう一度お試しください。",
12
+ "CMEditViewAITranslation.settings-link": "{enabled, select, true {設定で無効にする} false {設定で有効にする} other {設定で有効にする}}",
13
+ "CMEditViewAITranslation.status-aria-label": "AI翻訳ステータス",
14
+ "CMEditViewAITranslation.status-description": "デフォルトロケールで変更を保存するたびに、AIがすべてのロケールのコンテンツを翻訳します。",
15
+ "CMEditViewAITranslation.status-title": "{enabled, select, true {AI翻訳有効} false {AI翻訳無効} other {AI翻訳無効}}",
16
+ "CMEditViewBulkLocale.continue-confirmation": "続行してもよろしいですか?",
17
+ "CMEditViewBulkLocale.draft-relation-warning": "一部のロケールは下書きエントリーに関連付けられています。公開するとアプリ内にリンク切れが発生する可能性があります。",
18
+ "CMEditViewBulkLocale.publication-status": "公開ステータス",
19
+ "CMEditViewBulkLocale.publish-title": "複数ロケールを公開",
20
+ "CMEditViewBulkLocale.status": "ステータス",
21
+ "CMEditViewBulkLocale.unpublish-title": "複数ロケールを非公開",
22
+ "CMEditViewCopyLocale.cancel-text": "いいえ、キャンセル",
23
+ "CMEditViewCopyLocale.copy-failure": "ロケールのコピーに失敗しました",
24
+ "CMEditViewCopyLocale.copy-success": "ロケールをコピーしました",
25
+ "CMEditViewCopyLocale.copy-text": "別のロケールから入力",
26
+ "CMEditViewCopyLocale.dialog.body": "現在のコンテンツは消去され、選択したロケールのコンテンツで上書きされます:",
27
+ "CMEditViewCopyLocale.dialog.field.label": "ロケール",
28
+ "CMEditViewCopyLocale.dialog.field.placeholder": "ロケールを選択...",
29
+ "CMEditViewCopyLocale.dialog.title": "確認",
30
+ "CMEditViewCopyLocale.submit-text": "はい、入力する",
31
+ "CMEditViewLocalePicker.locale.ai-translations": "AI翻訳:",
32
+ "CMEditViewLocalePicker.locale.create": "<bold>{locale}</bold>ロケールを作成",
33
+ "CMListView.popover.display-locales.label": "翻訳済みロケールを表示",
34
+ "CMListView.popover.display-locales.more": "{locales} + 他{count}件",
35
+ "components.Select.locales.not-available": "利用可能なコンテンツがありません",
36
+ "Field.localized": "この値は選択したロケール固有です",
37
+ "Field.not-localized": "この値はすべてのロケールで共通です",
38
+ "list-view.table.header.label": "利用可能なロケール",
39
+ "plugin.description.long": "管理パネルとAPIの両方から、異なる言語でコンテンツを作成・読み取り・更新できるプラグインです。",
40
+ "plugin.description.short": "管理パネルとAPIの両方から、異なる言語でコンテンツを作成・読み取り・更新できるプラグインです。",
41
+ "plugin.name": "国際化",
42
+ "plugin.schema.i18n.localized.description-content-type": "エントリーを異なる言語に翻訳できるようにします",
43
+ "plugin.schema.i18n.localized.description-field": "このフィールドは言語ごとに異なる値を持てます",
44
+ "plugin.schema.i18n.localized.label-content-type": "国際化",
45
+ "plugin.schema.i18n.localized.label-field": "このフィールドのローカライゼーションを有効にする",
46
+ "Settings.aiLocalizations.description": "コンテンツマネージャーで保存するたびに、AIがデフォルトロケールをもとに他のすべてのロケールを自動翻訳します。",
47
+ "Settings.aiLocalizations.label": "AI翻訳",
48
+ "Settings.list.actions.add": "新規ロケールを追加",
49
+ "Settings.list.actions.delete": "{name}ロケールを削除",
50
+ "Settings.list.actions.deleteAdditionalInfos": "アクティブなロケールバージョンが削除されます<em>(国際化)</em>",
51
+ "Settings.list.actions.edit": "{name}ロケールを編集",
52
+ "Settings.list.actions.publishAdditionalInfos": "アクティブなロケールバージョンが公開されます<em>(国際化)</em>",
53
+ "Settings.list.actions.unpublishAdditionalInfos": "アクティブなロケールバージョンが非公開になります<em>(国際化)</em>",
54
+ "Settings.list.description": "国際化プラグインの設定を構成します",
55
+ "Settings.list.empty.description": "これは通常の動作ではなく、データベースを手動で変更した可能性があります。Strapiを正しく使用するには、少なくとも1つのロケールがデータベースに保存されていることを確認してください。",
56
+ "Settings.list.empty.title": "ロケールがありません。",
57
+ "Settings.locales.default": "デフォルト",
58
+ "Settings.locales.list.sort.default": "デフォルトロケールで並べ替え",
59
+ "Settings.locales.list.sort.displayName": "表示名で並べ替え",
60
+ "Settings.locales.list.sort.id": "IDで並べ替え",
61
+ "Settings.locales.modal.advanced": "高度な設定",
62
+ "Settings.locales.modal.advanced.setAsDefault": "デフォルトロケールに設定",
63
+ "Settings.locales.modal.advanced.setAsDefault.hint": "デフォルトロケールは1つ必要です。変更するには別のロケールを選択してください",
64
+ "Settings.locales.modal.advanced.settings": "設定",
65
+ "Settings.locales.modal.base": "基本設定",
66
+ "Settings.locales.modal.create.code.error": "ロケールを選択してください",
67
+ "Settings.locales.modal.create.code.label": "ロケール",
68
+ "Settings.locales.modal.create.name.description": "ロケールは管理パネルでこの名前で表示されます",
69
+ "Settings.locales.modal.create.name.error.min": "ロケール表示名は50文字未満にしてください。",
70
+ "Settings.locales.modal.create.name.error.required": "ロケールの表示名を入力してください",
71
+ "Settings.locales.modal.create.name.label": "ロケール表示名",
72
+ "Settings.locales.modal.create.success": "ロケールを追加しました",
73
+ "Settings.locales.modal.delete.confirm": "はい、削除する",
74
+ "Settings.locales.modal.delete.message": "このロケールを削除すると、関連付けられたすべてのコンテンツが削除されます。残したいコンテンツがある場合は、先に別のロケールへ移し替えてください。",
75
+ "Settings.locales.modal.delete.secondMessage": "このロケールを削除しますか?",
76
+ "Settings.locales.modal.delete.success": "ロケールを削除しました",
77
+ "Settings.locales.modal.edit.confirmation": "完了",
78
+ "Settings.locales.modal.edit.success": "ロケールを編集しました",
79
+ "Settings.locales.modal.edit.tab.label": "I18Nの基本設定と高度な設定の切り替え",
80
+ "Settings.locales.modal.title": "設定",
81
+ "Settings.locales.row.default-locale": "デフォルトロケール",
82
+ "Settings.locales.row.displayName": "表示名",
83
+ "Settings.locales.row.id": "ID",
84
+ "Settings.permissions.loading": "権限を読み込み中",
85
+ "Settings.permissions.read.denied.description": "これを閲覧するには、システム管理者にお問い合わせください。",
86
+ "Settings.permissions.read.denied.title": "このコンテンツにアクセスする権限がありません。"
87
+ };
88
+
89
+ export { ja as default };
90
+ //# sourceMappingURL=ja.json.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ja.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -14,6 +14,10 @@ var register = (async ({ strapi })=>{
14
14
  strapi.get('models').add(aiLocalizationJob.aiLocalizationJob);
15
15
  extendContentTypes(strapi);
16
16
  addContentManagerLocaleMiddleware(strapi);
17
+ strapi.hook('strapi::content-types.afterSync').register(({ oldContentTypes, contentTypes })=>index.getService('permissions').actions.repairPermissionsForNewlyLocalizedTypes({
18
+ oldContentTypes,
19
+ contentTypes
20
+ }));
17
21
  });
18
22
  // TODO: v5 if implemented in the CM => delete this middleware
19
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sources":["../../server/src/register.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core } from '@strapi/types';\n\nimport validateLocaleCreation from './controllers/validate-locale-creation';\nimport graphqlProvider from './graphql';\nimport { getService } from './utils';\nimport { aiLocalizationJob } from './models/ai-localization-job';\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n strapi.get('models').add(aiLocalizationJob);\n\n extendContentTypes(strapi);\n addContentManagerLocaleMiddleware(strapi);\n};\n\n// TODO: v5 if implemented in the CM => delete this middleware\n/**\n * Adds middleware on CM creation routes to use i18n locale passed in a specific param\n * @param {Strapi} strapi\n */\nconst addContentManagerLocaleMiddleware = (strapi: Core.Strapi) => {\n strapi.server.router.use('/content-manager/collection-types/:model', (ctx, next) => {\n if (ctx.method === 'POST' || ctx.method === 'PUT') {\n return validateLocaleCreation(ctx, next);\n }\n\n return next();\n });\n\n strapi.server.router.use('/content-manager/single-types/:model', (ctx, next) => {\n if (ctx.method === 'POST' || ctx.method === 'PUT') {\n return validateLocaleCreation(ctx, next);\n }\n\n return next();\n });\n};\n\n/**\n * Adds locale and localization fields to all content types\n * Even if content type is not localized, it will have these fields\n * @param {Strapi} strapi\n */\nconst extendContentTypes = (strapi: Core.Strapi) => {\n const { isLocalizedContentType } = getService('content-types');\n\n Object.values(strapi.contentTypes).forEach((contentType) => {\n const { attributes } = contentType;\n\n const isLocalized = isLocalizedContentType(contentType);\n\n _.set(attributes, 'locale', {\n writable: true,\n private: !isLocalized,\n configurable: false,\n visible: false,\n type: 'string',\n });\n\n _.set(attributes, 'localizations', {\n type: 'relation',\n relation: 'oneToMany',\n target: contentType.uid,\n writable: false,\n private: !isLocalized,\n configurable: false,\n visible: false,\n unstable_virtual: true,\n joinColumn: {\n name: 'document_id',\n referencedColumn: 'document_id',\n referencedTable: strapi.db.metadata.identifiers.getTableName(contentType.collectionName!),\n // ensure the population will not include the results we already loaded\n on({ results }: { results: any[] }) {\n return {\n id: {\n $notIn: results.map((r) => r.id),\n },\n };\n },\n },\n });\n });\n\n if (strapi.plugin('graphql')) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n graphqlProvider({ strapi }).register();\n }\n};\n"],"names":["strapi","get","add","aiLocalizationJob","extendContentTypes","addContentManagerLocaleMiddleware","server","router","use","ctx","next","method","validateLocaleCreation","isLocalizedContentType","getService","Object","values","contentTypes","forEach","contentType","attributes","isLocalized","_","set","writable","private","configurable","visible","type","relation","target","uid","unstable_virtual","joinColumn","name","referencedColumn","referencedTable","db","metadata","identifiers","getTableName","collectionName","on","results","id","$notIn","map","r","plugin","graphqlProvider","register"],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sources":["../../server/src/register.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core } from '@strapi/types';\n\nimport validateLocaleCreation from './controllers/validate-locale-creation';\nimport graphqlProvider from './graphql';\nimport { getService } from './utils';\nimport { aiLocalizationJob } from './models/ai-localization-job';\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n strapi.get('models').add(aiLocalizationJob);\n\n extendContentTypes(strapi);\n addContentManagerLocaleMiddleware(strapi);\n\n strapi\n .hook('strapi::content-types.afterSync')\n .register(({ oldContentTypes, contentTypes }: any) =>\n getService('permissions').actions.repairPermissionsForNewlyLocalizedTypes({\n oldContentTypes,\n contentTypes,\n })\n );\n};\n\n// TODO: v5 if implemented in the CM => delete this middleware\n/**\n * Adds middleware on CM creation routes to use i18n locale passed in a specific param\n * @param {Strapi} strapi\n */\nconst addContentManagerLocaleMiddleware = (strapi: Core.Strapi) => {\n strapi.server.router.use('/content-manager/collection-types/:model', (ctx, next) => {\n if (ctx.method === 'POST' || ctx.method === 'PUT') {\n return validateLocaleCreation(ctx, next);\n }\n\n return next();\n });\n\n strapi.server.router.use('/content-manager/single-types/:model', (ctx, next) => {\n if (ctx.method === 'POST' || ctx.method === 'PUT') {\n return validateLocaleCreation(ctx, next);\n }\n\n return next();\n });\n};\n\n/**\n * Adds locale and localization fields to all content types\n * Even if content type is not localized, it will have these fields\n * @param {Strapi} strapi\n */\nconst extendContentTypes = (strapi: Core.Strapi) => {\n const { isLocalizedContentType } = getService('content-types');\n\n Object.values(strapi.contentTypes).forEach((contentType) => {\n const { attributes } = contentType;\n\n const isLocalized = isLocalizedContentType(contentType);\n\n _.set(attributes, 'locale', {\n writable: true,\n private: !isLocalized,\n configurable: false,\n visible: false,\n type: 'string',\n });\n\n _.set(attributes, 'localizations', {\n type: 'relation',\n relation: 'oneToMany',\n target: contentType.uid,\n writable: false,\n private: !isLocalized,\n configurable: false,\n visible: false,\n unstable_virtual: true,\n joinColumn: {\n name: 'document_id',\n referencedColumn: 'document_id',\n referencedTable: strapi.db.metadata.identifiers.getTableName(contentType.collectionName!),\n // ensure the population will not include the results we already loaded\n on({ results }: { results: any[] }) {\n return {\n id: {\n $notIn: results.map((r) => r.id),\n },\n };\n },\n },\n });\n });\n\n if (strapi.plugin('graphql')) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n graphqlProvider({ strapi }).register();\n }\n};\n"],"names":["strapi","get","add","aiLocalizationJob","extendContentTypes","addContentManagerLocaleMiddleware","hook","register","oldContentTypes","contentTypes","getService","actions","repairPermissionsForNewlyLocalizedTypes","server","router","use","ctx","next","method","validateLocaleCreation","isLocalizedContentType","Object","values","forEach","contentType","attributes","isLocalized","_","set","writable","private","configurable","visible","type","relation","target","uid","unstable_virtual","joinColumn","name","referencedColumn","referencedTable","db","metadata","identifiers","getTableName","collectionName","on","results","id","$notIn","map","r","plugin","graphqlProvider"],"mappings":"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"}
@@ -8,6 +8,10 @@ var register = (async ({ strapi })=>{
8
8
  strapi.get('models').add(aiLocalizationJob);
9
9
  extendContentTypes(strapi);
10
10
  addContentManagerLocaleMiddleware(strapi);
11
+ strapi.hook('strapi::content-types.afterSync').register(({ oldContentTypes, contentTypes })=>getService('permissions').actions.repairPermissionsForNewlyLocalizedTypes({
12
+ oldContentTypes,
13
+ contentTypes
14
+ }));
11
15
  });
12
16
  // TODO: v5 if implemented in the CM => delete this middleware
13
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"register.mjs","sources":["../../server/src/register.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core } from '@strapi/types';\n\nimport validateLocaleCreation from './controllers/validate-locale-creation';\nimport graphqlProvider from './graphql';\nimport { getService } from './utils';\nimport { aiLocalizationJob } from './models/ai-localization-job';\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n strapi.get('models').add(aiLocalizationJob);\n\n extendContentTypes(strapi);\n addContentManagerLocaleMiddleware(strapi);\n};\n\n// TODO: v5 if implemented in the CM => delete this middleware\n/**\n * Adds middleware on CM creation routes to use i18n locale passed in a specific param\n * @param {Strapi} strapi\n */\nconst addContentManagerLocaleMiddleware = (strapi: Core.Strapi) => {\n strapi.server.router.use('/content-manager/collection-types/:model', (ctx, next) => {\n if (ctx.method === 'POST' || ctx.method === 'PUT') {\n return validateLocaleCreation(ctx, next);\n }\n\n return next();\n });\n\n strapi.server.router.use('/content-manager/single-types/:model', (ctx, next) => {\n if (ctx.method === 'POST' || ctx.method === 'PUT') {\n return validateLocaleCreation(ctx, next);\n }\n\n return next();\n });\n};\n\n/**\n * Adds locale and localization fields to all content types\n * Even if content type is not localized, it will have these fields\n * @param {Strapi} strapi\n */\nconst extendContentTypes = (strapi: Core.Strapi) => {\n const { isLocalizedContentType } = getService('content-types');\n\n Object.values(strapi.contentTypes).forEach((contentType) => {\n const { attributes } = contentType;\n\n const isLocalized = isLocalizedContentType(contentType);\n\n _.set(attributes, 'locale', {\n writable: true,\n private: !isLocalized,\n configurable: false,\n visible: false,\n type: 'string',\n });\n\n _.set(attributes, 'localizations', {\n type: 'relation',\n relation: 'oneToMany',\n target: contentType.uid,\n writable: false,\n private: !isLocalized,\n configurable: false,\n visible: false,\n unstable_virtual: true,\n joinColumn: {\n name: 'document_id',\n referencedColumn: 'document_id',\n referencedTable: strapi.db.metadata.identifiers.getTableName(contentType.collectionName!),\n // ensure the population will not include the results we already loaded\n on({ results }: { results: any[] }) {\n return {\n id: {\n $notIn: results.map((r) => r.id),\n },\n };\n },\n },\n });\n });\n\n if (strapi.plugin('graphql')) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n graphqlProvider({ strapi }).register();\n }\n};\n"],"names":["strapi","get","add","aiLocalizationJob","extendContentTypes","addContentManagerLocaleMiddleware","server","router","use","ctx","next","method","validateLocaleCreation","isLocalizedContentType","getService","Object","values","contentTypes","forEach","contentType","attributes","isLocalized","_","set","writable","private","configurable","visible","type","relation","target","uid","unstable_virtual","joinColumn","name","referencedColumn","referencedTable","db","metadata","identifiers","getTableName","collectionName","on","results","id","$notIn","map","r","plugin","graphqlProvider","register"],"mappings":"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"}
1
+ {"version":3,"file":"register.mjs","sources":["../../server/src/register.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core } from '@strapi/types';\n\nimport validateLocaleCreation from './controllers/validate-locale-creation';\nimport graphqlProvider from './graphql';\nimport { getService } from './utils';\nimport { aiLocalizationJob } from './models/ai-localization-job';\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n strapi.get('models').add(aiLocalizationJob);\n\n extendContentTypes(strapi);\n addContentManagerLocaleMiddleware(strapi);\n\n strapi\n .hook('strapi::content-types.afterSync')\n .register(({ oldContentTypes, contentTypes }: any) =>\n getService('permissions').actions.repairPermissionsForNewlyLocalizedTypes({\n oldContentTypes,\n contentTypes,\n })\n );\n};\n\n// TODO: v5 if implemented in the CM => delete this middleware\n/**\n * Adds middleware on CM creation routes to use i18n locale passed in a specific param\n * @param {Strapi} strapi\n */\nconst addContentManagerLocaleMiddleware = (strapi: Core.Strapi) => {\n strapi.server.router.use('/content-manager/collection-types/:model', (ctx, next) => {\n if (ctx.method === 'POST' || ctx.method === 'PUT') {\n return validateLocaleCreation(ctx, next);\n }\n\n return next();\n });\n\n strapi.server.router.use('/content-manager/single-types/:model', (ctx, next) => {\n if (ctx.method === 'POST' || ctx.method === 'PUT') {\n return validateLocaleCreation(ctx, next);\n }\n\n return next();\n });\n};\n\n/**\n * Adds locale and localization fields to all content types\n * Even if content type is not localized, it will have these fields\n * @param {Strapi} strapi\n */\nconst extendContentTypes = (strapi: Core.Strapi) => {\n const { isLocalizedContentType } = getService('content-types');\n\n Object.values(strapi.contentTypes).forEach((contentType) => {\n const { attributes } = contentType;\n\n const isLocalized = isLocalizedContentType(contentType);\n\n _.set(attributes, 'locale', {\n writable: true,\n private: !isLocalized,\n configurable: false,\n visible: false,\n type: 'string',\n });\n\n _.set(attributes, 'localizations', {\n type: 'relation',\n relation: 'oneToMany',\n target: contentType.uid,\n writable: false,\n private: !isLocalized,\n configurable: false,\n visible: false,\n unstable_virtual: true,\n joinColumn: {\n name: 'document_id',\n referencedColumn: 'document_id',\n referencedTable: strapi.db.metadata.identifiers.getTableName(contentType.collectionName!),\n // ensure the population will not include the results we already loaded\n on({ results }: { results: any[] }) {\n return {\n id: {\n $notIn: results.map((r) => r.id),\n },\n };\n },\n },\n });\n });\n\n if (strapi.plugin('graphql')) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n graphqlProvider({ strapi }).register();\n }\n};\n"],"names":["strapi","get","add","aiLocalizationJob","extendContentTypes","addContentManagerLocaleMiddleware","hook","register","oldContentTypes","contentTypes","getService","actions","repairPermissionsForNewlyLocalizedTypes","server","router","use","ctx","next","method","validateLocaleCreation","isLocalizedContentType","Object","values","forEach","contentType","attributes","isLocalized","_","set","writable","private","configurable","visible","type","relation","target","uid","unstable_virtual","joinColumn","name","referencedColumn","referencedTable","db","metadata","identifiers","getTableName","collectionName","on","results","id","$notIn","map","r","plugin","graphqlProvider"],"mappings":"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"}