Categories
@@ -402,6 +405,53 @@ describe('Content manager | App | main', () => {
`);
});
+ it('should redirect to the single type', () => {
+ const contentManagerState = {
+ collectionTypeLinks: [],
+ singleTypeLinks: [
+ {
+ uid: 'homepage',
+ title: 'Home page',
+ name: 'homepage',
+ to: `/plugins/${pluginId}/homepage`,
+ kind: 'singleType',
+ isDisplayed: true,
+ permissions: [
+ {
+ action: 'plugins::content-manager.explorer.read',
+ subject: 'homepage',
+ },
+ ],
+ },
+ ],
+ models: [
+ {
+ kind: 'collectionType',
+ uid: 'category',
+ info: { label: 'Categories', name: 'category' },
+ },
+ { kind: 'singleType', uid: 'homepage', info: { label: 'Home page', name: 'homepage' } },
+ ],
+ components: [],
+ status: 'resolved',
+ };
+ useModels.mockImplementation(() => contentManagerState);
+ const rootReducer = combineReducers(cmReducers);
+ const store = createStore(rootReducer, { [`${pluginId}_app`]: contentManagerState });
+ const history = createMemoryHistory();
+ history.push(`/plugins/${pluginId}`);
+
+ render(
+
+
+
+
+
+ );
+
+ expect(history.location.pathname).toEqual(`/plugins/${pluginId}/homepage`);
+ });
+
it('should redirect to 403 page', () => {
const history = createMemoryHistory();
const contentManagerState = {
@@ -426,7 +476,7 @@ describe('Content manager | App | main', () => {
);
const rootReducer = combineReducers(cmReducers);
const store = createStore(rootReducer, { [`${pluginId}_app`]: contentManagerState });
- history.push('/plugins/content-manager/collectionType/category');
+ history.push(`/plugins/${pluginId}/collectionType/category`);
render(
@@ -456,14 +506,11 @@ describe('Content manager | App | main', () => {
);
const rootReducer = combineReducers(cmReducers);
const store = createStore(rootReducer, { [`${pluginId}_app`]: contentManagerState });
- history.push('/plugins/content-manager/collectionType/category');
+ history.push(`/plugins/${pluginId}/collectionType/category`);
render(
-
+
diff --git a/packages/core/content-manager/admin/src/translations/en.json b/packages/core/content-manager/admin/src/translations/en.json
index 6f6341e653..5e20a0e2be 100644
--- a/packages/core/content-manager/admin/src/translations/en.json
+++ b/packages/core/content-manager/admin/src/translations/en.json
@@ -163,7 +163,7 @@
"permissions.not-allowed.update": "You are not allowed to see this document",
"plugin.description.long": "Quick way to see, edit and delete the data in your database.",
"plugin.description.short": "Quick way to see, edit and delete the data in your database.",
- "plugin.name": "Content manager",
+ "plugin.name": "Content Manager",
"popUpWarning.bodyMessage.contentType.delete": "Are you sure you want to delete this entry?",
"popUpWarning.bodyMessage.contentType.delete.all": "Are you sure you want to delete these entries?",
"popUpWarning.warning.cancelAllSettings": "Are you sure you want to cancel your modifications?",
diff --git a/packages/core/content-manager/admin/src/translations/index.js b/packages/core/content-manager/admin/src/translations/index.js
deleted file mode 100644
index 73c623f40a..0000000000
--- a/packages/core/content-manager/admin/src/translations/index.js
+++ /dev/null
@@ -1,53 +0,0 @@
-// import ar from './ar.json';
-// import cs from './cs.json';
-// import de from './de.json';
-// import dk from './dk.json';
-import en from './en.json';
-// import es from './es.json';
-import fr from './fr.json';
-// import id from './id.json';
-// import it from './it.json';
-// import ja from './ja.json';
-// import ko from './ko.json';
-// import ms from './ms.json';
-// import nl from './nl.json';
-// import pl from './pl.json';
-// import ptBR from './pt-BR.json';
-// import pt from './pt.json';
-// import ru from './ru.json';
-// import th from './th.json';
-// import tr from './tr.json';
-// import uk from './uk.json';
-// import vi from './vi.json';
-// import zhHans from './zh-Hans.json';
-// import zh from './zh.json';
-// import sk from './sk.json';
-
-const trads = {
- // ar,
- // cs,
- // de,
- // dk,
- en,
- // es,
- fr,
- // id,
- // it,
- // ja,
- // ko,
- // ms,
- // nl,
- // pl,
- // 'pt-BR': ptBR,
- // pt,
- // ru,
- // th,
- // tr,
- // uk,
- // vi,
- // 'zh-Hans': zhHans,
- // zh,
- // sk,
-};
-
-export default trads;
diff --git a/packages/core/content-manager/package.json b/packages/core/content-manager/package.json
index edc0699e39..3a03e96dda 100644
--- a/packages/core/content-manager/package.json
+++ b/packages/core/content-manager/package.json
@@ -16,6 +16,8 @@
"@buffetjs/styles": "3.3.5",
"@buffetjs/utils": "3.3.5",
"@sindresorhus/slugify": "1.1.0",
+ "@strapi/helper-plugin": "3.6.0",
+ "@strapi/utils": "3.6.0",
"classnames": "^2.3.1",
"codemirror": "^5.61.0",
"draft-js": "^0.11.5",
@@ -36,7 +38,7 @@
"react": "^16.14.0",
"react-dom": "^16.9.0",
"react-fast-compare": "^3.2.0",
- "react-intl": "4.5.0",
+ "react-intl": "5.20.2",
"react-redux": "7.2.3",
"react-router": "^5.2.0",
"react-router-dom": "^5.0.0",
@@ -45,8 +47,6 @@
"redux-immutable": "^4.0.0",
"reselect": "^4.0.0",
"sanitize-html": "2.3.3",
- "@strapi/helper-plugin": "3.6.0",
- "@strapi/utils": "3.6.0",
"yup": "^0.27.0"
},
"author": {
diff --git a/packages/core/content-type-builder/admin/src/index.js b/packages/core/content-type-builder/admin/src/index.js
index 2afe45a45c..117e8f76ec 100644
--- a/packages/core/content-type-builder/admin/src/index.js
+++ b/packages/core/content-type-builder/admin/src/index.js
@@ -4,10 +4,9 @@
// Here's the file: strapi/docs/3.0.0-beta.x/guides/registering-a-field-in-admin.md
// Also the strapi-generate-plugins/files/admin/src/index.js needs to be updated
// IF THE DOC IS NOT UPDATED THE PULL REQUEST WILL NOT BE MERGED
-
+import { prefixPluginTranslations } from '@strapi/helper-plugin';
import pluginPkg from '../../package.json';
import pluginLogo from './assets/images/logo.svg';
-import trads from './translations';
import pluginPermissions from './permissions';
import pluginId from './pluginId';
import reducers from './reducers';
@@ -28,7 +27,6 @@ export default {
isReady: true,
name,
pluginLogo,
- trads,
menu: {
pluginsSectionLinks: [
{
@@ -49,4 +47,27 @@ export default {
});
},
boot() {},
+ async registerTrads({ locales }) {
+ const importedTrads = await Promise.all(
+ locales.map(locale => {
+ return import(
+ /* webpackChunkName: "content-type-builder-translation-[request]" */ `./translations/${locale}.json`
+ )
+ .then(({ default: data }) => {
+ return {
+ data: prefixPluginTranslations(data, pluginId),
+ locale,
+ };
+ })
+ .catch(() => {
+ return {
+ data: {},
+ locale,
+ };
+ });
+ })
+ );
+
+ return Promise.resolve(importedTrads);
+ },
};
diff --git a/packages/core/content-type-builder/admin/src/translations/index.js b/packages/core/content-type-builder/admin/src/translations/index.js
deleted file mode 100644
index 596b252347..0000000000
--- a/packages/core/content-type-builder/admin/src/translations/index.js
+++ /dev/null
@@ -1,51 +0,0 @@
-// import ar from './ar.json';
-// import cs from './cs.json';
-// import de from './de.json';
-// import dk from './dk.json';
-import en from './en.json';
-// import es from './es.json';
-import fr from './fr.json';
-// import id from './id.json';
-// import it from './it.json';
-// import ja from './ja.json';
-// import ko from './ko.json';
-// import ms from './ms.json';
-// import nl from './nl.json';
-// import pl from './pl.json';
-// import ptBR from './pt-BR.json';
-// import pt from './pt.json';
-// import ru from './ru.json';
-// import th from './th.json';
-// import tr from './tr.json';
-// import uk from './uk.json';
-// import zhHans from './zh-Hans.json';
-// import zh from './zh.json';
-// import sk from './sk.json';
-
-const trads = {
- // ar,
- // cs,
- // de,
- // dk,
- en,
- // es,
- fr,
- // id,
- // it,
- // ja,
- // ko,
- // ms,
- // nl,
- // pl,
- // 'pt-BR': ptBR,
- // pt,
- // ru,
- // th,
- // tr,
- // uk,
- // 'zh-Hans': zhHans,
- // zh,
- // sk,
-};
-
-export default trads;
diff --git a/packages/core/content-type-builder/package.json b/packages/core/content-type-builder/package.json
index 7315ff1be7..cb91d131cf 100644
--- a/packages/core/content-type-builder/package.json
+++ b/packages/core/content-type-builder/package.json
@@ -15,13 +15,17 @@
"@buffetjs/styles": "3.3.5",
"@buffetjs/utils": "3.3.5",
"@sindresorhus/slugify": "1.1.0",
+ "@strapi/generate": "3.6.0",
+ "@strapi/generate-api": "3.6.0",
+ "@strapi/helper-plugin": "3.6.0",
+ "@strapi/utils": "3.6.0",
"fs-extra": "^9.1.0",
"immutable": "^3.8.2",
"lodash": "4.17.21",
"pluralize": "^8.0.0",
"react": "^16.14.0",
"react-dom": "^16.9.0",
- "react-intl": "4.5.0",
+ "react-intl": "5.20.2",
"react-redux": "7.2.3",
"react-router": "^5.2.0",
"react-router-dom": "^5.0.0",
@@ -29,10 +33,6 @@
"redux": "^4.0.1",
"redux-immutable": "^4.0.0",
"reselect": "^4.0.0",
- "@strapi/generate": "3.6.0",
- "@strapi/generate-api": "3.6.0",
- "@strapi/helper-plugin": "3.6.0",
- "@strapi/utils": "3.6.0",
"yup": "^0.27.0"
},
"author": {
diff --git a/packages/core/email/admin/src/index.js b/packages/core/email/admin/src/index.js
index 6881d391b2..bffef984a7 100644
--- a/packages/core/email/admin/src/index.js
+++ b/packages/core/email/admin/src/index.js
@@ -6,12 +6,11 @@
// IF THE DOC IS NOT UPDATED THE PULL REQUEST WILL NOT BE MERGED
import React from 'react';
-import { CheckPagePermissions } from '@strapi/helper-plugin';
+import { CheckPagePermissions, prefixPluginTranslations } from '@strapi/helper-plugin';
import pluginPkg from '../../package.json';
import pluginId from './pluginId';
import pluginLogo from './assets/images/logo.svg';
import pluginPermissions from './permissions';
-import trads from './translations';
import getTrad from './utils/getTrad';
import SettingsPage from './pages/Settings';
@@ -53,8 +52,30 @@ export default {
isRequired: pluginPkg.strapi.required || false,
name,
pluginLogo,
- trads,
});
},
boot() {},
+ async registerTrads({ locales }) {
+ const importedTrads = await Promise.all(
+ locales.map(locale => {
+ return import(
+ /* webpackChunkName: "email-translation-[request]" */ `./translations/${locale}.json`
+ )
+ .then(({ default: data }) => {
+ return {
+ data: prefixPluginTranslations(data, pluginId),
+ locale,
+ };
+ })
+ .catch(() => {
+ return {
+ data: {},
+ locale,
+ };
+ });
+ })
+ );
+
+ return Promise.resolve(importedTrads);
+ },
};
diff --git a/packages/core/email/admin/src/translations/index.js b/packages/core/email/admin/src/translations/index.js
deleted file mode 100644
index 73c623f40a..0000000000
--- a/packages/core/email/admin/src/translations/index.js
+++ /dev/null
@@ -1,53 +0,0 @@
-// import ar from './ar.json';
-// import cs from './cs.json';
-// import de from './de.json';
-// import dk from './dk.json';
-import en from './en.json';
-// import es from './es.json';
-import fr from './fr.json';
-// import id from './id.json';
-// import it from './it.json';
-// import ja from './ja.json';
-// import ko from './ko.json';
-// import ms from './ms.json';
-// import nl from './nl.json';
-// import pl from './pl.json';
-// import ptBR from './pt-BR.json';
-// import pt from './pt.json';
-// import ru from './ru.json';
-// import th from './th.json';
-// import tr from './tr.json';
-// import uk from './uk.json';
-// import vi from './vi.json';
-// import zhHans from './zh-Hans.json';
-// import zh from './zh.json';
-// import sk from './sk.json';
-
-const trads = {
- // ar,
- // cs,
- // de,
- // dk,
- en,
- // es,
- fr,
- // id,
- // it,
- // ja,
- // ko,
- // ms,
- // nl,
- // pl,
- // 'pt-BR': ptBR,
- // pt,
- // ru,
- // th,
- // tr,
- // uk,
- // vi,
- // 'zh-Hans': zhHans,
- // zh,
- // sk,
-};
-
-export default trads;
diff --git a/packages/core/helper-plugin/lib/src/index.js b/packages/core/helper-plugin/lib/src/index.js
index b14a0ac342..63e81bec37 100644
--- a/packages/core/helper-plugin/lib/src/index.js
+++ b/packages/core/helper-plugin/lib/src/index.js
@@ -160,6 +160,7 @@ export { default as generateFiltersFromSearch } from './utils/generateFiltersFro
export { default as generateSearchFromFilters } from './utils/generateSearchFromFilters';
export { default as generateSearchFromObject } from './utils/generateSearchFromObject';
export { default as prefixFileUrlWithBackendUrl } from './utils/prefixFileUrlWithBackendUrl';
+export { default as prefixPluginTranslations } from './utils/prefixPluginTranslations';
// SVGS
export { default as LayoutIcon } from './svgs/Layout';
diff --git a/packages/core/helper-plugin/lib/src/utils/prefixPluginTranslations.js b/packages/core/helper-plugin/lib/src/utils/prefixPluginTranslations.js
new file mode 100644
index 0000000000..c94fc993b8
--- /dev/null
+++ b/packages/core/helper-plugin/lib/src/utils/prefixPluginTranslations.js
@@ -0,0 +1,9 @@
+const prefixPluginTranslations = (trad, pluginId) => {
+ return Object.keys(trad).reduce((acc, current) => {
+ acc[`${pluginId}.${current}`] = trad[current];
+
+ return acc;
+ }, {});
+};
+
+export default prefixPluginTranslations;
diff --git a/packages/core/helper-plugin/package.json b/packages/core/helper-plugin/package.json
index 166aeb4b76..60257e3fe0 100644
--- a/packages/core/helper-plugin/package.json
+++ b/packages/core/helper-plugin/package.json
@@ -80,7 +80,7 @@
"react": "^16.14.0",
"react-dom": "^16.9.0",
"react-helmet": "^6.1.0",
- "react-intl": "4.5.0",
+ "react-intl": "5.20.2",
"react-router": "^5.2.0",
"react-router-dom": "^5.0.0",
"reactstrap": "8.4.1",
diff --git a/packages/core/upload/admin/src/index.js b/packages/core/upload/admin/src/index.js
index 8ff4b92c35..cdf49ecd77 100644
--- a/packages/core/upload/admin/src/index.js
+++ b/packages/core/upload/admin/src/index.js
@@ -5,7 +5,7 @@
// Also the strapi-generate-plugins/files/admin/src/index.js needs to be updated
// IF THE DOC IS NOT UPDATED THE PULL REQUEST WILL NOT BE MERGED
import React from 'react';
-import { CheckPagePermissions } from '@strapi/helper-plugin';
+import { CheckPagePermissions, prefixPluginTranslations } from '@strapi/helper-plugin';
import pluginPkg from '../../package.json';
import pluginLogo from './assets/images/logo.svg';
import pluginPermissions from './permissions';
@@ -14,7 +14,6 @@ import InputMedia from './components/InputMedia';
import InputModalStepper from './components/InputModalStepper';
import SettingsPage from './pages/SettingsPage';
import reducers from './reducers';
-import trads from './translations';
import pluginId from './pluginId';
import { getTrad } from './utils';
@@ -41,7 +40,7 @@ export default {
isRequired: pluginPkg.strapi.required || false,
name,
pluginLogo,
- trads,
+
menu: {
pluginsSectionLinks: [
{
@@ -73,4 +72,27 @@ export default {
permissions: pluginPermissions.settings,
});
},
+ async registerTrads({ locales }) {
+ const importedTrads = await Promise.all(
+ locales.map(locale => {
+ return import(
+ /* webpackChunkName: "upload-translation-[request]" */ `./translations/${locale}.json`
+ )
+ .then(({ default: data }) => {
+ return {
+ data: prefixPluginTranslations(data, pluginId),
+ locale,
+ };
+ })
+ .catch(() => {
+ return {
+ data: {},
+ locale,
+ };
+ });
+ })
+ );
+
+ return Promise.resolve(importedTrads);
+ },
};
diff --git a/packages/core/upload/admin/src/translations/index.js b/packages/core/upload/admin/src/translations/index.js
deleted file mode 100644
index df0a345db2..0000000000
--- a/packages/core/upload/admin/src/translations/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// import de from './de.json';
-// import dk from './dk.json';
-import en from './en.json';
-// import es from './es.json';
-import fr from './fr.json';
-// import he from './he.json';
-// import it from './it.json';
-// import ja from './ja.json';
-// import ms from './ms.json';
-// import ru from './ru.json';
-// import th from './th.json';
-// import uk from './uk.json';
-// import ptBR from './pt-BR.json';
-// import sk from './sk.json';
-// import zh from './zh.json';
-// import pl from './pl.json';
-
-const trads = {
- // de,
- // dk,
- en,
- // es,
- fr,
- // he,
- // it,
- // ja,
- // ms,
- // ru,
- // th,
- // uk,
- // 'pt-BR': ptBR,
- // sk,
- // zh,
- // pl,
-};
-
-export default trads;
diff --git a/packages/core/upload/package.json b/packages/core/upload/package.json
index 51df57762c..0505c5cf57 100644
--- a/packages/core/upload/package.json
+++ b/packages/core/upload/package.json
@@ -32,7 +32,7 @@
"react": "^16.14.0",
"react-copy-to-clipboard": "^5.0.3",
"react-dom": "^16.9.0",
- "react-intl": "4.5.0",
+ "react-intl": "5.20.2",
"react-redux": "7.2.3",
"react-router": "^5.2.0",
"react-router-dom": "^5.0.0",
diff --git a/packages/generators/app/lib/resources/files/admin/admin.config.js b/packages/generators/app/lib/resources/files/admin/admin.config.js
new file mode 100644
index 0000000000..915507db5d
--- /dev/null
+++ b/packages/generators/app/lib/resources/files/admin/admin.config.js
@@ -0,0 +1,18 @@
+'use strict';
+/* eslint-disable no-unused-vars */
+
+// TODO move the file in the config folder
+
+module.exports = {
+ webpack: (config, webpack) => {
+ // Note: we provide webpack above so you should not `require` it
+ // Perform customizations to webpack config
+ // Important: return the modified config
+ return config;
+ },
+ app: config => {
+ config.locales = ['fr'];
+
+ return config;
+ },
+};
diff --git a/packages/generators/plugin/files/admin/src/index.js b/packages/generators/plugin/files/admin/src/index.js
index 1ea0788c00..a3431d8174 100644
--- a/packages/generators/plugin/files/admin/src/index.js
+++ b/packages/generators/plugin/files/admin/src/index.js
@@ -1,8 +1,8 @@
+import { prefixPluginTranslations } from '@strapi/helper-plugin';
import pluginPkg from '../../package.json';
import pluginId from './pluginId';
import App from './containers/App';
import Initializer from './containers/Initializer';
-import trads from './translations';
const pluginDescription = pluginPkg.strapi.description || pluginPkg.description;
const icon = pluginPkg.strapi.icon;
@@ -39,8 +39,28 @@ export default {
},
],
},
- trads,
});
},
boot(app) {},
+ async registerTrads({ locales }) {
+ const importedTrads = await Promise.all(
+ locales.map(locale => {
+ return import(`./translations/${locale}.json`)
+ .then(({ default: data }) => {
+ return {
+ data: prefixPluginTranslations(data, pluginId),
+ locale,
+ };
+ })
+ .catch(() => {
+ return {
+ data: {},
+ locale,
+ };
+ });
+ })
+ );
+
+ return Promise.resolve(importedTrads);
+ },
};
diff --git a/packages/generators/plugin/files/admin/src/translations/index.js b/packages/generators/plugin/files/admin/src/translations/index.js
deleted file mode 100644
index bb24bb1106..0000000000
--- a/packages/generators/plugin/files/admin/src/translations/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import en from './en.json';
-import fr from './fr.json';
-
-const trads = {
- en,
- fr,
-};
-
-export default trads;
diff --git a/packages/plugins/documentation/admin/src/index.js b/packages/plugins/documentation/admin/src/index.js
index 98d55ac357..f403ebcf24 100644
--- a/packages/plugins/documentation/admin/src/index.js
+++ b/packages/plugins/documentation/admin/src/index.js
@@ -4,12 +4,12 @@
// Here's the file: strapi/docs/3.0.0-beta.x/guides/registering-a-field-in-admin.md
// Also the strapi-generate-plugins/files/admin/src/index.js needs to be updated
// IF THE DOC IS NOT UPDATED THE PULL REQUEST WILL NOT BE MERGED
+import { prefixPluginTranslations } from '@strapi/helper-plugin';
import pluginPkg from '../../package.json';
import pluginPermissions from './permissions';
import pluginId from './pluginId';
import pluginLogo from './assets/images/logo.svg';
import App from './pages/App';
-import trads from './translations';
const pluginDescription = pluginPkg.strapi.description || pluginPkg.description;
const icon = pluginPkg.strapi.icon;
@@ -28,8 +28,6 @@ export default {
name,
pluginLogo,
// TODO
- trads,
- // TODO
menu: {
pluginsSectionLinks: [
{
@@ -46,4 +44,27 @@ export default {
});
},
boot() {},
+ async registerTrads({ locales }) {
+ const importedTrads = await Promise.all(
+ locales.map(locale => {
+ return import(
+ /* webpackChunkName: "documentation-translation-[request]" */ `./translations/${locale}.json`
+ )
+ .then(({ default: data }) => {
+ return {
+ data: prefixPluginTranslations(data, pluginId),
+ locale,
+ };
+ })
+ .catch(() => {
+ return {
+ data: {},
+ locale,
+ };
+ });
+ })
+ );
+
+ return Promise.resolve(importedTrads);
+ },
};
diff --git a/packages/plugins/documentation/admin/src/translations/index.js b/packages/plugins/documentation/admin/src/translations/index.js
deleted file mode 100644
index d5534490a9..0000000000
--- a/packages/plugins/documentation/admin/src/translations/index.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// TODO
-// import ar from './ar.json';
-// import cs from './cs.json';
-// import de from './de.json';
-import en from './en.json';
-// import es from './es.json';
-import fr from './fr.json';
-// import id from './id.json';
-// import it from './it.json';
-// import ko from './ko.json';
-// import ms from './ms.json';
-// import nl from './nl.json';
-// import pl from './pl.json';
-// import ptBR from './pt-BR.json';
-// import pt from './pt.json';
-// import ru from './ru.json';
-// import th from './th.json';
-// import tr from './tr.json';
-// import uk from './uk.json';
-// import vi from './vi.json';
-// import zhHans from './zh-Hans.json';
-// import zh from './zh.json';
-// import sk from './sk.json';
-
-const trads = {
- // ar,
- // cs,
- // de,
- en,
- // es,
- fr,
- // id,
- // it,
- // ko,
- // ms,
- // nl,
- // pl,
- // 'pt-BR': ptBR,
- // pt,
- // ru,
- // th,
- // tr,
- // uk,
- // vi,
- // 'zh-Hans': zhHans,
- // zh,
- // sk,
-};
-
-export default trads;
diff --git a/packages/plugins/documentation/package.json b/packages/plugins/documentation/package.json
index 1b0f616b14..6334aaf776 100644
--- a/packages/plugins/documentation/package.json
+++ b/packages/plugins/documentation/package.json
@@ -27,7 +27,7 @@
"react": "^16.14.0",
"react-copy-to-clipboard": "^5.0.3",
"react-dom": "^16.9.0",
- "react-intl": "4.5.0",
+ "react-intl": "5.20.2",
"react-redux": "7.2.3",
"react-router": "^5.2.0",
"react-router-dom": "^5.0.0",
diff --git a/packages/plugins/graphql/admin/src/index.js b/packages/plugins/graphql/admin/src/index.js
index c67aa1b793..c9a1e22e09 100644
--- a/packages/plugins/graphql/admin/src/index.js
+++ b/packages/plugins/graphql/admin/src/index.js
@@ -1,7 +1,7 @@
+import { prefixPluginTranslations } from '@strapi/helper-plugin';
import pluginPkg from '../../package.json';
import pluginId from './pluginId';
import pluginLogo from './assets/images/logo.svg';
-import trads from './translations';
const pluginDescription = pluginPkg.strapi.description || pluginPkg.description;
const icon = pluginPkg.strapi.icon;
@@ -17,8 +17,30 @@ export default {
isRequired: pluginPkg.strapi.required || false,
name,
pluginLogo,
- trads,
});
},
boot() {},
+ async registerTrads({ locales }) {
+ const importedTrads = await Promise.all(
+ locales.map(locale => {
+ return import(
+ /* webpackChunkName: "graphql-translation-[request]" */ `./translations/${locale}.json`
+ )
+ .then(({ default: data }) => {
+ return {
+ data: prefixPluginTranslations(data, pluginId),
+ locale,
+ };
+ })
+ .catch(() => {
+ return {
+ data: {},
+ locale,
+ };
+ });
+ })
+ );
+
+ return Promise.resolve(importedTrads);
+ },
};
diff --git a/packages/plugins/graphql/admin/src/translations/index.js b/packages/plugins/graphql/admin/src/translations/index.js
deleted file mode 100644
index bb24bb1106..0000000000
--- a/packages/plugins/graphql/admin/src/translations/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import en from './en.json';
-import fr from './fr.json';
-
-const trads = {
- en,
- fr,
-};
-
-export default trads;
diff --git a/packages/plugins/i18n/admin/src/index.js b/packages/plugins/i18n/admin/src/index.js
index c2b34dd20a..a168606df5 100644
--- a/packages/plugins/i18n/admin/src/index.js
+++ b/packages/plugins/i18n/admin/src/index.js
@@ -1,5 +1,6 @@
import get from 'lodash/get';
import * as yup from 'yup';
+import { prefixPluginTranslations } from '@strapi/helper-plugin';
import pluginPkg from '../../package.json';
import pluginLogo from './assets/images/logo.svg';
import CheckboxConfirmation from './components/CheckboxConfirmation';
@@ -10,7 +11,6 @@ import LocalePicker from './components/LocalePicker';
import middlewares from './middlewares';
import pluginPermissions from './permissions';
import pluginId from './pluginId';
-import trads from './translations';
import { getTrad } from './utils';
import mutateCTBContentTypeSchema from './utils/mutateCTBContentTypeSchema';
import LOCALIZED_FIELDS from './utils/localizedFields';
@@ -37,7 +37,6 @@ export default {
mainComponent: null,
name,
pluginLogo,
- trads,
});
},
boot(app) {
@@ -161,4 +160,27 @@ export default {
});
}
},
+ async registerTrads({ locales }) {
+ const importedTrads = await Promise.all(
+ locales.map(locale => {
+ return import(
+ /* webpackChunkName: "i18n-translation-[request]" */ `./translations/${locale}.json`
+ )
+ .then(({ default: data }) => {
+ return {
+ data: prefixPluginTranslations(data, pluginId),
+ locale,
+ };
+ })
+ .catch(() => {
+ return {
+ data: {},
+ locale,
+ };
+ });
+ })
+ );
+
+ return Promise.resolve(importedTrads);
+ },
};
diff --git a/packages/plugins/i18n/admin/src/translations/index.js b/packages/plugins/i18n/admin/src/translations/index.js
deleted file mode 100644
index bb24bb1106..0000000000
--- a/packages/plugins/i18n/admin/src/translations/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import en from './en.json';
-import fr from './fr.json';
-
-const trads = {
- en,
- fr,
-};
-
-export default trads;
diff --git a/packages/plugins/sentry/admin/src/index.js b/packages/plugins/sentry/admin/src/index.js
index c67aa1b793..e06e41ee0c 100644
--- a/packages/plugins/sentry/admin/src/index.js
+++ b/packages/plugins/sentry/admin/src/index.js
@@ -1,7 +1,7 @@
+import { prefixPluginTranslations } from '@strapi/helper-plugin';
import pluginPkg from '../../package.json';
import pluginId from './pluginId';
import pluginLogo from './assets/images/logo.svg';
-import trads from './translations';
const pluginDescription = pluginPkg.strapi.description || pluginPkg.description;
const icon = pluginPkg.strapi.icon;
@@ -17,8 +17,30 @@ export default {
isRequired: pluginPkg.strapi.required || false,
name,
pluginLogo,
- trads,
});
},
boot() {},
+ async registerTrads({ locales }) {
+ const importedTrads = await Promise.all(
+ locales.map(locale => {
+ return import(
+ /* webpackChunkName: "sentry-translation-[request]" */ `./translations/${locale}.json`
+ )
+ .then(({ default: data }) => {
+ return {
+ data: prefixPluginTranslations(data, pluginId),
+ locale,
+ };
+ })
+ .catch(() => {
+ return {
+ data: {},
+ locale,
+ };
+ });
+ })
+ );
+
+ return Promise.resolve(importedTrads);
+ },
};
diff --git a/packages/plugins/sentry/admin/src/translations/index.js b/packages/plugins/sentry/admin/src/translations/index.js
deleted file mode 100644
index b8134d0dac..0000000000
--- a/packages/plugins/sentry/admin/src/translations/index.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// import ar from './ar.json';
-// import cs from './cs.json';
-// import de from './de.json';
-import en from './en.json';
-// import es from './es.json';
-import fr from './fr.json';
-// import id from './id.json';
-// import it from './it.json';
-// import ko from './ko.json';
-// import ms from './ms.json';
-// import nl from './nl.json';
-// import pl from './pl.json';
-// import ptBR from './pt-BR.json';
-// import pt from './pt.json';
-// import ru from './ru.json';
-// import th from './th.json';
-// import tr from './tr.json';
-// import uk from './uk.json';
-// import vi from './vi.json';
-// import zhHans from './zh-Hans.json';
-// import zh from './zh.json';
-// import sk from './sk.json';
-
-const trads = {
- // ar,
- // cs,
- // de,
- en,
- // es,
- fr,
- // id,
- // it,
- // ko,
- // ms,
- // nl,
- // pl,
- // 'pt-BR': ptBR,
- // pt,
- // ru,
- // th,
- // tr,
- // uk,
- // vi,
- // 'zh-Hans': zhHans,
- // zh,
- // sk,
-};
-
-export default trads;
diff --git a/packages/plugins/users-permissions/admin/src/index.js b/packages/plugins/users-permissions/admin/src/index.js
index 20c7c464c8..3a4ecc6030 100644
--- a/packages/plugins/users-permissions/admin/src/index.js
+++ b/packages/plugins/users-permissions/admin/src/index.js
@@ -5,12 +5,11 @@
// Also the strapi-generate-plugins/files/admin/src/index.js needs to be updated
// IF THE DOC IS NOT UPDATED THE PULL REQUEST WILL NOT BE MERGED
import React from 'react';
-import { CheckPagePermissions } from '@strapi/helper-plugin';
+import { CheckPagePermissions, prefixPluginTranslations } from '@strapi/helper-plugin';
import pluginPkg from '../../package.json';
import pluginLogo from './assets/images/logo.svg';
import pluginPermissions from './permissions';
import pluginId from './pluginId';
-import trads from './translations';
import RolesPage from './pages/Roles';
import ProvidersPage from './pages/Providers';
import EmailTemplatesPage from './pages/EmailTemplates';
@@ -100,8 +99,30 @@ export default {
isRequired: pluginPkg.strapi.required || false,
name,
pluginLogo,
- trads,
});
},
boot() {},
+ async registerTrads({ locales }) {
+ const importedTrads = await Promise.all(
+ locales.map(locale => {
+ return import(
+ /* webpackChunkName: "users-permissions-translation-[request]" */ `./translations/${locale}.json`
+ )
+ .then(({ default: data }) => {
+ return {
+ data: prefixPluginTranslations(data, pluginId),
+ locale,
+ };
+ })
+ .catch(() => {
+ return {
+ data: {},
+ locale,
+ };
+ });
+ })
+ );
+
+ return Promise.resolve(importedTrads);
+ },
};
diff --git a/packages/plugins/users-permissions/admin/src/translations/index.js b/packages/plugins/users-permissions/admin/src/translations/index.js
deleted file mode 100644
index 4ac47e3ed7..0000000000
--- a/packages/plugins/users-permissions/admin/src/translations/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-// import ar from './ar.json';
-// import cs from './cs.json';
-// import de from './de.json';
-// import dk from './dk.json';
-import en from './en.json';
-// import es from './es.json';
-import fr from './fr.json';
-// import id from './id.json';
-// import it from './it.json';
-// import ja from './ja.json';
-// import ko from './ko.json';
-// import ms from './ms.json';
-// import nl from './nl.json';
-// import pl from './pl.json';
-// import ptBR from './pt-BR.json';
-// import pt from './pt.json';
-// import ru from './ru.json';
-// import th from './th.json';
-// import tr from './tr.json';
-// import uk from './uk.json';
-// import vi from './vi.json';
-// import zhHans from './zh-Hans.json';
-// import zh from './zh.json';
-// import sk from './sk.json';
-// import sv from './sv.json';
-
-const trads = {
- // ar,
- // cs,
- // de,
- // dk,
- en,
- // es,
- fr,
- // id,
- // it,
- // ja,
- // ko,
- // ms,
- // nl,
- // pl,
- // 'pt-BR': ptBR,
- // pt,
- // ru,
- // th,
- // tr,
- // uk,
- // vi,
- // 'zh-Hans': zhHans,
- // zh,
- // sk,
- // sv,
-};
-
-export default trads;
diff --git a/packages/plugins/users-permissions/package.json b/packages/plugins/users-permissions/package.json
index a12450b111..897075195b 100644
--- a/packages/plugins/users-permissions/package.json
+++ b/packages/plugins/users-permissions/package.json
@@ -28,7 +28,7 @@
"purest": "3.1.0",
"react": "^16.14.0",
"react-dom": "^16.9.0",
- "react-intl": "4.5.0",
+ "react-intl": "5.20.2",
"react-redux": "7.2.3",
"react-router": "^5.2.0",
"react-router-dom": "^5.0.0",
diff --git a/yarn.lock b/yarn.lock
index c8fe093be2..7200e07e17 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1390,53 +1390,63 @@
dependencies:
tslib "^2.0.1"
-"@formatjs/ecma402-abstract@1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.4.0.tgz#ac6c17a8fffac43c6d68c849a7b732626d32654c"
- integrity sha512-Mv027hcLFjE45K8UJ8PjRpdDGfR0aManEFj1KzoN8zXNveHGEygpZGfFf/FTTMl+QEVSrPAUlyxaCApvmv47AQ==
+"@formatjs/ecma402-abstract@1.9.3":
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.9.3.tgz#00892014c805935b5b1345d238246e9bf3a2de50"
+ integrity sha512-DBrRUL65m4SVtfq+T4Qltd8+upAzfb9K1MX0UZ0hqQ0wpBY0PSIti9XJe0ZQ/j2v/KxpwQ0Jw5NLumKVezJFQg==
dependencies:
- tslib "^2.0.1"
+ tslib "^2.1.0"
-"@formatjs/intl-displaynames@^1.2.5":
- version "1.2.10"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-1.2.10.tgz#bb9625cca90b099978cd967c6a98aaf4e23fc878"
- integrity sha512-GROA2RP6+7Ouu0WnHFF78O5XIU7pBfI19WM1qm93l6MFWibUk67nCfVCK3VAYJkLy8L8ZxjkYT11VIAfvSz8wg==
+"@formatjs/fast-memoize@1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.1.1.tgz#3006b58aca1e39a98aca213356b42da5d173f26b"
+ integrity sha512-mIqBr5uigIlx13eZTOPSEh2buDiy3BCdMYUtewICREQjbb4xarDiVWoXSnrERM7NanZ+0TAHNXSqDe6HpEFQUg==
+
+"@formatjs/icu-messageformat-parser@2.0.6":
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.0.6.tgz#7471c2116982f07b3d9b80e4572a870f20adbaf6"
+ integrity sha512-dgOZ2kq3sbjjC4P0IIghXFUiGY+x9yyypBJF9YFACjw8gPq/OSPmOzdMGvjY9hl4EeeIhhsDd4LIAN/3zHG99A==
dependencies:
- "@formatjs/intl-utils" "^2.3.0"
+ "@formatjs/ecma402-abstract" "1.9.3"
+ "@formatjs/icu-skeleton-parser" "1.2.7"
+ tslib "^2.1.0"
-"@formatjs/intl-listformat@^1.4.4":
- version "1.4.8"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-1.4.8.tgz#70b81005e7dcf74329cb5b314a940ce5fce36cd0"
- integrity sha512-WNMQlEg0e50VZrGIkgD5n7+DAMGt3boKi1GJALfhFMymslJb5i+5WzWxyj/3a929Z6MAFsmzRIJjKuv+BxKAOQ==
+"@formatjs/icu-skeleton-parser@1.2.7":
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.2.7.tgz#a74954695c37470efdeff828799654088e567c34"
+ integrity sha512-xm1rJMOz4fwVfWH98VKtbTpZvyQ45plHilkCF16Nm6bAgosYC/IcMmgJisGr6uHqb5TvJRXE07+EvnkIIQjsdA==
dependencies:
- "@formatjs/intl-utils" "^2.3.0"
+ "@formatjs/ecma402-abstract" "1.9.3"
+ tslib "^2.1.0"
-"@formatjs/intl-numberformat@^5.5.2":
- version "5.7.6"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-numberformat/-/intl-numberformat-5.7.6.tgz#630206bb0acefd2d508ccf4f82367c6875cad611"
- integrity sha512-ZlZfYtvbVHYZY5OG3RXizoCwxKxEKOrzEe2YOw9wbzoxF3PmFn0SAgojCFGLyNXkkR6xVxlylhbuOPf1dkIVNg==
+"@formatjs/intl-displaynames@5.1.5":
+ version "5.1.5"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-5.1.5.tgz#fb65c09493c3488e11e72b7d9512f0c1cc18b247"
+ integrity sha512-338DoPv8C4BqLqE7Sn5GkJbbkpL0RG8VoMP6qMJywx7bXVgOdWXiXUl3owdCPvq0bpVGGxTl+UNnF+UH8wGdLg==
dependencies:
- "@formatjs/ecma402-abstract" "1.4.0"
- tslib "^2.0.1"
+ "@formatjs/ecma402-abstract" "1.9.3"
+ tslib "^2.1.0"
-"@formatjs/intl-relativetimeformat@^4.5.12":
- version "4.5.16"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-4.5.16.tgz#7449cef3213dd66d25924ca41f125f87b58df95a"
- integrity sha512-IQ0haY97oHAH5OYUdykNiepdyEWj3SAT+Fp9ZpR85ov2JNiFx+12WWlxlVS8ehdyncC2ZMt/SwFIy2huK2+6/A==
+"@formatjs/intl-listformat@6.2.5":
+ version "6.2.5"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-6.2.5.tgz#b2534700807e3ca2c2d8180592c15751037c908a"
+ integrity sha512-LRGroM+uLc8dL5J8zwHhNNxWw45nnHQMphW3zEnD9AySKPbFRsrSxzV8LYA93U5mkvMSBf49RdEODpdeyDak/Q==
dependencies:
- "@formatjs/intl-utils" "^2.3.0"
+ "@formatjs/ecma402-abstract" "1.9.3"
+ tslib "^2.1.0"
-"@formatjs/intl-unified-numberformat@^3.3.3":
- version "3.3.7"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-unified-numberformat/-/intl-unified-numberformat-3.3.7.tgz#9995a24568908188e716d81a1de5b702b2ee00e2"
- integrity sha512-KnWgLRHzCAgT9eyt3OS34RHoyD7dPDYhRcuKn+/6Kv2knDF8Im43J6vlSW6Hm1w63fNq3ZIT1cFk7RuVO3Psag==
+"@formatjs/intl@1.13.0":
+ version "1.13.0"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-1.13.0.tgz#31f11d88220b6b864e58d3a7c7cb46e3cee62bf3"
+ integrity sha512-Wu8NU+OT9ZmkRSeIfKBY8GRrsCpF/Abc7v6Q8wHzA/VxT7HZblhO8YryALISqc0Vdmq4xUnvbrX4cSNSXdafZg==
dependencies:
- "@formatjs/intl-utils" "^2.3.0"
-
-"@formatjs/intl-utils@^2.2.2", "@formatjs/intl-utils@^2.3.0":
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-utils/-/intl-utils-2.3.0.tgz#2dc8c57044de0340eb53a7ba602e59abf80dc799"
- integrity sha512-KWk80UPIzPmUg+P0rKh6TqspRw0G6eux1PuJr+zz47ftMaZ9QDwbGzHZbtzWkl5hgayM/qrKRutllRC7D/vVXQ==
+ "@formatjs/ecma402-abstract" "1.9.3"
+ "@formatjs/fast-memoize" "1.1.1"
+ "@formatjs/icu-messageformat-parser" "2.0.6"
+ "@formatjs/intl-displaynames" "5.1.5"
+ "@formatjs/intl-listformat" "6.2.5"
+ intl-messageformat "9.6.18"
+ tslib "^2.1.0"
"@fortawesome/fontawesome-common-types@^0.2.35":
version "0.2.35"
@@ -3620,11 +3630,6 @@
resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69"
integrity sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==
-"@types/invariant@^2.2.31":
- version "2.2.34"
- resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.34.tgz#05e4f79f465c2007884374d4795452f995720bbe"
- integrity sha512-lYUtmJ9BqUN688fGY1U1HZoWT1/Jrmgigx2loq4ZcJpICECm/Om3V314BxdzypO0u5PORKGMM6x0OXaljV1YFg==
-
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
version "2.0.3"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762"
@@ -10772,25 +10777,14 @@ interpret@^2.2.0:
resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9"
integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==
-intl-format-cache@^4.2.24, intl-format-cache@^4.2.43:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/intl-format-cache/-/intl-format-cache-4.3.1.tgz#484d31a9872161e6c02139349b259a6229ade377"
- integrity sha512-OEUYNA7D06agqPOYhbTkl0T8HA3QKSuwWh1HiClEnpd9vw7N+3XsQt5iZ0GUEchp5CW1fQk/tary+NsbF3yQ1Q==
-
-intl-messageformat-parser@^5.0.0, intl-messageformat-parser@^5.2.1:
- version "5.5.1"
- resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-5.5.1.tgz#f09a692755813e6220081e3374df3fb1698bd0c6"
- integrity sha512-TvB3LqF2VtP6yI6HXlRT5TxX98HKha6hCcrg9dwlPwNaedVNuQA9KgBdtWKgiyakyCTYHQ+KJeFEstNKfZr64w==
+intl-messageformat@9.6.18:
+ version "9.6.18"
+ resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.6.18.tgz#785cc0c44a1a288fbbda63308907c3eab4eebe9f"
+ integrity sha512-phG2EtMS/J6C4pcbErPkTSoqJ+T6qNfPVWTv5cDnI/nuCDKRUHPLDp4QpMdxIWPSUYPj7Lq69vMEIqg91x+H1Q==
dependencies:
- "@formatjs/intl-numberformat" "^5.5.2"
-
-intl-messageformat@^8.3.7:
- version "8.4.1"
- resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-8.4.1.tgz#f31c811efc561700b61ab4ee4716b870787c0fe5"
- integrity sha512-N4jLt0KebfqXZZZQRwBwZMrqwccHzZnN6KSeUsfidIoHMPIlLIgq08KcYsn7bZS6adh1KKH4/99VODWDDDu85Q==
- dependencies:
- intl-format-cache "^4.2.43"
- intl-messageformat-parser "^5.2.1"
+ "@formatjs/fast-memoize" "1.1.1"
+ "@formatjs/icu-messageformat-parser" "2.0.6"
+ tslib "^2.1.0"
into-stream@^5.1.0:
version "5.1.1"
@@ -16623,23 +16617,20 @@ react-input-autosize@^3.0.0:
dependencies:
prop-types "^15.5.8"
-react-intl@4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-4.5.0.tgz#f1ea00eb393b1a0e33850819b5ce8947abed187e"
- integrity sha512-CQuFR9vjUYOjzxsm7KaVRdM4hKOyMNY2ejvniZCbz3Ni3jMbjfTgcXYmxqYBn0lenMaFg3G2ol7HKkoy2YSXlQ==
+react-intl@5.20.2:
+ version "5.20.2"
+ resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-5.20.2.tgz#e453889e028502b9913e4ed1c35642ec74daba05"
+ integrity sha512-Uv3OydXIjF1wABfUm0mI8SItNQW7zuFaU42W0qXYVRvSoRXMv9rUorC1FLHTiS5zifQCRvWs65VejL8PO5he8w==
dependencies:
- "@formatjs/intl-displaynames" "^1.2.5"
- "@formatjs/intl-listformat" "^1.4.4"
- "@formatjs/intl-relativetimeformat" "^4.5.12"
- "@formatjs/intl-unified-numberformat" "^3.3.3"
- "@formatjs/intl-utils" "^2.2.2"
+ "@formatjs/ecma402-abstract" "1.9.3"
+ "@formatjs/icu-messageformat-parser" "2.0.6"
+ "@formatjs/intl" "1.13.0"
+ "@formatjs/intl-displaynames" "5.1.5"
+ "@formatjs/intl-listformat" "6.2.5"
"@types/hoist-non-react-statics" "^3.3.1"
- "@types/invariant" "^2.2.31"
hoist-non-react-statics "^3.3.2"
- intl-format-cache "^4.2.24"
- intl-messageformat "^8.3.7"
- intl-messageformat-parser "^5.0.0"
- shallow-equal "^1.2.1"
+ intl-messageformat "9.6.18"
+ tslib "^2.1.0"
react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6:
version "16.13.1"
@@ -18058,11 +18049,6 @@ shallow-clone@^3.0.0:
dependencies:
kind-of "^6.0.2"
-shallow-equal@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da"
- integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==
-
shallowequal@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"