@strapi/i18n 0.0.0-experimental.93181c8b900e97a04bf10785b368657101ec98d8 → 0.0.0-experimental.953e1857bbad81a3c34f5d6511736c1bc8b91dcb

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 (46) hide show
  1. package/dist/_chunks/{SettingsPage-CPNFX0bZ.mjs → SettingsPage-BHvunuIF.mjs} +4 -4
  2. package/dist/_chunks/SettingsPage-BHvunuIF.mjs.map +1 -0
  3. package/dist/_chunks/{SettingsPage-C-1h_H38.js → SettingsPage-Bcj7380u.js} +4 -4
  4. package/dist/_chunks/SettingsPage-Bcj7380u.js.map +1 -0
  5. package/dist/_chunks/{en-CwI88-PP.js → en-BKBz3tro.js} +10 -4
  6. package/dist/_chunks/en-BKBz3tro.js.map +1 -0
  7. package/dist/_chunks/{en-CtekP_47.mjs → en-DlXfy6Gy.mjs} +10 -4
  8. package/dist/_chunks/en-DlXfy6Gy.mjs.map +1 -0
  9. package/dist/_chunks/{index-jpk39Rxo.js → index-BKZbxhpm.js} +261 -37
  10. package/dist/_chunks/index-BKZbxhpm.js.map +1 -0
  11. package/dist/_chunks/{index-CgjpU2bY.mjs → index-DUdrr5PR.mjs} +264 -40
  12. package/dist/_chunks/index-DUdrr5PR.mjs.map +1 -0
  13. package/dist/admin/index.js +1 -1
  14. package/dist/admin/index.mjs +1 -1
  15. package/dist/admin/src/components/CMHeaderActions.d.ts +28 -3
  16. package/dist/admin/src/components/CreateLocale.d.ts +6 -6
  17. package/dist/admin/src/utils/clean.d.ts +4 -0
  18. package/dist/server/index.js +389 -485
  19. package/dist/server/index.js.map +1 -1
  20. package/dist/server/index.mjs +391 -487
  21. package/dist/server/index.mjs.map +1 -1
  22. package/dist/server/src/bootstrap.d.ts +1 -4
  23. package/dist/server/src/bootstrap.d.ts.map +1 -1
  24. package/dist/server/src/index.d.ts +7 -11
  25. package/dist/server/src/index.d.ts.map +1 -1
  26. package/dist/server/src/register.d.ts.map +1 -1
  27. package/dist/server/src/services/index.d.ts +6 -8
  28. package/dist/server/src/services/index.d.ts.map +1 -1
  29. package/dist/server/src/services/sanitize/index.d.ts +11 -0
  30. package/dist/server/src/services/sanitize/index.d.ts.map +1 -0
  31. package/dist/server/src/utils/index.d.ts +2 -2
  32. package/dist/server/src/utils/index.d.ts.map +1 -1
  33. package/package.json +10 -10
  34. package/dist/_chunks/SettingsPage-C-1h_H38.js.map +0 -1
  35. package/dist/_chunks/SettingsPage-CPNFX0bZ.mjs.map +0 -1
  36. package/dist/_chunks/en-CtekP_47.mjs.map +0 -1
  37. package/dist/_chunks/en-CwI88-PP.js.map +0 -1
  38. package/dist/_chunks/index-CgjpU2bY.mjs.map +0 -1
  39. package/dist/_chunks/index-jpk39Rxo.js.map +0 -1
  40. package/dist/server/src/migrations/content-type/disable/index.d.ts +0 -3
  41. package/dist/server/src/migrations/content-type/disable/index.d.ts.map +0 -1
  42. package/dist/server/src/migrations/content-type/enable/index.d.ts +0 -3
  43. package/dist/server/src/migrations/content-type/enable/index.d.ts.map +0 -1
  44. package/dist/server/src/services/entity-service-decorator.d.ts +0 -29
  45. package/dist/server/src/services/entity-service-decorator.d.ts.map +0 -1
  46. package/strapi-server.js +0 -3
@@ -1,13 +1,13 @@
1
1
  import get from "lodash/get";
2
2
  import * as yup from "yup";
3
- import { jsxs, jsx } from "react/jsx-runtime";
3
+ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
4
4
  import * as React from "react";
5
5
  import { Typography, Dialog, Field, Checkbox, Flex, Button, Modal, Box, Status, IconButton, Tooltip, SingleSelect, SingleSelectOption, VisuallyHidden, useCollator, Popover } from "@strapi/design-system";
6
- import { WarningCircle, Pencil, CrossCircle, CheckCircle, ArrowsCounterClockwise, Trash, ListPlus, Cross, Earth, EarthStriked, CaretDown } from "@strapi/icons";
6
+ import { WarningCircle, Pencil, CrossCircle, CheckCircle, ArrowsCounterClockwise, Trash, Plus, Download, ListPlus, Cross, Earth, EarthStriked, CaretDown } from "@strapi/icons";
7
7
  import { useIntl } from "react-intl";
8
8
  import { styled } from "styled-components";
9
9
  import { skipToken } from "@reduxjs/toolkit/query";
10
- import { useAuth, adminApi, useTable, Table, useQueryParams, useNotification, useAPIErrorHandler } from "@strapi/admin/strapi-admin";
10
+ import { useAuth, adminApi, useTable, Table, useQueryParams, useForm, useNotification, useAPIErrorHandler } from "@strapi/admin/strapi-admin";
11
11
  import { unstable_useDocument, unstable_useDocumentActions, buildValidParams } from "@strapi/content-manager/strapi-admin";
12
12
  import { useParams, Link, useNavigate, matchPath } from "react-router-dom";
13
13
  import * as qs from "qs";
@@ -217,6 +217,86 @@ const relationsApi = i18nApi.injectEndpoints({
217
217
  })
218
218
  });
219
219
  const { useGetManyDraftRelationCountQuery } = relationsApi;
220
+ const cleanData = (data, schema, components) => {
221
+ const cleanedData = removeFields(data, [
222
+ "createdAt",
223
+ "createdBy",
224
+ "updatedAt",
225
+ "updatedBy",
226
+ "id",
227
+ "documentId",
228
+ "publishedAt",
229
+ "strapi_stage",
230
+ "strapi_assignee",
231
+ "locale",
232
+ "status"
233
+ ]);
234
+ const cleanedDataWithoutPasswordAndRelation = recursiveRemoveFieldTypes(
235
+ cleanedData,
236
+ schema,
237
+ components,
238
+ ["relation", "password"]
239
+ );
240
+ return cleanedDataWithoutPasswordAndRelation;
241
+ };
242
+ const removeFields = (data, fields) => {
243
+ return Object.keys(data).reduce((acc, current) => {
244
+ if (fields.includes(current)) {
245
+ return acc;
246
+ }
247
+ acc[current] = data[current];
248
+ return acc;
249
+ }, {});
250
+ };
251
+ const recursiveRemoveFieldTypes = (data, schema, components, fields) => {
252
+ return Object.keys(data).reduce((acc, current) => {
253
+ const attribute = schema.attributes[current] ?? { type: void 0 };
254
+ if (fields.includes(attribute.type)) {
255
+ return acc;
256
+ }
257
+ if (attribute.type === "dynamiczone") {
258
+ acc[current] = data[current].map((componentValue, index2) => {
259
+ const { id: _, ...rest } = recursiveRemoveFieldTypes(
260
+ componentValue,
261
+ components[componentValue.__component],
262
+ components,
263
+ fields
264
+ );
265
+ return {
266
+ ...rest,
267
+ __temp_key__: index2 + 1
268
+ };
269
+ });
270
+ } else if (attribute.type === "component") {
271
+ const { repeatable, component } = attribute;
272
+ if (repeatable) {
273
+ acc[current] = (data[current] ?? []).map((compoData, index2) => {
274
+ const { id: _, ...rest } = recursiveRemoveFieldTypes(
275
+ compoData,
276
+ components[component],
277
+ components,
278
+ fields
279
+ );
280
+ return {
281
+ ...rest,
282
+ __temp_key__: index2 + 1
283
+ };
284
+ });
285
+ } else {
286
+ const { id: _, ...rest } = recursiveRemoveFieldTypes(
287
+ data[current] ?? {},
288
+ components[component],
289
+ components,
290
+ fields
291
+ );
292
+ acc[current] = rest;
293
+ }
294
+ } else {
295
+ acc[current] = data[current];
296
+ }
297
+ return acc;
298
+ }, {});
299
+ };
220
300
  const isErrorMessageDescriptor = (object) => {
221
301
  return typeof object === "object" && object !== null && "id" in object && "defaultMessage" in object;
222
302
  };
@@ -411,6 +491,48 @@ const BulkLocaleActionModal = ({
411
491
  ] }) })
412
492
  ] });
413
493
  };
494
+ const statusVariants = {
495
+ draft: "secondary",
496
+ published: "success",
497
+ modified: "alternative"
498
+ };
499
+ const LocaleOption = ({
500
+ isDraftAndPublishEnabled,
501
+ locale,
502
+ status,
503
+ entryExists
504
+ }) => {
505
+ const { formatMessage } = useIntl();
506
+ if (!entryExists) {
507
+ return formatMessage(
508
+ {
509
+ id: getTranslation("CMEditViewLocalePicker.locale.create"),
510
+ defaultMessage: "Create <bold>{locale}</bold> locale"
511
+ },
512
+ {
513
+ bold: (locale2) => /* @__PURE__ */ jsx("b", { children: locale2 }),
514
+ locale: locale.name
515
+ }
516
+ );
517
+ }
518
+ return /* @__PURE__ */ jsxs(Flex, { width: "100%", gap: 1, justifyContent: "space-between", children: [
519
+ /* @__PURE__ */ jsx(Typography, { children: locale.name }),
520
+ isDraftAndPublishEnabled ? /* @__PURE__ */ jsx(
521
+ Status,
522
+ {
523
+ display: "flex",
524
+ paddingLeft: "6px",
525
+ paddingRight: "6px",
526
+ paddingTop: "2px",
527
+ paddingBottom: "2px",
528
+ showBullet: false,
529
+ size: "S",
530
+ variant: statusVariants[status],
531
+ children: /* @__PURE__ */ jsx(Typography, { tag: "span", variant: "pi", fontWeight: "bold", children: capitalize(status) })
532
+ }
533
+ ) : null
534
+ ] });
535
+ };
414
536
  const LocalePickerAction = ({
415
537
  document,
416
538
  meta,
@@ -422,7 +544,13 @@ const LocalePickerAction = ({
422
544
  const [{ query }, setQuery] = useQueryParams();
423
545
  const { hasI18n, canCreate, canRead } = useI18n();
424
546
  const { data: locales = [] } = useGetLocalesQuery();
425
- const { schema } = unstable_useDocument({ model, collectionType, documentId });
547
+ const currentDesiredLocale = query.plugins?.i18n?.locale;
548
+ const { schema } = unstable_useDocument({
549
+ model,
550
+ collectionType,
551
+ documentId,
552
+ params: { locale: currentDesiredLocale }
553
+ });
426
554
  const handleSelect = React.useCallback(
427
555
  (value) => {
428
556
  setQuery({
@@ -440,53 +568,47 @@ const LocalePickerAction = ({
440
568
  if (!Array.isArray(locales) || !hasI18n) {
441
569
  return;
442
570
  }
443
- const currentDesiredLocale = query.plugins?.i18n?.locale;
444
571
  const doesLocaleExist = locales.find((loc) => loc.code === currentDesiredLocale);
445
572
  const defaultLocale = locales.find((locale) => locale.isDefault);
446
573
  if (!doesLocaleExist && defaultLocale?.code) {
447
574
  handleSelect(defaultLocale.code);
448
575
  }
449
- }, [handleSelect, hasI18n, locales, query.plugins?.i18n?.locale]);
450
- if (!hasI18n || !Array.isArray(locales) || locales.length === 0) {
451
- return null;
452
- }
453
- const currentLocale = query.plugins?.i18n?.locale || locales.find((loc) => loc.isDefault)?.code;
576
+ }, [handleSelect, hasI18n, locales, currentDesiredLocale]);
577
+ const currentLocale = Array.isArray(locales) ? locales.find((locale) => locale.code === currentDesiredLocale) : void 0;
454
578
  const allCurrentLocales = [
455
- { status: getDocumentStatus(document, meta), locale: currentLocale },
579
+ { status: getDocumentStatus(document, meta), locale: currentLocale?.code },
456
580
  ...meta?.availableLocales ?? []
457
581
  ];
582
+ if (!hasI18n || !Array.isArray(locales) || locales.length === 0) {
583
+ return null;
584
+ }
458
585
  return {
459
586
  label: formatMessage({
460
587
  id: getTranslation("Settings.locales.modal.locales.label"),
461
588
  defaultMessage: "Locales"
462
589
  }),
463
590
  options: locales.map((locale) => {
591
+ const entryWithLocaleExists = allCurrentLocales.some((doc) => doc.locale === locale.code);
464
592
  const currentLocaleDoc = allCurrentLocales.find(
465
593
  (doc) => "locale" in doc ? doc.locale === locale.code : false
466
594
  );
467
- const status = currentLocaleDoc?.status ?? "draft";
468
- const permissionsToCheck = currentLocaleDoc ? canCreate : canRead;
469
- const statusVariant = status === "draft" ? "primary" : status === "published" ? "success" : "alternative";
595
+ const permissionsToCheck = currentLocaleDoc ? canRead : canCreate;
470
596
  return {
471
597
  disabled: !permissionsToCheck.includes(locale.code),
472
598
  value: locale.code,
473
- label: locale.name,
474
- startIcon: schema?.options?.draftAndPublish ? /* @__PURE__ */ jsx(
475
- Status,
599
+ label: /* @__PURE__ */ jsx(
600
+ LocaleOption,
476
601
  {
477
- display: "flex",
478
- paddingLeft: "6px",
479
- paddingRight: "6px",
480
- paddingTop: "2px",
481
- paddingBottom: "2px",
482
- showBullet: false,
483
- size: "S",
484
- variant: statusVariant,
485
- children: /* @__PURE__ */ jsx(Typography, { tag: "span", variant: "pi", fontWeight: "bold", children: capitalize(status) })
602
+ isDraftAndPublishEnabled: !!schema?.options?.draftAndPublish,
603
+ locale,
604
+ status: currentLocaleDoc?.status,
605
+ entryExists: entryWithLocaleExists
486
606
  }
487
- ) : null
607
+ ),
608
+ startIcon: !entryWithLocaleExists ? /* @__PURE__ */ jsx(Plus, {}) : null
488
609
  };
489
610
  }),
611
+ customizeContent: () => currentLocale?.name,
490
612
  onSelect: handleSelect,
491
613
  value: currentLocale
492
614
  };
@@ -502,6 +624,99 @@ const getDocumentStatus = (document, meta) => {
502
624
  }
503
625
  return docStatus;
504
626
  };
627
+ const FillFromAnotherLocaleAction = ({
628
+ documentId,
629
+ meta,
630
+ model,
631
+ collectionType
632
+ }) => {
633
+ const { formatMessage } = useIntl();
634
+ const [{ query }] = useQueryParams();
635
+ const { hasI18n } = useI18n();
636
+ const currentDesiredLocale = query.plugins?.i18n?.locale;
637
+ const [localeSelected, setLocaleSelected] = React.useState(null);
638
+ const setValues = useForm("FillFromAnotherLocale", (state) => state.setValues);
639
+ const { getDocument } = unstable_useDocumentActions();
640
+ const { schema, components } = unstable_useDocument({
641
+ model,
642
+ documentId,
643
+ collectionType,
644
+ params: { locale: currentDesiredLocale }
645
+ });
646
+ const { data: locales = [] } = useGetLocalesQuery();
647
+ const availableLocales = Array.isArray(locales) ? locales.filter((locale) => meta?.availableLocales.some((l) => l.locale === locale.code)) : [];
648
+ const fillFromLocale = (onClose) => async () => {
649
+ const response = await getDocument({
650
+ collectionType,
651
+ model,
652
+ documentId,
653
+ params: { locale: localeSelected }
654
+ });
655
+ if (!response || !schema) {
656
+ return;
657
+ }
658
+ const { data } = response;
659
+ const cleanedData = cleanData(data, schema, components);
660
+ setValues(cleanedData);
661
+ onClose();
662
+ };
663
+ if (!hasI18n) {
664
+ return null;
665
+ }
666
+ return {
667
+ type: "icon",
668
+ icon: /* @__PURE__ */ jsx(Download, {}),
669
+ disabled: availableLocales.length === 0,
670
+ label: formatMessage({
671
+ id: getTranslation("CMEditViewCopyLocale.copy-text"),
672
+ defaultMessage: "Fill in from another locale"
673
+ }),
674
+ dialog: {
675
+ type: "dialog",
676
+ title: formatMessage({
677
+ id: getTranslation("CMEditViewCopyLocale.dialog.title"),
678
+ defaultMessage: "Confirmation"
679
+ }),
680
+ content: ({ onClose }) => /* @__PURE__ */ jsxs(Fragment, { children: [
681
+ /* @__PURE__ */ jsx(Dialog.Body, { children: /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 3, children: [
682
+ /* @__PURE__ */ jsx(WarningCircle, { width: "24px", height: "24px", fill: "danger600" }),
683
+ /* @__PURE__ */ jsx(Typography, { textAlign: "center", children: formatMessage({
684
+ id: getTranslation("CMEditViewCopyLocale.dialog.body"),
685
+ defaultMessage: "Your current content will be erased and filled by the content of the selected locale:"
686
+ }) }),
687
+ /* @__PURE__ */ jsxs(Field.Root, { width: "100%", children: [
688
+ /* @__PURE__ */ jsx(Field.Label, { children: formatMessage({
689
+ id: getTranslation("CMEditViewCopyLocale.dialog.field.label"),
690
+ defaultMessage: "Locale"
691
+ }) }),
692
+ /* @__PURE__ */ jsx(
693
+ SingleSelect,
694
+ {
695
+ value: localeSelected,
696
+ placeholder: formatMessage({
697
+ id: getTranslation("CMEditViewCopyLocale.dialog.field.placeholder"),
698
+ defaultMessage: "Select one locale..."
699
+ }),
700
+ onChange: (value) => setLocaleSelected(value),
701
+ children: availableLocales.map((locale) => /* @__PURE__ */ jsx(SingleSelectOption, { value: locale.code, children: locale.name }, locale.code))
702
+ }
703
+ )
704
+ ] })
705
+ ] }) }),
706
+ /* @__PURE__ */ jsx(Dialog.Footer, { children: /* @__PURE__ */ jsxs(Flex, { gap: 2, width: "100%", children: [
707
+ /* @__PURE__ */ jsx(Button, { flex: "auto", variant: "tertiary", onClick: onClose, children: formatMessage({
708
+ id: getTranslation("CMEditViewCopyLocale.cancel-text"),
709
+ defaultMessage: "No, cancel"
710
+ }) }),
711
+ /* @__PURE__ */ jsx(Button, { flex: "auto", variant: "success", onClick: fillFromLocale(onClose), children: formatMessage({
712
+ id: getTranslation("CMEditViewCopyLocale.submit-text"),
713
+ defaultMessage: "Yes, fill in"
714
+ }) })
715
+ ] }) })
716
+ ] })
717
+ }
718
+ };
719
+ };
505
720
  const DeleteLocaleAction = ({
506
721
  document,
507
722
  documentId,
@@ -513,16 +728,23 @@ const DeleteLocaleAction = ({
513
728
  const { toggleNotification } = useNotification();
514
729
  const { delete: deleteAction } = unstable_useDocumentActions();
515
730
  const { hasI18n, canDelete } = useI18n();
731
+ const [{ query }] = useQueryParams();
732
+ const { data: locales = [] } = useGetLocalesQuery();
733
+ const currentDesiredLocale = query.plugins?.i18n?.locale;
734
+ const locale = !("error" in locales) && locales.find((loc) => loc.code === currentDesiredLocale);
516
735
  if (!hasI18n) {
517
736
  return null;
518
737
  }
519
738
  return {
520
739
  disabled: document?.locale && !canDelete.includes(document.locale) || !document || !document.id,
521
740
  position: ["header", "table-row"],
522
- label: formatMessage({
523
- id: getTranslation("actions.delete.label"),
524
- defaultMessage: "Delete locale"
525
- }),
741
+ label: formatMessage(
742
+ {
743
+ id: getTranslation("actions.delete.label"),
744
+ defaultMessage: "Delete entry ({locale})"
745
+ },
746
+ { locale: locale && locale.name }
747
+ ),
526
748
  icon: /* @__PURE__ */ jsx(StyledTrash, {}),
527
749
  variant: "danger",
528
750
  dialog: {
@@ -539,7 +761,12 @@ const DeleteLocaleAction = ({
539
761
  }) })
540
762
  ] }),
541
763
  onConfirm: async () => {
542
- if (!documentId || !document?.locale) {
764
+ const unableToDelete = (
765
+ // We are unable to delete a collection type without a document ID
766
+ // & unable to delete generally if there is no document locale
767
+ collectionType !== "single-types" && !documentId || !document?.locale
768
+ );
769
+ if (unableToDelete) {
543
770
  console.error(
544
771
  "You're trying to delete a document without an id or locale, this is likely a bug with Strapi. Please open an issue."
545
772
  );
@@ -598,7 +825,7 @@ const BulkLocaleAction = ({
598
825
  }
599
826
  },
600
827
  {
601
- skip: !hasI18n
828
+ skip: !hasI18n || !baseLocale
602
829
  }
603
830
  );
604
831
  const { data: localesMetadata = [] } = useGetLocalesQuery(hasI18n ? void 0 : skipToken);
@@ -1172,9 +1399,6 @@ const localeMiddleware = (ctx) => (next) => (permissions) => {
1172
1399
  return next(revisedPermissions);
1173
1400
  };
1174
1401
  const prefixPluginTranslations = (trad, pluginId2) => {
1175
- if (!pluginId2) {
1176
- throw new TypeError("pluginId can't be empty");
1177
- }
1178
1402
  return Object.keys(trad).reduce((acc, current) => {
1179
1403
  acc[`${pluginId2}.${current}`] = trad[current];
1180
1404
  return acc;
@@ -1244,11 +1468,11 @@ const index = {
1244
1468
  },
1245
1469
  id: "internationalization",
1246
1470
  to: "internationalization",
1247
- Component: () => import("./SettingsPage-CPNFX0bZ.mjs").then((mod) => ({ default: mod.ProtectedSettingsPage })),
1471
+ Component: () => import("./SettingsPage-BHvunuIF.mjs").then((mod) => ({ default: mod.ProtectedSettingsPage })),
1248
1472
  permissions: PERMISSIONS.accessMain
1249
1473
  });
1250
1474
  const contentManager = app.getPlugin("content-manager");
1251
- contentManager.apis.addDocumentHeaderAction([LocalePickerAction]);
1475
+ contentManager.apis.addDocumentHeaderAction([LocalePickerAction, FillFromAnotherLocaleAction]);
1252
1476
  contentManager.apis.addDocumentAction((actions) => {
1253
1477
  const indexOfDeleteAction = actions.findIndex((action) => action.type === "delete");
1254
1478
  actions.splice(indexOfDeleteAction, 0, DeleteLocaleAction);
@@ -1362,7 +1586,7 @@ const index = {
1362
1586
  async registerTrads({ locales }) {
1363
1587
  const importedTrads = await Promise.all(
1364
1588
  locales.map((locale) => {
1365
- return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/de.json": () => import("./de-9eCAqqrB.mjs"), "./translations/dk.json": () => import("./dk-2qBjxt-P.mjs"), "./translations/en.json": () => import("./en-CtekP_47.mjs"), "./translations/es.json": () => import("./es-DlmMVaBG.mjs"), "./translations/fr.json": () => import("./fr-3S6ke71d.mjs"), "./translations/ko.json": () => import("./ko-qTjQ8IMw.mjs"), "./translations/pl.json": () => import("./pl-B67TSHqT.mjs"), "./translations/ru.json": () => import("./ru-hagMa57T.mjs"), "./translations/tr.json": () => import("./tr-Dw_jmkG-.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-Dyc-aR-h.mjs"), "./translations/zh.json": () => import("./zh-57YM4amO.mjs") }), `./translations/${locale}.json`).then(({ default: data }) => {
1589
+ return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/de.json": () => import("./de-9eCAqqrB.mjs"), "./translations/dk.json": () => import("./dk-2qBjxt-P.mjs"), "./translations/en.json": () => import("./en-DlXfy6Gy.mjs"), "./translations/es.json": () => import("./es-DlmMVaBG.mjs"), "./translations/fr.json": () => import("./fr-3S6ke71d.mjs"), "./translations/ko.json": () => import("./ko-qTjQ8IMw.mjs"), "./translations/pl.json": () => import("./pl-B67TSHqT.mjs"), "./translations/ru.json": () => import("./ru-hagMa57T.mjs"), "./translations/tr.json": () => import("./tr-Dw_jmkG-.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-Dyc-aR-h.mjs"), "./translations/zh.json": () => import("./zh-57YM4amO.mjs") }), `./translations/${locale}.json`).then(({ default: data }) => {
1366
1590
  return {
1367
1591
  data: prefixPluginTranslations(data, pluginId),
1368
1592
  locale
@@ -1388,4 +1612,4 @@ export {
1388
1612
  index as i,
1389
1613
  useCreateLocaleMutation as u
1390
1614
  };
1391
- //# sourceMappingURL=index-CgjpU2bY.mjs.map
1615
+ //# sourceMappingURL=index-DUdrr5PR.mjs.map