From 22ece10cde7626ca1549f378c47e5fc4018d68d6 Mon Sep 17 00:00:00 2001 From: DMehaffy Date: Thu, 24 Jun 2021 00:05:54 -0700 Subject: [PATCH 01/21] Fix missing lodash upgrade in i18n plugin (#10538) Signed-off-by: Derrick Mehaffy --- packages/strapi-plugin-i18n/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-plugin-i18n/package.json b/packages/strapi-plugin-i18n/package.json index 6165db485d..b37f1dfb63 100644 --- a/packages/strapi-plugin-i18n/package.json +++ b/packages/strapi-plugin-i18n/package.json @@ -9,7 +9,7 @@ "required": false }, "dependencies": { - "lodash": "4.17.20", + "lodash": "4.17.21", "p-map": "4.0.0", "pluralize": "8.0.0", "strapi-utils": "3.6.5" From f784d5b81389364bcc689adfb05662c27ff16cf9 Mon Sep 17 00:00:00 2001 From: Mark Kaylor Date: Fri, 25 Jun 2021 15:19:19 +0200 Subject: [PATCH 02/21] fix typo didGotToMarketplace => didGoToMarketPlace --- .../strapi-admin/admin/src/containers/MarketplacePage/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-admin/admin/src/containers/MarketplacePage/index.js b/packages/strapi-admin/admin/src/containers/MarketplacePage/index.js index 23fbb65de0..44ada1cbe1 100644 --- a/packages/strapi-admin/admin/src/containers/MarketplacePage/index.js +++ b/packages/strapi-admin/admin/src/containers/MarketplacePage/index.js @@ -15,7 +15,7 @@ const MarketPlacePage = () => { const emitEventRef = useRef(emitEvent); useEffect(() => { - emitEventRef.current('didGotToMarketplace'); + emitEventRef.current('didGoToMarketplace'); }, []); if (isLoading || error) { From 977cdcf96591a6415a5f0ac041d6effb5f0c62bd Mon Sep 17 00:00:00 2001 From: Valeri Karpov Date: Wed, 16 Jun 2021 16:29:55 -0400 Subject: [PATCH 03/21] always escape RegExp when building query in mongoose connector Fix strapi/strapi#10348 --- packages/strapi-connector-mongoose/lib/buildQuery.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/strapi-connector-mongoose/lib/buildQuery.js b/packages/strapi-connector-mongoose/lib/buildQuery.js index 379206b4b5..2c373079b7 100644 --- a/packages/strapi-connector-mongoose/lib/buildQuery.js +++ b/packages/strapi-connector-mongoose/lib/buildQuery.js @@ -601,7 +601,7 @@ const buildWhereClause = ({ field, operator, value }) => { case 'contains': { return { [field]: { - $regex: `${val}`, + $regex: _.escapeRegExp(`${val}`), $options: 'i', }, }; @@ -615,7 +615,7 @@ const buildWhereClause = ({ field, operator, value }) => { case 'containss': return { [field]: { - $regex: `${val}`, + $regex: _.escapeRegExp(`${val}`), }, }; case 'ncontainss': From 23bd0226a594058f5b0b25c82aa03f90b691df9b Mon Sep 17 00:00:00 2001 From: Valeri Karpov Date: Sun, 27 Jun 2021 22:11:51 -0400 Subject: [PATCH 04/21] add test case for searching with unescaped regexp character --- packages/strapi/tests/search.test.e2e.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/strapi/tests/search.test.e2e.js b/packages/strapi/tests/search.test.e2e.js index a8e813b068..fe642295ff 100644 --- a/packages/strapi/tests/search.test.e2e.js +++ b/packages/strapi/tests/search.test.e2e.js @@ -248,5 +248,18 @@ describe('Search query', () => { expect(res.body.length).toBe(1); expect(res.body[0]).toMatchObject(data.bed[0]); }); + test('search with a backslash', async () => { + const res = await rq({ + method: 'GET', + url: '/beds', + qs: { + _q: 'Sleepy Bed', + name_contains: 'test\\', + }, + }); + + expect(Array.isArray(res.body)).toBe(true); + expect(res.body.length).toBe(0); + }); }); }); From df832fafd1705266d65bae22d8dd3a0fe37964cf Mon Sep 17 00:00:00 2001 From: Kylo Jorgensen Date: Wed, 7 Jul 2021 09:48:54 -0600 Subject: [PATCH 05/21] Fix Typo actualy to actually (#10566) --- packages/strapi-plugin-users-permissions/services/Providers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-plugin-users-permissions/services/Providers.js b/packages/strapi-plugin-users-permissions/services/Providers.js index 3e6424f543..8b5a2d4578 100644 --- a/packages/strapi-plugin-users-permissions/services/Providers.js +++ b/packages/strapi-plugin-users-permissions/services/Providers.js @@ -63,7 +63,7 @@ const connect = (provider, query) => { return resolve([ null, [{ messages: [{ id: 'Auth.advanced.allow_register' }] }], - 'Register action is actualy not available.', + 'Register action is actually not available.', ]); } From 42832d005f846876ae30b1af069c39ecfeab7bb6 Mon Sep 17 00:00:00 2001 From: HichamELBSI Date: Mon, 19 Jul 2021 18:30:56 +0200 Subject: [PATCH 06/21] Upgrade buffet to 3.3.8 Signed-off-by: HichamELBSI --- packages/strapi-admin/package.json | 12 ++--- .../tests/__snapshots__/index.test.js.snap | 51 ++++++++++++++----- packages/strapi-helper-plugin/package.json | 12 ++--- .../package.json | 12 ++--- .../package.json | 12 ++--- .../strapi-plugin-documentation/package.json | 12 ++--- .../__snapshots__/SettingsPage.test.js.snap | 17 +++++-- packages/strapi-plugin-upload/package.json | 12 ++--- .../package.json | 12 ++--- 9 files changed, 94 insertions(+), 58 deletions(-) diff --git a/packages/strapi-admin/package.json b/packages/strapi-admin/package.json index b591ba04eb..a7397229c3 100644 --- a/packages/strapi-admin/package.json +++ b/packages/strapi-admin/package.json @@ -24,12 +24,12 @@ "@babel/preset-env": "^7.13.15", "@babel/preset-react": "^7.13.13", "@babel/runtime": "^7.13.17", - "@buffetjs/core": "3.3.6", - "@buffetjs/custom": "3.3.6", - "@buffetjs/hooks": "3.3.6", - "@buffetjs/icons": "3.3.6", - "@buffetjs/styles": "3.3.6", - "@buffetjs/utils": "3.3.6", + "@buffetjs/core": "3.3.8", + "@buffetjs/custom": "3.3.8", + "@buffetjs/hooks": "3.3.8", + "@buffetjs/icons": "3.3.8", + "@buffetjs/styles": "3.3.8", + "@buffetjs/utils": "3.3.8", "@casl/ability": "^4.1.5", "@fingerprintjs/fingerprintjs": "3.1.1", "@fortawesome/fontawesome-free": "^5.15.3", diff --git a/packages/strapi-helper-plugin/lib/src/components/PopUpWarning/tests/__snapshots__/index.test.js.snap b/packages/strapi-helper-plugin/lib/src/components/PopUpWarning/tests/__snapshots__/index.test.js.snap index 16b7bade14..9296a644b6 100644 --- a/packages/strapi-helper-plugin/lib/src/components/PopUpWarning/tests/__snapshots__/index.test.js.snap +++ b/packages/strapi-helper-plugin/lib/src/components/PopUpWarning/tests/__snapshots__/index.test.js.snap @@ -3,11 +3,22 @@ exports[` should render properly should match snapshot if onlyConfirmButton is false 1`] = ` .c8 { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; height: 30px; - padding: 0 15px 2px; + padding: 0 15px; font-weight: 600; font-size: 1.3rem; - line-height: normal; border-radius: 2px; cursor: pointer; outline: 0; @@ -30,22 +41,31 @@ exports[` should render properly should match snapshot if onlyCo .c8 > span svg { font-size: 10px; - vertical-align: initial; } .c8 > svg { height: 10px; width: auto; margin-right: 10px; - vertical-align: baseline; } .c9 { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; height: 30px; - padding: 0 15px 2px; + padding: 0 15px; font-weight: 600; font-size: 1.3rem; - line-height: normal; border-radius: 2px; cursor: pointer; outline: 0; @@ -68,14 +88,12 @@ exports[` should render properly should match snapshot if onlyCo .c9 > span svg { font-size: 10px; - vertical-align: initial; } .c9 > svg { height: 10px; width: auto; margin-right: 10px; - vertical-align: baseline; } .c5 { @@ -284,11 +302,22 @@ exports[` should render properly should match snapshot if onlyCo exports[` should render properly should match snapshot if onlyConfirmButton is true 1`] = ` .c8 { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; height: 30px; - padding: 0 15px 2px; + padding: 0 15px; font-weight: 600; font-size: 1.3rem; - line-height: normal; border-radius: 2px; cursor: pointer; outline: 0; @@ -311,14 +340,12 @@ exports[` should render properly should match snapshot if onlyCo .c8 > span svg { font-size: 10px; - vertical-align: initial; } .c8 > svg { height: 10px; width: auto; margin-right: 10px; - vertical-align: baseline; } .c5 { diff --git a/packages/strapi-helper-plugin/package.json b/packages/strapi-helper-plugin/package.json index 5282837483..ef6c4d57be 100644 --- a/packages/strapi-helper-plugin/package.json +++ b/packages/strapi-helper-plugin/package.json @@ -50,12 +50,12 @@ "rollup-plugin-terser": "^4.0.4" }, "dependencies": { - "@buffetjs/core": "3.3.6", - "@buffetjs/custom": "3.3.6", - "@buffetjs/hooks": "3.3.6", - "@buffetjs/icons": "3.3.6", - "@buffetjs/styles": "3.3.6", - "@buffetjs/utils": "3.3.6", + "@buffetjs/core": "3.3.8", + "@buffetjs/custom": "3.3.8", + "@buffetjs/hooks": "3.3.8", + "@buffetjs/icons": "3.3.8", + "@buffetjs/styles": "3.3.8", + "@buffetjs/utils": "3.3.8", "@fortawesome/fontawesome-free": "^5.15.2", "@fortawesome/fontawesome-svg-core": "^1.2.35", "@fortawesome/free-brands-svg-icons": "^5.15.2", diff --git a/packages/strapi-plugin-content-manager/package.json b/packages/strapi-plugin-content-manager/package.json index df0bb902e8..34439515fd 100644 --- a/packages/strapi-plugin-content-manager/package.json +++ b/packages/strapi-plugin-content-manager/package.json @@ -9,12 +9,12 @@ "required": true }, "dependencies": { - "@buffetjs/core": "3.3.6", - "@buffetjs/custom": "3.3.6", - "@buffetjs/hooks": "3.3.6", - "@buffetjs/icons": "3.3.6", - "@buffetjs/styles": "3.3.6", - "@buffetjs/utils": "3.3.6", + "@buffetjs/core": "3.3.8", + "@buffetjs/custom": "3.3.8", + "@buffetjs/hooks": "3.3.8", + "@buffetjs/icons": "3.3.8", + "@buffetjs/styles": "3.3.8", + "@buffetjs/utils": "3.3.8", "@sindresorhus/slugify": "1.1.0", "classnames": "^2.3.1", "codemirror": "^5.61.0", diff --git a/packages/strapi-plugin-content-type-builder/package.json b/packages/strapi-plugin-content-type-builder/package.json index a100a52330..0d2006d759 100644 --- a/packages/strapi-plugin-content-type-builder/package.json +++ b/packages/strapi-plugin-content-type-builder/package.json @@ -8,12 +8,12 @@ "description": "content-type-builder.plugin.description" }, "dependencies": { - "@buffetjs/core": "3.3.6", - "@buffetjs/custom": "3.3.6", - "@buffetjs/hooks": "3.3.6", - "@buffetjs/icons": "3.3.6", - "@buffetjs/styles": "3.3.6", - "@buffetjs/utils": "3.3.6", + "@buffetjs/core": "3.3.8", + "@buffetjs/custom": "3.3.8", + "@buffetjs/hooks": "3.3.8", + "@buffetjs/icons": "3.3.8", + "@buffetjs/styles": "3.3.8", + "@buffetjs/utils": "3.3.8", "@sindresorhus/slugify": "1.1.0", "fs-extra": "^9.1.0", "immutable": "^3.8.2", diff --git a/packages/strapi-plugin-documentation/package.json b/packages/strapi-plugin-documentation/package.json index 1c6ed6bdd9..93d1de6f58 100644 --- a/packages/strapi-plugin-documentation/package.json +++ b/packages/strapi-plugin-documentation/package.json @@ -11,12 +11,12 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@buffetjs/core": "3.3.6", - "@buffetjs/custom": "3.3.6", - "@buffetjs/hooks": "3.3.6", - "@buffetjs/icons": "3.3.6", - "@buffetjs/styles": "3.3.6", - "@buffetjs/utils": "3.3.6", + "@buffetjs/core": "3.3.8", + "@buffetjs/custom": "3.3.8", + "@buffetjs/hooks": "3.3.8", + "@buffetjs/icons": "3.3.8", + "@buffetjs/styles": "3.3.8", + "@buffetjs/utils": "3.3.8", "cheerio": "^1.0.0-rc.5", "fs-extra": "^9.1.0", "immutable": "^3.8.2", diff --git a/packages/strapi-plugin-i18n/admin/src/containers/SettingsPage/tests/__snapshots__/SettingsPage.test.js.snap b/packages/strapi-plugin-i18n/admin/src/containers/SettingsPage/tests/__snapshots__/SettingsPage.test.js.snap index b44aa1b752..03780b7511 100644 --- a/packages/strapi-plugin-i18n/admin/src/containers/SettingsPage/tests/__snapshots__/SettingsPage.test.js.snap +++ b/packages/strapi-plugin-i18n/admin/src/containers/SettingsPage/tests/__snapshots__/SettingsPage.test.js.snap @@ -2,11 +2,22 @@ exports[`i18n settings page permissions shows nothing when the user doesn't have read permission 1`] = ` .c3 { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; height: 30px; - padding: 0 15px 2px; + padding: 0 15px; font-weight: 600; font-size: 1.3rem; - line-height: normal; border-radius: 2px; cursor: pointer; outline: 0; @@ -29,14 +40,12 @@ exports[`i18n settings page permissions shows nothing when the user doesn't have .c3 > span svg { font-size: 10px; - vertical-align: initial; } .c3 > svg { height: 10px; width: auto; margin-right: 10px; - vertical-align: baseline; } .c0 { diff --git a/packages/strapi-plugin-upload/package.json b/packages/strapi-plugin-upload/package.json index 2dd84ee3bc..8e033435a5 100644 --- a/packages/strapi-plugin-upload/package.json +++ b/packages/strapi-plugin-upload/package.json @@ -12,12 +12,12 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@buffetjs/core": "3.3.6", - "@buffetjs/custom": "3.3.6", - "@buffetjs/hooks": "3.3.6", - "@buffetjs/icons": "3.3.6", - "@buffetjs/styles": "3.3.6", - "@buffetjs/utils": "3.3.6", + "@buffetjs/core": "3.3.8", + "@buffetjs/custom": "3.3.8", + "@buffetjs/hooks": "3.3.8", + "@buffetjs/icons": "3.3.8", + "@buffetjs/styles": "3.3.8", + "@buffetjs/utils": "3.3.8", "byte-size": "^7.0.1", "cropperjs": "^1.5.11", "immer": "^8.0.1", diff --git a/packages/strapi-plugin-users-permissions/package.json b/packages/strapi-plugin-users-permissions/package.json index 80fe38917d..731dba6b23 100644 --- a/packages/strapi-plugin-users-permissions/package.json +++ b/packages/strapi-plugin-users-permissions/package.json @@ -12,12 +12,12 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@buffetjs/core": "3.3.6", - "@buffetjs/custom": "3.3.6", - "@buffetjs/hooks": "3.3.6", - "@buffetjs/icons": "3.3.6", - "@buffetjs/styles": "3.3.6", - "@buffetjs/utils": "3.3.6", + "@buffetjs/core": "3.3.8", + "@buffetjs/custom": "3.3.8", + "@buffetjs/hooks": "3.3.8", + "@buffetjs/icons": "3.3.8", + "@buffetjs/styles": "3.3.8", + "@buffetjs/utils": "3.3.8", "@purest/providers": "^1.0.2", "bcryptjs": "^2.4.3", "grant-koa": "5.4.8", From 60e6899d8d4f22a099f70cb602baca1957d45ac1 Mon Sep 17 00:00:00 2001 From: Snyk bot Date: Tue, 20 Jul 2021 10:32:43 +0300 Subject: [PATCH 07/21] fix: packages/strapi-provider-email-nodemailer/package.json to reduce vulnerabilities (#10560) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-NODEMAILER-1296415 --- packages/strapi-provider-email-nodemailer/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-provider-email-nodemailer/package.json b/packages/strapi-provider-email-nodemailer/package.json index 295183e486..cdb2f303b6 100644 --- a/packages/strapi-provider-email-nodemailer/package.json +++ b/packages/strapi-provider-email-nodemailer/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "lodash": "4.17.21", - "nodemailer": "6.6.0" + "nodemailer": "6.6.1" }, "repository": { "type": "git", From 75bb5cfa2e7afc19e49dffaedf22e860639e450f Mon Sep 17 00:00:00 2001 From: Pierre Burgy Date: Wed, 4 Aug 2021 09:08:37 +0200 Subject: [PATCH 08/21] Remove one-click deploy buttons (#10592) * Remove one-click deploy buttons Signed-off-by: Pierre Burgy * Remove one-click deploy buttons from strapi package Signed-off-by: Pierre Burgy Co-authored-by: Pierre Burgy --- README.md | 18 ------------------ packages/strapi/README.md | 18 ------------------ 2 files changed, 36 deletions(-) diff --git a/README.md b/README.md index d4d79f50a6..ba47a45d8e 100644 --- a/README.md +++ b/README.md @@ -8,24 +8,6 @@

Try live demo


-

- - - - - - - - - - - - - - - -

-

NPM Version diff --git a/packages/strapi/README.md b/packages/strapi/README.md index ff385c75bf..8ae119f9d2 100644 --- a/packages/strapi/README.md +++ b/packages/strapi/README.md @@ -8,24 +8,6 @@

Try live demo


-

- - - - - - - - - - - - - - - -

-

NPM Version From 4413b846c2d6e5765a33922fb5e7a21c76ba98b2 Mon Sep 17 00:00:00 2001 From: Jodok Batlogg Date: Wed, 4 Aug 2021 09:49:10 +0200 Subject: [PATCH 09/21] Fixed typo (#10652) --- .../controllers/validation/types.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-plugin-content-type-builder/controllers/validation/types.js b/packages/strapi-plugin-content-type-builder/controllers/validation/types.js index ba6d199aa8..ea7feaab69 100644 --- a/packages/strapi-plugin-content-type-builder/controllers/validation/types.js +++ b/packages/strapi-plugin-content-type-builder/controllers/validation/types.js @@ -244,7 +244,7 @@ const getTypeShape = (attribute, { modelType, attributes } = {}) => { if (modelType === modelTypes.COMPONENT && hasComponent(targetCompo)) { return this.createError({ path: this.path, - message: `${targetCompo.modelName} already as a nested compoent. You cannot have more than one level of nesting inside your components.`, + message: `${targetCompo.modelName} already is a nested component. You cannot have more than one level of nesting inside your components.`, }); } return true; From 715355d809a47bdac32f827bbd67d430149772b5 Mon Sep 17 00:00:00 2001 From: Adeel Ahmad Date: Wed, 4 Aug 2021 12:53:03 +0500 Subject: [PATCH 10/21] Update Documentation.js (#10657) fixed typo --- packages/strapi-plugin-documentation/services/Documentation.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-plugin-documentation/services/Documentation.js b/packages/strapi-plugin-documentation/services/Documentation.js index 29d8c92d11..5063ff914d 100755 --- a/packages/strapi-plugin-documentation/services/Documentation.js +++ b/packages/strapi-plugin-documentation/services/Documentation.js @@ -1253,7 +1253,7 @@ module.exports = { if (isModelRelated) { switch (controllerMethod) { case 'count': - return `Retrieve the numver of ${tag} documents`; + return `Retrieve the number of ${tag} documents`; case 'findOne': return `Find one ${tag} record`; case 'find': From 7f673bcbbc05aa2100f295548c48a3f54d574320 Mon Sep 17 00:00:00 2001 From: omrirz Date: Wed, 4 Aug 2021 10:57:50 +0300 Subject: [PATCH 11/21] left menu header background color link from theme (#10584) --- .../admin/src/components/LeftMenu/LeftMenuHeader/Wrapper.js | 3 ++- packages/strapi-admin/admin/src/themes/colors.js | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/strapi-admin/admin/src/components/LeftMenu/LeftMenuHeader/Wrapper.js b/packages/strapi-admin/admin/src/components/LeftMenu/LeftMenuHeader/Wrapper.js index c78d287f33..bc3ae19fe7 100644 --- a/packages/strapi-admin/admin/src/components/LeftMenu/LeftMenuHeader/Wrapper.js +++ b/packages/strapi-admin/admin/src/components/LeftMenu/LeftMenuHeader/Wrapper.js @@ -4,7 +4,8 @@ import PropTypes from 'prop-types'; import Logo from '../../../assets/images/logo-strapi.png'; const Wrapper = styled.div` - background-color: #007eff; + background-color: ${(props) => + props.theme.main.colors.leftMenu['background-header-link']}; padding-left: 2rem; height: ${props => props.theme.main.sizes.leftMenu.height}; diff --git a/packages/strapi-admin/admin/src/themes/colors.js b/packages/strapi-admin/admin/src/themes/colors.js index 69ed52e247..e21c4b9f41 100644 --- a/packages/strapi-admin/admin/src/themes/colors.js +++ b/packages/strapi-admin/admin/src/themes/colors.js @@ -37,6 +37,7 @@ const colors = { 'link-hover': '#1c2431', 'link-color': '#919bae', 'title-color': '#5b626f', + 'background-header-link': '#007eff', }, strapi: { 'gray-light': '#eff3f6', From 3473f45db2ba5c6630d68cf8549ae8fdb671f9d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Onur=20Dumang=C3=B6z?= <40442783+onurdumangoz@users.noreply.github.com> Date: Wed, 4 Aug 2021 10:58:52 +0300 Subject: [PATCH 12/21] Update tr.json (#10512) --- .../admin/src/translations/tr.json | 141 ++++++++++++++---- 1 file changed, 112 insertions(+), 29 deletions(-) diff --git a/packages/strapi-plugin-content-manager/admin/src/translations/tr.json b/packages/strapi-plugin-content-manager/admin/src/translations/tr.json index b04e6aa850..ebfdd61519 100644 --- a/packages/strapi-plugin-content-manager/admin/src/translations/tr.json +++ b/packages/strapi-plugin-content-manager/admin/src/translations/tr.json @@ -1,70 +1,133 @@ { "EditRelations.title": "İlişkili Data", + "api.id": "API Kimliği", "components.AddFilterCTA.add": "Filtreler", "components.AddFilterCTA.hide": "Filtreler", - "components.DraggableAttr.edit": "Düzenlemek için tıklayın", + "components.DraggableAttr.edit": "Düzenlemek için tıkla", + "components.DynamicZone.add-compo": "Şuna ekle {componentName}", + "components.DynamicZone.missing.plural": "{count} eksik bileşen var", + "components.DynamicZone.missing.singular": "{count} eksik bileşen var", + "components.DynamicZone.pick-compo": "Bir bileşen seç", + "components.DynamicZone.required": "Bileşen gerekli", "components.EmptyAttributesBlock.button": "Ayarlar sayfasına git", "components.EmptyAttributesBlock.description": "Ayarlarınızı değiştirebilirsiniz", + "components.FieldItem.linkToComponentLayout": "Bileşenin düzenini ayarla", "components.FilterOptions.button.apply": "Uygula", "components.FiltersPickWrapper.PluginHeader.actions.apply": "Uygula", "components.FiltersPickWrapper.PluginHeader.actions.clearAll": "Hepsini temizle", - "components.FiltersPickWrapper.PluginHeader.description": "Filtrelemek için uygulanacak şartları ayarlayın", + "components.FiltersPickWrapper.PluginHeader.description": "Kayıtları filtrelemek için uygulanacak koşulları ayarlayın", "components.FiltersPickWrapper.PluginHeader.title.filter": "Filtreler", "components.FiltersPickWrapper.hide": "Gizle", - "components.LimitSelect.itemsPerPage": "Sayfa başı", - "components.Search.placeholder": "Kayıt aramak için...", + "components.LimitSelect.itemsPerPage": "Sayfa başına öğe", + "components.NotAllowedInput.text": "Bu alanı görmeye yetkin yok", + "components.Search.placeholder": "Kayıt ara...", + "components.Select.draft-info-title": "Durum: Taslak", + "components.Select.publish-info-title": "Durum: Yayınlandı", + "components.SettingsViewWrapper.pluginHeader.description.edit-settings": "Düzenleme görünümünün nasıl görüneceğini özelleştirin.", + "components.SettingsViewWrapper.pluginHeader.description.list-settings": "Liste görünümünün ayarlarını tanımlayın.", + "components.SettingsViewWrapper.pluginHeader.title": "Görünümü yapılandır - {name}", "components.TableDelete.delete": "Hepsini sil", - "components.TableDelete.deleteSelected": "Silme seçildi", + "components.TableDelete.deleteSelected": "Seçiliyi sil", "components.TableDelete.entries.plural": "{number} kayıt seçildi", "components.TableDelete.entries.singular": "{number} kayıt seçildi", - "components.TableEmpty.withFilters": "Uygulanan filtrelerle {contentType} yoktur...", + "components.TableEmpty.withFilters": "Uygulanan filtrelerde {contentType} yoktur...", "components.TableEmpty.withSearch": "Aramaya karşılık gelen {contentType} yoktur ({search})...", "components.TableEmpty.withoutFilter": "{contentType} yoktur...", + "components.empty-repeatable": "Henüz kayıt yok. Eklemek için aşağıdaki butona tıklayın.", + "components.notification.info.maximum-requirement": "Zaten maksimum alan sayısına ulaştınız.", + "components.notification.info.minimum-requirement": "Minimum gereksinimi karşılamak için bir alan eklendi", + "components.repeatable.reorder.error": "Bileşeninizin alanı yeniden sıralanırken bir hata oluştu, lütfen tekrar deneyin", + "components.reset-entry": "Kaydı sıfırla", + "components.uid.apply": "uygula", + "components.uid.available": "kullanılabilir", + "components.uid.regenerate": "tekrar oluştur", + "components.uid.suggested": "önerildi", + "components.uid.unavailable": "kullanım dışı", + "containers.Edit.Link.Fields": "Alanları düzenle", + "containers.Edit.Link.Layout": "Düzeni yapılandır", + "containers.Edit.Link.Model": "Koleksiyon türünü düzenle", "containers.Edit.addAnItem": "Bir öğe ekle...", - "containers.Edit.clickToJump": "Kayıta atlamak için tıklayın", + "containers.Edit.clickToJump": "Kayda atlamak için tıklayın", "containers.Edit.delete": "Sil", + "containers.Edit.delete-entry": "Bu kaydı sil", "containers.Edit.editing": "Düzenleniyor...", - "containers.Edit.reset": "Reset", + "containers.Edit.information": "Bilgi", + "containers.Edit.information.by": "Sunan", + "containers.Edit.information.draftVersion": "taslak sürümü", + "containers.Edit.information.editing": "Düzenleme", + "containers.Edit.information.lastUpdate": "Son güncelleme", + "containers.Edit.information.publishedVersion": "yayınlanan sürüm", + "containers.Edit.pluginHeader.title.new": "Bir kayıt oluştur", + "containers.Edit.reset": "Sıfırla", "containers.Edit.returnList": "Listeye dön", - "containers.Edit.seeDetails": "Detaylar", + "containers.Edit.seeDetails": "Ayrıntılar", "containers.Edit.submit": "Kaydet", - "containers.Home.introduction": "Girişlerinizi düzenlemek için soldaki menüdeki ilgili bağlantıya gidin. Bu eklentinin ayarları düzenlemek için uygun bir yol bulunmamaktadır ve halen aktif geliştirme aşamasındadır.", - "containers.Home.pluginHeaderDescription": "Güçlü ve güzel bir arayüz aracılığıyla girişlerinizi yönetin.", - "containers.Home.pluginHeaderTitle": "İçerik Yönetimi", + "containers.EditSettingsView.modal-form.edit-field": "Alanı düzenle", + "containers.EditView.add.new": "YENİ BİR KAYIT EKLE", + "containers.EditView.components.missing.plural": "{count} eksik bileşen mevcut", + "containers.EditView.components.missing.singular": "{count} eksik bileşen mevcut", + "containers.EditView.notification.errors": "Form bazı hatalar içeriyor", + "containers.Home.introduction": "Kayıtlarınızı düzenlemek için soldaki menüdeki ilgili bağlantıya gidin. Bu eklentinin ayarları düzenlemek için uygun bir yol bulunmamaktadır ve halen aktif geliştirme aşamasındadır.", + "containers.Home.pluginHeaderDescription": "Güçlü ve güzel bir arayüz aracılığıyla kayıtlarınızı yönetin.", + "containers.Home.pluginHeaderTitle": "İçerik Yöneticisi", "containers.List.addAnEntry": "Yeni {entity} ekle", + "containers.List.draft": "Taslak", "containers.List.errorFetchRecords": "Hata", "containers.List.pluginHeaderDescription": "{label} kayıt bulundu", "containers.List.pluginHeaderDescription.singular": "{label} kayıt bulundu", + "containers.List.published": "Yayınlandı", "containers.ListPage.displayedFields": "Görüntülenen Alanlar", + "containers.ListPage.items.plural": "öğeler", + "containers.ListPage.items.singular": "öğe", + "containers.ListPage.table-headers.published_at": "Durum", + "containers.ListSettingsView.modal-form.edit-label": "Etiketi düzenle", + "containers.SettingPage.add.field": "Başka bir alan ekle", + "containers.SettingPage.add.relational-field": "Başka bir ilişkisel alan ekle", "containers.SettingPage.attributes": "Nitelik alanları", "containers.SettingPage.attributes.description": "Niteliklerin sırasını tanımlayın", "containers.SettingPage.editSettings.description": "Yerleşimi oluşturmak için alanları sürükleyip bırakın", - "containers.SettingPage.editSettings.title": "Düzenle (ayarlar)", - "containers.SettingPage.listSettings.title": "Liste (ayarlar)", + "containers.SettingPage.editSettings.entry.title": "Kayıt başlığı", + "containers.SettingPage.editSettings.entry.title.description": "Kaydınızın görüntülenen alanını ayarlayın", + "containers.SettingPage.editSettings.relation-field.description": "Hem düzenleme hem de liste görünümlerinde görüntülenen alanı ayarlayın", + "containers.SettingPage.editSettings.title": "Görünümü düzenle (ayarlar)", + "containers.SettingPage.layout": "Düzen", + "containers.SettingPage.listSettings.description": "Bu koleksiyon türü için seçenekleri yapılandırın", + "containers.SettingPage.listSettings.title": "Liste görünümü (ayarlar)", + "containers.SettingPage.pluginHeaderDescription": "Bu Koleksiyon Türü için belirli ayarları yapılandırın", "containers.SettingPage.relations": "İlişkisel alanlar", + "containers.SettingPage.settings": "Ayarlar", + "containers.SettingPage.view": "Görünüm", + "containers.SettingViewModel.pluginHeader.title": "İçerik Yöneticisi - {name}", "containers.SettingsPage.Block.contentType.description": "Belirli ayarları yapılandırın", + "containers.SettingsPage.Block.contentType.title": "Koleksiyon Türleri", + "containers.SettingsPage.Block.generalSettings.description": "Koleksiyon Türleriniz için varsayılan seçenekleri yapılandırın", "containers.SettingsPage.Block.generalSettings.title": "Genel", + "containers.SettingsPage.pluginHeaderDescription": "Tüm Koleksiyon türleriniz ve Gruplarınız için ayarları yapılandırın", + "containers.SettingsView.list.subtitle": "Koleksiyon türlerinizin ve gruplarınızın düzenini ve görüntüsünü yapılandırın", + "containers.SettingsView.list.title": "Görünüm yapılandırmaları", + "emptyAttributes.button": "", + "emptyAttributes.description": "Koleksiyon Türünüze ilk alanınızı ekleyin", "emptyAttributes.title": "Henüz bir alan yok", - "error.attribute.key.taken": "Bu değer zaten var.", + "error.attribute.key.taken": "Bu değer zaten mevcut", "error.attribute.sameKeyAndName": "Eşit olamaz", - "error.attribute.taken": "Bu alan ismi zaten var.", - "error.contentTypeName.taken": "Bu alan ismi zaten var.", + "error.attribute.taken": "Bu alan ismi zaten mevcut", + "error.contentTypeName.taken": "Bu isim zaten mevcut", "error.model.fetch": "Modellerin yapılandırması getirilirken bir hata oluştu.", "error.record.create": "Kayıt oluşturulurken bir hata oluştu.", "error.record.delete": "Kayıt silinirken bir hata oluştu.", "error.record.fetch": "Kayıt getirilirken bir hata oluştu.", - "error.record.update": "Kayıt güncelleme sırasında bir hata oluştu.", - "error.records.count": "Sayım kayıtları getirilinceye kadar", + "error.record.update": "Kayıt güncellenirken bir hata oluştu.", + "error.records.count": "Kayıtların sayısı getirilirken bir hata oluştu.", "error.records.fetch": "Kayıtlar getirilirken bir hata oluştu.", - "error.schema.generation": "Şema oluşturma sırasında bir hata oluştu.", - "error.validation.json": "Bu JSON biçimi ile eşleşmiyor", + "error.schema.generation": "Şema oluşturulurken bir hata oluştu.", + "error.validation.json": "Bu JSON biçimi geçersiz", "error.validation.max": "Değer çok yüksek.", "error.validation.maxLength": "Değer çok uzun.", "error.validation.min": "Değer çok az.", "error.validation.minLength": "Değer çok kısa.", "error.validation.minSupMax": "Üstü olamaz", - "error.validation.regex": "Regex ile eşleşmiyor.", - "error.validation.required": "Zorunlu alandır.", + "error.validation.regex": "Değer regex ile eşleşmiyor.", + "error.validation.required": "Bu alan zorunludur.", "form.Input.bulkActions": "Toplu işlemleri etkinleştir", "form.Input.defaultSort": "Varsayılan sıralama özelliği", "form.Input.description": "Açıklama", @@ -73,22 +136,42 @@ "form.Input.filters": "Filtreleri etkinleştir", "form.Input.label": "Etiket", "form.Input.label.inputDescription": "Bu değer, tablonun başında görüntülenen etiketi geçersiz kılar", - "form.Input.pageEntries": "Sayfa başına kayıtlar", + "form.Input.pageEntries": "Sayfa başına kayıt", + "form.Input.pageEntries.inputDescription": "Not: Koleksiyon Türü ayarları sayfasında bu değeri geçersiz kılabilirsiniz.", "form.Input.placeholder": "Placeholder", - "form.Input.placeholder.placeholder": "Müthiş değerim", + "form.Input.placeholder.placeholder": "Benim harika değerim", "form.Input.search": "Aramayı etkinleştir", "form.Input.search.field": "Bu alanda aramayı etkinleştir", "form.Input.sort.field": "Bu alana göre sıralamayı etkinleştir", + "form.Input.wysiwyg": "WYSIWYG olarak görüntüle", + "global.displayedFields": "Görüntülenen Alanlar", + "groups": "Gruplar", + "groups.numbered": "Gruplar ({number})", + "models": "Koleksiyon Türleri", + "models.numbered": "Koleksiyon Türleri ({number})", "notification.error.displayedFields": "En az bir görüntülenen alana ihtiyacınız var", - "notification.error.relationship.fetch": "İlişki getirme sırasında bir hata oluştu.", - "notification.info.SettingPage.disableSort": "Sıralamaya izin verilen tek bir özelliğe sahip olmanız gerekir", + "notification.error.relationship.fetch": "İlişki getirilirken bir hata oluştu.", + "notification.info.SettingPage.disableSort": "Sıralamaya izin verilen bir özelliğin olması gerekir", + "notification.info.minimumFields": "Görüntülenen bir alanın olması gerekir", + "notification.upload.error": "Dosyalarınız yüklenirken bir hata oluştu", "pageNotFound": "Sayfa bulunamadı", + "permissions.not-allowed.create": "Belge oluşturmaya izniniz yok", + "permissions.not-allowed.update": "Bu belgeyi görüntülemeye izniniz yok", "plugin.description.long": "Veritabanındaki verileri görmek, düzenlemek ve silmek için hızlı bir yol.", "plugin.description.short": "Veritabanındaki verileri görmek, düzenlemek ve silmek için hızlı bir yol.", "popUpWarning.bodyMessage.contentType.delete": "Bu kaydı silmek istediğinizden emin misiniz?", "popUpWarning.bodyMessage.contentType.delete.all": "Bu kayıtları silmek istediğinizden emin misiniz?", "popUpWarning.warning.cancelAllSettings": "Değişikliklerinizi iptal etmek istediğinizden emin misiniz?", - "popUpWarning.warning.updateAllSettings": "Bu bütün ayarlarınızı değiştirecektir", + "popUpWarning.warning.publish-question": "Hala yayınlamak istiyor musunuz?", + "popUpWarning.warning.unpublish": "Bu içeriğin yayından kaldırılması,

içeriği otomatik olarak taslak olarak değiştirecektir.", + "popUpWarning.warning.unpublish-question": "Yayından kaldırmak istediğinizden emin misiniz?", + "popUpWarning.warning.updateAllSettings": "Bu, tüm ayarlarınızı değiştirecektir", + "popUpwarning.warning.has-draft-relations.button-confirm": "Evet, yayınla", + "popUpwarning.warning.has-draft-relations.message.plural": "İçerik ilişkilerinizden {count} tanesi henüz yayınlanmadı.

Projenizde kopuk bağlantılara ve hatalara neden olabilir.", + "popUpwarning.warning.has-draft-relations.message.singular": "İçerik ilişkilerinizden {count} tanesi henüz yayınlanmadı.

Projenizde kopuk bağlantılara ve hatalara neden olabilir.", + "popUpwarning.warning.has-draft-relations.second-message": "Projenizde kopuk bağlantılara ve hatalara neden olabilir.", "success.record.delete": "Silindi", - "success.record.save": "Kaydedildi" + "success.record.publish": "Yayınlandı", + "success.record.save": "Kaydedildi", + "success.record.unpublish": "Yayından Kaldırıldı" } From 65f48c8f7dc685fb0f13615e6f5bb10a17d05f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Onur=20Dumang=C3=B6z?= <40442783+onurdumangoz@users.noreply.github.com> Date: Wed, 4 Aug 2021 11:01:11 +0300 Subject: [PATCH 13/21] Update tr.json (#10507) Co-authored-by: Alexandre BODIN --- .../admin/src/translations/tr.json | 311 +++++++++++++----- 1 file changed, 233 insertions(+), 78 deletions(-) diff --git a/packages/strapi-admin/admin/src/translations/tr.json b/packages/strapi-admin/admin/src/translations/tr.json index bfc8604865..90a6fa9d3f 100644 --- a/packages/strapi-admin/admin/src/translations/tr.json +++ b/packages/strapi-admin/admin/src/translations/tr.json @@ -1,99 +1,196 @@ { "Analytics": "Analizler", "Auth.advanced.allow_register": "Kayıt olmaya izin ver", + "Auth.components.Oops.text": "Hesabınız askıya alındı", "Auth.form.button.forgot-password": "E-posta gönder", + "Auth.form.button.go-home": "ANA SAYFAYA DÖN", "Auth.form.button.login": "Giriş", - "Auth.form.button.register": "Başlamaya hazır", + "Auth.form.button.login.strapi": "STRAPI İLE GİRİŞ YAP", + "Auth.form.button.login.providers.see-more": "Daha fazla gör", + "Auth.form.button.login.providers.error": "Sizi seçilen sağlayıcı ile bağlayamıyoruz.", + "Auth.form.button.register": "BAŞLAYALIM", "Auth.form.button.reset-password": "Şifre değiştir", + "Auth.form.confirmPassword.label": "Şifreyi Onayla", "Auth.form.email.label": "E-posta", "Auth.form.email.placeholder": "kai@doe.com", "Auth.form.error.blocked": "Hesabınız yönetici tarafından engellendi.", - "Auth.form.error.code.provide": "Geçersiz sağlanmış kod.", + "Auth.form.error.code.provide": "Sağlanan kod geçersiz.", "Auth.form.error.confirmed": "Tanımladığınız e-posta onaylanmadı.", - "Auth.form.error.email.invalid": "E-postası geçersiz.", + "Auth.form.error.email.invalid": "E-posta geçersiz.", "Auth.form.error.email.provide": "Lütfen kullanıcı adınızı veya e-postanızı belirtin.", "Auth.form.error.email.taken": "E-posta zaten alınmış", "Auth.form.error.invalid": "Kimlik veya şifre geçersiz.", - "Auth.form.error.params.provide": "Geçersiz sağlanmış kod parametresi.", - "Auth.form.error.password.format": "Şifreniz `$` sembolünü üç kezden fazla içeremez.", - "Auth.form.error.password.local": "Bu kullanıcı hiçbir bir şifre belirlemedi; hesap oluşturma sırasında kullanılan sağlayıcı aracılığıyla lütfen giriş yapınız..", - "Auth.form.error.password.matching": "Parolalar uyuşmuyor.", + "Auth.form.error.params.provide": "Sağlanan parametreler geçersiz.", + "Auth.form.error.password.format": "Şifreniz `$` sembolünü üç defadan fazla içeremez.", + "Auth.form.error.password.local": "Bu kullanıcı yerel bir şifre belirlemedi, lütfen hesap oluşturma sırasında kullanılan sağlayıcı aracılığıyla giriş yapın.", + "Auth.form.error.password.matching": "Şifreler uyuşmuyor.", "Auth.form.error.password.provide": "Lütfen şifrenizi girin.", - "Auth.form.error.ratelimit": "Çok fazla deneme var. Lütfen bir dakika sonra tekrar deneyin.", - "Auth.form.error.user.not-exist": "Bu e-posta bulunmamaktadır..", - "Auth.form.error.username.taken": "Kullanıcı adı zaten alınmış", - "Auth.form.forgot-password.email.label": "E-postanızı giriniz", + "Auth.form.error.ratelimit": "Çok fazla deneme var, Lütfen bir dakika sonra tekrar deneyin.", + "Auth.form.error.user.not-exist": "Bu e-posta mevcut değil.", + "Auth.form.error.username.taken": "Kullanıcı adı zaten alınmış.", + "Auth.form.firstname.label": "İsim", + "Auth.form.firstname.placeholder": "Kai", + "Auth.form.forgot-password.email.label": "E-postanızı girin", "Auth.form.forgot-password.email.label.success": "E-posta başarıyla gönderildi, ", - "Auth.form.password.label": "Parola", - "Auth.form.register.news.label": "Beni gelecekteki özellikler ve geliştirmeler hakkında bilgilendir (bunu seçerek {terms} ve {policy}'leri kabul etmiş sayılırsınız)", + "Auth.form.lastname.label": "Soy isim", + "Auth.form.lastname.placeholder": "Doe", + "Auth.form.password.label": "Şifre", + "Auth.form.register.news.label": "Beni gelecekteki özellikler ve geliştirmeler hakkında bilgilendirin (bunu seçerek {terms} ve {policy}'nı kabul etmiş sayılırsınız).", "Auth.form.rememberMe.label": "Beni hatırla", "Auth.form.username.label": "Kullanıcı Adı", "Auth.form.username.placeholder": "Kai Doe", - "Auth.link.forgot-password": "Parolanızı mı unuttunuz ?", - "Auth.link.ready": "Zaten kayıtlı mısınız?", - "Auth.privacy-policy-agreement.policy": "gizlilik sözleşmesi", + "Auth.link.forgot-password": "Şifrenizi mi unuttunuz?", + "Auth.link.ready": "Giriş yapmaya hazır mısınız?", + "Auth.link.signin": "Giriş yap", + "Auth.link.signin.account": "Zaten hesabınız var mı?", + "Auth.privacy-policy-agreement.policy": "gizlilik politikası", "Auth.privacy-policy-agreement.terms": "koşullar", - "Content Manager": "İçerik Yönetimi", + "Content Manager": "İçerik Yöneticisi", + "Content Type Builder": "İçerik Türü Oluşturucusu", + "Documentation": "Dokümantasyon", "Email": "E-posta", - "Files Upload": "Dosya yükleme", + "Files Upload": "Dosya Yükleme", "HomePage.community": "Topluluğa Katılın", "HomePage.greetings": "Merhaba {name}!", - "HomePage.helmet.title": "Anasayfa", + "HomePage.helmet.title": "Ana Sayfa", "HomePage.roadmap": "Yol haritamızı görüntüleyin", "HomePage.welcome.congrats": "Tebrikler!", "HomePage.welcome.congrats.content": "İlk yönetici olarak giriş yaptınız. Strapi'nin güçlü özelliklerini keşfetmek için,", - "HomePage.welcome.congrats.content.bold": "ilk İçerik-Tipi'ni yaratmanızı öneriyoruz.", + "HomePage.welcome.congrats.content.bold": "ilk İçerik Türünüzü oluşturmanızı öneriyoruz.", + "Media Library": "Ortam Kütüphanesi", "New entry": "Yeni kayıt", + "or": "YADA", "Password": "Şifre", "Provider": "Sağlayıcı", - "ResetPasswordToken": "Şifre sıfırlama anahtarı", + "ResetPasswordToken": "Şifre Sıfırlama Anahtarı", "Role": "Rol", + "Roles & Permissions": "Roller & Yetkiler", + "Roles.ListPage.notification.delete-all-not-allowed": "Kullanıcılarla ilişkilendirildikleri için bazı roller silinemedi", + "Roles.ListPage.notification.delete-not-allowed": "Kullanıcılarla ilişkilendirilen roller silinemez", + "Roles.RoleRow.user-count.plural": "{number} kullanıcı", + "Roles.RoleRow.user-count.singular": "{number} kullanıcı", + "Roles.components.List.empty.withSearch": "Aramaya karşılık gelen bir rol yok ({search})...", + "Settings.application.title": "Uygulama", + "Settings.application.description": "Projenizin ayrıntılarını görün", + "Settings.application.link-pricing": "Tüm fiyatları görün", + "Settings.application.link-upgrade": "Projenizi yükseltin", + "Settings.application.strapi-version": "STRAPI SÜRÜMÜ", + "Settings.application.node-version": "NODE SÜRÜMÜ", + "Settings.application.edition-title": "MEVCUT PLAN", + "Settings.PageTitle": "Ayarlar - {name}", "Settings.error": "Hata", "Settings.global": "Genel Ayarlar", + "Settings.permissions": "Yönetim paneli", + "Settings.permissions.category": "{category} için yetki ayarları", + "Settings.permissions.category.plugins": "{category} eklentisi için yetki ayarları", + "Settings.permissions.conditions.anytime": "Herhangi bir zaman", + "Settings.permissions.conditions.apply": "Uygula", + "Settings.permissions.conditions.can": "Can", + "Settings.permissions.conditions.define-conditions": "Koşulları tanımlayın", + "Settings.permissions.conditions.links": "Bağlantılar", + "Settings.permissions.conditions.no-actions": "Koşulları tanımlamadan önce eylem seçmelisiniz (create, read, update, ...).", + "Settings.permissions.conditions.or": "OR", + "Settings.permissions.conditions.none-selected": "Herhangi bir zaman", + "Settings.permissions.conditions.selected.plural": "{number} koşul seçildi", + "Settings.permissions.conditions.selected.singular": "{number} koşul seçildi", + "Settings.permissions.conditions.when": "When", + "Settings.permissions.menu.link.roles.label": "Roller", + "Settings.permissions.menu.link.users.label": "Kullanıcılar", + "Settings.permissions.users.add-new": "Yeni kullanıcı ekle", + "Settings.permissions.users.create": "Yeni kullanıcı oluştur", + "Settings.permissions.users.form.email": "E-posta", + "Settings.permissions.users.form.firstname": "İsim", + "Settings.permissions.users.form.lastname": "Soy isim", + "Settings.permissions.users.form.sso": "SSO ile bağlan", + "Settings.permissions.users.form.sso.description": "Aktifleştirilirse (ON), kullanıcılar SSO ile giriş yapabilir", + "Settings.permissions.users.listview.header.description.plural": "{number} kullanıcı bulundu", + "Settings.permissions.users.listview.header.description.singular": "{number} kullanıcı bulundu", + "Settings.permissions.users.listview.header.title": "Kullanıcılar", + "Settings.profile.form.section.profile.title":"Profil", + "Settings.profile.form.section.password.title": "Şifre değiştir", + "Settings.profile.form.section.experience.title": "Deneyim", + "Settings.profile.form.section.experience.interfaceLanguage": "Arayüz dili", + "Settings.profile.form.section.experience.interfaceLanguage.hint": "Bu, yalnızca kendi arayüzünüzü seçilen dilde görüntüler.", + "Settings.roles.create.description": "Role verilen hakları tanımlayın", + "Settings.roles.create.title": "Yeni bir rol oluştur", + "Settings.roles.created": "Rol oluşturuldu", + "Settings.roles.edit.title": "Rolü düzenle", + "Settings.roles.form.button.users-with-role": "Bu role sahip kullanıcılar", + "Settings.roles.form.created": "Oluşturuldu", + "Settings.roles.form.description": "Rolün adı ve açıklaması", + "Settings.roles.form.input.description": "Açıklama", + "Settings.roles.form.input.name": "Ad", + "Settings.roles.form.permission.property-label": "{label} yetkileri", + "Settings.roles.form.permissions.attributesPermissions": "Alan yetkileri", + "Settings.roles.form.permissions.create": "Oluştur", + "Settings.roles.form.permissions.delete": "Sil", + "Settings.roles.form.permissions.publish": "Yayınla", + "Settings.roles.form.permissions.read": "Read", + "Settings.roles.form.permissions.update": "Update", + "Settings.roles.form.title": "Ayrıntılar", + "Settings.roles.list.button.add": "Yeni rol ekle", + "Settings.roles.list.description": "Roller listesi", + "Settings.roles.list.title.plural": "{number} rol", + "Settings.roles.list.title.singular": "{number} rol", + "Settings.roles.title": "Roller", + "Settings.roles.title.singular": "rol", + "Settings.sso.title": "Single Sign-On", + "Settings.sso.description": "Single Sign-On özelliğinin ayarlarını yapılandır.", + "Settings.sso.form.registration.label": "Otomatik kayıt", + "Settings.sso.form.registration.description": "SSO girişinde, hesap yoksa yeni kullanıcı oluştur", + "Settings.sso.form.defaultRole.label": "Varsayılan rol", + "Settings.sso.form.defaultRole.description": "Kimliği doğrulanmış yeni kullanıcıyı seçilen role ekleyecektir.", + "Settings.sso.form.defaultRole.description-not-allowed": "Yönetici rollerini okumak için izne sahip olmanız gerekir", "Settings.webhooks.create": "Webhook oluştur", - "Settings.webhooks.create.header": "Yeni başlık yarat", + "Settings.webhooks.create.header": "Yeni başlık oluştur", "Settings.webhooks.created": "Webhook oluşturuldu", "Settings.webhooks.disabled": "Pasif", "Settings.webhooks.enabled": "Aktif", + "Settings.webhooks.event.publish-tooltip": "Bu etkinlik yalnızca Taslak/Yayınla sistemi etkinleştirilmiş içerikler için mevcuttur", "Settings.webhooks.events.create": "Oluştur", + "Settings.webhooks.events.update": "Güncelle", "Settings.webhooks.form.events": "Etkinlikler", "Settings.webhooks.form.headers": "Başlıklar", "Settings.webhooks.form.name": "Ad", "Settings.webhooks.form.url": "Url", "Settings.webhooks.key": "Anahtar", "Settings.webhooks.list.button.add": "Yeni webhook ekle", - "Settings.webhooks.list.description": "POST değişiklikleri bildirimi al.", - "Settings.webhooks.list.empty.description": "İlkini bu listeye ekleyin.", - "Settings.webhooks.list.empty.link": "Dökümantasyonumuzu görüntüleyin", + "Settings.webhooks.list.description": "POST değişiklik bildirimlerini al.", + "Settings.webhooks.list.empty.description": "İlkini bu listeye ekle.", + "Settings.webhooks.list.empty.link": "Dokümantasyonumuzu görüntüleyin", "Settings.webhooks.list.empty.title": "Henüz bir webhook yok", "Settings.webhooks.singular": "webhook", - "Settings.webhooks.title": "Webhooklar", + "Settings.webhooks.title": "Webhook'lar", "Settings.webhooks.trigger": "Tetikleyici", "Settings.webhooks.trigger.cancel": "Tetikleyiciyi iptal et", "Settings.webhooks.trigger.pending": "Bekleniyor...", - "Settings.webhooks.trigger.save": "Lütfen tetikleyiciyi kaydedin", + "Settings.webhooks.trigger.save": "Lütfen tetiklemek için kaydedin", "Settings.webhooks.trigger.success": "Başarılı!", - "Settings.webhooks.trigger.success.label": "Tetikleyici başarılı", + "Settings.webhooks.trigger.success.label": "Tetikleme başarılı", "Settings.webhooks.trigger.test": "Test-tetikleyici", - "Settings.webhooks.trigger.title": "Tetikleyiciden önce kaydet", + "Settings.webhooks.trigger.title": "Tetiklemeden önce kaydet", "Settings.webhooks.value": "Değer", "Username": "Kullanıcı Adı", "Users": "Kullanıcılar", - "Users & Permissions": "Kullanıcılar & İzinler", + "Users & Permissions": "Kullanıcılar & Yetkiler", + "Users.components.List.empty": "Kullanıcı yok...", + "Users.components.List.empty.withFilters": "Uygulanan filtrelere sahip kullanıcı yok...", + "Users.components.List.empty.withSearch": "Aramaya karşılık gelen kullanıcı yok ({search})...", "app.components.BlockLink.code": "Kod örnekleri", - "app.components.BlockLink.code.content": "Topluluk tarafından geliştirilen gerçek projeleri test ederek öğren.", + "app.components.BlockLink.code.content": "Topluluğun geliştirdiği gerçek projeleri test ederek öğrenin.", "app.components.BlockLink.documentation": "Dokümantasyonu oku", - "app.components.BlockLink.documentation.content": "Kavramları, referans kılavuzlarını ve öğreticileri keşfedin.", + "app.components.BlockLink.documentation.content": "Kavramları, başvuru kılavuzlarını ve öğreticileri keşfedin.", "app.components.Button.cancel": "İptal", "app.components.Button.reset": "Sıfırla", "app.components.Button.save": "Kaydet", - "app.components.ComingSoonPage.comingSoon": "Çok Yakında", + "app.components.ComingSoonPage.comingSoon": "Çok yakında", "app.components.DownloadInfo.download": "İndirme devam ediyor...", "app.components.DownloadInfo.text": "Bu birkaç dakika sürebilir. Sabrınız için teşekkürler.", "app.components.EmptyAttributes.title": "Alan henüz yok", "app.components.HomePage.button.blog": "BLOG SAYFASINDA DAHA FAZLASINI GÖRÜN", "app.components.HomePage.community": "Topluluğumuza ulaşın", - "app.components.HomePage.community.content": "Farklı kanallarda takım üyeleri, katkıda bulunanlar ve geliştiricilere ulaşın.", + "app.components.HomePage.community.content": "Farklı kanallarda ekip üyeleri, katkıda bulunanlar ve geliştiricilerle tartışın.", + "app.components.HomePage.create": "İlk İçerik Türünüzü oluşturun", "app.components.HomePage.welcome": "Panele hoşgeldiniz.", "app.components.HomePage.welcome.again": "Hoşgeldiniz ", "app.components.HomePage.welcomeBlock.content": "Sizi topluluk üyelerinden biri olarak görmekten mutluyuz. Sürekli olarak geri bildirim alabilmemiz için bize doğrudan mesaj göndermeye çekinmeyin ", @@ -101,96 +198,144 @@ "app.components.HomePage.welcomeBlock.content.issues": "sorunlar", "app.components.HomePage.welcomeBlock.content.raise": " yada yükselt ", "app.components.ImgPreview.hint": "Dosyanızı bu alana sürükleyip bırakın ya da bir dosya yüklemek için {browse}", - "app.components.ImgPreview.hint.browse": "gözat", + "app.components.ImgPreview.hint.browse": "göz at", "app.components.InputFile.newFile": "Yeni dosya ekle", "app.components.InputFileDetails.open": "Yeni sekmede aç", - "app.components.InputFileDetails.originalName": "Orjinal isim:", - "app.components.InputFileDetails.remove": "Bu dosyayı sil", + "app.components.InputFileDetails.originalName": "Orijinal isim:", + "app.components.InputFileDetails.remove": "Bu dosyayı kaldır", "app.components.InputFileDetails.size": "Boyut:", "app.components.InstallPluginPage.Download.description": "Eklentiyi indirmek ve yüklemek bir kaç saniye sürebilir.", "app.components.InstallPluginPage.Download.title": "İndiriliyor...", - "app.components.InstallPluginPage.description": "Uygulamanızı rahatlıkla genişletin.", + "app.components.InstallPluginPage.description": "Uygulamanızı zahmetsizce genişletin.", "app.components.InstallPluginPage.helmet": "Mağaza - Eklentiler", "app.components.InstallPluginPage.title": "Mağaza - Eklentiler", - "app.components.LeftMenuFooter.documentation": "Dökümantasyon", + "app.components.LeftMenuFooter.documentation": "Dokümantasyon", "app.components.LeftMenuFooter.help": "Yardım", "app.components.LeftMenuFooter.poweredBy": "Gururla sunar ", - "app.components.LeftMenuLinkContainer.configuration": "Yapılandırma", + "app.components.LeftMenuLinkContainer.collectionTypes": "Koleksiyon Türleri", + "app.components.LeftMenuLinkContainer.configuration": "Yapılandırmalar", "app.components.LeftMenuLinkContainer.general": "Genel", "app.components.LeftMenuLinkContainer.installNewPlugin": "Mağaza", "app.components.LeftMenuLinkContainer.listPlugins": "Eklentiler", - "app.components.LeftMenuLinkContainer.noPluginsInstalled": "Yüklenen eklenti bulunmamaktadır.", + "app.components.LeftMenuLinkContainer.noPluginsInstalled": "Henüz hiçbir eklenti yüklenmedi", "app.components.LeftMenuLinkContainer.plugins": "Eklentiler", "app.components.LeftMenuLinkContainer.settings": "Ayarlar", + "app.components.LeftMenuLinkContainer.singleTypes": "Tekil Türler", + "app.components.ListPluginsPage.deletePlugin.description": "Eklentinin kaldırılması birkaç saniye sürebilir.", + "app.components.ListPluginsPage.deletePlugin.title": "Kaldırılıyor", "app.components.ListPluginsPage.description": "Projedeki yüklenen eklentiler.", "app.components.ListPluginsPage.helmet.title": "Eklenti Listesi", "app.components.ListPluginsPage.title": "Etklentiler", "app.components.Logout.logout": "Çıkış Yap", "app.components.Logout.profile": "Profil", - "app.components.NotFoundPage.back": "Anasayfaya geri dön", + "app.components.NotFoundPage.back": "Ana sayfaya geri dön", "app.components.NotFoundPage.description": "Bulunamadı", "app.components.Official": "Resmi", "app.components.Onboarding.label.completed": "% tamamlandı", - "app.components.Onboarding.title": "Başlangıç Videolaro", + "app.components.Onboarding.title": "Başlangıç Videoları", "app.components.PluginCard.Button.label.download": "İndir", "app.components.PluginCard.Button.label.install": "Zaten yüklenmiş", - "app.components.PluginCard.PopUpWarning.install.impossible.autoReload.needed": "autoReload özelliği aktif edilmeli. Lütfen uygulamayı `yarn develop` ile başlatın.", + "app.components.PluginCard.PopUpWarning.install.impossible.autoReload.needed": "autoReload özelliğinin etkinleştirilmesi gerekiyor. Lütfen uygulamanı `yarn develop` ile başlatın.", "app.components.PluginCard.PopUpWarning.install.impossible.confirm": "Anladım!", "app.components.PluginCard.PopUpWarning.install.impossible.environment": "Güvenlik nedeniyle bir eklenti yalnızca geliştirme ortamında indirilebilir.", "app.components.PluginCard.PopUpWarning.install.impossible.title": "İndirme imkansız", "app.components.PluginCard.compatible": "Uygulamanızla uyumlu", "app.components.PluginCard.compatibleCommunity": "Toplulukla uyumlu", "app.components.PluginCard.more-details": "Daha fazla detay", - "app.components.listPlugins.button": "Yeni eklenti ekle", - "app.components.listPlugins.title.none": "Yüklenen eklenti bulunmamaktadır.", + "app.components.UpgradePlanModal.button": "DAHA FAZLA BİLGİ EDİN", + "app.components.UpgradePlanModal.limit-reached": "Sınıra ulaştın", + "app.components.UpgradePlanModal.text-ce": "Topluluk Sürümü", + "app.components.UpgradePlanModal.text-ee": "Kurumsal Sürüm", + "app.components.UpgradePlanModal.text-power": "Unlock the full power", + "app.components.UpgradePlanModal.text-strapi": "of Strapi by upgrading your plan to the", + "app.components.Users.MagicLink.connect": "Bağlanmaları için bu bağlantıyı kullanıcıya gönder.", + "app.components.Users.MagicLink.connect.sso": "Bu bağlantıyı kullanıcıya gönder, ilk oturum SSO sağlayıcısı aracılığıyla yapılabilir", + "app.components.Users.ModalCreateBody.block-title.details": "Ayrıntılar", + "app.components.Users.ModalCreateBody.block-title.roles": "Kullanıcı rolleri", + "app.components.Users.ModalCreateBody.block-title.roles.description": "Kullanıcınızın bir veya birkaç rolü olabilir", + "app.components.Users.ModalCreateBody.block-title.login": "Giriş ayarları", + "app.components.Users.SortPicker.button-label": "Sırala", + "app.components.Users.SortPicker.sortby.email_asc": "E-posta (A'dan Z'ye)", + "app.components.Users.SortPicker.sortby.email_desc": "E-posta (Z'den A'ya)", + "app.components.Users.SortPicker.sortby.firstname_asc": "İsim (A'dan Z'ye)", + "app.components.Users.SortPicker.sortby.firstname_desc": "İsim (Z'den A'ya)", + "app.components.Users.SortPicker.sortby.lastname_asc": "Soy isim (A'dan Z'ye)", + "app.components.Users.SortPicker.sortby.lastname_desc": "Soy isim (Z'den A'ya)", + "app.components.Users.SortPicker.sortby.username_asc": "Kullanıcı Adı (A'dan Z'ye)", + "app.components.Users.SortPicker.sortby.username_desc": "Kullanıcı Adı (Z'den A'ya)", + "app.components.listPlugins.button": "Yeni Eklenti Ekle", + "app.components.listPlugins.title.none": "Yüklü eklenti yok", "app.components.listPlugins.title.plural": "{number} eklenti yüklü", "app.components.listPlugins.title.singular": "{number} eklenti yüklü", "app.components.listPluginsPage.deletePlugin.error": "Eklenti kaldırılırken bir hata oluştu", "app.containers.App.notification.error.init": "API isteği sırasında bir hata oluştu", - "app.links.configure-view": "Ekranı düzenle", + "app.containers.AuthPage.ForgotPasswordSuccess.text.contact-admin": "Bu bağlantıyı almazsanız, lütfen yöneticinizle iletişime geçin.", + "app.containers.AuthPage.ForgotPasswordSuccess.text.email": "Şifre kurtarma bağlantınızı almanız birkaç dakika sürebilir.", + "app.containers.AuthPage.ForgotPasswordSuccess.title": "E-posta gönderildi", + "app.containers.Users.EditPage.form.active.label": "Aktif", + "app.containers.Users.EditPage.header.label": "Düzenle {name}", + "app.containers.Users.EditPage.header.label-loading": "Kullanıcıyı düzenle", + "app.containers.Users.EditPage.roles-bloc-title": "Atfedilen roller", + "app.containers.Users.ModalForm.footer.button-success": "Kullanıcı oluştur", + "app.links.configure-view": "Görünümü yapılandır", + "app.static.links.cheatsheet": "CheatSheet", "app.utils.SelectOption.defaultMessage": " ", + "app.utils.add-filter": "Filtre ekle", "app.utils.defaultMessage": " ", "app.utils.delete": "Sil", + "app.utils.errors.file-too-big.message": "Dosya çok büyük", + "app.utils.filters": "Filtreler", "app.utils.placeholder.defaultMessage": " ", - "component.Input.error.validation.integer": "Değer sayı olmalı", + "app.utils.publish": "Yayınla", + "app.utils.select-all": "Hepsini seç", + "app.utils.unpublish": "Yayından Kaldır", + "component.Input.error.validation.integer": "Değer tam sayı olmalıdır", "components.AutoReloadBlocker.description": "Strapi'yi aşağıdaki komutlardan biri ile çalıştırın:", - "components.AutoReloadBlocker.header": "Bu eklenti için tekrar yükleme özelliği gerekiyor.", + "components.AutoReloadBlocker.header": "Bu eklenti için yeniden yükleme özelliği gerekiyor.", "components.ErrorBoundary.title": "Bir şeyler yanlış gitti...", "components.FilterOptions.FILTER_TYPES.=": "eşit", - "components.FilterOptions.FILTER_TYPES._contains": "içermek", - "components.FilterOptions.FILTER_TYPES._containss": "içermek (büyük-küçük harfe duyarlı)", - "components.FilterOptions.FILTER_TYPES._gt": "daha yüksek", - "components.FilterOptions.FILTER_TYPES._gte": "daha yüksek ya da eşit", - "components.FilterOptions.FILTER_TYPES._lt": "daha düşük", - "components.FilterOptions.FILTER_TYPES._lte": "daha düşük ya da eşit", + "components.FilterOptions.FILTER_TYPES._contains": "içerir", + "components.FilterOptions.FILTER_TYPES._containss": "içerir (büyük-küçük harfe duyarlı)", + "components.FilterOptions.FILTER_TYPES._gt": "büyüktür", + "components.FilterOptions.FILTER_TYPES._gte": "büyüktür yada eşittir", + "components.FilterOptions.FILTER_TYPES._in": "değerler dizisindeki herhangi bir değerle eşleşir", + "components.FilterOptions.FILTER_TYPES._lt": "küçüktür", + "components.FilterOptions.FILTER_TYPES._lte": "küçüktür yada eşittir", + "components.FilterOptions.FILTER_TYPES._ncontains": "içermez", "components.FilterOptions.FILTER_TYPES._ne": "eşit değil", - "components.Input.error.attribute.key.taken": "Bu değer zaten var.", + "components.FilterOptions.FILTER_TYPES._nin": "değerler dizisindeki herhangi bir değerle eşleşmez", + "components.Input.error.attribute.key.taken": "Bu değer zaten mevcut", "components.Input.error.attribute.sameKeyAndName": "Eşit olamaz", - "components.Input.error.attribute.taken": "Bu alan ismi zaten var.", - "components.Input.error.contentTypeName.taken": "Bu isim zaten var.", + "components.Input.error.attribute.taken": "Bu alan adı zaten mevcut", + "components.Input.error.contain.lowercase": "Şifre en az bir küçük harf içermelidir", + "components.Input.error.contain.number": "Şifre en az bir sayı içermelidir", + "components.Input.error.contain.uppercase": "Şifre en az bir büyük harf içermelidir", + "components.Input.error.contentTypeName.taken": "Bu isim zaten mevcut", "components.Input.error.custom-error": "{errorMessage} ", - "components.Input.error.password.noMatch": "Şifreler uyuşmuyor", - "components.Input.error.validation.email": "Geçersiz e-posta adresi.", - "components.Input.error.validation.json": "Bu JSON biçimi ile eşleşmiyor", + "components.Input.error.password.noMatch": "Şifreler eşleşmiyor", + "components.Input.error.validation.email": "Geçersiz e-posta", + "components.Input.error.validation.json": "JSON biçimiyle eşleşmiyor", "components.Input.error.validation.max": "Değer çok yüksek.", "components.Input.error.validation.maxLength": "Değer çok uzun.", "components.Input.error.validation.min": "Değer çok az.", "components.Input.error.validation.minLength": "Değer çok kısa.", "components.Input.error.validation.minSupMax": "Üstü olamaz", - "components.Input.error.validation.regex": "Regex ile eşleşmiyor.", - "components.Input.error.validation.required": "Zorunlu alandır.", - "components.Input.error.validation.unique": "Değer zaten kullanılmış.", + "components.Input.error.validation.regex": "Değer regex ile eşleşmiyor.", + "components.Input.error.validation.required": "Bu alan zorunludur.", + "components.Input.error.validation.unique": "Bu değer zaten kullanılıyor.", "components.InputSelect.option.placeholder": "Buradan seçin", - "components.ListRow.empty": "Gösterilecek veri bulunmamaktadır.", - "components.OverlayBlocker.description": "Sunucunun yeniden başlatılması gereken bir özellik kullanıyorsunuz. Lütfen sunucu çalışana kadar bekleyin.", - "components.OverlayBlocker.description.serverError": "Sunucu yeniden başlatılmalı, lütfen terminal üzerinden logları kontrol edin.", - "components.OverlayBlocker.title": "Yeniden başlatılmayı bekliyor...", - "components.OverlayBlocker.title.serverError": "Yeniden başlatma beklendiğinden uzun sürüyor", + "components.ListRow.empty": "Gösterilecek veri yok.", + "components.NotAllowedInput.text": "Bu alanı görmek için yetkin yok", + "components.OverlayBlocker.description": "Sunucunun yeniden başlatılması gereken bir özellik kullanıyorsunuz. Lütfen sunucu ayağa kalkana kadar bekleyin.", + "components.OverlayBlocker.description.serverError": "Sunucu yeniden başlatılmış olmalı, lütfen terminal üzerinden logları kontrol edin.", + "components.OverlayBlocker.title": "Yeniden başlatma bekleniyor...", + "components.OverlayBlocker.title.serverError": "Yeniden başlatma beklenilenden uzun sürüyor", "components.PageFooter.select": "sayfa başına kayıt", - "components.ProductionBlocker.description": "Güvenlik nedeniyle, bu eklentiyi diğer ortamlarda devre dışı bırakmamız gerekir.", - "components.ProductionBlocker.header": "Bu eklenti yalnızca geliştirme aşamasında mevcuttur.", - "components.Wysiwyg.ToggleMode.markdown": "Markdown'a geçiş yap", - "components.Wysiwyg.ToggleMode.preview": "Önizleme görünümü", + "components.ProductionBlocker.description": "Güvenlik amacıyla bu eklentiyi diğer ortamlarda devre dışı bırakmalıyız.", + "components.ProductionBlocker.header": "Bu eklenti yalnızca geliştirme aşamasında kullanılabilir.", + "components.Search.placeholder": "Ara...", + "components.Wysiwyg.ToggleMode.markdown": "Markdown'a geç", + "components.Wysiwyg.ToggleMode.preview": "Önizlemeye geç", "components.Wysiwyg.collapse": "Daralt", "components.Wysiwyg.selectOptions.H1": "H1 başlık", "components.Wysiwyg.selectOptions.H2": "H2 başlık", @@ -201,16 +346,26 @@ "components.Wysiwyg.selectOptions.title": "Başlık ekle", "components.WysiwygBottomControls.charactersIndicators": "karakter", "components.WysiwygBottomControls.fullscreen": "Genişlet", - "components.WysiwygBottomControls.uploadFiles": "Dosyanızı bu alana sürükleyip bırakın ya da bir dosya yüklemek için {browse}", - "components.WysiwygBottomControls.uploadFiles.browse": "Bunları seç", + "components.WysiwygBottomControls.uploadFiles": "Dosyları sürükleyip bırakın, panodan yapıştırın yada {browse}", + "components.WysiwygBottomControls.uploadFiles.browse": "bunları seç", + "components.popUpWarning.button.cancel": "Hayır, iptal", + "components.popUpWarning.button.confirm": "Evet, onayla", "components.popUpWarning.message": "Bunu silmek istediğinizden emin misiniz?", "components.popUpWarning.title": "Lütfen onaylayın", + "form.button.continue": "Devam", "form.button.done": "Tamam", "form.button.finish": "Bitir", - "global.prompt.unsaved": "Bu sayfadan ayrılmak istediğinize emin misiniz? Tüm düzenlemeleriniz kaybolacak", + "global.prompt.unsaved": "Bu sayfadan ayrılmak istediğinizden emin misiniz? Tüm değişiklikleriniz kaybolacak", + "notification.contentType.relations.conflict": "İçerik türünde çelişkili ilişkiler var", "notification.error": "Bir hata oluştu", "notification.error.layout": "Düzen alınamadı", - "notification.form.error.fields": "Form birden fazla hata içeriyor", + "notification.form.error.fields": "Form bazı hatalar içeriyor", "notification.form.success.fields": "Değişiklikler kaydedildi", - "request.error.model.unknown": "Bu model bulunmamaktadır." + "notification.link-copied": "Bağlantı panoya kopyalandı", + "notification.permission.not-allowed-read": "Bu belgeyi görme izniniz yok", + "notification.success.delete": "Öğe silindi", + "notification.success.saved": "Kaydedildi", + "notification.version.update.message": "Strapi'nin yeni bir sürümü mevcut!", + "notification.version.update.link": "Daha fazla gör", + "request.error.model.unknown": "Böyle bir model mevcut değil." } From c373c3d9424f5cbc70543aef22e5749daf5eaa7a Mon Sep 17 00:00:00 2001 From: markkaylor Date: Wed, 4 Aug 2021 11:58:57 +0200 Subject: [PATCH 14/21] add marketplace banner with link to strapi awesome (#10677) --- .../assets/images/banner_strapi-rocket.png | Bin 0 -> 6946 bytes .../MarketplacePage/PluginBanner/Wrapper.js | 29 +++++ .../MarketplacePage/PluginBanner/index.js | 34 ++++++ .../src/containers/MarketplacePage/index.js | 2 + .../admin/src/translations/en.json | 7 +- yarn.lock | 106 ++++++------------ 6 files changed, 107 insertions(+), 71 deletions(-) create mode 100644 packages/strapi-admin/admin/src/assets/images/banner_strapi-rocket.png create mode 100644 packages/strapi-admin/admin/src/containers/MarketplacePage/PluginBanner/Wrapper.js create mode 100644 packages/strapi-admin/admin/src/containers/MarketplacePage/PluginBanner/index.js diff --git a/packages/strapi-admin/admin/src/assets/images/banner_strapi-rocket.png b/packages/strapi-admin/admin/src/assets/images/banner_strapi-rocket.png new file mode 100644 index 0000000000000000000000000000000000000000..a90b22a1e28f85134991b21900a6c0c49454c8c0 GIT binary patch literal 6946 zcmb7pcQjnz7w^pIorp3EH==i+bVGS6h{Ykd6=l0FbD?e6IH}_x#uKaUVv#6&JjR ziNNEfsV4xyr}1A0mda*)eh>mZ^;DGrRg?7l4-eQ5idu>QKy4z?-5VSLfUa5XxuSs| z@Ho#Y$$Y_ZXsY$J6I$kA`Dw=fZ9Tmtlqxl%|3luV#b&Y)B0?S&3PKtQB4A2PAKnW~ zYfXAkQ|cF89D`SnnKY@G@C}&XJz7e`BH&8MTUTK;otH|nFUVhA4ZLQY^q1WPkFc4J zT^^q7UwAsLh;(-3?_YFZyIey7Dz6^@f3~y?kfIYo!oT^o?Y}@+X={ovA5UBH*X55N zKW=r+!arOY`$xat5??DI^_GGMN3bS|zsIqwIVz$EK}#1tsJg}m6S?aI61zB7)`R7bJPl5m zMy01jIK*z8GfrcB(}`mzz?i`I#|}w?AchdaLN)e5O!5=F#pD}Fz%_x=N~BEjSnfD( z`&FvP&v+_%1n4Yq(#!BpsKy@U}S6a8hPGrlIjVy*z~wr zB4r;{FhZbiuRp|}YlsLQ^+($APklALzgJ}8oy?zq7Z|s$(;S%slb68FUN3_6_JSbV z@*)DS4nWr>H(fjc-pBHuRIjI;_Ufm0R{QAYYKVn`a%PhVIBZI~z`jG^ixMD8Yjw9^ zv?0%~IiKPEVVo}(S=I=<9*$a(QPI_ar2F@4r&9MCQ z*A-PaC>ZTO=<;oIQJK=BJ(ub6u%|F4_mL%Mhy?gXk~4}<-YCL~J$D-um(@(dGWG=} zIem5m2Fi0P|GAZ9>i@_>!0~Mb*IzJsq^EdI$0;H9eJyl;`*sO<#~yr}lk}84ZQ zP6A6nDZ5x&B!RkUgO3{|b>Wee@fXp?>&3&g9XK{C?hcy52jw@K@~xWHaqAj7W#X`B zX~aA1wS03yY&RPjCtm{p!L%~jGr9b$irRE@@sr)h{_w>Dge-;>9uK*nJD@u~qr`t7 z>8lbdytwa23o~p^>0-App-;cX4kEX*VEokURaxc_#?Ruc3>+cyyU7JZnZ6elOL!!R zAo$gSd-P;>ySl2xIzRO1aIi2KexhCBL4y9|pU;qY(E@RqE@5rau6lO8;v;hDl;JW(LVvdUDka1h)fN~0k#CAox;C!aP{%JkwwlgnOyj--R_PT1=z991 zPk=~%fMXi|5{vYCJ8$`fR;=JhE!5nzR@qD?`!LzEu+tCP*%Ps4*8JIPE~_G1iqf0`q6bK`(!dsNX zWw9g1>y|}t=VEnbJeN~NZG7UPg&{c#Zc z?aVv~{ew2Xt~#i|>F;niC>x-@1Sjkj{kg%;xrocMIyq1`6PYP1pQ}O=x2E}vaGh7? zy!~khM1SwNmCm+k-w`AaMMG+H~bWPm0`q3Uda3I`INuy6e;uGd)*pY<_x#JK>0@wxsbBxacmGOSWe9;noorg-;7Zk@z>%K=F=WX(Qc7m z!||Ls6lH`z5sGeDVyT>K+)t>cY*67qKjiG;7iUmsqRnb$M=LqnPsSp@R(71hzPcox z)Lf(LkpXz^%EQ9I^x?e0o`I3`(F9Y7H;`X2L{&~p_FeAfMfvj2Rspo6$=>R5LR~M_ zm!VFUipKu5c6!Pzzwe7Fp#&=quG3g~Twxja@$y4#!5I?krDCG@*b$3keSX*QTkC~< zKirEso?DX9;bxN3(37+!==)a(*bHFGh9lyn%d6)eIx7im7?lW4BGrrbJbdfmZEyEz z^(>$I6|-p7rgZ&JlB0RFMT7;xuPCq&oU@+4I)HzX^v}DG2m&TYc#JDJ$oVPuq zcp2M&y#20PexKG^&KmGR`f=VfC>ZH2Brr+prKvd$>n;^-0yDwG`0bQwF;7{;RH%FX z7Tm6_;pKUe^rp^GF-GG*JRk61EHSh_%NF`YZ7HS}BN}OK3L^xy{$0kQQNI6NZNG0^ zpy_Sy__gG`Tk5MUn;k7+g1jUHQ6p~z0FSAI&AE}ZJ}d`}SE z78mi`@m-H$4ZUIQ7R|7AQ*Ed)B)Cj0Jm*XKc-a}>>NCu!(vpGv8Nwa2R7rO9w`b`| z!uw9-lb;Q7fW_mb9pVnWY~D+PFm;4$ZtP7qIVV7qi4nqY=lmpFig?=PU;w~B6w()qs+ zCWln03yw@=ooq3Bikd+YeOIqHJtOS!hGts0q*s!%6q@RjsJwz?m`Kl$lm{Vi7WlSe z|77NA42b0jgmn8y1W=bDp%F$dE^p~s!;1T{BRl881t&@Tv#locToe*bO={f>LCuGp zzS*&!!io1H(5NnixM%!Kcqh^{)#6bvEM_io3S#nH!X8vbdHKwivw}URal!X%)v2Wx zV{9?+#sP7bYP=Fd_pP$-Rd-mZdnb_K)N-L#Rbm^W7g@CqB>d#LN2@k{e2K3Pv)h%< zOnf-~C)&^wLPbJNJ98VhqcAB7tifs89Qwe>6c8v2O@gBO7-L`MY$Sd%3D z41Qj+CMM@MOX$SiCP{~RnHWAvcl*`TQnucT9K;b0|B5wpj!CiapuWAY|BCH=ZKyWs z0o!IDjw*DtmEq;bjuC7x)F*HbZLFwqGClL1@wGi<(G>pkXv3-@ zgtV$DQ&iHt`sAu*x2}E9)@RO?()=&VmW3(PLn6DcgI?wR%)bS7 z8OgRjt&ak)RWLC_N}AfF(x)WTp7gJChh5Y_s~Ri=6)p|YfxJWUE=|Acw_+_dpHg}Z zpij`bwXuM5q-!n%U56Y6J7UEzm-GtX=$LiAo@{R0`vwoWj zjVdvvuO-TAWZAh%1bd*l5UYlgIdZ4o97L!mVHDX!xZI=xnF*b*Ax`pVt)w;GciF8X zG9v`0;G4DO`F?dgp(yDMHA+DViJ6P0!!MKu5?o})t@0ZrcGJ7(uW?Be6#JZ709|Oj zxv7G_L|?P~;GiB`F?^9AFP^*-|wfW7_KisgC!-IyZBUWs+5AG;c*3AlA_8L$mj?7+YM zTKy3Vspcc=ys*_hY$#rTcVbTg7{XRfjX^OZ4d)4RJ!xZXRLAlSV4BXA)^AU$Nf}bc zL>qXk-+;)Q9dMD#$L(3AjYW0{7UZa_ga=hismuujzK(f4s_)BJ(mH(jc-}QV%~-J8u`g52tnqih5BQ1X~+t`^ne_sEvkYA^itbO)$hq$2^H+>Fr9V30BUHl0Z{kn_(soxFmcp$El43!r-3ODH<{y2+ZzBKl=!tV&E8RPn2zb*EF0L2Sga0Ob-uc{ zBaDdG_&T;L_g&x?xX;QDmg)t%Z1V>oKGBSbJi_|cAZuczI02K31qJWhL9WUc3;|5R z^xuat_+9R@i@@WCLwYhL7aBy-?}{AFP|WWhYS@VWyEvkv#Ia`C$BHG%J|}My2u|u! z=_w`N$6G^o#3{{-nRh=?egD>$7!D}VOhVnQgfO@@LzzD%1_7arkP;NXL!m2YSOs2F zouj@}w}mf$UG9^W$>1Z)4dKhdMn=}%^gqig;|jT>4y-ib4XIvNpGR6tGl%AWT)Qs_ z9$8|(H(RmOq29v}H$bhW&NUbHv|GLox9m8}@bvXsVVCq{_p0b2d3B0yJ(-_wLCNWC zs*4F-&IF7dR*iw6TZ}pS0QoIZhx7+sM*p06Js9n?+*jATFx{NKa+YHcn#8cXD!__i zXHlOoTsLXLpu>Xcc*}h_df9ltX2$A<?F-;Ab2IqnPfp` z|4z`j=;9|q6FNZQWJ^~uA82$to=dKjKyvqO%u|ivmmsdLS!`0@TFe5@<3Ma~obNPj zY{$$m{Bm*>`Pky?r41(CIh2OH0YkvWFU^r3Xy$_A$}Xn0opei|v80AZ7AEq%0a$3Q z~>b*b5rVh$%+i>@KPql5?!Ddz*>n2o|q$q zBjU)rn8t1O;gf6F#6JeN<*XkXUj4^vR~iH28GUoHHbt?h;XBC-K@uoc8E6lCvF!_# zEcYC-Kj>%Fq!3{rTZphI_~kU&GD?vf-jT}e$FatpBWC?ZzijIE8SPs~;zC6a1i5FU zH*5RIM0Qn%M2imf-|Kh4dmnLkw?=*XqDArI-=$iflD-hH#NXoc({}AVA*71Vz|tf9 ze+5UH@k<#Jge8o$uNR%1vn(4=a5%^g{BKS)<+@A#%8F9c2@AuMwETy{UrA{`6iLiV z^i@_P*>43U+XOLS0xWlHZ*O zy0|*V#t;_vC20qaba(45x=&@x(TJmx62@38O0hmdPtS~}9)Nrk+#t*wb1gchxoQ{T zjOX0{ignm%HA|uh-)pjTuKEfxz zt_v1_y&;+EWM-hC0=qOkKl`vgS4KnUdKX5hpq9O@T_bHPDOUJ{V$s<_pDNT=;o)#! z46YZr|7vCZ*I&jfm`6*44x5(%7O=g4Bz7JCUCwv%vgNFp@!ufyS9oe~bR+zXMv)1E zS&)N5q5_nCpxua-Ktt!P6-Ts9DS&;+i@NwfTl*u*dR^i~V&JZw~6Rim-uX~-x zXMjivXF$b`RLS*P%T^`RVyLf`;MKA;#3_9{ew#c1JFR|(Y%45|ry<*!Zvq?G!wwA; z>rj>GyN?qml0JcDcXD-$9T&?FOLC|^Ph#-?kxwts)i2UZPyH#tgMqbz=q)7#GjZi2 zqyU(39n}YNWvaZ`t(T$X^8yD{UVcfw|L3Zk9MaRxzG0vgf^8MIPv?kkHWKmxwt1{dcIZ&%a3X$N)xEgi+X2O3`nVlUmTbf~e&yZ^UD!vC zalNI(sHMWhoensU-R+07iNJ6%2vrD-gjqs6-6)PMy%53agh;Ok$i$>5H!`%crxT9M zsB+#Q`0deS56}(^-R4GyPexAMdR6cODwhvGsk{Pm9lpF}h%cV-P**Jh=}OU2h5VR# z&`o&2&dOF0Kgp?SsfezPypnn3Tx0yggi4pNh;r^ueRyAY(CjR>vpWtI7d6cisq<2*S2 zSYlRaWMsFT@$RWn;fDtlbI2Y~SfIF!H^#&>-clFH_4zw@zKASt{+mtr4{fmz5k#`t z3$Dk<{7V*mLt%zZ6_P@ld(2HPGpjx*=*VH>B=KD6XSmB<@ajXgZI8H6^s$Wz57^F)FV$I!P->t87`7b_Aec7i9auDTA=(l{zu_cN% zbyYP}^7^RtU&mH=VUvK-wq7=jj9zrkAkX)|C^~yiu{0eid=-4%ELaSw7#S5@s*n$ z{GWecU&O6>d-mK4X)EPC*oS#DkGFwj{*4IdhLeOmI6$=t*r@>MxIW&b@xs-uiq5*Y zgEDq?CdXO+mkKo4e}1IJC^{a7`0_uz7Dx=gnQ=oW8kzRBuRgG=5iV2!4s~C_Ob?2} z6)l+Uw1#`OT!?l4-78BFL1^=UY2u35yY;yFl4zAhUErzN!#6~4n#&h@n&r+NDqEv` zJ73YfG!2bkyGG_zwgf7dJQ!6=s?-?%KFjn^W>NvK2&DUHbBY#Sjn@r;NUd8Cd520d zMC_~M=KG&rcnBQNnwkOgfKs%Vg?nJXzx8B&nos_tWlxu0Vdh;vhSIXfY0t_4z<^KF zYA?e0{(|^J>8XG+8z5)?B`Y)%yN(O@^AB52} zbTS&x&;j(l&2m?g(;>$HkM}=I3d~&U4mB=^4F_U(@@nIYs)p(_%nw&u05uiu=T%Bp GVgCnBS|(Ef literal 0 HcmV?d00001 diff --git a/packages/strapi-admin/admin/src/containers/MarketplacePage/PluginBanner/Wrapper.js b/packages/strapi-admin/admin/src/containers/MarketplacePage/PluginBanner/Wrapper.js new file mode 100644 index 0000000000..4870210d29 --- /dev/null +++ b/packages/strapi-admin/admin/src/containers/MarketplacePage/PluginBanner/Wrapper.js @@ -0,0 +1,29 @@ +import styled from 'styled-components'; + +// TODO : To migrate with @strapi/parts +const Wrapper = styled.div` + display: flex; + align-items: center; + margin-top: 2rem; + border-radius: 4px; + border-left: 4px solid ${({ theme }) => theme.main.colors.mediumBlue}; + box-shadow: 0 2px 4px ${({ theme }) => theme.main.colors.darkGrey}; + padding: 8px 16px; + + .bannerImage { + margin-right: 1rem; + width: 48px; + height: 48px; + margin-right: 16px; + } + + .bannerLink { + color: ${({ theme }) => theme.main.colors.mediumBlue}; + font-weight: ${({ theme }) => theme.main.fontWeights.bold}; + svg { + margin-left: 4px; + } + } +`; + +export default Wrapper; diff --git a/packages/strapi-admin/admin/src/containers/MarketplacePage/PluginBanner/index.js b/packages/strapi-admin/admin/src/containers/MarketplacePage/PluginBanner/index.js new file mode 100644 index 0000000000..db33e9612d --- /dev/null +++ b/packages/strapi-admin/admin/src/containers/MarketplacePage/PluginBanner/index.js @@ -0,0 +1,34 @@ +import React from 'react'; +import { FormattedMessage, useIntl } from 'react-intl'; +import Wrapper from './Wrapper'; +import LogoStrapi from '../../../assets/images/banner_strapi-rocket.png'; + +const PluginBanner = () => { + const { formatMessage } = useIntl(); + + return ( + + {formatMessage({ +

+ + ); +}; + +export default PluginBanner; diff --git a/packages/strapi-admin/admin/src/containers/MarketplacePage/index.js b/packages/strapi-admin/admin/src/containers/MarketplacePage/index.js index 44ada1cbe1..2af9c0f2fd 100644 --- a/packages/strapi-admin/admin/src/containers/MarketplacePage/index.js +++ b/packages/strapi-admin/admin/src/containers/MarketplacePage/index.js @@ -7,6 +7,7 @@ import { useFetchPluginsFromMarketPlace } from '../../hooks'; import PageTitle from '../../components/PageTitle'; import PluginCard from './PluginCard'; import Wrapper from './Wrapper'; +import PluginBanner from './PluginBanner'; const MarketPlacePage = () => { const history = useHistory(); @@ -77,6 +78,7 @@ const MarketPlacePage = () => { id: 'app.components.InstallPluginPage.description', })} /> +
{data.map(plugin => { return ( diff --git a/packages/strapi-admin/admin/src/translations/en.json b/packages/strapi-admin/admin/src/translations/en.json index 485e3ba256..ce5094564d 100644 --- a/packages/strapi-admin/admin/src/translations/en.json +++ b/packages/strapi-admin/admin/src/translations/en.json @@ -106,7 +106,7 @@ "Settings.permissions.users.listview.header.description.plural": "{number} users found", "Settings.permissions.users.listview.header.description.singular": "{number} user found", "Settings.permissions.users.listview.header.title": "Users", - "Settings.profile.form.section.profile.title":"Profile", + "Settings.profile.form.section.profile.title": "Profile", "Settings.profile.form.section.password.title": "Change password", "Settings.profile.form.section.experience.title": "Experience", "Settings.profile.form.section.experience.interfaceLanguage": "Interface language", @@ -233,6 +233,9 @@ "app.components.Official": "Official", "app.components.Onboarding.label.completed": "% completed", "app.components.Onboarding.title": "Get Started Videos", + "app.components.PluginBanner": "Discover plugins built by the community, and many more awesome things to kickstart your project, on Strapi Awesome.", + "app.components.PluginBanner.image.alt": "a strapi rocket logo", + "app.components.PluginBanner.link": "Check it out now", "app.components.PluginCard.Button.label.download": "Download", "app.components.PluginCard.Button.label.install": "Already installed", "app.components.PluginCard.PopUpWarning.install.impossible.autoReload.needed": "The autoReload feature needs to be enabled. Please start your app with `yarn develop`.", @@ -368,4 +371,4 @@ "notification.version.update.message": "A new version of Strapi is available!", "notification.version.update.link": "See more", "request.error.model.unknown": "This model doesn't exist" -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index a905384d11..ff561becea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -975,7 +975,7 @@ core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.17", "@babel/runtime@^7.2.0", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.17", "@babel/runtime@^7.2.0", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.13.17" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.17.tgz#8966d1fc9593bf848602f0662d6b4d0069e3a7ec" integrity sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA== @@ -1018,15 +1018,15 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@buffetjs/core@3.3.6": - version "3.3.6" - resolved "https://registry.yarnpkg.com/@buffetjs/core/-/core-3.3.6.tgz#f8ff2ced0e8cbbe089810308f2488bd68a8ebeda" - integrity sha512-OVTe/7nLNM2R0EELbKWjlbMnjF7dwSDmzXPbPlMinx41GHQM6MgDngvNMJuJKJvhQwdf/zgvW70Dpr3SEbf9Zw== +"@buffetjs/core@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@buffetjs/core/-/core-3.3.8.tgz#59899e85ccc238b57ec0d4fcbe9b160c480e5c00" + integrity sha512-lDobqgC6aUigHPH7Cx82S/AzeMEer3SxepOZ9PMLxgyc0JeTK1jSAUTr6IYBrbZdYzvGX+zMFtneI4se93Q/Vg== dependencies: - "@buffetjs/hooks" "3.3.6" - "@buffetjs/icons" "3.3.6" - "@buffetjs/styles" "3.3.6" - "@buffetjs/utils" "3.3.6" + "@buffetjs/hooks" "3.3.8" + "@buffetjs/icons" "3.3.8" + "@buffetjs/styles" "3.3.8" + "@buffetjs/utils" "3.3.8" "@fortawesome/fontawesome-svg-core" "^1.2.25" "@fortawesome/free-regular-svg-icons" "^5.11.2" "@fortawesome/free-solid-svg-icons" "^5.11.2" @@ -1042,35 +1042,35 @@ react-with-direction "^1.3.1" reactstrap "^8.5.1" -"@buffetjs/custom@3.3.6": - version "3.3.6" - resolved "https://registry.yarnpkg.com/@buffetjs/custom/-/custom-3.3.6.tgz#81b905d7507fa69e7bf9a74d863cc5cb4a06f9d3" - integrity sha512-SemP9hQCQogpXi31y+cP+iRMyLueYWHTDnss/N4t8pjvonT8VbSwYhkfU+Z0c/BB71AZW7QkvgylDUaMtbUXSw== +"@buffetjs/custom@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@buffetjs/custom/-/custom-3.3.8.tgz#d7e73d9043ec34380410cc1163236df7443a70e9" + integrity sha512-QmCA0aLhSrGRXxFI+Cu94xp/Xk8FDjESE6dDf2ipM13OpOpN6XQiEcf8aNRP5/MASdxEfDDL2yh25jXavD2Ayg== dependencies: - "@buffetjs/core" "3.3.6" - "@buffetjs/styles" "3.3.6" - "@buffetjs/utils" "3.3.6" + "@buffetjs/core" "3.3.8" + "@buffetjs/styles" "3.3.8" + "@buffetjs/utils" "3.3.8" lodash "4.17.21" moment "^2.24.0" prop-types "^15.5.10" react-moment-proptypes "^1.7.0" -"@buffetjs/hooks@3.3.6": - version "3.3.6" - resolved "https://registry.yarnpkg.com/@buffetjs/hooks/-/hooks-3.3.6.tgz#9c11b7c036834b89de705bba6e24b8915931cc13" - integrity sha512-OSVy7eCgVboWVfDHRassSXH7bKZVShf2gK8zFjwYM59szueWM+49nAahBSMXP+J0jiutEZYrM0r7HeMoR/gDIQ== +"@buffetjs/hooks@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@buffetjs/hooks/-/hooks-3.3.8.tgz#0b03b1aa9cf2236861d5e8533567baa8123fa7ed" + integrity sha512-PaobbbBnzlkWcG04nyNWEvcX6zzC5LdPh2uoAUccEwXG4saXIihrQfnGxuKqvlYHof4PFqQb/cmJHXtrTiE20A== -"@buffetjs/icons@3.3.6": - version "3.3.6" - resolved "https://registry.yarnpkg.com/@buffetjs/icons/-/icons-3.3.6.tgz#b7b59ec69cb2f629a7b102ebfc2115910aa707dd" - integrity sha512-faFDLoA5IUot0LKJ3InSX7hiZJI51krBJ8MPh3HDdol11VFHnLRsltMqAxz4oh5+CU7v4yxZPc+iL9RZZteu6Q== +"@buffetjs/icons@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@buffetjs/icons/-/icons-3.3.8.tgz#289fa686049e467eebb1036dc9624fc70f2d9b8b" + integrity sha512-T1h3w5zu4JmwiZXcJPHJZXOpaIZzCpOQDaXLrzZNGze+8qcifUEKu4Y8pGS9+14OwMXjrAi+SsWxaeY/t7zYTQ== dependencies: prop-types "^15.5.10" -"@buffetjs/styles@3.3.6": - version "3.3.6" - resolved "https://registry.yarnpkg.com/@buffetjs/styles/-/styles-3.3.6.tgz#091d393c3ace250b2eba92933ad924aaa56be4a8" - integrity sha512-M1eF4ECq689vq1z0GTkl1AtaHTkU5+t5jrCyo+By2n6juM/ueJyAWMoK3NrMh5SXgLIJ1OwGGpAXSjOwYMZdvQ== +"@buffetjs/styles@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@buffetjs/styles/-/styles-3.3.8.tgz#932dca9e1c49e3c6717260f1ad784ec8595aec35" + integrity sha512-YkBoXyg6qKe8tUwQQJaieC1hfyBQKLhQZCsIWqhiswr+CJhIJS+YFRQHGQXCo+k3yhHmpXdJqKeMSoBkHr6Xvw== dependencies: "@fortawesome/fontawesome-free" "^5.12.0" "@fortawesome/fontawesome-svg-core" "^1.2.22" @@ -1081,13 +1081,13 @@ react-dates "^21.1.0" react-tooltip "^4.2.11" -"@buffetjs/utils@3.3.6": - version "3.3.6" - resolved "https://registry.yarnpkg.com/@buffetjs/utils/-/utils-3.3.6.tgz#d8c79a866219e0005c0f3b28905f7a5be8aa740e" - integrity sha512-hyPRXdouKFUz+9/TZcQ0sOWz4sdyMt2EiehSB3Gy91E5dHi0A3a+gVStVlm/eqez7w+AAofKyQ0UDqc9ajXu9Q== +"@buffetjs/utils@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@buffetjs/utils/-/utils-3.3.8.tgz#d21ef4c09bb2173e2a7465d39805237ade06b235" + integrity sha512-xRod8N11iWfFayqh5EMP4ScAgpr9GtDOdAJdcKlBLmZqf/rik3StT26GR70Zg25OkFNJ5lt9zknD2vJrdmBX7A== dependencies: lodash "4.17.21" - yup "^0.27.0" + yup "^0.32.9" "@casl/ability@^4.1.5": version "4.1.6" @@ -8969,11 +8969,6 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -fn-name@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" - integrity sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc= - follow-redirects@^1.0.0, follow-redirects@^1.10.0: version "1.13.3" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" @@ -13024,11 +13019,6 @@ lodash.xorby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.xorby/-/lodash.xorby-4.7.0.tgz#9c19a6f9f063a6eb53dd03c1b6871799801463d7" integrity sha1-nBmm+fBjputT3QPBtocXmYAUY9c= -lodash@4.17.20: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== - lodash@4.17.21, lodash@^4.1.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -14316,10 +14306,10 @@ nodemailer-shared@1.1.0: dependencies: nodemailer-fetch "1.6.0" -nodemailer@6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.6.0.tgz#ed47bb572b48d9d0dca3913fdc156203f438f427" - integrity sha512-ikSMDU1nZqpo2WUPE0wTTw/NGGImTkwpJKDIFPZT+YvvR9Sj+ze5wzu95JHkBMglQLoG2ITxU21WukCC/XsFkg== +nodemailer@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.6.1.tgz#2a05fbf205b897d71bf43884167b5d4d3bd01b99" + integrity sha512-1xzFN3gqv+/qJ6YRyxBxfTYstLNt0FCtZaFRvf4Sg9wxNGWbwFmGXVpfSi6ThGK6aRxAo+KjHtYSW8NvCsNSAg== noop-logger@^0.1.1: version "0.1.1" @@ -16193,11 +16183,6 @@ prop-types@^15.5.0, prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, object-assign "^4.1.1" react-is "^16.8.1" -property-expr@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-1.5.1.tgz#22e8706894a0c8e28d58735804f6ba3a3673314f" - integrity sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g== - property-expr@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.4.tgz#37b925478e58965031bb612ec5b3260f8241e910" @@ -19533,11 +19518,6 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -synchronous-promise@^2.0.6: - version "2.0.15" - resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.15.tgz#07ca1822b9de0001f5ff73595f3d08c4f720eb8e" - integrity sha512-k8uzYIkIVwmT+TcglpdN50pS2y1BDcUnBPK9iJeGu0Pl1lOI8pD6wtzgw91Pjpe+RxtTncw32tLxs/R0yNL2Mg== - table@^6.0.4, table@^6.6.0: version "6.6.0" resolved "https://registry.yarnpkg.com/table/-/table-6.6.0.tgz#905654b79df98d9e9a973de1dd58682532c40e8e" @@ -21274,18 +21254,6 @@ ylru@^1.2.0: resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== -yup@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/yup/-/yup-0.27.0.tgz#f8cb198c8e7dd2124beddc2457571329096b06e7" - integrity sha512-v1yFnE4+u9za42gG/b/081E7uNW9mUj3qtkmelLbW5YPROZzSH/KUUyJu9Wt8vxFJcT9otL/eZopS0YK1L5yPQ== - dependencies: - "@babel/runtime" "^7.0.0" - fn-name "~2.0.1" - lodash "^4.17.11" - property-expr "^1.5.0" - synchronous-promise "^2.0.6" - toposort "^2.0.2" - yup@^0.32.9: version "0.32.9" resolved "https://registry.yarnpkg.com/yup/-/yup-0.32.9.tgz#9367bec6b1b0e39211ecbca598702e106019d872" From 172dad91fb323453f9b2ace8308a9ad451785dbb Mon Sep 17 00:00:00 2001 From: eternal~fire Date: Wed, 4 Aug 2021 22:23:00 +0800 Subject: [PATCH 15/21] [I18N] improve simplified Chinese translation (#10408) * [I18N] improve simplified Chinese translation * this would be better * [I18N] strapi-plugin-documentation improve --- .../Roles/ConditionsModal/ActionRow/index.js | 5 +- .../CollapsePropertyMatrix/Header/index.js | 5 +- .../admin/src/translations/zh-Hans.json | 166 +++++++++++++++++- .../admin/src/translations/zh-Hans.json | 78 ++++++-- .../admin/src/translations/zh-Hans.json | 64 +++++-- .../admin/src/translations/zh-Hans.json | 6 +- .../admin/src/translations/zh-Hans.json | 22 ++- .../admin/src/translations/index.js | 2 + .../admin/src/translations/zh-Hans.json | 4 + .../components/CMEditViewCopyLocale/index.js | 7 +- .../admin/src/components/ModalEdit/index.js | 2 +- .../admin/src/translations/en.json | 2 + .../admin/src/translations/index.js | 2 + .../admin/src/translations/zh-Hans.json | 60 +++++++ .../admin/src/translations/index.js | 2 + .../admin/src/translations/zh-Hans.json | 86 +++++++++ .../src/containers/AdvancedSettings/index.js | 6 +- .../containers/AdvancedSettings/utils/form.js | 4 +- .../src/containers/Roles/CreatePage/index.js | 2 +- .../src/containers/Roles/EditPage/index.js | 4 +- .../src/containers/Roles/ListPage/index.js | 2 +- .../admin/src/index.js | 4 +- .../admin/src/translations/en.json | 4 + .../admin/src/translations/zh-Hans.json | 31 +++- 24 files changed, 508 insertions(+), 62 deletions(-) create mode 100644 packages/strapi-plugin-graphql/admin/src/translations/zh-Hans.json create mode 100644 packages/strapi-plugin-i18n/admin/src/translations/zh-Hans.json create mode 100644 packages/strapi-plugin-upload/admin/src/translations/zh-Hans.json diff --git a/packages/strapi-admin/admin/src/components/Roles/ConditionsModal/ActionRow/index.js b/packages/strapi-admin/admin/src/components/Roles/ConditionsModal/ActionRow/index.js index 752ad097b9..bd80e4fb94 100644 --- a/packages/strapi-admin/admin/src/components/Roles/ConditionsModal/ActionRow/index.js +++ b/packages/strapi-admin/admin/src/components/Roles/ConditionsModal/ActionRow/index.js @@ -44,7 +44,10 @@ const ActionRow = ({ style={{ maxWidth: '60%' }} ellipsis > - {label} + {formatMessage({ + id: `Settings.roles.form.permissions.${label.toLowerCase()}`, + defaultMessage: label, + })} { return ( - {header.label} + {formatMessage({ + id: `Settings.roles.form.permissions.${header.label.toLowerCase()}`, + defaultMessage: header.label, + })} ); diff --git a/packages/strapi-admin/admin/src/translations/zh-Hans.json b/packages/strapi-admin/admin/src/translations/zh-Hans.json index 44631dbdc4..106ea4245e 100644 --- a/packages/strapi-admin/admin/src/translations/zh-Hans.json +++ b/packages/strapi-admin/admin/src/translations/zh-Hans.json @@ -1,9 +1,16 @@ { "Analytics": "分析", + "Auth.advanced.allow_register": "", + "Auth.components.Oops.text": "您的账号已被停用", "Auth.form.button.forgot-password": "发送电子邮件", + "Auth.form.button.go-home": "返回首页", "Auth.form.button.login": "登录", + "Auth.form.button.login.strapi": "通过STRAPI登录", + "Auth.form.button.login.providers.see-more": "查看更多", + "Auth.form.button.login.providers.error": "不能连接到你选中的供应商", "Auth.form.button.register": "准备开始", "Auth.form.button.reset-password": "修改密码", + "Auth.form.confirmPassword.label": "确认密码", "Auth.form.email.label": "邮箱", "Auth.form.email.placeholder": "kai@doe.com", "Auth.form.error.blocked": "您的帐户已被管理员禁用。", @@ -21,8 +28,12 @@ "Auth.form.error.ratelimit": "您尝试的次数过多,请稍后再试。", "Auth.form.error.user.not-exist": "此电子邮件不存在。", "Auth.form.error.username.taken": "用户名已被使用", + "Auth.form.firstname.label": "名字", + "Auth.form.firstname.placeholder": "Kai", "Auth.form.forgot-password.email.label": "输入你的电子邮件", "Auth.form.forgot-password.email.label.success": "电子邮件已成功发送到", + "Auth.form.lastname.label": "姓氏", + "Auth.form.lastname.placeholder": "Doe", "Auth.form.password.label": "密码", "Auth.form.register.news.label": "让我随时了解新功能和即将进行的改进(如果要这样做,您需要接受 {terms} 和 {policy} )。", "Auth.form.rememberMe.label": "记住我", @@ -30,9 +41,13 @@ "Auth.form.username.placeholder": "Kai Doe", "Auth.link.forgot-password": "忘记密码了吗?", "Auth.link.ready": "准备好登录?", + "Auth.link.signin": "登录", + "Auth.link.signin.account": "已有账号?", "Auth.privacy-policy-agreement.policy": "隐私政策", "Auth.privacy-policy-agreement.terms": "条款", "Content Manager": "内容管理", + "Content Type Builder": "内容类型生成器", + "Documentation": "文档", "Email": "邮件", "Files Upload": "文件上传", "HomePage.community": "加入社区", @@ -41,20 +56,99 @@ "HomePage.roadmap": "查看我们的路线图", "HomePage.welcome.congrats": "恭喜!", "HomePage.welcome.congrats.content": "您是第一位以管理员身份登录的用户,去发现 Strapi 提供的强大功能吧,", - "HomePage.welcome.congrats.content.bold": "我们建议您创建第一个 Content-Type。", + "HomePage.welcome.congrats.content.bold": "我们建议您创建第一个内容类型。", + "Media Library": "媒体库", "New entry": "新入口", + "or": "或者", "Password": "密码", "Provider": "供应商", "ResetPasswordToken": "密码重置", "Role": "角色", + "Roles & Permissions": "角色及权限", + "Roles.ListPage.notification.delete-all-not-allowed": "由于一些角色与用户相关联,所以可能无法删除", + "Roles.ListPage.notification.delete-not-allowed": "如果角色和用户关联,则不能被删除", + "Roles.RoleRow.user-count.plural": "{number}个用户", + "Roles.RoleRow.user-count.singular": "{number}个用户", + "Roles.components.List.empty.withSearch": "没有找到您要搜索的角色({search})...", + "Settings.application.title": "应用", + "Settings.application.description": "查看项目详情", + "Settings.application.link-pricing": "查看所有价格", + "Settings.application.link-upgrade": "升级项目", + "Settings.application.strapi-version": "STRAPI版本", + "Settings.application.node-version": "NODE版本", + "Settings.application.edition-title": "当前版本", + "Settings.PageTitle": "设置 - {name}", "Settings.error": "错误", "Settings.global": "全局设置", + "Settings.permissions": "管理员面板", + "Settings.permissions.category": "权限设置之{category}", + "Settings.permissions.category.plugins": "{category}插件的权限设置", + "Settings.permissions.conditions.anytime": "任意时刻", + "Settings.permissions.conditions.apply": "应用", + "Settings.permissions.conditions.can": "可以", + "Settings.permissions.conditions.define-conditions": "定义条件", + "Settings.permissions.conditions.links": "链接", + "Settings.permissions.conditions.no-actions": "在定义条件之前,您需要先选择动作(创建,查询,更新...)", + "Settings.permissions.conditions.or": "或者", + "Settings.permissions.conditions.none-selected": "任意时刻", + "Settings.permissions.conditions.selected.plural": "{number}个条件被选中", + "Settings.permissions.conditions.selected.singular": "{number}个条件被选中", + "Settings.permissions.conditions.when": "当", + "Settings.permissions.menu.link.roles.label": "角色", + "Settings.permissions.menu.link.users.label": "用户", + "Settings.permissions.users.add-new": "新增用户", + "Settings.permissions.users.create": "创建用户", + "Settings.permissions.users.form.email": "电子邮箱", + "Settings.permissions.users.form.firstname": "名字", + "Settings.permissions.users.form.lastname": "姓氏", + "Settings.permissions.users.form.sso": "单点登录连接", + "Settings.permissions.users.form.sso.description": "打开时 (ON), 用户可进行单点登录", + "Settings.permissions.users.listview.header.description.plural": "查询到{number}个用户", + "Settings.permissions.users.listview.header.description.singular": "共{number}个用户", + "Settings.permissions.users.listview.header.title": "用户", + "Settings.profile.form.section.profile.title":"个人资料", + "Settings.profile.form.section.password.title": "更改密码", + "Settings.profile.form.section.experience.title": "经历", + "Settings.profile.form.section.experience.interfaceLanguage": "界面语言", + "Settings.profile.form.section.experience.interfaceLanguage.hint": "只会在你自己的界面上显示你选择的语言", + "Settings.roles.create.description": "定义角色角色权限", + "Settings.roles.create.title": "创建一个角色", + "Settings.roles.created": "角色已创建", + "Settings.roles.edit.title": "编辑角色", + "Settings.roles.form.button.users-with-role": "具有此角色的用户", + "Settings.roles.form.created": "已创建", + "Settings.roles.form.description": "角色名称及描述", + "Settings.roles.form.input.description": "描述", + "Settings.roles.form.input.name": "名称", + "Settings.roles.form.permission.property-label": "{label}权限", + "Settings.roles.form.permissions.attributesPermissions": "字段权限", + "Settings.roles.form.permissions.create": "创建", + "Settings.roles.form.permissions.delete": "删除", + "Settings.roles.form.permissions.publish": "发布", + "Settings.roles.form.permissions.read": "查询", + "Settings.roles.form.permissions.update": "更新", + "Settings.roles.form.title": "详情", + "Settings.roles.list.button.add": "添加角色", + "Settings.roles.list.description": "角色列表", + "Settings.roles.list.title.plural": "{number}个角色", + "Settings.roles.list.title.singular": "{number}个角色", + "Settings.roles.title": "角色", + "Settings.roles.title.singular": "角色", + "Settings.sso.title": "单点登录", + "Settings.sso.description": "单点登录功能配置", + "Settings.sso.form.registration.label": "自动注册", + "Settings.sso.form.registration.description": "如果状态不存在则通过单点登录创建一个用户", + "Settings.sso.form.defaultRole.label": "默认角色", + "Settings.sso.form.defaultRole.description": "这将会绑定一个新的授权用户到选中角色", + "Settings.sso.form.defaultRole.description-not-allowed": "你需要权限来读取管理员角色", "Settings.webhooks.create": "创建一个 webhook", "Settings.webhooks.create.header": "添加", "Settings.webhooks.created": "Webhook 已创建", "Settings.webhooks.disabled": "已禁用", "Settings.webhooks.enabled": "已启用", + "Settings.webhooks.event.publish-tooltip": "该事件只有当内容的草稿/发布系统开启时才存在", "Settings.webhooks.events.create": "创建", + "Settings.webhooks.events.update": "更新", "Settings.webhooks.form.events": "事件", "Settings.webhooks.form.headers": "请求头", "Settings.webhooks.form.name": "名称", @@ -78,7 +172,10 @@ "Settings.webhooks.value": "值", "Username": "用户名", "Users": "用户", - "Users & Permissions": "用户 & 权限", + "Users & Permissions": "用户及权限", + "Users.components.List.empty": "暂无用户", + "Users.components.List.empty.withFilters": "该筛选条件下没有查询到用户", + "Users.components.List.empty.withSearch": "没有搜索到对应的用户({search})”", "app.components.BlockLink.code": "代码示例", "app.components.BlockLink.code.content": "通过测试社区的真实项目来学习。", "app.components.BlockLink.documentation": "阅读文档", @@ -93,13 +190,13 @@ "app.components.HomePage.button.blog": "在博客上查看更多", "app.components.HomePage.community": "在网络上找到社区", "app.components.HomePage.community.content": "与团队成员、贡献者和开发人员在不同的渠道进行讨论。", - "app.components.HomePage.create": "创建第一个 Content Type", + "app.components.HomePage.create": "创建第一个内容类型", "app.components.HomePage.welcome": "欢迎回来", "app.components.HomePage.welcome.again": "欢迎 ", "app.components.HomePage.welcomeBlock.content": "我们很高兴有你成为社区成员之一。我们一直在寻找反馈,所以可以随时给我们发送消息到", "app.components.HomePage.welcomeBlock.content.again": "我们希望你在项目上取得进展。请随意阅读关于 Strapi 的最新消息。我们将尽最大努力根据您的反馈改进产品。", - "app.components.HomePage.welcomeBlock.content.issues": "issues.", - "app.components.HomePage.welcomeBlock.content.raise": " or raise ", + "app.components.HomePage.welcomeBlock.content.issues": "问题。", + "app.components.HomePage.welcomeBlock.content.raise": "或是回报 ", "app.components.ImgPreview.hint": "将文件拖放到该区域或{browse}以供文件上载", "app.components.ImgPreview.hint.browse": "浏览", "app.components.InputFile.newFile": "增加新文件", @@ -115,7 +212,7 @@ "app.components.LeftMenuFooter.documentation": "文档", "app.components.LeftMenuFooter.help": "帮助", "app.components.LeftMenuFooter.poweredBy": "技术支持 ", - "app.components.LeftMenuLinkContainer.collectionTypes": "Collection Types", + "app.components.LeftMenuLinkContainer.collectionTypes": "集合类型", "app.components.LeftMenuLinkContainer.configuration": "配置", "app.components.LeftMenuLinkContainer.general": "常规", "app.components.LeftMenuLinkContainer.installNewPlugin": "市场", @@ -123,6 +220,9 @@ "app.components.LeftMenuLinkContainer.noPluginsInstalled": "还没有安装插件", "app.components.LeftMenuLinkContainer.plugins": "插件", "app.components.LeftMenuLinkContainer.settings": "设置", + "app.components.LeftMenuLinkContainer.singleTypes": "单一类型", + "app.components.ListPluginsPage.deletePlugin.description": "可能需要几秒钟卸载插件", + "app.components.ListPluginsPage.deletePlugin.title": "卸载中", "app.components.ListPluginsPage.description": "项目中已安装的插件列表", "app.components.ListPluginsPage.helmet.title": "插件列表", "app.components.ListPluginsPage.title": "插件", @@ -142,17 +242,53 @@ "app.components.PluginCard.compatible": "与你的应用程序兼容", "app.components.PluginCard.compatibleCommunity": "与社区兼容", "app.components.PluginCard.more-details": "更多细节", + "app.components.UpgradePlanModal.button": "了解更多", + "app.components.UpgradePlanModal.limit-reached": "你已达到限制", + "app.components.UpgradePlanModal.text-ce": "社区版", + "app.components.UpgradePlanModal.text-ee": "企业版", + "app.components.UpgradePlanModal.text-power": "解锁全部功能", + "app.components.UpgradePlanModal.text-strapi": "通过升级你的Strapi版本到", + "app.components.Users.MagicLink.connect": "将此链接发送给用户来让他们连接", + "app.components.Users.MagicLink.connect.sso": "将此链接发送给用户,可以通过单点登录提供商进行首次登录", + "app.components.Users.ModalCreateBody.block-title.details": "详情", + "app.components.Users.ModalCreateBody.block-title.roles": "用户所有角色", + "app.components.Users.ModalCreateBody.block-title.roles.description": "用户可以有一到多个角色", + "app.components.Users.ModalCreateBody.block-title.login": "登录设置", + "app.components.Users.SortPicker.button-label": "排序", + "app.components.Users.SortPicker.sortby.email_asc": "电子邮箱 (A to Z)", + "app.components.Users.SortPicker.sortby.email_desc": "电子邮箱 (Z to A)", + "app.components.Users.SortPicker.sortby.firstname_asc": "名字 (A to Z)", + "app.components.Users.SortPicker.sortby.firstname_desc": "名字 (Z to A)", + "app.components.Users.SortPicker.sortby.lastname_asc": "姓氏 (A to Z)", + "app.components.Users.SortPicker.sortby.lastname_desc": "姓氏 (Z to A)", + "app.components.Users.SortPicker.sortby.username_asc": "用户名 (A to Z)", + "app.components.Users.SortPicker.sortby.username_desc": "用户名 (Z to A)", "app.components.listPlugins.button": "增加新插件", "app.components.listPlugins.title.none": "还没有安装插件", "app.components.listPlugins.title.plural": "{number} 个插件已安装", "app.components.listPlugins.title.singular": "{number} 个插件已安装", "app.components.listPluginsPage.deletePlugin.error": "卸载插件时出错", "app.containers.App.notification.error.init": "请求 API 时发生错误", + "app.containers.AuthPage.ForgotPasswordSuccess.text.contact-admin": "如果您没有收到此链接,请联系您的管理员", + "app.containers.AuthPage.ForgotPasswordSuccess.text.email": "可能会花费几分钟收到你的密码重置链接", + "app.containers.AuthPage.ForgotPasswordSuccess.title": "已发送到邮箱", + "app.containers.Users.EditPage.form.active.label": "启用", + "app.containers.Users.EditPage.header.label": "编辑 {name}", + "app.containers.Users.EditPage.header.label-loading": "编辑用户", + "app.containers.Users.EditPage.roles-bloc-title": "所有角色", + "app.containers.Users.ModalForm.footer.button-success": "创建用户", "app.links.configure-view": "配置视图", + "app.static.links.cheatsheet": "备忘单", "app.utils.SelectOption.defaultMessage": " ", + "app.utils.add-filter": "添加筛选", "app.utils.defaultMessage": " ", "app.utils.delete": "删除", + "app.utils.errors.file-too-big.message": "文件太大了", + "app.utils.filters": "筛选", "app.utils.placeholder.defaultMessage": " ", + "app.utils.publish": "发布", + "app.utils.select-all": "全选", + "app.utils.unpublish": "取消发布", "component.Input.error.validation.integer": "该值必须是整数", "components.AutoReloadBlocker.description": "使用以下命令中的一个来运行 Strapi:", "components.AutoReloadBlocker.header": "这个插件需要重新加载特性。", @@ -165,11 +301,15 @@ "components.FilterOptions.FILTER_TYPES._in": "包含在指定数组中", "components.FilterOptions.FILTER_TYPES._lt": "小于", "components.FilterOptions.FILTER_TYPES._lte": "小于等于", + "components.FilterOptions.FILTER_TYPES._ncontains": "不包含", "components.FilterOptions.FILTER_TYPES._ne": "不等于", "components.FilterOptions.FILTER_TYPES._nin": "不包含在指定数组中", "components.Input.error.attribute.key.taken": "此值已经存在", "components.Input.error.attribute.sameKeyAndName": "不能相等", "components.Input.error.attribute.taken": "此字段名称已经存在", + "components.Input.error.contain.lowercase": "密码至少需要包含一个小写字母", + "components.Input.error.contain.number": "密码至少需要包含一个数字", + "components.Input.error.contain.uppercase": "密码至少需要包含一个大写字母", "components.Input.error.contentTypeName.taken": "此名称已经存在", "components.Input.error.custom-error": "{errorMessage} ", "components.Input.error.password.noMatch": "密码不匹配", @@ -185,13 +325,15 @@ "components.Input.error.validation.unique": "该值已经被使用。", "components.InputSelect.option.placeholder": "选择", "components.ListRow.empty": "没有要显示的数据", + "components.NotAllowedInput.text": "没有权限查看此输入栏", "components.OverlayBlocker.description": "您正在使用一个需要服务器重新启动的特性,请等待服务器启动。", "components.OverlayBlocker.description.serverError": "服务器应该已经重新启动,请在终端中检查您的日志。", "components.OverlayBlocker.title": "等待重新启动...", "components.OverlayBlocker.title.serverError": "重启时间长于预期", - "components.PageFooter.select": "每页条目", + "components.PageFooter.select": "每页记录", "components.ProductionBlocker.description": "为了安全起见,我们必须在其他环境中禁用这个插件。", "components.ProductionBlocker.header": "这个插件只能在开发中使用。", + "components.Search.placeholder": "搜索...", "components.Wysiwyg.ToggleMode.markdown": "编辑", "components.Wysiwyg.ToggleMode.preview": "预览", "components.Wysiwyg.collapse": "折叠", @@ -206,14 +348,24 @@ "components.WysiwygBottomControls.fullscreen": "最大化", "components.WysiwygBottomControls.uploadFiles": "拖放文件,从剪贴板粘贴或 {browse}.", "components.WysiwygBottomControls.uploadFiles.browse": "从文件夹选取", + "components.popUpWarning.button.cancel": "不, 取消", + "components.popUpWarning.button.confirm": "是, 确认", "components.popUpWarning.message": "确实要删除这个吗?", "components.popUpWarning.title": "请确认", + "form.button.continue": "继续", "form.button.done": "完成", "form.button.finish": "结束", "global.prompt.unsaved": "你确定要离开这个页面吗?你所有的修改都会丢失!", + "notification.contentType.relations.conflict": "内容类型有冲突的关联", "notification.error": "发生了一个错误", "notification.error.layout": "无法获取布局", "notification.form.error.fields": "表单包含一些错误", "notification.form.success.fields": "修改已保存", + "notification.link-copied": "链接已拷贝至剪切板", + "notification.permission.not-allowed-read": "您不被允许查看该文档", + "notification.success.delete": "项目已删除", + "notification.success.saved": "已保存", + "notification.version.update.message": "有新版版Strapi可用!", + "notification.version.update.link": "查看更多", "request.error.model.unknown": "这个模型已不存在" } diff --git a/packages/strapi-plugin-content-manager/admin/src/translations/zh-Hans.json b/packages/strapi-plugin-content-manager/admin/src/translations/zh-Hans.json index 12b75adc98..1ab7389ed8 100644 --- a/packages/strapi-plugin-content-manager/admin/src/translations/zh-Hans.json +++ b/packages/strapi-plugin-content-manager/admin/src/translations/zh-Hans.json @@ -1,5 +1,6 @@ { "EditRelations.title": "关联数据", + "api.id": "API ID", "components.AddFilterCTA.add": "过滤器", "components.AddFilterCTA.hide": "过滤器", "components.DraggableAttr.edit": "点击以编辑", @@ -7,6 +8,7 @@ "components.DynamicZone.missing.plural": "有 {count} 个缺少的组件", "components.DynamicZone.missing.singular": "有 {count} 个缺少的组件", "components.DynamicZone.pick-compo": "选择一个组件", + "components.DynamicZone.required": "组件是必需的", "components.EmptyAttributesBlock.button": "前往设置页面", "components.EmptyAttributesBlock.description": "您可以更改设置", "components.FieldItem.linkToComponentLayout": "设置组件的布局", @@ -17,46 +19,67 @@ "components.FiltersPickWrapper.PluginHeader.title.filter": "过滤器", "components.FiltersPickWrapper.hide": "隐藏", "components.LimitSelect.itemsPerPage": "每页显示数目", + "components.NotAllowedInput.text": "没有权限查看该字段", "components.Search.placeholder": "搜索...", + "components.Select.draft-info-title": "状态: 草稿", + "components.Select.publish-info-title": "状态: 已发布", "components.SettingsViewWrapper.pluginHeader.description.edit-settings": "自定义编辑视图的外观。", - "components.SettingsViewWrapper.pluginHeader.description.list-settings": "定义列表视图的设置。", + "components.SettingsViewWrapper.pluginHeader.description.list-settings": "定义列表视图的设置", "components.SettingsViewWrapper.pluginHeader.title": "配置视图 - {name}", "components.TableDelete.delete": "刪除", "components.TableDelete.deleteSelected": "删除所选", - "components.TableDelete.entries.plural": "已选取 {number} 个条目", - "components.TableDelete.entries.singular": "已选取 {number} 个条目", - "components.TableEmpty.withFilters": "找不到 {contentType} 按照过滤条件...", - "components.TableEmpty.withSearch": "找不到 {contentType} 按照过滤条件: ({search})...", - "components.TableEmpty.withoutFilter": "找不到 {contentType}...", + "components.TableDelete.entries.plural": "已选取 {number} 条记录", + "components.TableDelete.entries.singular": "已选取 {number} 条记录", + "components.TableEmpty.withFilters": "当前过滤条件下,找不到{contentType}", + "components.TableEmpty.withSearch": "无{contentType}匹配搜索“{search}” ", + "components.TableEmpty.withoutFilter": "{contentType}记录为空", "components.empty-repeatable": "还没有实体。可以点击下面的按钮来添加一个", + "components.repeatable.reorder.error": "重排组件字段时,产生了一个错误,请重试", "components.notification.info.maximum-requirement": "您已经达到最大字段数限制", "components.notification.info.minimum-requirement": "已在您的分组中添加一个字段,以满足最低要求", "components.reset-entry": "重置实体", + "components.uid.apply": "应用", + "components.uid.available": "可用", + "components.uid.regenerate": "重新生成", + "components.uid.suggested": "建议", + "components.uid.unavailable": "不可用", "containers.Edit.Link.Fields": "编辑字段", "containers.Edit.Link.Layout": "编辑布局", - "containers.Edit.Link.Model": "编辑这个 Content Type", + "containers.Edit.Link.Model": "编辑这个内容类型", "containers.Edit.addAnItem": "新增关联...", "containers.Edit.clickToJump": "跳转到该项内容", "containers.Edit.delete": "删除", + "containers.Edit.delete-entry": "删除该实体", "containers.Edit.editing": "编辑...", - "containers.Edit.pluginHeader.title.new": "创建实体", + "containers.Edit.information": "信息", + "containers.Edit.information.by": "作者", + "containers.Edit.information.draftVersion": "草稿版本", + "containers.Edit.information.editing": "正在编辑", + "containers.Edit.information.lastUpdate": "最近更新", + "containers.Edit.information.publishedVersion": "已发布版本", + "containers.Edit.pluginHeader.title.new": "新建实体", "containers.Edit.reset": "重置", "containers.Edit.returnList": "返回列表", "containers.Edit.seeDetails": "详细信息", "containers.Edit.submit": "保存", "containers.EditSettingsView.modal-form.edit-field": "编辑字段", "containers.EditView.add.new": "新增一个实体", - "containers.EditView.components.missing.plural": "有 {count} 个缺少的组件", - "containers.EditView.components.missing.singular": "有 {count} 个缺少的组件", + "containers.EditView.components.missing.plural": "有{count}个缺少的组件", + "containers.EditView.components.missing.singular": "有{count}个缺少的组件", "containers.EditView.notification.errors": "表单包含一些错误", - "containers.Home.introduction": "要编辑您的条目,请转到左边菜单中的特定链接。这个插件没有合适的方法来编辑设置,它仍然在积极的开发中。", + "containers.Home.introduction": "要编辑您的记录,请转到左边菜单中的特定链接。这个插件没有合适的方法来编辑设置,它仍然在积极的开发中。", "containers.Home.pluginHeaderDescription": "通过一个强大而漂亮的界面管理你的条目。", "containers.Home.pluginHeaderTitle": "内容管理器", "containers.List.addAnEntry": "增加新的 {entity}", + "containers.List.draft": "草稿", "containers.List.errorFetchRecords": "错误", - "containers.List.pluginHeaderDescription": "找到 {label} 条目", - "containers.List.pluginHeaderDescription.singular": "找到 {label} 条目", + "containers.List.pluginHeaderDescription": "查询到 {label} 条记录", + "containers.List.pluginHeaderDescription.singular": "查询到 {label} 条记录", + "containers.List.published": "已发布", "containers.ListPage.displayedFields": "显示字段", + "containers.ListPage.items.plural": "项", + "containers.ListPage.items.singular": "项", + "containers.ListPage.table-headers.published_at": "状态", "containers.ListSettingsView.modal-form.edit-label": "编辑标签", "containers.SettingPage.add.field": "新增字段", "containers.SettingPage.add.relational-field": "新增关联字段", @@ -65,22 +88,31 @@ "containers.SettingPage.editSettings.description": "拖拽字段来布局", "containers.SettingPage.editSettings.entry.title": "实体的标题", "containers.SettingPage.editSettings.entry.title.description": "设置你的实体的显示字段", + "containers.SettingPage.editSettings.relation-field.description": "在编辑及列表视图中,设置显示字段", "containers.SettingPage.editSettings.title": "编辑-设置", "containers.SettingPage.layout": "布局", + "containers.SettingPage.listSettings.description": "为该集合类型配置选项", "containers.SettingPage.listSettings.title": "列表 (设置)", + "containers.SettingPage.pluginHeaderDescription": "为该集合类型配置特殊设置", "containers.SettingPage.relations": "关联字段", "containers.SettingPage.settings": "设置", "containers.SettingPage.view": "视图", "containers.SettingViewModel.pluginHeader.title": "内容管理 - {name}", "containers.SettingsPage.Block.contentType.description": "调整指定内容类型的的字段", + "containers.SettingsPage.Block.contentType.title": "集合类型", + "containers.SettingsPage.Block.generalSettings.description": "为你的集合类型配置默认选项", "containers.SettingsPage.Block.generalSettings.title": "总览", + "containers.SettingsPage.pluginHeaderDescription": "对你所有的集合类型及组别进行配置", + "containers.SettingsView.list.subtitle": "对你的所有集合类型和组别配置布局及显示", "containers.SettingsView.list.title": "显示配置", + "emptyAttributes.button": "去到集合类型生成器", + "emptyAttributes.description": "给你的集合类型添加第一个字段", "emptyAttributes.title": "还没有字段", "error.attribute.key.taken": "该值已存在", "error.attribute.sameKeyAndName": "不能相等", "error.attribute.taken": "该名称已被使用", "error.contentTypeName.taken": "该名称已被使用", - "error.model.fetch": "获取models配置时发生错误", + "error.model.fetch": "获取模型配置时发生错误", "error.record.create": "创建记录时发生错误", "error.record.delete": "删除记录时发生错误", "error.record.fetch": "获取记录时发生错误。", @@ -105,6 +137,7 @@ "form.Input.label": "标签", "form.Input.label.inputDescription": "这个标签会显示在表格的标题列名称", "form.Input.pageEntries": "每页条数", + "form.Input.pageEntries.inputDescription": "注意:你可以在集合类型设置页面中覆盖该值", "form.Input.placeholder": "占位符", "form.Input.placeholder.placeholder": "在文字框中显示提示信息", "form.Input.search": "启用搜索功能", @@ -114,20 +147,31 @@ "global.displayedFields": "显示的字段", "groups": "分组", "groups.numbered": "分组 ({number})", - "models": "Content Types", - "models.numbered": "Content Types ({number})", + "models": "内容类型", + "models.numbered": "内容类型 ({number})", "notification.error.displayedFields": "您至少需要显示一个字段", "notification.error.relationship.fetch": "获取关联数据时发生错误", "notification.info.SettingPage.disableSort": "您至少需要允许一个字段可以被用來排序", "notification.info.minimumFields": "您至少需要显示一个字段", "notification.upload.error": "上传文件时发生了错误", "pageNotFound": "页面未找到", + "permissions.not-allowed.create": "您不能创建一个文档", + "permissions.not-allowed.update": "您不能查看该文档", "plugin.description.long": "快速查看、编辑和删除数据库中的数据。", "plugin.description.short": "快速查看、编辑和删除数据库中的数据。", "popUpWarning.bodyMessage.contentType.delete": "确实要删除此条目吗?", "popUpWarning.bodyMessage.contentType.delete.all": "您确定要删除这些内容吗?", "popUpWarning.warning.cancelAllSettings": "您确定要放弃修改?", + "popUpWarning.warning.publish-question": "你仍然想发布它吗?", + "popUpWarning.warning.unpublish": "取消发布该内容

会自动将其更改为草稿", + "popUpWarning.warning.unpublish-question": "确定要将其取消发布?", "popUpWarning.warning.updateAllSettings": "这会修改您的设置", + "popUpwarning.warning.has-draft-relations.button-confirm": "是的, 发布", + "popUpwarning.warning.has-draft-relations.message.plural": "你的内容中有{count}个关联还没发布

这可能会导致你的项目产生断开的链接及错误", + "popUpwarning.warning.has-draft-relations.message.singular": "你的内容中有{count}个关联还没发布

这可能会导致你的项目产生断开的链接及错误", + "popUpwarning.warning.has-draft-relations.second-message": "这可能会导致你的项目产生断开的链接及错误", "success.record.delete": "已删除", - "success.record.save": "已保存" + "success.record.publish": "已发布", + "success.record.save": "已保存", + "success.record.unpublish": "已取消发布" } diff --git a/packages/strapi-plugin-content-type-builder/admin/src/translations/zh-Hans.json b/packages/strapi-plugin-content-type-builder/admin/src/translations/zh-Hans.json index 6f61e319f9..bfc9608fbd 100644 --- a/packages/strapi-plugin-content-type-builder/admin/src/translations/zh-Hans.json +++ b/packages/strapi-plugin-content-type-builder/admin/src/translations/zh-Hans.json @@ -1,6 +1,6 @@ { "attribute.boolean": "布尔类型", - "attribute.boolean.description": "Yes 或 no, 1 或 0, true 或 false", + "attribute.boolean.description": "是 或 否, 1 或 0, true 或 false", "attribute.component": "组件", "attribute.component.description": "您可以重复或重复使用的字段组", "attribute.date": "日期选择器", @@ -22,18 +22,20 @@ "attribute.password": "密码输入框", "attribute.password.description": "密码字段,会隐藏字符", "attribute.relation": "引用", - "attribute.relation.description": "引用一个 Content Type", + "attribute.relation.description": "引用一个内容类型", "attribute.richtext": "富文本编辑器", "attribute.richtext.description": "具有格式选项的富文本编辑器", "attribute.text": "文本", "attribute.text.description": "较短或较长的文字,例如标题或说明", "attribute.time": "时间", + "attribute.timestamp": "时间戳", "attribute.uid": "UID", "attribute.uid.description": "唯一标识符", "button.attributes.add.another": "添加一个新字段", "button.component.add": "添加组件", "button.component.create": "创建新组件", - "button.model.create": "创建一个新的 Content Type", + "button.model.create": "创建一个新的集合类型", + "button.single-types.create": "创建新的单一类型", "component.repeatable": "(可重复的)", "components.componentSelect.no-component-available": "您已经添加了所有组件", "components.componentSelect.no-component-available.with-search": "没有与您的搜索相匹配的组件", @@ -41,11 +43,19 @@ "components.componentSelect.value-components": "{number} 个组件被选择", "configurations": "配置", "contentType.UID.description": "UID 用于生成 API 路由和数据库表/集合", - "contentType.collectionName.description": "当 Content Type 的名称和表名称不同时会很有用", + "contentType.collectionName.description": "当内容类型的名称和表名称不同时会很有用", "contentType.collectionName.label": "集合名称", "contentType.displayName.label": "显示名称", + "contentType.draftAndPublish.description": "让每个实体在发布之前有一个草稿版本", + "contentType.draftAndPublish.label": "草稿/发布系统", + "contentType.kind.change.warning": "你刚刚更改了一个内容类型,API将会重置(routes, controllers, 及services将会被覆盖)", + "error.attributeName.reserved-name": "由于该名会破坏其他功能,所以不能被用于你的内容类型", "error.contentTypeName.reserved-name": "此名称不能在项目中使用,因为它可能会破坏其他功能", + "error.validation.enum-duplicate": "重复值是不合法的", "error.validation.minSupMax": "不能更高", + "error.validation.regex": "正则表达式格式不合法", + "error.validation.enum-empty-string": "不允许空字符串", + "error.validation.relation.targetAttribute-taken": "该名在目标属性中已存在", "form.attribute.component.option.add": "添加一个组件", "form.attribute.component.option.create": "创建一个新的组件", "form.attribute.component.option.create.description": "组件在类型和组件之间共享,它将随处可用。", @@ -61,7 +71,7 @@ "form.attribute.item.date.type.datetime": "日期与时间", "form.attribute.item.date.type.time": "时间", "form.attribute.item.defineRelation.fieldName": "字段名称", - "form.attribute.item.enumeration.graphql": "GraphQL 的名称重写", + "form.attribute.item.enumeration.graphql": "GraphQL的名称重写", "form.attribute.item.enumeration.graphql.description": "允许您覆盖 GraphQL 的默认生成名称", "form.attribute.item.enumeration.placeholder": "例如:\nmorning\nnoon\nevening", "form.attribute.item.enumeration.rules": "值(每个值占一行)", @@ -79,22 +89,33 @@ "form.attribute.item.requiredField": "必须的", "form.attribute.item.requiredField.description": "如果此字段为空,则无法创建字段。", "form.attribute.item.settings.name": "设置", + "form.attribute.item.text.regex": "正则表达式模式", + "form.attribute.item.text.regex.description": "正则表达式文本", "form.attribute.item.uniqueField": "唯一的", - "form.attribute.item.uniqueField.description": "如果存在具有相同内容的现有条目,则无法创建条目。", + "form.attribute.item.uniqueField.description": "如果存在具有相同内容的现有记录,则无法创建记录。", + "form.attribute.media.allowed-types": "选择允许的媒体类型", + "form.attribute.media.allowed-types.none": "无", + "form.attribute.media.allowed-types.option-files": "文件", + "form.attribute.media.allowed-types.option-images": "图片", + "form.attribute.media.allowed-types.option-videos": "视频", "form.attribute.media.option.multiple": "多种媒体", "form.attribute.media.option.multiple.description": "最适合的滑块,转盘或多个文件下载", "form.attribute.media.option.single": "单一的媒体", "form.attribute.media.option.single.description": "最适合的头像,个人资料图片或封面", "form.attribute.settings.default": "默认值", "form.attribute.text.option.long-text": "较长的文字", - "form.attribute.text.option.long-text.description": "最适合的描述,传记。
精确搜索已禁用。", + "form.attribute.text.option.long-text.description": "最适合的描述,传记。精确搜索已禁用。", "form.attribute.text.option.short-text": "较短的文字", "form.attribute.text.option.short-text.description": "最适合的标题,名称,链接(URL)。它还可以在字段进行精确搜索。", "form.button.add-components-to-dynamiczone": "将组件添加到区域", "form.button.add-field": "添加另一个字段", "form.button.add-first-field-to-created-component": "添加第一个字段到这个组件", - "form.button.add.field.to.component": "向该组件添加另一个字段", + "form.button.add.field.to.collectionType": "添加另一个字段到该集合类型", + "form.button.add.field.to.component": "添加另一个字段到该组件", + "form.button.add.field.to.contentType": "添加另一个字段到该内容类型", + "form.button.add.field.to.singleType": "添加另一个字段到该单一类型", "form.button.cancel": "取消", + "form.button.collection-type.description": "对于诸如文章,产品,评论这样多实例最佳", "form.button.configure-component": "配置组件", "form.button.configure-view": "配置视图", "form.button.continue": "继续", @@ -102,33 +123,43 @@ "form.button.finish": "结束", "form.button.save": "保存", "form.button.select-component": "选择一个组件", + "form.button.single-type.description": "对于诸如关于我们,主页等实例最佳", + "form.contentType.divider.draft-publish": "草稿/发布", "from": "来自", "injected-components.content-manager.edit-settings-view.link.components": "编辑这个组件", - "injected-components.content-manager.edit-settings-view.link.content-types": "编辑这个 Content Type", + "injected-components.content-manager.edit-settings-view.link.content-types": "编辑这个内容类型", "menu.section.components.name.plural": "组件", "menu.section.components.name.singular": "组件", - "menu.section.models.name.plural": "Collection Types", - "menu.section.models.name.singular": "Collection Type", + "menu.section.models.name.plural": "集合类型", + "menu.section.models.name.singular": "集合类型", + "menu.section.single-types.name.plural": "单一类型", + "menu.section.single-types.name.singular": "单一类型", "modalForm.attribute.form.base.name": "名称", "modalForm.attribute.form.base.name.description": "属性名称不允许使用空格", + "modalForm.attribute.form.base.name.placeholder": "例如 Slug, SEO URL, Canonical URL", + "modalForm.attribute.target-field": "附加字段", "modalForm.attribute.text.type-selection": "类型", "modalForm.attributes.select-component": "选择一个组件", "modalForm.attributes.select-components": "选择组件", "modalForm.component.header-create": "创建一个组件", "modalForm.components.create-component.category.label": "选择一个类别或输入名称以创建一个新类别", "modalForm.components.icon.label": "图标", - "modalForm.contentType.header-create": "创建一个 Content Type", + "modalForm.contentType.header-create": "创建一个内容类型", "modalForm.editCategory.base.name.description": "类别名称不允许有空格", "modalForm.header-edit": "编辑 {name}", "modalForm.header.categories": "类别", + "modalForm.singleType.header-create": "创建一个单一类型", "modalForm.sub-header.addComponentToDynamicZone": "将新组件添加到动态区域", "modalForm.sub-header.attribute.create": "添加新的 {type} 字段", "modalForm.sub-header.attribute.create.step": "添加新的组件 ({step}/2)", "modalForm.sub-header.attribute.edit": "编辑 {name}", - "modalForm.sub-header.chooseAttribute.collectionType": "为您的 Content Type 选择一个字段", + "modalForm.sub-header.chooseAttribute.collectionType": "为您的内容类型选择一个字段", "modalForm.sub-header.chooseAttribute.component": "为您的组件选择一个字段", + "modalForm.sub-header.chooseAttribute.singleType": "给你的单一类型选择一个字段", + "modelPage.attribute.relation-polymorphic": "关联 (多台)", "modelPage.attribute.relationWith": "关联", - "modelPage.contentHeader.emptyDescription.description": "该Collection Type没有任何描述", + "modelPage.contentHeader.emptyDescription.description": "该集合类型没有任何描述", + "none": "无", "notification.info.autoreaload-disable": "要使用此插件,需要自动重载功能。请使用 `strapi develop` 启动服务", "notification.info.creating.notSaved": "在创建新的内容类型或组件之前,请保存您的工作", "plugin.description.long": "给你的 API 的数据结构建模. 快速的创造新的字段(fields)和关系(relations)。将会自动在项目中创建和更新文件。", @@ -140,7 +171,10 @@ "popUpWarning.bodyMessage.cancel-modifications.with-components": "您确定要取消修改吗?某些组件已创建或已修改了...", "popUpWarning.bodyMessage.category.delete": "您确定要删除此类别吗?所有组件也将被删除。", "popUpWarning.bodyMessage.component.delete": "您确定要删除此组件吗?", - "popUpWarning.bodyMessage.contentType.delete": "您确定要删除此 Content Type 吗?", + "popUpWarning.bodyMessage.contentType.delete": "您确定要删除搞内容类型吗?", + "popUpWarning.draft-publish.button.confirm": "是的, 关闭", + "popUpWarning.draft-publish.message": "如果你关闭了草稿/发布系统,你的草稿将会被删除", + "popUpWarning.draft-publish.second-message": "你确定要关闭它?", "prompt.unsaved": "您确定要离开吗?您所有的修改都将丢失。", "relation.attributeName.placeholder": "例如: author, category, tag", "relation.manyToMany": "有并属于许多", diff --git a/packages/strapi-plugin-documentation/admin/src/translations/zh-Hans.json b/packages/strapi-plugin-documentation/admin/src/translations/zh-Hans.json index 260dc0fdad..2b71cf964b 100755 --- a/packages/strapi-plugin-documentation/admin/src/translations/zh-Hans.json +++ b/packages/strapi-plugin-documentation/admin/src/translations/zh-Hans.json @@ -23,5 +23,9 @@ "error.regenerateDoc": "重新生成文件时发生错误", "error.regenerateDoc.versionMissing": "您尝试重新生成的版本不存在", "notification.update.success": "设置更新成功", - "plugin.name": "文档" + "notification.delete.success": "文档删除成功", + "notification.generate.success": "文档生成成功", + "plugin.name": "文档", + "plugin.description.long": "创建OpenAPI文档并使用SwaggerUI可视化你的API", + "plugin.description.short": "创建OpenAPI文档并使用SwaggerUI可视化你的API" } diff --git a/packages/strapi-plugin-email/admin/src/translations/zh-Hans.json b/packages/strapi-plugin-email/admin/src/translations/zh-Hans.json index 9842d4937c..ecba6e8ad4 100644 --- a/packages/strapi-plugin-email/admin/src/translations/zh-Hans.json +++ b/packages/strapi-plugin-email/admin/src/translations/zh-Hans.json @@ -1,4 +1,22 @@ { - "plugin.description.long": "发送电子邮件。", - "plugin.description.short": "发送电子邮件。" + "plugin.description.long": "发送邮件", + "plugin.description.short": "发送邮件", + "SettingsNav.section-label": "电子邮件插件", + "SettingsNav.link.settings": "电子邮件设置", + "Settings.title": "电子邮件设置", + "Settings.subTitle": "测试电子邮件插件配置", + "Settings.button.test-email": "测试邮件", + "Settings.notification.test.success": "邮件发送成功, 请检查{to}邮箱", + "Settings.notification.test.error": "测试邮件发送至{to}失败", + "Settings.notification.config.error": "无法使用电子邮件配置", + "Settings.form.title.config": "配置", + "Settings.form.title.test": "发送一个测试邮件", + "Settings.form.label.provider": "电子邮件提供商", + "Settings.form.label.defaultFrom": "默认寄件地址", + "Settings.form.label.defaultReplyTo": "默认回复地址", + "Settings.form.label.testAddress": "测试寄件电子邮件", + "Settings.form.placeholder.defaultFrom": "例如: Strapi No-Reply ", + "Settings.form.placeholder.defaultReplyTo": "例如: Strapi ", + "Settings.form.placeholder.testAddress": "例如: developer@example.com", + "Settings.form.text.configuration": "该插件通过{file}进行配置, 点击{link}查看文档" } diff --git a/packages/strapi-plugin-graphql/admin/src/translations/index.js b/packages/strapi-plugin-graphql/admin/src/translations/index.js index bb24bb1106..d72e52272c 100644 --- a/packages/strapi-plugin-graphql/admin/src/translations/index.js +++ b/packages/strapi-plugin-graphql/admin/src/translations/index.js @@ -1,9 +1,11 @@ import en from './en.json'; import fr from './fr.json'; +import zhHans from './zh-Hans.json'; const trads = { en, fr, + 'zh-Hans': zhHans, }; export default trads; diff --git a/packages/strapi-plugin-graphql/admin/src/translations/zh-Hans.json b/packages/strapi-plugin-graphql/admin/src/translations/zh-Hans.json new file mode 100644 index 0000000000..4ad86e7d69 --- /dev/null +++ b/packages/strapi-plugin-graphql/admin/src/translations/zh-Hans.json @@ -0,0 +1,4 @@ +{ + "plugin.description.long": "为默认API方法添加GraphQL端点", + "plugin.description.short": "为默认API方法添加GraphQL端点" +} diff --git a/packages/strapi-plugin-i18n/admin/src/components/CMEditViewCopyLocale/index.js b/packages/strapi-plugin-i18n/admin/src/components/CMEditViewCopyLocale/index.js index 6d3b067933..51efc0a317 100644 --- a/packages/strapi-plugin-i18n/admin/src/components/CMEditViewCopyLocale/index.js +++ b/packages/strapi-plugin-i18n/admin/src/components/CMEditViewCopyLocale/index.js @@ -109,13 +109,16 @@ const Content = ({ appLocales, currentLocale, localizations, readPermissions }) defaultMessage: 'Yes, fill in', }} content={{ - id: 'CMEditViewCopyLocale.ModalConfirm.content', + id: getTrad('CMEditViewCopyLocale.ModalConfirm.content'), defaultMessage: 'Your current content will be erased and filled by the content of the selected locale:', }} isOpen={isOpen} onConfirm={handleConfirmCopyLocale} - title={{ id: 'CMEditViewCopyLocale.ModalConfirm.title', defaultMessage: 'Select Locale' }} + title={{ + id: getTrad('CMEditViewCopyLocale.ModalConfirm.title'), + defaultMessage: 'Select Locale', + }} toggle={handleToggle} type="success" > diff --git a/packages/strapi-plugin-i18n/admin/src/components/ModalEdit/index.js b/packages/strapi-plugin-i18n/admin/src/components/ModalEdit/index.js index 0587eb97a0..986ad27b93 100644 --- a/packages/strapi-plugin-i18n/admin/src/components/ModalEdit/index.js +++ b/packages/strapi-plugin-i18n/admin/src/components/ModalEdit/index.js @@ -61,7 +61,7 @@ const ModalEdit = ({ localeToEdit, onClose, locales }) => { title={formatMessage({ id: getTrad('Settings.locales.modal.title'), })} - breadCrumb={[formatMessage({ id: getTrad('Settings.list.actions.edit') })]} + breadCrumb={[getTrad('Settings.list.actions.edit')]} tabsAriaLabel={formatMessage({ id: getTrad('Settings.locales.modal.edit.tab.label'), })} diff --git a/packages/strapi-plugin-i18n/admin/src/translations/en.json b/packages/strapi-plugin-i18n/admin/src/translations/en.json index 0f189cb4d6..0f1e14ce23 100644 --- a/packages/strapi-plugin-i18n/admin/src/translations/en.json +++ b/packages/strapi-plugin-i18n/admin/src/translations/en.json @@ -19,6 +19,8 @@ "CMEditViewCopyLocale.copy-failure": "Failed to copy locale", "CMEditViewCopyLocale.copy-text": "Fill in from another locale", "CMEditViewCopyLocale.submit-text": "Yes, fill in", + "CMEditViewCopyLocale.ModalConfirm.title": "Select Locale", + "CMEditViewCopyLocale.ModalConfirm.content": "Your current content will be erased and filled by the content of the selected locale:", "Field.localized": "This value is unique for the selected locale", "Field.not-localized": "This value is common to all locales", "Settings.list.description": "Configure the settings for the internationalization plugin", diff --git a/packages/strapi-plugin-i18n/admin/src/translations/index.js b/packages/strapi-plugin-i18n/admin/src/translations/index.js index bb24bb1106..d72e52272c 100644 --- a/packages/strapi-plugin-i18n/admin/src/translations/index.js +++ b/packages/strapi-plugin-i18n/admin/src/translations/index.js @@ -1,9 +1,11 @@ import en from './en.json'; import fr from './fr.json'; +import zhHans from './zh-Hans.json'; const trads = { en, fr, + 'zh-Hans': zhHans, }; export default trads; diff --git a/packages/strapi-plugin-i18n/admin/src/translations/zh-Hans.json b/packages/strapi-plugin-i18n/admin/src/translations/zh-Hans.json new file mode 100644 index 0000000000..f51e705456 --- /dev/null +++ b/packages/strapi-plugin-i18n/admin/src/translations/zh-Hans.json @@ -0,0 +1,60 @@ +{ + "plugin.name": "国际化", + "plugin.description.long": "开启此插件后,可以在管理面板或是API中创建,查询及更新不同语言的内容", + "plugin.description.short": "在管理面板或是API中创建,查询及更新不同语言的内容", + "Settings.permissions.loading": "加载权限中", + "Settings.permissions.read.denied.title": "你没有获取该内容的权限", + "Settings.permissions.read.denied.description": "为了能够阅读该内容,你可以和系统管理员取得联系", + "plugin.schema.i18n.localized.label": "为内容类型开启本地化", + "plugin.schema.i18n.localized.description": "允许您为内容设置不同的语言", + "plugin.schema.i18n.localized.label-content-type": "为该内容类型开启本地化", + "plugin.schema.i18n.localized.description-content-type": "允许您为内容设置不同的语言", + "plugin.schema.i18n.localized.label-field": "为该字段开启本地化", + "plugin.schema.i18n.localized.description-field": "该字段在不同的语言环境中有不同的值", + "plugin.schema.i18n.ensure-unique-localization": "唯一字段必须本地化", + "CheckboxConfirmation.Modal.content": "关闭国际化将会导致除和默认语言关联的内容之外的所有内容被删除", + "CheckboxConfirmation.Modal.body": "你要关闭它吗?", + "CheckboxConfirmation.Modal.button-confirm": "是的, 关闭", + "CMEditViewCopyLocale.copy-success": "语言已被复制", + "CMEditViewCopyLocale.copy-failure": "语言复制失败", + "CMEditViewCopyLocale.copy-text": "从另一个语言获取内容", + "CMEditViewCopyLocale.ModalConfirm.title": "选择语言", + "CMEditViewCopyLocale.ModalConfirm.content": "您的当前内容将会被清除并填入以下选择语言的内容:", + "CMEditViewCopyLocale.submit-text": "是的, 填入", + "Field.localized": "该值对于选中语言是唯一的", + "Field.not-localized": "该值对所有语言通用", + "Settings.list.description": "国际化插件设置", + "Settings.list.empty.title": "暂无语言", + "Settings.list.empty.description": "这不是一个常规的动作,您动手修改了数据库。为了能正确使用Strapi,请确保至少保存一种语言在您的数据库中", + "Settings.list.actions.add": "添加语言", + "Settings.list.actions.edit": "编辑语言", + "Settings.list.actions.delete": "删除语言", + "Settings.list.actions.deleteAdditionalInfos": "这将会删除可用的语言版本(来自国际化)", + "Settings.locales.list.title.singular": "{number}语言", + "Settings.locales.list.title.plural": "共{number}种语言", + "Settings.locales.row.default-locale": "默认语言", + "Settings.locales.modal.title": "配置", + "Settings.locales.modal.delete.confirm": "是的, 删除", + "Settings.locales.modal.delete.message": "删除该语言将会删除所有与之相关的内容。如果你想保留某些内容,请确保先将其保存到另一种语言。", + "Settings.locales.modal.delete.secondMessage": "您要删除该语言?", + "Settings.locales.modal.delete.success": "该语言已成功删除", + "Settings.locales.modal.edit.confirmation": "完成", + "Settings.locales.modal.edit.success": "该语言已完成编辑", + "Settings.locales.modal.edit.tab.label": "将会在国际化基础设置及高级设置之前切换", + "Settings.locales.modal.base": "基本设置", + "Settings.locales.modal.advanced": "高级设置", + "Settings.locales.modal.advanced.settings": "设置", + "Settings.locales.modal.advanced.setAsDefault": "设置为默认语言", + "Settings.locales.modal.advanced.setAsDefault.hint": "系统中必须有一个默认语言,可以通过选中另一个非默认语言来设置", + "Settings.locales.modal.create.defaultLocales.loading": "正在加载可用语言...", + "Settings.locales.modal.create.confirmation": "添加语言", + "Settings.locales.modal.create.success": "该语言已成功添加", + "Settings.locales.modal.create.alreadyExist": "该语言已存在", + "Settings.locales.modal.locales.label": "语言", + "Settings.locales.modal.edit.locales.label": "语言", + "Settings.locales.modal.locales.displayName": "语言显示名称", + "Settings.locales.modal.locales.displayName.error": "语言的显示名称不能少于50个字符", + "Settings.locales.modal.locales.displayName.description":"管理面板中语言将会以该名显示", + "Settings.locales.modal.create.tab.label":"将会在国际化基础设置及高级设置之前切换", + "components.Select.locales.not-available": "无可用内容" +} diff --git a/packages/strapi-plugin-upload/admin/src/translations/index.js b/packages/strapi-plugin-upload/admin/src/translations/index.js index 85c2bc0da5..759dbdf9e0 100644 --- a/packages/strapi-plugin-upload/admin/src/translations/index.js +++ b/packages/strapi-plugin-upload/admin/src/translations/index.js @@ -12,6 +12,7 @@ import th from './th.json'; import uk from './uk.json'; import ptBR from './pt-BR.json'; import sk from './sk.json'; +import zhHans from './zh-Hans.json'; import zh from './zh.json'; import pl from './pl.json'; @@ -30,6 +31,7 @@ const trads = { uk, 'pt-BR': ptBR, sk, + 'zh-Hans': zhHans, zh, pl, }; diff --git a/packages/strapi-plugin-upload/admin/src/translations/zh-Hans.json b/packages/strapi-plugin-upload/admin/src/translations/zh-Hans.json new file mode 100644 index 0000000000..4e906f0064 --- /dev/null +++ b/packages/strapi-plugin-upload/admin/src/translations/zh-Hans.json @@ -0,0 +1,86 @@ +{ + "page.title": "设置 - 媒体库", + "button.next": "下一步", + "checkControl.crop-duplicate": "复制裁剪素材", + "checkControl.crop-original": "裁剪原始素材", + "control-card.add": "添加", + "control-card.cancel": "取消", + "control-card.copy-link": "复制链接", + "control-card.crop": "裁剪", + "control-card.delete": "删除", + "control-card.download": "下载", + "control-card.edit": "编辑", + "control-card.replace-media": "替换媒体文件", + "control-card.save": "保存", + "filter.add": "添加筛选条件", + "form.button.replace-media": "替换媒体", + "form.input.decription.file-alt": "该文本将会在素材不显示时显示", + "form.input.label.file-alt": "备用文本", + "form.input.label.file-caption": "标题", + "form.input.label.file-name": "文件名", + "form.upload-url.error.url.invalid": "有一个链接格式不合法", + "form.upload-url.error.url.invalids": "{number}个链接格式不合法", + "header.actions.upload-assets": "上传素材", + "header.content.assets-empty": "无素材", + "header.content.assets-multiple": "{number}个素材", + "header.content.assets-single": "1个素材", + "input.button.label": "浏览文件", + "input.label-bold": "拖拽至此", + "input.label-normal": "并上传", + "input.placeholder": "点击选择一个资源,或者拖拽文件至区域", + "input.placeholder.icon": "在此区域内放置资源", + "input.url.description": "回车键分隔URL链接", + "input.url.label": "URL", + "list.assets-empty.subtitle": "添加一个到列表中", + "list.assets-empty.title": "暂无素材", + "list.assets-empty.title-withSearch": "无素材符合当前筛选条件", + "list.assets.selected.plural": "{number}个素材选中", + "list.assets.selected.singular": "{number}个素材被选中", + "list.assets.type-not-allowed": "文件类型不合法", + "list.assets.not-supported-content": "无可用预览", + "list.assets.loading-asset": "正在为媒体加载预览: {path}", + "list.assets.preview-asset": "预览视频(路径:{path})", + "modal.file-details.date": "日期", + "modal.file-details.dimensions": "尺寸", + "modal.file-details.extension": "扩展名", + "modal.file-details.size": "大小", + "modal.header.browse": "上传素材", + "modal.header.file-detail": "详情", + "modal.header.pending-assets": "素材上传中", + "modal.header.select-files": "选中文件", + "modal.nav.browse": "浏览", + "modal.nav.computer": "从本地", + "modal.nav.selected": "选中", + "modal.nav.url": "从链接", + "modal.selected-list.sub-header-subtitle": "拖拽排序字段中的素材", + "modal.upload-list.footer.button.plural": "上传{number}个素材至媒体库", + "modal.upload-list.footer.button.singular": "上传{number}个素材至媒体库", + "modal.upload-list.sub-header-subtitle": "在添加到媒体库之前,管理你的素材", + "modal.upload-list.sub-header-title.plural": "{number}个素材被选中", + "modal.upload-list.sub-header-title.singular": "{number}个素材被选中", + "modal.upload-list.sub-header.button": "添加更多的素材", + "plugin.description.long": "媒体文件管理", + "plugin.description.short": "媒体文件管理", + "plugin.name": "媒体库", + "search.placeholder": "搜索素材...", + "settings.form.autoOrientation.description": "根据EXIF orientation标签自动旋转图像", + "settings.form.autoOrientation.label": "开始自动旋转功能", + "settings.form.responsiveDimensions.description": "上传素材将会自动生成大,中,小三种尺寸", + "settings.form.responsiveDimensions.label": "启动响应式图片上传", + "settings.form.sizeOptimization.label": "开启图片大小优化(无损)", + "settings.form.videoPreview.description": "自动生成6秒钟的视频预览(GIF)", + "settings.form.videoPreview.label": "预览", + "settings.header.label": "媒体库 - 设置", + "settings.section.image.label": "图片", + "settings.section.video.label": "视频", + "settings.sub-header.label": "媒体库设置", + "sort.created_at_asc": "最早上传", + "sort.created_at_desc": "最近上传", + "sort.label": "排序", + "sort.name_asc": "字母顺序 (A to Z)", + "sort.name_desc": "字母倒序 (Z to A)", + "sort.updated_at_asc": "最早更新", + "sort.updated_at_desc": "最近更新", + "window.confirm.close-modal.file": "你确定吗?你的更改将会丢失", + "window.confirm.close-modal.files": "你确定吗?你还有一些文件还没有被上传" +} diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/AdvancedSettings/index.js b/packages/strapi-plugin-users-permissions/admin/src/containers/AdvancedSettings/index.js index 111b2a50cd..ef96e1d58a 100644 --- a/packages/strapi-plugin-users-permissions/admin/src/containers/AdvancedSettings/index.js +++ b/packages/strapi-plugin-users-permissions/admin/src/containers/AdvancedSettings/index.js @@ -20,6 +20,10 @@ const AdvancedSettingsPage = () => { const { formatMessage } = useIntl(); const [showModalWarning, setShowModalWarning] = useState(false); const pageTitle = formatMessage({ id: getTrad('HeaderNav.link.advancedSettings') }); + const formTitle = formatMessage({ + id: getTrad('Form.title.advancedSettings'), + defaultMessage: 'Settings', + }); const updatePermissions = useMemo(() => { return { update: pluginPermissions.updateAdvancedSettings }; }, []); @@ -176,7 +180,7 @@ const AdvancedSettingsPage = () => {
- + {form.map(input => { return ( { }, { label: formatMessage({ - id: getTrad('app.components.Button.save'), + id: 'app.components.Button.save', defaultMessage: 'Save', }), onClick: handleSubmit, diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/EditPage/index.js b/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/EditPage/index.js index 31991c7443..0a461ca1e1 100644 --- a/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/EditPage/index.js +++ b/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/EditPage/index.js @@ -36,7 +36,7 @@ const EditPage = () => { return [ { label: formatMessage({ - id: getTrad('app.components.Button.reset'), + id: 'app.components.Button.reset', defaultMessage: 'Reset', }), onClick: () => { @@ -48,7 +48,7 @@ const EditPage = () => { }, { label: formatMessage({ - id: getTrad('app.components.Button.save'), + id: 'app.components.Button.save', defaultMessage: 'Save', }), onClick: handleSubmit, diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/ListPage/index.js b/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/ListPage/index.js index 9a9fe5b07d..6affa97fb5 100644 --- a/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/ListPage/index.js +++ b/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/ListPage/index.js @@ -92,7 +92,7 @@ const RoleListPage = () => { ? [ { label: formatMessage({ - id: 'List.button.roles', + id: getTrad('List.button.roles'), defaultMessage: 'Add new role', }), onClick: handleNewRoleClick, diff --git a/packages/strapi-plugin-users-permissions/admin/src/index.js b/packages/strapi-plugin-users-permissions/admin/src/index.js index e33e53a9dd..52ae9d661f 100644 --- a/packages/strapi-plugin-users-permissions/admin/src/index.js +++ b/packages/strapi-plugin-users-permissions/admin/src/index.js @@ -74,7 +74,7 @@ export default strapi => { }, { title: { - id: getTrad('HeaderNav.link.email-templates'), + id: getTrad('HeaderNav.link.emailTemplates'), defaultMessage: 'Email templates', }, name: 'email-templates', @@ -88,7 +88,7 @@ export default strapi => { }, { title: { - id: getTrad('HeaderNav.link.advanced-settings'), + id: getTrad('HeaderNav.link.advancedSettings'), defaultMessage: 'Advanced Settings', }, name: 'advanced-settings', diff --git a/packages/strapi-plugin-users-permissions/admin/src/translations/en.json b/packages/strapi-plugin-users-permissions/admin/src/translations/en.json index 256cd35ef7..e65b2860a9 100644 --- a/packages/strapi-plugin-users-permissions/admin/src/translations/en.json +++ b/packages/strapi-plugin-users-permissions/admin/src/translations/en.json @@ -13,6 +13,9 @@ "EditForm.inputToggle.label.email-confirmation-redirection": "Redirection url", "EditForm.inputToggle.label.email-reset-password": "Reset password page", "EditForm.inputToggle.label.sign-up": "Enable sign-ups", + "EditForm.inputToggle.placeholder.email-reset-password": "ex: https://yourfrontend.com/reset-password", + "EditForm.inputToggle.placeholder.email-confirmation-redirection": "ex: https://yourfrontend.com/reset-password", + "EditPage.form.roles": "Role details", "Email.template.email_confirmation": "Email address confirmation", "Email.template.reset_password": "Reset password", "HeaderNav.link.advancedSettings": "Advanced settings", @@ -25,6 +28,7 @@ "List.title.providers.disabled.singular": "{number} is disabled", "List.title.providers.enabled.plural": "{number} providers are enabled and", "List.title.providers.enabled.singular": "{number} provider is enabled and", + "Form.title.advancedSettings": "Settings", "Plugin.permissions.plugins.description": "Define all allowed actions for the {name} plugin.", "Plugins.header.description": "Only actions bound by a route are listed below.", "Plugins.header.title": "Permissions", diff --git a/packages/strapi-plugin-users-permissions/admin/src/translations/zh-Hans.json b/packages/strapi-plugin-users-permissions/admin/src/translations/zh-Hans.json index 3579b6fecc..248b73a97f 100644 --- a/packages/strapi-plugin-users-permissions/admin/src/translations/zh-Hans.json +++ b/packages/strapi-plugin-users-permissions/admin/src/translations/zh-Hans.json @@ -1,4 +1,5 @@ { + "page.title": "设置 - 角色", "BoundRoute.title": "绑定路由到", "EditForm.inputSelect.description.role": "新验证身份的用户将被赋予所选角色。", "EditForm.inputSelect.label.role": "认证用户的默认角色", @@ -12,16 +13,23 @@ "EditForm.inputToggle.label.email-confirmation-redirection": "重定向 URL", "EditForm.inputToggle.label.email-reset-password": "重置密码页面 URL", "EditForm.inputToggle.label.sign-up": "启用注册", + "EditForm.inputToggle.placeholder.email-reset-password": "例如: https://yourfrontend.com/reset-password", + "EditForm.inputToggle.placeholder.email-confirmation-redirection": "例如: https://yourfrontend.com/reset-password", + "EditPage.form.roles": "角色详情", + "Email.template.email_confirmation": "邮箱地址确认", + "Email.template.reset_password": "重置密码", "HeaderNav.link.advancedSettings": "高级设置", "HeaderNav.link.emailTemplates": "电子邮件模板", "HeaderNav.link.providers": "提供者", "HeaderNav.link.roles": "角色和权限", + "List.button.roles": "添加新的角色", "List.title.emailTemplates.plural": "{number} 电子邮件模板是可用的", "List.title.emailTemplates.singular": "{number} 电子邮件模板是可用的", "List.title.providers.disabled.plural": "{number} 被禁用", "List.title.providers.disabled.singular": "{number} 被禁用", "List.title.providers.enabled.plural": "{number} 个供应商被启用, ", "List.title.providers.enabled.singular": "{number} 个供应商被启用, ", + "Form.title.advancedSettings": "设置", "Plugin.permissions.plugins.description": "定义 {name} 插件所有允许的操作。", "Plugins.header.description": "下面只列出路由绑定的操作。", "Plugins.header.title": "权限", @@ -30,26 +38,37 @@ "Policies.header.hint": "选择应用程序或插件的操作,然后点击 COG 图标显示绑定的路由", "Policies.header.title": "高级设置", "PopUpForm.Email.email_templates.inputDescription": "如果你不确定如何使用变量, {link}", - "PopUpForm.Email.options.from.email.label": "Shipper 电子邮件地址", + "PopUpForm.Email.link.documentation": "查看我们的文档", + "PopUpForm.Email.options.from.email.label": "发件人地址", "PopUpForm.Email.options.from.email.placeholder": "kai@doe.com", - "PopUpForm.Email.options.from.name.label": "Shipper 名称", + "PopUpForm.Email.options.from.name.label": "发件人名称", "PopUpForm.Email.options.from.name.placeholder": "Kai Doe", "PopUpForm.Email.options.message.label": "消息", "PopUpForm.Email.options.object.label": "主题", - "PopUpForm.Email.options.response_email.label": "回复电子邮件", + "PopUpForm.Email.options.object.placeholder": "请为%APP_NAME%确认邮箱地址", + "PopUpForm.Email.options.response_email.label": "回复邮件", "PopUpForm.Email.options.response_email.placeholder": "kai@doe.com", "PopUpForm.Providers.enabled.description": "如果禁用,用户将无法使用此供应商。", "PopUpForm.Providers.enabled.label": "启用", - "PopUpForm.Providers.key.label": "Client ID", + "PopUpForm.Providers.key.label": "客户端 ID", "PopUpForm.Providers.key.placeholder": "文本", "PopUpForm.Providers.redirectURL.front-end.label": "重定向 URL", - "PopUpForm.Providers.secret.label": "Client Secret", + "PopUpForm.Providers.redirectURL.label": "添加到{provider}应用配置的跳转URL", + "PopUpForm.Providers.secret.label": "客户端秘钥", "PopUpForm.Providers.secret.placeholder": "文本", "PopUpForm.header.edit.email-templates": "编辑电子邮件模版", + "PopUpForm.header.edit.providers": "编辑提供商", "PopUpForm.Providers.subdomain.label": "Host URI (Subdomain)", "PopUpForm.Providers.subdomain.placeholder": "my.subdomain.com", + "Settings.roles.deleted": "角色已被删除", + "Settings.roles.edited": "角色编辑完成", + "Settings.section-label": "用户及权限插件", "notification.success.submit": "设置已被更新", "plugin.description.long": "使用基于 JWT 的完整身份验证过程来保护 API。这个插件还有一个 ACL 策略,允许你管理用户组之间的权限。", "plugin.description.short": "使用基于 JWT 的完整身份验证过程保护 API", - "plugin.name": "角色 & 权限" + "plugin.name": "角色及权限", + "popUpWarning.button.cancel": "取消", + "popUpWarning.button.confirm": "确认", + "popUpWarning.title": "请确认", + "popUpWarning.warning.cancel": "你确定你要取消你的修改?" } From 2cb527cd97645c32173fea43ecfac14c06c85922 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Natanael=20Augusto=20Viana=20Sim=C3=B5es?= Date: Wed, 4 Aug 2021 10:23:25 -0400 Subject: [PATCH 16/21] fix title ids (#10670) From 7b487059a0f81dc5cb3753a1e17b7630d1e26b2e Mon Sep 17 00:00:00 2001 From: Kim Martini <37541937+graphicfox@users.noreply.github.com> Date: Wed, 4 Aug 2021 16:24:31 +0200 Subject: [PATCH 17/21] fix: consider custom devServer config (#10492) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I´m using a custom Docker setup and had trouble to get the watch-admin running. After some testing i found a few things. I had to first add the url to the config and second add the devServer config. webpack: (config, webpack) => { config.devServer = { host: '0.0.0.0', useLocalIp: false }; return config; }, After that strapi develop --watch-admin was accessible over the docker ip. But because the config gets not forwarded in the opts, the hot reload doesn't work. That's because this doesn't get the args that i setup. function createDomain(options, server) { const protocol = options.https ? 'https' : 'http'; const hostname = options.useLocalIp ? ip.v4.sync() || 'localhost' : options.host || 'localhost'; If there is a another way I would like to know. Otherwise I would appreciate this small hotfix. Here my original problem -> https://stackoverflow.com/questions/8925820/javascript-object-push-function --- packages/strapi-admin/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/strapi-admin/index.js b/packages/strapi-admin/index.js index af743cd604..6199e4fa34 100644 --- a/packages/strapi-admin/index.js +++ b/packages/strapi-admin/index.js @@ -250,6 +250,7 @@ async function watchAdmin({ dir, host, port, browser, options }) { options, }; + const webpackConfig = getCustomWebpackConfig(dir, args); const opts = { clientLogLevel: 'silent', quiet: true, @@ -259,9 +260,9 @@ async function watchAdmin({ dir, host, port, browser, options }) { index: options.publicPath, disableDotRule: true, }, + ...webpack(webpackConfig).options.devServer }; - const webpackConfig = getCustomWebpackConfig(dir, args); const server = new WebpackDevServer(webpack(webpackConfig), opts); server.listen(port, host, function(err) { From ae6aa271a25d42bbffabb0d1ae456deee5aa3340 Mon Sep 17 00:00:00 2001 From: ELABBASSI Hicham Date: Wed, 4 Aug 2021 16:38:13 +0200 Subject: [PATCH 18/21] Add an event to CTB banner button (#10687) * Add event to CTB banner button Signed-off-by: HichamELBSI * Change event name Signed-off-by: HichamELBSI --- .../admin/src/components/List/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/strapi-plugin-content-type-builder/admin/src/components/List/index.js b/packages/strapi-plugin-content-type-builder/admin/src/components/List/index.js index ca8b2c0515..ff80d76f75 100644 --- a/packages/strapi-plugin-content-type-builder/admin/src/components/List/index.js +++ b/packages/strapi-plugin-content-type-builder/admin/src/components/List/index.js @@ -40,10 +40,11 @@ function List({ isSub, dzName, }) { - const { formatMessage } = useGlobalContext(); + const { formatMessage, emitEvent } = useGlobalContext(); const { isInDevelopmentMode, modifiedData } = useDataManager(); const { openModalAddField } = useListView(); const onClickAddField = () => { + emitEvent('hasClickedCTBAddFieldBanner'); const firstComponentIcon = get( modifiedData, ['components', firstLoopComponentUid, 'schema', 'icon'], From ae668591bb3abedad308a9830e6ea572698ee71e Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Wed, 4 Aug 2021 16:43:02 +0200 Subject: [PATCH 19/21] Upgrade tar --- packages/create-strapi-starter/package.json | 2 +- packages/strapi-generate-new/package.json | 2 +- yarn.lock | 20 ++++++++++++++++---- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/packages/create-strapi-starter/package.json b/packages/create-strapi-starter/package.json index a658268e39..c0804a4fef 100644 --- a/packages/create-strapi-starter/package.json +++ b/packages/create-strapi-starter/package.json @@ -27,7 +27,7 @@ "node-fetch": "^2.6.1", "ora": "5.4.0", "strapi-generate-new": "3.6.5", - "tar": "6.1.0" + "tar": "6.1.2" }, "scripts": { "test": "echo \"no tests yet\"" diff --git a/packages/strapi-generate-new/package.json b/packages/strapi-generate-new/package.json index ba71957602..29070d9bbd 100644 --- a/packages/strapi-generate-new/package.json +++ b/packages/strapi-generate-new/package.json @@ -23,7 +23,7 @@ "node-fetch": "^2.6.1", "node-machine-id": "^1.1.10", "ora": "^5.4.0", - "tar": "6.1.0", + "tar": "6.1.2", "uuid": "^3.3.2" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index ff561becea..b89d963933 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19557,10 +19557,10 @@ tar-stream@^2.0.1, tar-stream@^2.1.0, tar-stream@^2.1.2, tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" -tar@6.1.0, tar@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== +tar@6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.2.tgz#1f045a90a6eb23557a603595f41a16c57d47adc6" + integrity sha512-EwKEgqJ7nJoS+s8QfLYVGMDmAsj+StbI2AM/RTHeUSsOw6Z8bwNBRv5z3CY0m7laC5qUAqruLX5AhMuc5deY3Q== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -19591,6 +19591,18 @@ tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: safe-buffer "^5.1.2" yallist "^3.0.3" +tar@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + tarn@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/tarn/-/tarn-3.0.1.tgz#ebac2c6dbc6977d34d4526e0a7814200386a8aec" From 90044c6e2a59f9e31f9e1b1dd875727e984bf002 Mon Sep 17 00:00:00 2001 From: Cameron Date: Wed, 4 Aug 2021 07:59:19 -0700 Subject: [PATCH 20/21] Update AWS S3 Provider (#10602) Gives more information about what actions are needed for this provider to work without using s3:* --- packages/strapi-provider-upload-aws-s3/README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/strapi-provider-upload-aws-s3/README.md b/packages/strapi-provider-upload-aws-s3/README.md index 228686bfc7..abd6f708b5 100644 --- a/packages/strapi-provider-upload-aws-s3/README.md +++ b/packages/strapi-provider-upload-aws-s3/README.md @@ -28,6 +28,18 @@ module.exports = ({ env }) => ({ }); ``` +## Required AWS Policy Actions +These are the minimum amount of permissions needed for this provider to work. +``` +"Action": [ + "s3:PutObject", + "s3:GetObject", + "s3:ListBucket", + "s3:DeleteObject", + "s3:PutObjectAcl" +], +``` + ## Resources - [License](LICENSE) From e63fb9d5093de3c099a487e7d87f48ffb8029a24 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Wed, 4 Aug 2021 17:06:51 +0200 Subject: [PATCH 21/21] v3.6.6 --- examples/getstarted/package.json | 36 +++++++++---------- lerna.json | 2 +- packages/create-strapi-app/package.json | 4 +-- packages/create-strapi-starter/package.json | 4 +-- packages/strapi-admin/package.json | 6 ++-- .../strapi-connector-bookshelf/package.json | 4 +-- .../strapi-connector-mongoose/package.json | 4 +-- packages/strapi-database/package.json | 4 +-- packages/strapi-generate-api/package.json | 4 +-- .../strapi-generate-controller/package.json | 4 +-- packages/strapi-generate-model/package.json | 4 +-- packages/strapi-generate-new/package.json | 2 +- packages/strapi-generate-plugin/package.json | 4 +-- packages/strapi-generate-policy/package.json | 4 +-- packages/strapi-generate-service/package.json | 4 +-- packages/strapi-generate/package.json | 4 +-- packages/strapi-helper-plugin/package.json | 2 +- packages/strapi-hook-ejs/package.json | 2 +- packages/strapi-hook-redis/package.json | 4 +-- packages/strapi-middleware-views/package.json | 2 +- .../package.json | 6 ++-- .../package.json | 10 +++--- .../strapi-plugin-documentation/package.json | 4 +-- packages/strapi-plugin-email/package.json | 8 ++--- packages/strapi-plugin-graphql/package.json | 4 +-- packages/strapi-plugin-i18n/package.json | 4 +-- packages/strapi-plugin-sentry/package.json | 2 +- packages/strapi-plugin-upload/package.json | 8 ++--- .../package.json | 6 ++-- .../package.json | 4 +-- .../package.json | 4 +-- .../package.json | 2 +- .../package.json | 4 +-- .../package.json | 4 +-- .../package.json | 2 +- .../package.json | 2 +- .../strapi-provider-upload-local/package.json | 2 +- .../package.json | 2 +- packages/strapi-utils/package.json | 2 +- packages/strapi/package.json | 22 ++++++------ 40 files changed, 103 insertions(+), 103 deletions(-) diff --git a/examples/getstarted/package.json b/examples/getstarted/package.json index b674b7ec17..15d9b8fae9 100644 --- a/examples/getstarted/package.json +++ b/examples/getstarted/package.json @@ -1,7 +1,7 @@ { "name": "getstarted", "private": true, - "version": "3.6.5", + "version": "3.6.6", "description": "A Strapi application.", "scripts": { "develop": "strapi develop", @@ -17,23 +17,23 @@ "mysql": "2.18.1", "pg": "8.6.0", "sqlite3": "5.0.0", - "strapi": "3.6.5", - "strapi-admin": "3.6.5", - "strapi-connector-bookshelf": "3.6.5", - "strapi-connector-mongoose": "3.6.5", - "strapi-middleware-views": "3.6.5", - "strapi-plugin-content-manager": "3.6.5", - "strapi-plugin-content-type-builder": "3.6.5", - "strapi-plugin-documentation": "3.6.5", - "strapi-plugin-email": "3.6.5", - "strapi-plugin-graphql": "3.6.5", - "strapi-plugin-i18n": "3.6.5", - "strapi-plugin-upload": "3.6.5", - "strapi-plugin-users-permissions": "3.6.5", - "strapi-provider-email-mailgun": "3.6.5", - "strapi-provider-upload-aws-s3": "3.6.5", - "strapi-provider-upload-cloudinary": "3.6.5", - "strapi-utils": "3.6.5" + "strapi": "3.6.6", + "strapi-admin": "3.6.6", + "strapi-connector-bookshelf": "3.6.6", + "strapi-connector-mongoose": "3.6.6", + "strapi-middleware-views": "3.6.6", + "strapi-plugin-content-manager": "3.6.6", + "strapi-plugin-content-type-builder": "3.6.6", + "strapi-plugin-documentation": "3.6.6", + "strapi-plugin-email": "3.6.6", + "strapi-plugin-graphql": "3.6.6", + "strapi-plugin-i18n": "3.6.6", + "strapi-plugin-upload": "3.6.6", + "strapi-plugin-users-permissions": "3.6.6", + "strapi-provider-email-mailgun": "3.6.6", + "strapi-provider-upload-aws-s3": "3.6.6", + "strapi-provider-upload-cloudinary": "3.6.6", + "strapi-utils": "3.6.6" }, "strapi": { "uuid": "getstarted" diff --git a/lerna.json b/lerna.json index e9a1cbb24c..d9be575e91 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.6.5", + "version": "3.6.6", "packages": [ "packages/*", "examples/*" diff --git a/packages/create-strapi-app/package.json b/packages/create-strapi-app/package.json index ff8fa32a14..d3e842f699 100644 --- a/packages/create-strapi-app/package.json +++ b/packages/create-strapi-app/package.json @@ -1,6 +1,6 @@ { "name": "create-strapi-app", - "version": "3.6.5", + "version": "3.6.6", "description": "Generate a new Strapi application.", "license": "SEE LICENSE IN LICENSE", "homepage": "https://strapi.io", @@ -21,7 +21,7 @@ "inquirer": "8.1.0", "js-yaml": "4.1.0", "node-fetch": "^2.6.1", - "strapi-generate-new": "3.6.5" + "strapi-generate-new": "3.6.6" }, "scripts": { "test": "echo \"no tests yet\"" diff --git a/packages/create-strapi-starter/package.json b/packages/create-strapi-starter/package.json index c0804a4fef..447a1ef9d3 100644 --- a/packages/create-strapi-starter/package.json +++ b/packages/create-strapi-starter/package.json @@ -1,6 +1,6 @@ { "name": "create-strapi-starter", - "version": "3.6.5", + "version": "3.6.6", "description": "Generate a new Strapi application.", "license": "SEE LICENSE IN LICENSE", "homepage": "https://strapi.io", @@ -26,7 +26,7 @@ "js-yaml": "4.1.0", "node-fetch": "^2.6.1", "ora": "5.4.0", - "strapi-generate-new": "3.6.5", + "strapi-generate-new": "3.6.6", "tar": "6.1.2" }, "scripts": { diff --git a/packages/strapi-admin/package.json b/packages/strapi-admin/package.json index a7397229c3..12f7f88155 100644 --- a/packages/strapi-admin/package.json +++ b/packages/strapi-admin/package.json @@ -1,6 +1,6 @@ { "name": "strapi-admin", - "version": "3.6.5", + "version": "3.6.6", "description": "Strapi Admin", "repository": { "type": "git", @@ -101,8 +101,8 @@ "sanitize.css": "^4.1.0", "semver": "7.3.5", "sift": "13.5.0", - "strapi-helper-plugin": "3.6.5", - "strapi-utils": "3.6.5", + "strapi-helper-plugin": "3.6.6", + "strapi-utils": "3.6.6", "style-loader": "^0.23.1", "styled-components": "^5.2.3", "terser-webpack-plugin": "^1.2.3", diff --git a/packages/strapi-connector-bookshelf/package.json b/packages/strapi-connector-bookshelf/package.json index ffe9518958..ceee50427b 100644 --- a/packages/strapi-connector-bookshelf/package.json +++ b/packages/strapi-connector-bookshelf/package.json @@ -1,6 +1,6 @@ { "name": "strapi-connector-bookshelf", - "version": "3.6.5", + "version": "3.6.6", "description": "Bookshelf hook for the Strapi framework", "homepage": "https://strapi.io", "keywords": [ @@ -23,7 +23,7 @@ "p-map": "4.0.0", "pluralize": "^8.0.0", "rimraf": "3.0.2", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "peerDependencies": { "knex": "0.21.18" diff --git a/packages/strapi-connector-mongoose/package.json b/packages/strapi-connector-mongoose/package.json index 537f55701f..9df9e71f62 100644 --- a/packages/strapi-connector-mongoose/package.json +++ b/packages/strapi-connector-mongoose/package.json @@ -1,6 +1,6 @@ { "name": "strapi-connector-mongoose", - "version": "3.6.5", + "version": "3.6.6", "description": "Mongoose hook for the Strapi framework", "homepage": "https://strapi.io", "keywords": [ @@ -22,7 +22,7 @@ "p-map": "4.0.0", "pluralize": "^8.0.0", "semver": "^7.3.5", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "author": { "email": "hi@strapi.io", diff --git a/packages/strapi-database/package.json b/packages/strapi-database/package.json index c47d04a4ec..5d65cb9bb3 100644 --- a/packages/strapi-database/package.json +++ b/packages/strapi-database/package.json @@ -1,6 +1,6 @@ { "name": "strapi-database", - "version": "3.6.5", + "version": "3.6.6", "description": "Strapi's database layer", "homepage": "https://strapi.io", "main": "./lib/index.js", @@ -31,7 +31,7 @@ "debug": "4.3.1", "lodash": "4.17.21", "p-map": "4.0.0", - "strapi-utils": "3.6.5", + "strapi-utils": "3.6.6", "verror": "^1.10.0" }, "gitHead": "231263a3535658bab1e9492c6aaaed8692d62a53" diff --git a/packages/strapi-generate-api/package.json b/packages/strapi-generate-api/package.json index 54c88b6bd0..3a2b7c9cd9 100644 --- a/packages/strapi-generate-api/package.json +++ b/packages/strapi-generate-api/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-api", - "version": "3.6.5", + "version": "3.6.6", "description": "Generate an API for a Strapi application.", "homepage": "https://strapi.io", "keywords": [ @@ -15,7 +15,7 @@ "dependencies": { "lodash": "4.17.21", "pluralize": "^8.0.0", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "scripts": { "test": "echo \"no tests yet\"" diff --git a/packages/strapi-generate-controller/package.json b/packages/strapi-generate-controller/package.json index a8ebe21fbd..ea10b17132 100644 --- a/packages/strapi-generate-controller/package.json +++ b/packages/strapi-generate-controller/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-controller", - "version": "3.6.5", + "version": "3.6.6", "description": "Generate a controller for a Strapi API.", "homepage": "https://strapi.io", "keywords": [ @@ -15,7 +15,7 @@ }, "dependencies": { "lodash": "4.17.21", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "scripts": { "test": "echo \"no tests yet\"" diff --git a/packages/strapi-generate-model/package.json b/packages/strapi-generate-model/package.json index 537f897135..b4b6c4c218 100644 --- a/packages/strapi-generate-model/package.json +++ b/packages/strapi-generate-model/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-model", - "version": "3.6.5", + "version": "3.6.6", "description": "Generate a model for a Strapi API.", "homepage": "https://strapi.io", "keywords": [ @@ -16,7 +16,7 @@ "dependencies": { "lodash": "4.17.21", "pluralize": "^8.0.0", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "scripts": { "test": "echo \"no tests yet\"" diff --git a/packages/strapi-generate-new/package.json b/packages/strapi-generate-new/package.json index 29070d9bbd..dbdd407ce0 100644 --- a/packages/strapi-generate-new/package.json +++ b/packages/strapi-generate-new/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-new", - "version": "3.6.5", + "version": "3.6.6", "description": "Generate a new Strapi application.", "homepage": "https://strapi.io", "keywords": [ diff --git a/packages/strapi-generate-plugin/package.json b/packages/strapi-generate-plugin/package.json index 9670408f59..97c8b4033d 100644 --- a/packages/strapi-generate-plugin/package.json +++ b/packages/strapi-generate-plugin/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-plugin", - "version": "3.6.5", + "version": "3.6.6", "description": "Generate an plugin for a Strapi application.", "homepage": "https://strapi.io", "keywords": [ @@ -15,7 +15,7 @@ "dependencies": { "fs-extra": "^9.1.0", "lodash": "4.17.21", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "scripts": { "test": "echo \"no tests yet\"" diff --git a/packages/strapi-generate-policy/package.json b/packages/strapi-generate-policy/package.json index b1ae3c5669..8137bd25a6 100644 --- a/packages/strapi-generate-policy/package.json +++ b/packages/strapi-generate-policy/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-policy", - "version": "3.6.5", + "version": "3.6.6", "description": "Generate a policy for a Strapi API.", "homepage": "https://strapi.io", "keywords": [ @@ -15,7 +15,7 @@ }, "dependencies": { "lodash": "4.17.21", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "scripts": { "test": "echo \"no tests yet\"" diff --git a/packages/strapi-generate-service/package.json b/packages/strapi-generate-service/package.json index 4448ed2d12..8f3be3394a 100644 --- a/packages/strapi-generate-service/package.json +++ b/packages/strapi-generate-service/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-service", - "version": "3.6.5", + "version": "3.6.6", "description": "Generate a service for a Strapi API.", "homepage": "https://strapi.io", "keywords": [ @@ -15,7 +15,7 @@ }, "dependencies": { "lodash": "4.17.21", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "scripts": { "test": "echo \"no tests yet\"" diff --git a/packages/strapi-generate/package.json b/packages/strapi-generate/package.json index 5656ccb5bc..263a679003 100644 --- a/packages/strapi-generate/package.json +++ b/packages/strapi-generate/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate", - "version": "3.6.5", + "version": "3.6.6", "description": "Master of ceremonies for the Strapi generators.", "homepage": "https://strapi.io", "keywords": [ @@ -20,7 +20,7 @@ "fs-extra": "^9.1.0", "lodash": "4.17.21", "reportback": "^2.0.2", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "author": { "name": "Strapi team", diff --git a/packages/strapi-helper-plugin/package.json b/packages/strapi-helper-plugin/package.json index ef6c4d57be..528243a611 100644 --- a/packages/strapi-helper-plugin/package.json +++ b/packages/strapi-helper-plugin/package.json @@ -1,6 +1,6 @@ { "name": "strapi-helper-plugin", - "version": "3.6.5", + "version": "3.6.6", "description": "Helper for Strapi plugins development", "files": [ "dist" diff --git a/packages/strapi-hook-ejs/package.json b/packages/strapi-hook-ejs/package.json index ae96195b5a..ccb2d70aef 100644 --- a/packages/strapi-hook-ejs/package.json +++ b/packages/strapi-hook-ejs/package.json @@ -1,6 +1,6 @@ { "name": "strapi-hook-ejs", - "version": "3.6.5", + "version": "3.6.6", "description": "EJS hook for the Strapi framework", "homepage": "https://strapi.io", "keywords": [ diff --git a/packages/strapi-hook-redis/package.json b/packages/strapi-hook-redis/package.json index b96bd71bfa..58988b4a6e 100644 --- a/packages/strapi-hook-redis/package.json +++ b/packages/strapi-hook-redis/package.json @@ -1,6 +1,6 @@ { "name": "strapi-hook-redis", - "version": "3.6.5", + "version": "3.6.6", "description": "Redis hook for the Strapi framework", "homepage": "https://strapi.io", "keywords": [ @@ -19,7 +19,7 @@ "lodash": "4.17.21", "rimraf": "3.0.2", "stack-trace": "0.0.10", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "author": { "email": "hi@strapi.io", diff --git a/packages/strapi-middleware-views/package.json b/packages/strapi-middleware-views/package.json index 34ca2e0dea..2563a5a945 100644 --- a/packages/strapi-middleware-views/package.json +++ b/packages/strapi-middleware-views/package.json @@ -1,6 +1,6 @@ { "name": "strapi-middleware-views", - "version": "3.6.5", + "version": "3.6.6", "description": "Views middleware to enable server-side rendering for the Strapi framework", "homepage": "https://strapi.io", "keywords": [ diff --git a/packages/strapi-plugin-content-manager/package.json b/packages/strapi-plugin-content-manager/package.json index 34439515fd..c1f34f5a55 100644 --- a/packages/strapi-plugin-content-manager/package.json +++ b/packages/strapi-plugin-content-manager/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-content-manager", - "version": "3.6.5", + "version": "3.6.6", "description": "A powerful UI to easily manage your data.", "strapi": { "name": "Content Manager", @@ -45,8 +45,8 @@ "redux-immutable": "^4.0.0", "reselect": "^4.0.0", "sanitize-html": "2.3.3", - "strapi-helper-plugin": "3.6.5", - "strapi-utils": "3.6.5", + "strapi-helper-plugin": "3.6.6", + "strapi-utils": "3.6.6", "yup": "^0.32.9" }, "author": { diff --git a/packages/strapi-plugin-content-type-builder/package.json b/packages/strapi-plugin-content-type-builder/package.json index 0d2006d759..58f17008b0 100644 --- a/packages/strapi-plugin-content-type-builder/package.json +++ b/packages/strapi-plugin-content-type-builder/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-content-type-builder", - "version": "3.6.5", + "version": "3.6.6", "description": "Strapi plugin to create content type (API).", "strapi": { "name": "Content Type Builder", @@ -29,10 +29,10 @@ "redux": "^4.0.1", "redux-immutable": "^4.0.0", "reselect": "^4.0.0", - "strapi-generate": "3.6.5", - "strapi-generate-api": "3.6.5", - "strapi-helper-plugin": "3.6.5", - "strapi-utils": "3.6.5", + "strapi-generate": "3.6.6", + "strapi-generate-api": "3.6.6", + "strapi-helper-plugin": "3.6.6", + "strapi-utils": "3.6.6", "yup": "^0.32.9" }, "author": { diff --git a/packages/strapi-plugin-documentation/package.json b/packages/strapi-plugin-documentation/package.json index 93d1de6f58..31ca8569a2 100644 --- a/packages/strapi-plugin-documentation/package.json +++ b/packages/strapi-plugin-documentation/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-documentation", - "version": "3.6.5", + "version": "3.6.6", "description": "Create an OpenAPI Document and visualize your API with SWAGGER UI.", "strapi": { "name": "Documentation", @@ -35,7 +35,7 @@ "redux": "^4.0.1", "redux-immutable": "^4.0.0", "reselect": "^4.0.0", - "strapi-helper-plugin": "3.6.5", + "strapi-helper-plugin": "3.6.6", "swagger-ui-dist": "3.47.1" }, "author": { diff --git a/packages/strapi-plugin-email/package.json b/packages/strapi-plugin-email/package.json index 6296e9ce46..e1697dfdda 100644 --- a/packages/strapi-plugin-email/package.json +++ b/packages/strapi-plugin-email/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-email", - "version": "3.6.5", + "version": "3.6.6", "description": "Easily configure your Strapi application to send emails.", "strapi": { "name": "Email", @@ -13,12 +13,12 @@ }, "dependencies": { "lodash": "4.17.21", - "strapi-provider-email-sendmail": "3.6.5", - "strapi-utils": "3.6.5" + "strapi-provider-email-sendmail": "3.6.6", + "strapi-utils": "3.6.6" }, "devDependencies": { "rimraf": "3.0.2", - "strapi-helper-plugin": "3.6.5" + "strapi-helper-plugin": "3.6.6" }, "author": { "name": "Strapi team", diff --git a/packages/strapi-plugin-graphql/package.json b/packages/strapi-plugin-graphql/package.json index 23a0e35c8d..74fa03400a 100644 --- a/packages/strapi-plugin-graphql/package.json +++ b/packages/strapi-plugin-graphql/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-graphql", - "version": "3.6.5", + "version": "3.6.6", "description": "Adds GraphQL endpoint with default API methods.", "strapi": { "name": "graphql", @@ -27,7 +27,7 @@ "koa-compose": "^4.1.0", "lodash": "4.17.21", "pluralize": "^8.0.0", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "devDependencies": { "cross-env": "^7.0.3", diff --git a/packages/strapi-plugin-i18n/package.json b/packages/strapi-plugin-i18n/package.json index b37f1dfb63..da60738e8d 100644 --- a/packages/strapi-plugin-i18n/package.json +++ b/packages/strapi-plugin-i18n/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-i18n", - "version": "3.6.5", + "version": "3.6.6", "description": "This plugin enables to create, to read and to update content in different languages, both from the Admin Panel and from the API", "strapi": { "name": "Internationalization", @@ -12,7 +12,7 @@ "lodash": "4.17.21", "p-map": "4.0.0", "pluralize": "8.0.0", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "author": { "name": "A Strapi developer", diff --git a/packages/strapi-plugin-sentry/package.json b/packages/strapi-plugin-sentry/package.json index 41a914d710..9caf580114 100644 --- a/packages/strapi-plugin-sentry/package.json +++ b/packages/strapi-plugin-sentry/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-sentry", - "version": "3.6.5", + "version": "3.6.6", "description": "Send Strapi error events to Sentry", "strapi": { "name": "Sentry", diff --git a/packages/strapi-plugin-upload/package.json b/packages/strapi-plugin-upload/package.json index 8e033435a5..00e54938c4 100644 --- a/packages/strapi-plugin-upload/package.json +++ b/packages/strapi-plugin-upload/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-upload", - "version": "3.6.5", + "version": "3.6.6", "description": "Makes it easy to upload images and files to your Strapi Application.", "strapi": { "name": "Media Library", @@ -36,9 +36,9 @@ "react-router-dom": "^5.0.0", "reactstrap": "8.4.1", "sharp": "0.28.1", - "strapi-helper-plugin": "3.6.5", - "strapi-provider-upload-local": "3.6.5", - "strapi-utils": "3.6.5", + "strapi-helper-plugin": "3.6.6", + "strapi-provider-upload-local": "3.6.6", + "strapi-utils": "3.6.6", "stream-to-array": "^2.3.0", "uuid": "^3.2.1" }, diff --git a/packages/strapi-plugin-users-permissions/package.json b/packages/strapi-plugin-users-permissions/package.json index 731dba6b23..2d69c54895 100644 --- a/packages/strapi-plugin-users-permissions/package.json +++ b/packages/strapi-plugin-users-permissions/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-users-permissions", - "version": "3.6.5", + "version": "3.6.6", "description": "Protect your API with a full-authentication process based on JWT", "strapi": { "name": "Roles & Permissions", @@ -35,8 +35,8 @@ "reactstrap": "8.4.1", "redux-saga": "^0.16.0", "request": "^2.83.0", - "strapi-helper-plugin": "3.6.5", - "strapi-utils": "3.6.5", + "strapi-helper-plugin": "3.6.6", + "strapi-utils": "3.6.6", "uuid": "^3.1.0" }, "devDependencies": { diff --git a/packages/strapi-provider-email-amazon-ses/package.json b/packages/strapi-provider-email-amazon-ses/package.json index 468d45dd17..08e7961fa2 100644 --- a/packages/strapi-provider-email-amazon-ses/package.json +++ b/packages/strapi-provider-email-amazon-ses/package.json @@ -1,6 +1,6 @@ { "name": "strapi-provider-email-amazon-ses", - "version": "3.6.5", + "version": "3.6.6", "description": "Amazon SES provider for strapi email", "homepage": "https://strapi.io", "keywords": [ @@ -15,7 +15,7 @@ "main": "./lib", "dependencies": { "node-ses": "^3.0.3", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "author": { "email": "nikolay@tsenkov.net", diff --git a/packages/strapi-provider-email-mailgun/package.json b/packages/strapi-provider-email-mailgun/package.json index 7e315c0d5c..acae5e42e4 100644 --- a/packages/strapi-provider-email-mailgun/package.json +++ b/packages/strapi-provider-email-mailgun/package.json @@ -1,6 +1,6 @@ { "name": "strapi-provider-email-mailgun", - "version": "3.6.5", + "version": "3.6.6", "description": "Mailgun provider for strapi email plugin", "homepage": "https://strapi.io", "keywords": [ @@ -14,7 +14,7 @@ "main": "./lib", "dependencies": { "mailgun-js": "0.22.0", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "strapi": { "isProvider": true diff --git a/packages/strapi-provider-email-nodemailer/package.json b/packages/strapi-provider-email-nodemailer/package.json index cdb2f303b6..4d179c75c3 100644 --- a/packages/strapi-provider-email-nodemailer/package.json +++ b/packages/strapi-provider-email-nodemailer/package.json @@ -1,6 +1,6 @@ { "name": "strapi-provider-email-nodemailer", - "version": "3.6.5", + "version": "3.6.6", "description": "Nodemailer provider for Strapi 3", "homepage": "https://strapi.io", "keywords": [ diff --git a/packages/strapi-provider-email-sendgrid/package.json b/packages/strapi-provider-email-sendgrid/package.json index 33ff85d05c..365c1ee463 100644 --- a/packages/strapi-provider-email-sendgrid/package.json +++ b/packages/strapi-provider-email-sendgrid/package.json @@ -1,6 +1,6 @@ { "name": "strapi-provider-email-sendgrid", - "version": "3.6.5", + "version": "3.6.6", "description": "Sendgrid provider for strapi email", "homepage": "https://strapi.io", "keywords": [ @@ -14,7 +14,7 @@ "main": "./lib", "dependencies": { "@sendgrid/mail": "6.4.0", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "strapi": { "isProvider": true diff --git a/packages/strapi-provider-email-sendmail/package.json b/packages/strapi-provider-email-sendmail/package.json index f794311134..c1a16f6cef 100644 --- a/packages/strapi-provider-email-sendmail/package.json +++ b/packages/strapi-provider-email-sendmail/package.json @@ -1,6 +1,6 @@ { "name": "strapi-provider-email-sendmail", - "version": "3.6.5", + "version": "3.6.6", "description": "Sendmail provider for strapi email", "homepage": "https://strapi.io", "keywords": [ @@ -13,7 +13,7 @@ "main": "./lib", "dependencies": { "sendmail": "^1.6.1", - "strapi-utils": "3.6.5" + "strapi-utils": "3.6.6" }, "strapi": { "isProvider": true diff --git a/packages/strapi-provider-upload-aws-s3/package.json b/packages/strapi-provider-upload-aws-s3/package.json index 836df5ee9e..3f38618d23 100644 --- a/packages/strapi-provider-upload-aws-s3/package.json +++ b/packages/strapi-provider-upload-aws-s3/package.json @@ -1,6 +1,6 @@ { "name": "strapi-provider-upload-aws-s3", - "version": "3.6.5", + "version": "3.6.6", "description": "AWS S3 provider for strapi upload", "homepage": "https://strapi.io", "keywords": [ diff --git a/packages/strapi-provider-upload-cloudinary/package.json b/packages/strapi-provider-upload-cloudinary/package.json index 567d99accb..20474f60f2 100644 --- a/packages/strapi-provider-upload-cloudinary/package.json +++ b/packages/strapi-provider-upload-cloudinary/package.json @@ -1,6 +1,6 @@ { "name": "strapi-provider-upload-cloudinary", - "version": "3.6.5", + "version": "3.6.6", "description": "Cloudinary provider for strapi upload", "homepage": "https://strapi.io", "keywords": [ diff --git a/packages/strapi-provider-upload-local/package.json b/packages/strapi-provider-upload-local/package.json index 47ca8f837b..f143e4edba 100644 --- a/packages/strapi-provider-upload-local/package.json +++ b/packages/strapi-provider-upload-local/package.json @@ -1,6 +1,6 @@ { "name": "strapi-provider-upload-local", - "version": "3.6.5", + "version": "3.6.6", "description": "Local provider for strapi upload", "homepage": "https://strapi.io", "keywords": [ diff --git a/packages/strapi-provider-upload-rackspace/package.json b/packages/strapi-provider-upload-rackspace/package.json index b92f5e85c9..c639ced06f 100644 --- a/packages/strapi-provider-upload-rackspace/package.json +++ b/packages/strapi-provider-upload-rackspace/package.json @@ -1,6 +1,6 @@ { "name": "strapi-provider-upload-rackspace", - "version": "3.6.5", + "version": "3.6.6", "description": "Rackspace provider for strapi upload", "main": "./lib", "keywords": [], diff --git a/packages/strapi-utils/package.json b/packages/strapi-utils/package.json index c46a48a572..a3e7062d2f 100644 --- a/packages/strapi-utils/package.json +++ b/packages/strapi-utils/package.json @@ -1,6 +1,6 @@ { "name": "strapi-utils", - "version": "3.6.5", + "version": "3.6.6", "description": "Shared utilities for the Strapi packages", "homepage": "https://strapi.io", "keywords": [ diff --git a/packages/strapi/package.json b/packages/strapi/package.json index e5a3af7b3c..3aade16151 100644 --- a/packages/strapi/package.json +++ b/packages/strapi/package.json @@ -1,6 +1,6 @@ { "name": "strapi", - "version": "3.6.5", + "version": "3.6.6", "description": "An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MongoDB, MySQL, MariaDB, PostgreSQL, SQLite", "homepage": "https://strapi.io", "directories": { @@ -55,16 +55,16 @@ "resolve-cwd": "^3.0.0", "rimraf": "^3.0.2", "semver": "7.3.5", - "strapi-database": "3.6.5", - "strapi-generate": "3.6.5", - "strapi-generate-api": "3.6.5", - "strapi-generate-controller": "3.6.5", - "strapi-generate-model": "3.6.5", - "strapi-generate-new": "3.6.5", - "strapi-generate-plugin": "3.6.5", - "strapi-generate-policy": "3.6.5", - "strapi-generate-service": "3.6.5", - "strapi-utils": "3.6.5" + "strapi-database": "3.6.6", + "strapi-generate": "3.6.6", + "strapi-generate-api": "3.6.6", + "strapi-generate-controller": "3.6.6", + "strapi-generate-model": "3.6.6", + "strapi-generate-new": "3.6.6", + "strapi-generate-plugin": "3.6.6", + "strapi-generate-policy": "3.6.6", + "strapi-generate-service": "3.6.6", + "strapi-utils": "3.6.6" }, "scripts": { "postinstall": "node lib/utils/success.js"