From 1aac6aeef03fb45f2ea67fb8a6b26069e11d044d Mon Sep 17 00:00:00 2001
From: Sebastian Stehle
Date: Thu, 22 Jul 2021 15:57:55 +0200
Subject: [PATCH] Release/design2 (#738)
* Panels design.
* Move to style guide.
* More progress
* A lot of progress.
* Design improvements.
* Simplified sass.
* Design cleanup.
* Style fixes.
* Design improvements.
* A lot of fixes.
* Remove eslint.
* Design improvements.
* Design fixes.-
* Fix title service.
* Tests fixed.
* More design fixes and shortcuts
* A lot more fixes.
* More fixes.
* More fixes.
* Fix for titles.
* More fixes.
* Load outdatedbrowser from local files.
* Style fix and remove of CDN.
* rules.actionEdit
* Do not show unset button when disabled.
* Notifo and padding fixes.
* Fix build.
* Shortcut improvements.
* Shortcut impprovements.
* Fix tests
* Dummy change.
* Fix shortcut service and more tests.
---
README.md | 2 +-
backend/i18n/frontend_en.json | 68 +-
backend/i18n/frontend_it.json | 62 +-
backend/i18n/frontend_nl.json | 62 +-
backend/i18n/frontend_zh.json | 64 +-
backend/i18n/source/backend_en.json | 1 +
backend/i18n/source/frontend_en.json | 68 +-
backend/i18n/source/frontend_it.json | 39 +-
backend/i18n/source/frontend_nl.json | 39 +-
backend/i18n/source/frontend_zh.json | 72 +-
backend/src/Squidex.Shared/Texts.it.resx | 3 +
backend/src/Squidex.Shared/Texts.nl.resx | 3 +
backend/src/Squidex.Shared/Texts.resx | 3 +
backend/src/Squidex.Shared/Texts.zh.resx | 3 +
.../Api/Controllers/Apps/AppsController.cs | 11 +-
.../Api/Controllers/Apps/Models/AppDto.cs | 22 +-
frontend/.sass-lint.yml | 27 -
frontend/.stylelintrc.json | 32 +
frontend/app-config/webpack.config.js | 8 +-
frontend/app/_theme.html | 794 +--
.../administration-area.component.html | 2 +-
.../pages/cluster/cluster-page.component.html | 8 +-
.../event-consumer.component.html | 6 +-
.../event-consumers-page.component.html | 20 +-
.../event-consumers-page.component.scss | 8 +-
.../pages/restore/restore-page.component.html | 30 +-
.../pages/restore/restore-page.component.scss | 26 +-
.../pages/users/user-page.component.html | 26 +-
.../pages/users/user.component.html | 4 +-
.../pages/users/users-page.component.html | 51 +-
.../app/features/api/api-area.component.html | 17 +-
.../pages/graphql/graphql-page.component.html | 6 +-
.../pages/graphql/graphql-page.component.scss | 23 +-
.../features/apps/pages/app.component.html | 2 +-
.../apps/pages/apps-page.component.html | 26 +-
.../apps/pages/apps-page.component.scss | 39 +-
.../pages/onboarding-dialog.component.scss | 14 +-
.../assets/pages/asset-tags.component.html | 30 +-
.../assets/pages/asset-tags.component.scss | 8 +
.../pages/assets-filters-page.component.html | 36 +-
.../assets/pages/assets-page.component.html | 36 +-
.../assets/pages/assets-page.component.scss | 4 +-
.../comments/comments-page.component.html | 12 +-
.../content/content-event.component.html | 6 +-
.../content/content-event.component.scss | 14 +-
.../content-history-page.component.html | 25 +-
.../pages/content/content-page.component.html | 48 +-
.../editor/content-editor.component.html | 11 +-
.../editor/content-editor.component.scss | 13 +
.../editor/content-field.component.html | 18 +-
.../editor/content-field.component.scss | 8 +-
.../editor/content-section.component.html | 4 +-
.../editor/content-section.component.scss | 39 +-
.../editor/field-languages.component.html | 2 +-
.../content-references.component.html | 2 +-
.../contents-filters-page.component.html | 56 +-
.../contents/contents-page.component.html | 42 +-
.../contents/contents-page.component.scss | 17 +-
.../custom-view-editor.component.html | 12 +-
.../custom-view-editor.component.scss | 2 +-
.../pages/schemas/schemas-page.component.html | 52 +-
.../pages/schemas/schemas-page.component.scss | 23 -
.../pages/sidebar/sidebar-page.component.html | 20 +-
.../shared/content-extension.component.html | 2 +-
.../shared/content-extension.component.ts | 64 +-
.../shared/content-status.component.html | 6 +-
.../shared/content-status.component.scss | 6 +-
.../shared/due-time-selector.component.html | 12 +-
.../shared/forms/array-editor.component.html | 4 +-
.../shared/forms/array-editor.component.scss | 2 +-
.../shared/forms/array-item.component.html | 4 +-
.../shared/forms/array-item.component.scss | 6 +-
.../shared/forms/assets-editor.component.html | 6 +-
.../shared/forms/assets-editor.component.scss | 36 +-
.../shared/forms/field-editor.component.html | 33 +-
.../shared/forms/field-editor.component.scss | 12 +-
.../shared/forms/iframe-editor.component.html | 2 +-
.../shared/forms/iframe-editor.component.scss | 2 +-
.../shared/forms/iframe-editor.component.ts | 169 +-
.../forms/stock-photo-editor.component.html | 28 +-
.../forms/stock-photo-editor.component.scss | 44 +-
.../list/content-list-field.component.html | 2 +-
.../list/content-value-editor.component.html | 10 +-
.../shared/list/content-value.component.html | 2 +-
.../shared/list/content-value.component.scss | 8 +-
.../shared/list/content.component.html | 8 +-
.../shared/list/content.component.scss | 6 +-
.../shared/preview-button.component.html | 2 +-
.../references/content-creator.component.html | 20 +-
.../references/content-creator.component.scss | 14 +-
.../content-selector-item.component.html | 2 +-
.../content-selector.component.html | 18 +-
.../content-selector.component.scss | 10 +-
.../references/reference-item.component.html | 6 +-
.../references/reference-item.component.scss | 8 +-
.../references-editor.component.scss | 20 +-
.../pages/cards/api-calls-card.component.html | 2 +-
.../cards/api-performance-card.component.html | 8 +-
.../cards/api-traffic-card.component.html | 8 +-
.../pages/dashboard-config.component.html | 6 +-
.../pages/dashboard-page.component.scss | 46 +-
.../pages/dashboard-page.component.ts | 1 +
.../pages/events/rule-event.component.html | 14 +-
.../pages/events/rule-event.component.scss | 24 +-
.../events/rule-events-page.component.html | 74 +-
.../rules/pages/rule/rule-page.component.html | 47 +-
.../rules/pages/rule/rule-page.component.scss | 5 +
.../rules/pages/rules/rule.component.html | 8 +-
.../rules/pages/rules/rule.component.scss | 24 +-
.../pages/rules/rules-page.component.html | 80 +-
.../rule-simulator-page.component.html | 54 +-
.../rule-simulator-page.component.scss | 23 +-
.../simulated-rule-event.component.html | 4 +-
.../actions/formattable-input.component.html | 2 +-
.../actions/formattable-input.component.scss | 6 +-
.../actions/generic-action.component.html | 8 +-
.../rules/shared/rule-element.component.html | 2 +-
.../rules/shared/rule-element.component.scss | 35 +-
.../rules/shared/rule-icon.component.scss | 4 +-
.../content-changed-trigger.component.html | 10 +-
.../common/schema-edit-form.component.html | 12 +-
.../export/schema-export-form.component.html | 29 +-
.../export/schema-export-form.component.scss | 4 +-
.../schema/fields/field-wizard.component.html | 16 +-
.../schema/fields/field-wizard.component.scss | 2 +-
.../pages/schema/fields/field.component.html | 20 +-
.../pages/schema/fields/field.component.scss | 23 +-
.../fields/forms/field-form-ui.component.html | 6 +-
.../field-form-validation.component.html | 12 +-
.../fields/forms/field-form.component.html | 4 +-
.../fields/schema-fields.component.html | 4 +-
.../fields/schema-fields.component.scss | 10 +-
.../types/array-validation.component.html | 2 +-
.../fields/types/assets-ui.component.html | 8 +-
.../types/assets-validation.component.html | 22 +-
.../fields/types/boolean-ui.component.html | 6 +-
.../types/boolean-validation.component.html | 6 +-
.../components-validation.component.html | 2 +-
.../types/date-time-validation.component.html | 2 +-
.../fields/types/number-ui.component.html | 6 +-
.../types/number-validation.component.html | 8 +-
.../fields/types/references-ui.component.html | 6 +-
.../references-validation.component.html | 14 +-
.../fields/types/string-ui.component.html | 6 +-
.../types/string-validation.component.html | 14 +-
.../types/string-validation.component.scss | 15 +-
.../types/tags-validation.component.html | 2 +-
.../schema-preview-urls-form.component.html | 18 +-
.../schema-preview-urls-form.component.scss | 7 -
.../schema-field-rules-form.component.html | 30 +-
.../schema-field-rules-form.component.scss | 9 +-
.../pages/schema/schema-page.component.html | 32 +-
.../schema-scripts-form.component.html | 2 +-
.../schema-scripts-form.component.scss | 8 +-
.../pages/schema/ui/field-list.component.html | 6 +-
.../pages/schema/ui/field-list.component.scss | 10 +-
.../schema/ui/schema-ui-form.component.html | 11 +-
.../schema/ui/schema-ui-form.component.scss | 8 +-
.../schema/ui/schema-ui-form.component.ts | 23 +-
.../pages/schemas/schema-form.component.html | 12 +-
.../pages/schemas/schema-form.component.scss | 46 +-
.../pages/schemas/schemas-page.component.html | 45 +-
.../pages/schemas/schemas-page.component.scss | 25 -
frontend/app/features/settings/module.ts | 2 +-
.../pages/backups/backup.component.html | 4 +-
.../pages/backups/backups-page.component.html | 58 +-
.../clients/client-add-form.component.html | 14 +-
.../client-connect-form.component.html | 20 +-
.../client-connect-form.component.scss | 9 +-
.../pages/clients/client.component.html | 77 +-
.../pages/clients/client.component.scss | 20 +-
.../pages/clients/clients-page.component.html | 46 +-
.../contributor-add-form.component.html | 26 +-
.../contributor-add-form.component.scss | 4 +-
.../contributors/contributor.component.html | 2 +-
.../contributors-page.component.html | 56 +-
.../contributors-page.component.ts | 4 +-
.../import-contributors-dialog.component.html | 7 +-
.../language-add-form.component.html | 14 +-
.../pages/languages/language.component.html | 70 +-
.../pages/languages/language.component.scss | 6 +-
.../pages/languages/language.component.ts | 2 +-
.../languages/languages-page.component.html | 30 +-
.../pages/more/more-page.component.html | 188 +-
.../pages/more/more-page.component.scss | 24 +-
.../settings/pages/plans/plan.component.html | 2 +-
.../settings/pages/plans/plan.component.scss | 6 -
.../pages/plans/plans-page.component.html | 44 +-
.../pages/plans/plans-page.component.scss | 32 -
.../pages/roles/role-add-form.component.html | 44 +-
.../settings/pages/roles/role.component.html | 92 +-
.../settings/pages/roles/role.component.scss | 6 +-
.../pages/roles/roles-page.component.html | 54 +-
.../settings/settings-page.component.html | 130 +-
.../settings/settings-page.component.scss | 6 -
.../workflow-add-form.component.html | 44 +-
.../workflows/workflow-diagram.component.html | 4 +-
.../workflows/workflow-step.component.html | 18 +-
.../workflows/workflow-step.component.scss | 37 +-
.../workflow-transition.component.html | 4 +-
.../workflow-transition.component.scss | 2 +-
.../pages/workflows/workflow.component.html | 52 +-
.../pages/workflows/workflow.component.scss | 5 +-
.../workflows/workflows-page.component.html | 30 +-
.../settings/settings-area.component.html | 68 +-
.../settings/settings-area.component.scss | 19 -
.../app/framework/angular/code.component.scss | 16 +-
.../forms/editable-title.component.html | 8 +-
.../forms/editable-title.component.scss | 8 +-
.../forms/editors/autocomplete.component.scss | 5 +-
.../editors/checkbox-group.component.html | 10 +-
.../editors/checkbox-group.component.scss | 10 +-
.../forms/editors/code-editor.component.scss | 6 +-
.../forms/editors/color-picker.component.scss | 4 +-
.../editors/date-time-editor.component.html | 2 +-
.../editors/date-time-editor.component.scss | 29 +-
.../forms/editors/dropdown.component.html | 2 +-
.../forms/editors/dropdown.component.scss | 10 +-
.../editors/localized-input.component.html | 6 +-
.../forms/editors/stars.component.html | 2 +-
.../forms/editors/stars.component.scss | 11 +-
.../forms/editors/tag-editor.component.html | 6 +-
.../forms/editors/tag-editor.component.scss | 72 +-
.../forms/editors/toggle.component.scss | 32 +-
.../angular/forms/form-hint.component.scss | 8 +-
.../angular/language-selector.component.html | 4 +-
.../angular/language-selector.component.scss | 4 +
...ctive.ts => layout-container.directive.ts} | 54 +-
.../framework/angular/layout.component.html | 109 +
.../framework/angular/layout.component.scss | 0
...panel.component.ts => layout.component.ts} | 107 +-
.../angular/list-view.component.html | 52 +-
.../angular/list-view.component.scss | 77 +-
.../framework/angular/list-view.component.ts | 6 +-
.../modals/dialog-renderer.component.html | 14 +-
.../modals/dialog-renderer.component.scss | 28 +-
.../modals/dialog-renderer.component.ts | 26 +-
.../modals/modal-dialog.component.html | 6 +-
.../angular/modals/modal-dialog.component.ts | 3 +
.../modals/onboarding-tooltip.component.html | 4 +-
.../modals/onboarding-tooltip.component.scss | 9 +-
.../angular/modals/tooltip.directive.ts | 75 +-
.../framework/angular/pager.component.html | 12 +-
.../framework/angular/pager.component.scss | 6 +-
.../framework/angular/panel.component.html | 49 -
.../framework/angular/panel.component.scss | 3 -
.../app/framework/angular/safe-html.pipe.ts | 19 +-
.../angular/shortcut.component.spec.ts | 25 +-
.../framework/angular/shortcut.component.ts | 28 +-
.../angular/shortcut.directive.spec.ts | 102 +
.../framework/angular/shortcut.directive.ts | 48 +
.../framework/angular/title.component.spec.ts | 28 +-
.../app/framework/angular/title.component.ts | 25 +-
.../angular/video-player.component.scss | 12 +-
frontend/app/framework/declarations.ts | 5 +-
frontend/app/framework/module.ts | 16 +-
.../app/framework/services/dialog.service.ts | 2 +
.../services/shortcut.service.spec.ts | 40 +-
.../framework/services/shortcut.service.ts | 14 +-
.../app/framework/services/title.service.ts | 44 +-
frontend/app/framework/utils/keys.ts | 38 +-
.../assets/asset-dialog.component.html | 173 +-
.../assets/asset-dialog.component.scss | 8 +-
.../assets/asset-folder.component.html | 4 +-
.../assets/asset-folder.component.scss | 12 +-
.../assets/asset-history.component.html | 6 +-
.../assets/asset-history.component.scss | 10 +-
.../assets/asset-text-editor.component.html | 2 +-
.../assets/asset-uploader.component.html | 2 +-
.../assets/asset-uploader.component.scss | 23 +-
.../components/assets/asset.component.html | 16 +-
.../components/assets/asset.component.scss | 128 +-
.../assets/assets-list.component.html | 4 +-
.../assets/assets-list.component.scss | 33 +-
.../assets/assets-selector.component.html | 10 +-
.../assets/assets-selector.component.scss | 10 +-
.../assets/image-cropper.component.scss | 22 +-
.../assets/image-focus-point.component.scss | 6 +-
.../comments/comment.component.html | 6 +-
.../comments/comment.component.scss | 22 +-
.../comments/comments.component.scss | 2 +-
.../forms/geolocation-editor.component.html | 14 +-
.../forms/markdown-editor.component.scss | 2 +-
.../components/help/help.component.html | 16 +-
.../history/history-list.component.html | 4 +-
.../history/history-list.component.scss | 19 +-
.../components/history/history.component.html | 12 +-
.../shared/components/notifo.component.scss | 7 +-
.../app/shared/components/notifo.component.ts | 2 +-
.../components/schema-category.component.html | 34 +-
.../components/schema-category.component.scss | 100 +-
.../components/schema-category.component.ts | 2 +-
.../queries/filter-comparison.component.html | 23 +-
.../queries/filter-comparison.component.scss | 4 +-
.../queries/filter-logical.component.html | 6 +-
.../queries/filter-logical.component.scss | 4 +-
.../search/queries/query-path.component.html | 4 +-
.../search/queries/query.component.html | 2 +-
.../search/queries/sorting.component.html | 4 +-
.../search/query-list.component.html | 27 +-
.../search/query-list.component.scss | 19 +
.../search/search-form.component.html | 40 +-
.../search/search-form.component.scss | 35 +-
.../components/table-header.component.scss | 3 +
frontend/app/shared/state/contents.forms.ts | 8 +-
frontend/app/shared/state/roles.state.ts | 6 +
.../shell/pages/app/app-area.component.html | 2 +-
.../shell/pages/app/left-menu.component.html | 23 +-
.../shell/pages/home/home-page.component.scss | 7 +-
.../pages/internal/apps-menu.component.html | 50 +-
.../pages/internal/apps-menu.component.scss | 103 +-
.../pages/internal/apps-menu.component.ts | 16 +-
.../internal/internal-area.component.html | 7 +-
.../internal/internal-area.component.scss | 5 +-
.../shell/pages/internal/logo.component.scss | 2 +-
.../internal/profile-menu.component.html | 5 -
.../internal/profile-menu.component.scss | 2 +-
.../pages/internal/search-menu.component.html | 21 +-
.../pages/internal/search-menu.component.scss | 17 -
frontend/app/theme/_bootstrap-vars.scss | 137 +-
frontend/app/theme/_bootstrap.scss | 312 +-
frontend/app/theme/_common.scss | 91 +-
frontend/app/theme/_forms.scss | 78 +-
frontend/app/theme/_lists.scss | 142 +-
frontend/app/theme/_mixins.scss | 67 +-
frontend/app/theme/_panels.scss | 382 --
frontend/app/theme/_panels2.scss | 306 +
frontend/app/theme/_static.scss | 2 +-
frontend/app/theme/_vars.scss | 82 +-
frontend/app/theme/icomoon/demo.html | 114 +-
frontend/app/theme/icomoon/fonts/icomoon.eot | Bin 32680 -> 35964 bytes
frontend/app/theme/icomoon/fonts/icomoon.svg | 8 +
frontend/app/theme/icomoon/fonts/icomoon.ttf | Bin 32516 -> 35800 bytes
frontend/app/theme/icomoon/fonts/icomoon.woff | Bin 32592 -> 35876 bytes
frontend/app/theme/icomoon/selection.json | 2 +-
frontend/app/theme/icomoon/style.css | 34 +-
frontend/app/theme/theme.scss | 3 +-
frontend/package-lock.json | 5794 +++++++++--------
frontend/package.json | 123 +-
339 files changed, 8030 insertions(+), 7379 deletions(-)
delete mode 100644 frontend/.sass-lint.yml
create mode 100644 frontend/.stylelintrc.json
rename frontend/app/framework/angular/{panel-container.directive.ts => layout-container.directive.ts} (53%)
create mode 100644 frontend/app/framework/angular/layout.component.html
create mode 100644 frontend/app/framework/angular/layout.component.scss
rename frontend/app/framework/angular/{panel.component.ts => layout.component.ts} (53%)
delete mode 100644 frontend/app/framework/angular/panel.component.html
delete mode 100644 frontend/app/framework/angular/panel.component.scss
create mode 100644 frontend/app/framework/angular/shortcut.directive.spec.ts
create mode 100644 frontend/app/framework/angular/shortcut.directive.ts
delete mode 100644 frontend/app/theme/_panels.scss
create mode 100644 frontend/app/theme/_panels2.scss
diff --git a/README.md b/README.md
index a10c5a2ae..6f7623332 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@

-# What is Squidex?
+# What is Squidex??
Squidex is an open source headless CMS and content management hub. In contrast to a traditional CMS Squidex provides a rich API with OData filter and Swagger definitions. It is up to you to build your UI on top of it. It can be website, a native app or just another server. We build it with ASP.NET Core and CQRS and is tested for Windows and Linux on modern browsers.
diff --git a/backend/i18n/frontend_en.json b/backend/i18n/frontend_en.json
index 833b35fd9..ff6535621 100644
--- a/backend/i18n/frontend_en.json
+++ b/backend/i18n/frontend_en.json
@@ -42,8 +42,6 @@
"apps.removeImageFailed": "Failed to remove app image. Please reload.",
"apps.updateFailed": "Failed to update app. Please reload.",
"apps.updateSettingsFailed": "Faield to update UI settings. Please reload.",
- "apps.upgradeHintCurrent": "You are on the {plan} plan.",
- "apps.upgradeHintUpgrade": "Upgrade!",
"apps.uploadImage": "Drop an file to replace the app image. Use a square size.",
"apps.uploadImageButton": "Upload File",
"apps.uploadImageFailed": "Failed to upload image. Please reload.",
@@ -52,19 +50,21 @@
"apps.welcomeTitle": "Hi {user}",
"appSettings.editors.deleteConfirmText": "Do you really want to remove this Editor URL?",
"appSettings.editors.deleteConfirmTitle": "Delete Editor URL",
+ "appSettings.editors.description": "Manage the URLs to custom editors to use them in the schema designer.",
"appSettings.editors.empty": "No Editor URL created yet.",
"appSettings.editors.title": "Custom Editors",
"appSettings.hideScheduler": "Hide dialog for scheduled publishing",
"appSettings.patterns.deleteConfirmText": "Do you really want to remove this pattern?",
"appSettings.patterns.deleteConfirmTitle": "Delete pattern",
+ "appSettings.patterns.description": "Patterns are reusable regular expressions for string field validation.",
"appSettings.patterns.empty": "No pattern created yet.",
"appSettings.patterns.title": "Patterns",
- "appSettings.refreshTooltip": "Refresh UI Settings (CTRL + SHIFT + R)",
+ "appSettings.refreshTooltip": "Refresh UI Settings",
"appSettings.reloaded": "UI Settings reloaded.",
"appSettings.title": "UI Settings",
"assets.createFolder": "Create Folder",
"assets.createFolderFailed": "Failed to create asset folder. Please reload.",
- "assets.createFolderTooltip": "Create new folder (CTRL + SHIFT + G)",
+ "assets.createFolderTooltip": "Create new folder",
"assets.deleteConfirmText": "Do you really want to delete the asset?",
"assets.deleteConfirmTitle": "Delete asset",
"assets.deleteFailed": "Failed to delete asset. Please reload.",
@@ -77,6 +77,7 @@
"assets.downloadVersion": "Download this Version",
"assets.dropToUpdate": "Drop to update",
"assets.duplicateFile": "Asset has already been uploaded.",
+ "assets.edit": "Edit Asset",
"assets.editor.flipHorizontally": "Flip Horizontally",
"assets.editor.flipVertically": "Flip Vertically",
"assets.editor.focusPointLabel": "Select position of focus point",
@@ -95,7 +96,7 @@
"assets.metadataAdd": "Add Metadata",
"assets.moveFailed": "Failed to move asset. Please reload.",
"assets.protected": "Protected",
- "assets.refreshTooltip": "Refresh Assets (CTRL + SHIFT + R)",
+ "assets.refreshTooltip": "Refresh Assets",
"assets.reloaded": "Assets reloaded.",
"assets.removeConfirmText": "Do you really want to remove the asset?",
"assets.removeConfirmTitle": "Remove asset",
@@ -136,7 +137,7 @@
"backups.empty": "No backups created yet.",
"backups.loadFailed": "Failed to load backups.",
"backups.maximumReached": "Your have reached the maximum number of backups: 10.",
- "backups.refreshTooltip": "Refresh backups (CTRL + SHIFT + R)",
+ "backups.refreshTooltip": "Refresh backups",
"backups.reloaded": "Backups reloaded.",
"backups.restore": "Restore Backup",
"backups.restoreFailed": "Failed to start restore.",
@@ -153,6 +154,8 @@
"backups.startedLabel": "Started",
"backups.startFailed": "Failed to start backup.",
"clients.add": "Add Client",
+ "clients.add.description": "Add a client to give other applications access to your content.",
+ "clients.add.title": "Add a new Client",
"clients.addFailed": "Failed to add client. Please reload.",
"clients.allowAnonymous": "Allow anonymous access.",
"clients.allowAnonymousHint": "Allow access to the API without an access token to all resources that are configured via the role of this client. Do not give more than one client anonymous access.",
@@ -191,7 +194,7 @@
"clients.deleteConfirmTitle": "Revoke client",
"clients.empty": "No client created yet.",
"clients.loadFailed": "Failed to load clients. Please reload.",
- "clients.refreshTooltip": "Refresh clients (CTRL + SHIFT + R)",
+ "clients.refreshTooltip": "Refresh clients",
"clients.reloaded": "Clients reloaded.",
"clients.revokeFailed": "Failed to revoke client. Please reload.",
"clients.tokenFailed": "Failed to create token. Please retry.",
@@ -236,6 +239,7 @@
"common.contributors": "Contributors",
"common.create": "Create",
"common.created": "Created",
+ "common.dashboard": "Dasboard",
"common.date": "Date",
"common.dateTimeEditor.local": "Local",
"common.dateTimeEditor.now": "Now",
@@ -249,6 +253,7 @@
"common.disabled": "Disabled",
"common.displayName": "Display Name",
"common.edit": "Edit",
+ "common.editing": "Editing",
"common.email": "Email",
"common.enabled": "Enabled",
"common.error": "Error",
@@ -290,10 +295,12 @@
"common.mapHide": "Hide map",
"common.mapShow": "Show map",
"common.message": "Message",
+ "common.more": "More",
"common.name": "Name",
"common.no": "No",
"common.nothingChanged": "Nothing has been changed.",
"common.noValue": "- No value -",
+ "common.openAPI": "Open API",
"common.or": "or",
"common.pagerInfo": "{itemFirst}-{itemLast} of {numberOfItems}",
"common.password": "Password",
@@ -328,11 +335,11 @@
"common.rules": "Rules",
"common.sampleCodeLabel": "Sample Code at",
"common.save": "Save",
- "common.saveShortcut": "CTRL + S",
"common.schemas": "Schemas",
"common.search": "Search",
"common.searchGoogleMaps": "Search Google Maps",
"common.searchResults": "Search Results",
+ "common.security": "Security",
"common.separateByLine": "Separate by line",
"common.settings": "Settings",
"common.sidebar": "Sidebar Extension",
@@ -388,7 +395,7 @@
"contents.contentTab.references": "References",
"contents.contentTab.referencing": "Referencing",
"contents.create": "New",
- "contents.createContentTooltip": "New Content (CTRL + SHIFT + G)",
+ "contents.createContentTooltip": "New Content",
"contents.created": "Content created successfully.",
"contents.createdByFieldDescription": "The user who created the content item.",
"contents.createFailed": "Failed to create content. Please reload.",
@@ -432,7 +439,7 @@
"contents.referencesLink": "Link selected contents ({count})",
"contents.referencesSelectExisting": "Select Existing",
"contents.referencesSelectSchema": "Select {schema}",
- "contents.refreshTooltip": "Refresh Contents (CTRL + SHIFT + R)",
+ "contents.refreshTooltip": "Refresh Contents",
"contents.reloaded": "Contents reloaded.",
"contents.removeConfirmText": "Do you really want to remove the content?",
"contents.removeConfirmTitle": "Remove content",
@@ -442,7 +449,7 @@
"contents.scheduledTo": "to",
"contents.schemasPageTitle": "Contents",
"contents.searchPlaceholder": "Fulltext search",
- "contents.searchSchemasPlaceholder": "Search for schemas...",
+ "contents.searchSchemasPlaceholder": "Search",
"contents.selectionCount": "{count} items selected",
"contents.statusFieldDescription": "The status of the content item.",
"contents.statusQueries": "Status Queries",
@@ -476,6 +483,7 @@
"contents.viewLatest": "View latest",
"contents.viewReset": "Reset Default View",
"contributors.add": "Add Contributor",
+ "contributors.add.title": "Add or invite contributor",
"contributors.addFailed": "Failed to add contributors. Please reload.",
"contributors.contributorAssigned": "A new user with the entered email address has been created and assigned as contributor.",
"contributors.contributorAssignedExisting": "User has been assigned",
@@ -494,7 +502,7 @@
"contributors.importTitle": "Import contributors",
"contributors.loadFailed": "Failed to load contributors. Please reload.",
"contributors.planHint": "Your plan allows up to {maxContributors} contributors.",
- "contributors.refreshTooltip": "Refresh contributors (CTRL + SHIFT + R)",
+ "contributors.refreshTooltip": "Refresh contributors",
"contributors.reloaded": "Contributors reloaded.",
"contributors.search": "Search",
"contributors.userNotFound": "The user does not exist.",
@@ -542,7 +550,7 @@
"eventConsumers.loadFailed": "Failed to load event consumers. Please reload.",
"eventConsumers.pageTitle": "Event Consumers",
"eventConsumers.position": "Position",
- "eventConsumers.refreshTooltip": "Refresh event consumers (CTRL + SHIFT + R)",
+ "eventConsumers.refreshTooltip": "Refresh event consumers",
"eventConsumers.reloaded": "Event Consumers reloaded.",
"eventConsumers.resetFailed": "Failed to reset event consumer. Please reload.",
"eventConsumers.resetTooltip": "Reset Event Consumer",
@@ -554,6 +562,8 @@
"history.loadFailed": "Failed to load history. Please reload.",
"history.title": "Activity",
"languages.add": "Add Language",
+ "languages.add.description": "Add a new language that you want to support for your content.",
+ "languages.add.title": "Add a new Language",
"languages.addFailed": "Failed to add language. Please reload.",
"languages.deleteConfirmText": "Do you really want to remove the language?",
"languages.deleteConfirmTitle": "Remove language",
@@ -563,7 +573,7 @@
"languages.masterHint": "Other languages fall back to the master if no fallback is defined.",
"languages.optional": "Is Optional",
"languages.optionalHint": "Values for optional languages must not be entered, even if field is required.",
- "languages.refreshTooltip": "Refresh languages (CTRL + SHIFT + R)",
+ "languages.refreshTooltip": "Refresh languages",
"languages.reloaded": "Languages reloaded.",
"languages.updateFailed": "Failed to change language. Please reload.",
"news.headline": "What's new?",
@@ -583,16 +593,21 @@
"plans.notPlanOwner": "You have not created the subscription. Therefore you cannot change the plan.",
"plans.perMonth": "Per Month",
"plans.perYear": "Per Year",
- "plans.refreshTooltip": "Refresh Plans (CTRL + SHIFT + R)",
+ "plans.refreshTooltip": "Refresh Plans",
"plans.reloaded": "Plans reloaded.",
"plans.selected": "Selected",
"profile.title": "Profile",
"profile.userEmail": "Signed in with",
"roles.add": "Add role",
+ "roles.add.description": "Add a new role if you need custom permission and policies.",
+ "roles.add.title": "Add a custom Role",
"roles.addFailed": "Failed to add role. Please reload.",
+ "roles.customRoles": "Custom roles",
"roles.default.owner": "Can do everything, including deleting the app.",
"roles.default.reader": "Can only read assets and contents.",
- "roles.defaults.developer": "Can use the API view, edit assets, contents, schemas, rules, workflows and appSettings.patterns.",
+ "roles.defaultRoles": "Default roles",
+ "roles.defaultRoles.hint": "Default roles cannot be deleted and are always part of your app.",
+ "roles.defaults.developer": "Can use the API view, edit assets, contents, schemas, rules, workflows and settings.",
"roles.defaults.editor": "Can edit assets and contents and view workflows.",
"roles.deleteConfirmText": "Delete role",
"roles.deleteConfirmTitle": "Do you really want to delete the role?",
@@ -608,7 +623,7 @@
"roles.properties.hideSchemas": "Hide Schemas",
"roles.properties.hideSettings": "Hide Settings",
"roles.propertiesDescription": "Properties describe the behavior of the Management UI, but do not provide security for the API.",
- "roles.refreshTooltip": "Refresh roles (CTRL + SHIFT + R)",
+ "roles.refreshTooltip": "Refresh roles",
"roles.reloaded": "Roles reloaded.",
"roles.revokeFailed": "Failed to revoke role. Please reload.",
"roles.roleNamePlaceholder": "Enter role name",
@@ -618,7 +633,7 @@
"rules.cancelFailed": "Failed to cancel rule. Please reload.",
"rules.create": "New Rule",
"rules.createFailed": "Failed to create rule. Please reload.",
- "rules.createTooltip": "New Rule (CTRL + SHIFT + G)",
+ "rules.createTooltip": "New Rule",
"rules.deleteConfirmText": "Do you really want to delete the rule?",
"rules.deleteConfirmTitle": "Delete rule",
"rules.deleteFailed": "Failed to delete rule. Please reload.",
@@ -629,8 +644,8 @@
"rules.listPageTitle": "Rules",
"rules.loadFailed": "Failed to load Rules. Please reload.",
"rules.readMore": "Read More",
- "rules.refreshEventsTooltip": "Refresh Events (CTRL + SHIFT + R)",
- "rules.refreshTooltip": "Refresh Rules (CTRL + SHIFT + R)",
+ "rules.refreshEventsTooltip": "Refresh Events",
+ "rules.refreshTooltip": "Refresh Rules",
"rules.reloaded": "Rules reloaded.",
"rules.restarted": "Rule will start to run in a few seconds.",
"rules.ruleEvents.cancelFailed": "Failed to cancel rule event. Please reload.",
@@ -680,7 +695,7 @@
"schemas.create": "Create Schema",
"schemas.createCategory": "Create new category...",
"schemas.createFailed": "Failed to create schema. Please reload.",
- "schemas.createSchemaTooltip": "New Schema (CTRL + SHIFT + G)",
+ "schemas.createSchemaTooltip": "New Schema",
"schemas.deleteConfirmText": "Do you really want to delete the schema?",
"schemas.deleteConfirmTitle": "Delete schema",
"schemas.deleteFailed": "Failed to delete schema. Please reload.",
@@ -842,7 +857,7 @@
"schemas.schemaNameHint": "You can only use letters, numbers and dashes and not more than 40 characters.",
"schemas.schemaNameValidationMessage": "Name can only contain letters, numbers, dashes and spaces.",
"schemas.schemaTagsHint": "Tags to annotate your schema for automation processes.",
- "schemas.searchPlaceholder": "Search for schemas...",
+ "schemas.searchPlaceholder": "Search...",
"schemas.showFieldFailed": "Failed to show field. Please reload.",
"schemas.synchronized": "Schema synchronized successfully.",
"schemas.synchronizeFailed": "Failed to synchronize schema. Please reload.",
@@ -911,7 +926,7 @@
"users.createFailed": "Failed to create user. Please reload.",
"users.createPageTitle": "Create User",
"users.createTitle": "New User",
- "users.createTooltip": "New User (CTRL + N)",
+ "users.createTooltip": "New User",
"users.deleteConfirmText": "Do you really want to delete this user?",
"users.deleteConfirmTitle": "Delete user",
"users.deleteFailed": "Failed to delete user. Please reload.",
@@ -924,7 +939,7 @@
"users.lockFailed": "Failed to lock user. Please reload.",
"users.lockTooltip": "Lock User",
"users.passwordConfirmValidationMessage": "Passwords must be the same.",
- "users.refreshTooltip": "Refresh Users (CTRL + SHIFT + R)",
+ "users.refreshTooltip": "Refresh Users",
"users.reloaded": "Users reloaded.",
"users.search": "Search for user",
"users.unlockFailed": "Failed to unlock user. Please reload.",
@@ -944,7 +959,6 @@
"validation.min": "{field|upper} must be greater or equal to '{min}'.",
"validation.minlength": "{field|upper} must have at least {requiredlength} item(s).",
"validation.minlengthstring": "{field|upper} must have at least {requiredlength} character(s).",
- "validation.notAnValidSvg": "The SVG is malicious and contains script tags.",
"validation.pattern": "{field|upper} does not match to the pattern.",
"validation.patternmessage": "{message}",
"validation.required": "{field|upper} is required.",
@@ -954,6 +968,8 @@
"validation.validdatetime": "{field|upper} is not a valid date time.",
"validation.validvalues": "{field|upper} is not a valid value.",
"workflows.add": "Add Workflow",
+ "workflows.add.description": "The workflow name is only used in the UI and not shown to editors.",
+ "workflows.add.title": "Add a new workflow",
"workflows.addStep": "Add Step",
"workflows.createFailed": "Failed to create workflow. Please reload.",
"workflows.deleteConfirmText": "Do you really want to remove the workflow?",
@@ -964,7 +980,7 @@
"workflows.notNamed": "Unnamed Workflow",
"workflows.preventUpdates": "Prevent updates",
"workflows.publishedNotRemovable": "Cannot be removed",
- "workflows.refreshTooltip": "Refresh workflows (CTRL + SHIFT + R)",
+ "workflows.refreshTooltip": "Refresh workflows",
"workflows.reloaded": "Workflows reloaded.",
"workflows.saved": "Workflow has been saved.",
"workflows.schemasHint": "Restrict this workflow to specific schemas or keep it empty for all schemas.",
diff --git a/backend/i18n/frontend_it.json b/backend/i18n/frontend_it.json
index cdf9da7b7..46ff92034 100644
--- a/backend/i18n/frontend_it.json
+++ b/backend/i18n/frontend_it.json
@@ -42,8 +42,6 @@
"apps.removeImageFailed": "Non è stato possibile rimuovere l'immagine dell'app. Per favore ricarica.",
"apps.updateFailed": "Non è stato possibile aggiornare l'app. Per favore ricarica.",
"apps.updateSettingsFailed": "Faield to update UI settings. Please reload.",
- "apps.upgradeHintCurrent": "Tu sei nel piano {plan}.",
- "apps.upgradeHintUpgrade": "Aggiorna!",
"apps.uploadImage": "Trascina il file per sostituire l'immagine dell'app. Utilizza una dimensione quadrata.",
"apps.uploadImageButton": "Carica il File",
"apps.uploadImageFailed": "Non è stato possibile caricare l'immagine. Per favore ricarica.",
@@ -52,19 +50,21 @@
"apps.welcomeTitle": "Ciao {user}",
"appSettings.editors.deleteConfirmText": "Do you really want to remove this Editor URL?",
"appSettings.editors.deleteConfirmTitle": "Delete Editor URL",
+ "appSettings.editors.description": "Manage the URLs to custom editors to use them in the schema designer.",
"appSettings.editors.empty": "No Editor URL created yet.",
"appSettings.editors.title": "Custom Editors",
"appSettings.hideScheduler": "Hide dialog for scheduled publishing",
"appSettings.patterns.deleteConfirmText": "Sei sicuro di voler rimuovere il pattern?",
"appSettings.patterns.deleteConfirmTitle": "Cancella il pattern",
+ "appSettings.patterns.description": "Patterns are reusable regular expressions for string field validation.",
"appSettings.patterns.empty": "Nessun pattern è stato ancora creato.",
"appSettings.patterns.title": "Patterns",
- "appSettings.refreshTooltip": "Refresh UI Settings (CTRL + SHIFT + R)",
+ "appSettings.refreshTooltip": "Refresh UI Settings",
"appSettings.reloaded": "UI Settings reloaded.",
"appSettings.title": "UI Settings",
"assets.createFolder": "Crea cartella",
"assets.createFolderFailed": "Non è stato possibile creare la cartella degli asset. Per favore ricarica.",
- "assets.createFolderTooltip": "Crea una nuova cartella (CTRL + SHIFT + G)",
+ "assets.createFolderTooltip": "Crea una nuova cartella",
"assets.deleteConfirmText": "Sei sicuro di voler cancellare la risorsa?",
"assets.deleteConfirmTitle": "Elimina la risorsa",
"assets.deleteFailed": "Non è stato possibile cancellare la risorsa. Per favore ricarica.",
@@ -77,6 +77,7 @@
"assets.downloadVersion": "Scarica questa versione",
"assets.dropToUpdate": "Trascina il file per aggiornare",
"assets.duplicateFile": "La risorsa è già stata caricata.",
+ "assets.edit": "Edit Asset",
"assets.editor.flipHorizontally": "Capovolgi orizzontalmente",
"assets.editor.flipVertically": "Capovolgi verticalmente",
"assets.editor.focusPointLabel": "Clicca sull'immagine per impostare il focus",
@@ -95,7 +96,7 @@
"assets.metadataAdd": "Aggiungi un metadato",
"assets.moveFailed": "Non è stato possibile spostare la risorsa. Per favore ricarica.",
"assets.protected": "Protetto",
- "assets.refreshTooltip": "Aggiorna le risorse (CTRL + SHIFT + R)",
+ "assets.refreshTooltip": "Aggiorna le risorse",
"assets.reloaded": "Risorse ricaricate.",
"assets.removeConfirmText": "Sei sicuro di voler cancellare la risorsa?",
"assets.removeConfirmTitle": "Risorsa cancellata",
@@ -136,7 +137,7 @@
"backups.empty": "Nessun backup è stato ancora creato.",
"backups.loadFailed": "Non è stato possibile caricare i backup.",
"backups.maximumReached": "Hai raggiunto il numero massimo di backup: 10.",
- "backups.refreshTooltip": "Aggiorna i backup (CTRL + SHIFT + R)",
+ "backups.refreshTooltip": "Aggiorna i backup",
"backups.reloaded": "Backup aggiornati.",
"backups.restore": "Backup ripristinato",
"backups.restoreFailed": "Non è stato possibile avviare il ripristino.",
@@ -153,6 +154,8 @@
"backups.startedLabel": "Avviato",
"backups.startFailed": "Non è stato possibile avviare il backup.",
"clients.add": "Aggiungi un Client",
+ "clients.add.description": "Add a client to give other applications access to your content.",
+ "clients.add.title": "Add a new Client",
"clients.addFailed": "Non è stato possibile aggiungere un client. Per favore ricarica.",
"clients.allowAnonymous": "Consenti l'accesso anonimo.",
"clients.allowAnonymousHint": "Consenti l'accesso alle API senza token di accesso a tutte le risorse che sono configurate per il ruolo di questo client. È possibile avere un solo client impostato con accesso anonimo.",
@@ -191,7 +194,7 @@
"clients.deleteConfirmTitle": "Rimuovere il client",
"clients.empty": "Nessun client ancora creato.",
"clients.loadFailed": "Non è stato possibile caricare i client. Per favore ricarica.",
- "clients.refreshTooltip": "Aggiorna i client (CTRL + SHIFT + R)",
+ "clients.refreshTooltip": "Aggiorna i client",
"clients.reloaded": "Client ricaricati.",
"clients.revokeFailed": "Non è stato possibile rimuovere il client. Per favore ricarica.",
"clients.tokenFailed": "Non è stato possibile creare il token. Per favore riprova.",
@@ -236,6 +239,7 @@
"common.contributors": "Collaboratori",
"common.create": "Crea",
"common.created": "Creato",
+ "common.dashboard": "Dasboard",
"common.date": "Data",
"common.dateTimeEditor.local": "Locale",
"common.dateTimeEditor.now": "Data e Ora attuale",
@@ -249,6 +253,7 @@
"common.disabled": "Disabled",
"common.displayName": "Nome visualizzato",
"common.edit": "Modifica",
+ "common.editing": "Editing",
"common.email": "Email",
"common.enabled": "Enabled",
"common.error": "Errore",
@@ -290,10 +295,12 @@
"common.mapHide": "Nascondi la mappa",
"common.mapShow": "Mostra la mappa",
"common.message": "Messaggio",
+ "common.more": "More",
"common.name": "Nome",
"common.no": "No",
"common.nothingChanged": "Non è stato cambiato niente.",
"common.noValue": "- Nessun valore -",
+ "common.openAPI": "Open API",
"common.or": "o",
"common.pagerInfo": "{itemFirst}-{itemLast} of {numberOfItems}",
"common.password": "Password",
@@ -328,11 +335,11 @@
"common.rules": "Regole",
"common.sampleCodeLabel": "Esempio di codice per",
"common.save": "Salva",
- "common.saveShortcut": "CTRL + S",
"common.schemas": "Schemi",
"common.search": "Search",
"common.searchGoogleMaps": "Cerca su Google Maps",
"common.searchResults": "Risultati di ricerca",
+ "common.security": "Security",
"common.separateByLine": "Separato dalla linea",
"common.settings": "Impostazioni",
"common.sidebar": "Estensione della barra di navigazione laterale",
@@ -388,7 +395,7 @@
"contents.contentTab.references": "Collegato a",
"contents.contentTab.referencing": "Collegato da",
"contents.create": "Nuovo",
- "contents.createContentTooltip": "Nuovo contenuto (CTRL + SHIFT + G)",
+ "contents.createContentTooltip": "Nuovo contenuto",
"contents.created": "Contenuto creato con successo.",
"contents.createdByFieldDescription": "L'utente che ha creato l'elemento del contenuto.",
"contents.createFailed": "Non è stato possibile creare il contenuto. Per favore ricarica.",
@@ -432,7 +439,7 @@
"contents.referencesLink": "Collega i contenuti selezionati ({count})",
"contents.referencesSelectExisting": "Seleziona da contenuti esistenti",
"contents.referencesSelectSchema": "Seleziona {schema}",
- "contents.refreshTooltip": "Aggiorna i contenuti (CTRL + SHIFT + R)",
+ "contents.refreshTooltip": "Aggiorna i contenuti",
"contents.reloaded": "Contenuti aggiornati.",
"contents.removeConfirmText": "Sei sicuro di voler rimuovere il contenuto?",
"contents.removeConfirmTitle": "Cancella il contenuto",
@@ -476,6 +483,7 @@
"contents.viewLatest": "Visualizza l'ultima",
"contents.viewReset": "Imposta la visualizzazione predefinita",
"contributors.add": "Aggiungi un collaboratore",
+ "contributors.add.title": "Add or invite contributor",
"contributors.addFailed": "Non è stato possibile aggiungere collaboratori. Per favore ricarica.",
"contributors.contributorAssigned": "Un nuovo utente, con indirizzo email, è stato creato e aggiunto come collaboratore.",
"contributors.contributorAssignedExisting": "L'utente è stato assegnato",
@@ -494,7 +502,7 @@
"contributors.importTitle": "Importa collaboratori",
"contributors.loadFailed": "Non è stato possibile caricare contributors. Per favore ricarica.",
"contributors.planHint": "Il tuo piano prevede un numero massimo di {maxContributors} collaboratori.",
- "contributors.refreshTooltip": "Aggiorna i collaboratori (CTRL + SHIFT + R)",
+ "contributors.refreshTooltip": "Aggiorna i collaboratori",
"contributors.reloaded": "Collaboratori aggiornati.",
"contributors.search": "Cerca",
"contributors.userNotFound": "L'utente non esiste.",
@@ -542,7 +550,7 @@
"eventConsumers.loadFailed": "Non è stato possibile caricare event consumers. Per favore ricarica.",
"eventConsumers.pageTitle": "Eventi degli utenti",
"eventConsumers.position": "Posizione",
- "eventConsumers.refreshTooltip": "Aggiorna gli eventi degli utenti (CTRL + SHIFT + R)",
+ "eventConsumers.refreshTooltip": "Aggiorna gli eventi degli utenti",
"eventConsumers.reloaded": "Eventi degli utenti aggiornati.",
"eventConsumers.resetFailed": "Non è stato possibile ripristinare gli eventi degli utenti. Per favore ricarica.",
"eventConsumers.resetTooltip": "Ripristina gli event degli utenti",
@@ -554,6 +562,8 @@
"history.loadFailed": "Non è stato possibile caricare la cronologia. Per favore ricarica.",
"history.title": "Attività",
"languages.add": "Aggiungi lingua",
+ "languages.add.description": "Add a new language that you want to support for your content.",
+ "languages.add.title": "Add a new Language",
"languages.addFailed": "Non è stato possibile aggiungere la lingua. Per favore ricarica.",
"languages.deleteConfirmText": "Sei sicuro di voler rimuovere la lingua?",
"languages.deleteConfirmTitle": "Rimuovi la lingua",
@@ -563,7 +573,7 @@
"languages.masterHint": "Se non è stata impostata nessuna lingua come alternativa, le altre lingue hanno la lingua principale come alternativa.",
"languages.optional": "È Opzionale",
"languages.optionalHint": "Se sono presenti campi obbligatori questi non devono essere compilati anche per le lingue opzionali.",
- "languages.refreshTooltip": "Aggiorna le lingue (CTRL + SHIFT + R)",
+ "languages.refreshTooltip": "Aggiorna le lingue",
"languages.reloaded": "Lingue ricaricate.",
"languages.updateFailed": "Non è stato possibile cambiare la lingua. Per favore ricarica.",
"news.headline": "Che cosa c'è di nuovo?",
@@ -583,15 +593,20 @@
"plans.notPlanOwner": "Non hai creato nessun abbonamento, pertanto non è possibile cambiare il piano.",
"plans.perMonth": "Al mese",
"plans.perYear": "all'anno",
- "plans.refreshTooltip": "Aggiorna i piani (CTRL + SHIFT + R)",
+ "plans.refreshTooltip": "Aggiorna i piani",
"plans.reloaded": "Piano aggiornati.",
"plans.selected": "Selezionato",
"profile.title": "Profilo",
"profile.userEmail": "Accesso con",
"roles.add": "Aggiungi un ruolo",
+ "roles.add.description": "Add a new role if you need custom permission and policies.",
+ "roles.add.title": "Add a custom Role",
"roles.addFailed": "Non è stato possibile aggiungere il ruolo. Per favore ricarica.",
+ "roles.customRoles": "Custom roles",
"roles.default.owner": "Hai come amministratore tutte le funzionalità, compreso cancellare le app.",
"roles.default.reader": "Hai un'utenza in sola lettura sia per i contenuti che per le risorse.",
+ "roles.defaultRoles": "Default roles",
+ "roles.defaultRoles.hint": "Default roles cannot be deleted and are always part of your app.",
"roles.defaults.developer": "Hai un'utenza che può visualizzare le API, modificare le risorse, i contenuti, gli schema, le regole, i workflow e i pattern.",
"roles.defaults.editor": "Hai un'utenza che può modificare le risorse, i contenuti e visualizzare i workflow.",
"roles.deleteConfirmText": "Cancella il ruolo",
@@ -608,7 +623,7 @@
"roles.properties.hideSchemas": "Nascondi gli Schemi",
"roles.properties.hideSettings": "Nascondi le impostazioni",
"roles.propertiesDescription": "Le proprietà descrivono il comportamento nelle Interfacce Utente, ma non garantiscono la sicurezza per le API.",
- "roles.refreshTooltip": "Aggiorna i ruoli (CTRL + SHIFT + R)",
+ "roles.refreshTooltip": "Aggiorna i ruoli",
"roles.reloaded": "Ruoli ricaricati.",
"roles.revokeFailed": "Non è stato possibile rimuovere il ruolo. Per favore ricarica.",
"roles.roleNamePlaceholder": "Inserisci il nome del ruolo",
@@ -618,7 +633,7 @@
"rules.cancelFailed": "Non è stato possibile eliminare la regola. Per favore ricarica.",
"rules.create": "Crea un nuova Regola",
"rules.createFailed": "Non è stato possibile creare una nuova regola. Per favore ricarica.",
- "rules.createTooltip": "Nuova regola (CTRL + SHIFT + G)",
+ "rules.createTooltip": "Nuova regola",
"rules.deleteConfirmText": "Sei sicuro di voler eliminare la regola?",
"rules.deleteConfirmTitle": "Cancella la regola",
"rules.deleteFailed": "Non è stato possibile eliminare la regola. Per favore ricarica.",
@@ -629,8 +644,8 @@
"rules.listPageTitle": "Regole",
"rules.loadFailed": "Non è stato possibile caricare le regole. Per favore ricarica.",
"rules.readMore": "Leggi di più",
- "rules.refreshEventsTooltip": "Aggiorna gli Eventi (CTRL + SHIFT + R)",
- "rules.refreshTooltip": "Aggiorna le Regole (CTRL + SHIFT + R)",
+ "rules.refreshEventsTooltip": "Aggiorna gli Eventi",
+ "rules.refreshTooltip": "Aggiorna le Regole",
"rules.reloaded": "Regole ricaricate.",
"rules.restarted": "La Regola sarà eseguita fra pochi secondi.",
"rules.ruleEvents.cancelFailed": "Non è stato possibile cancellare l'evento della regola. Per favore ricarica.",
@@ -680,7 +695,7 @@
"schemas.create": "Crea uno Schema",
"schemas.createCategory": "Crea una nuova categoria...",
"schemas.createFailed": "Non è stato possibile creare lo schema. Per favore ricarica.",
- "schemas.createSchemaTooltip": "Nuovo Schema (CTRL + SHIFT + G)",
+ "schemas.createSchemaTooltip": "Nuovo Schema",
"schemas.deleteConfirmText": "Sei sicuro di voler eliminare lo schema?",
"schemas.deleteConfirmTitle": "Cancella lo schema",
"schemas.deleteFailed": "Non è stato possibile cancellare lo schema. Per favore ricarica.",
@@ -911,7 +926,7 @@
"users.createFailed": "Non è stato possibile creare l'utente. Per favore ricarica.",
"users.createPageTitle": "Crea un utente",
"users.createTitle": "Nuovo utente",
- "users.createTooltip": "Nuovo utente (CTRL + N)",
+ "users.createTooltip": "Nuovo utente",
"users.deleteConfirmText": "Sei sicuro di voler eliminare questo utente?",
"users.deleteConfirmTitle": "Elimina utente",
"users.deleteFailed": "Non è stato possibile eliminare l'utente. Per favore ricarica.",
@@ -924,7 +939,7 @@
"users.lockFailed": "Non è stato possibile bloccare l'utente. Per favore ricarica.",
"users.lockTooltip": "Utente bloccato",
"users.passwordConfirmValidationMessage": "Le password devono essere uguali.",
- "users.refreshTooltip": "Aggiorna gli Utenti (CTRL + SHIFT + R)",
+ "users.refreshTooltip": "Aggiorna gli Utenti",
"users.reloaded": "Utenti ricaricati.",
"users.search": "Cerca l'utente",
"users.unlockFailed": "Non è stato possibile sbloccare l'utente. Per favore ricarica.",
@@ -944,7 +959,6 @@
"validation.min": "{field|upper} deve essere maggiore o uguale a '{min}'.",
"validation.minlength": "{field|upper} deve avere almeno {requiredlength} elemento(i).",
"validation.minlengthstring": "{field|upper} deve avere almeno {requiredlength} carattere(i).",
- "validation.notAnValidSvg": "The SVG is malicious and contains script tags.",
"validation.pattern": "{field|upper} non corrisponde al pattern.",
"validation.patternmessage": "{message}",
"validation.required": "{field|upper} è obbligatorio.",
@@ -954,6 +968,8 @@
"validation.validdatetime": "{field|upper} non è una data e ora valida.",
"validation.validvalues": "{field|upper} non è un valore valido.",
"workflows.add": "Aggiungi un Workflow",
+ "workflows.add.description": "The workflow name is only used in the UI and not shown to editors.",
+ "workflows.add.title": "Add a new workflow",
"workflows.addStep": "Aggiungi uno Step",
"workflows.createFailed": "Non è stato possibile creare un workflow. Per favore ricarica.",
"workflows.deleteConfirmText": "Sei sicuro di voler eliminare il workflow?",
@@ -964,7 +980,7 @@
"workflows.notNamed": "Workflow senza nome",
"workflows.preventUpdates": "Impedisci gli aggiornamenti",
"workflows.publishedNotRemovable": "Non è possibile rimuoverlo",
- "workflows.refreshTooltip": "Aggiorna i workflow (CTRL + SHIFT + R)",
+ "workflows.refreshTooltip": "Aggiorna i workflow",
"workflows.reloaded": "Workflow ricaricati.",
"workflows.saved": "Il Workflow è stato salvato.",
"workflows.schemasHint": "Limita questo workflow ad uno schema specifico, o lascialo bianco per applicarlo a tutti gli schemi.",
diff --git a/backend/i18n/frontend_nl.json b/backend/i18n/frontend_nl.json
index e6a78cec0..6d5936672 100644
--- a/backend/i18n/frontend_nl.json
+++ b/backend/i18n/frontend_nl.json
@@ -42,8 +42,6 @@
"apps.removeImageFailed": "Verwijderen van app-afbeelding is mislukt. Laad opnieuw.",
"apps.updateFailed": "Update app mislukt. Laad opnieuw.",
"apps.updateSettingsFailed": "Faield to update UI settings. Please reload.",
- "apps.upgradeHintCurrent": "Je zit in het plan {plan}.",
- "apps.upgradeHintUpgrade": "Upgrade!",
"apps.uploadImage": "Zet een bestand neer om de app-afbeelding te vervangen. Gebruik een vierkant formaat.",
"apps.uploadImageButton": "Upload bestand",
"apps.uploadImageFailed": "Uploaden van afbeelding is mislukt. Laad opnieuw.",
@@ -52,19 +50,21 @@
"apps.welcomeTitle": "Hallo {user}",
"appSettings.editors.deleteConfirmText": "Do you really want to remove this Editor URL?",
"appSettings.editors.deleteConfirmTitle": "Delete Editor URL",
+ "appSettings.editors.description": "Manage the URLs to custom editors to use them in the schema designer.",
"appSettings.editors.empty": "No Editor URL created yet.",
"appSettings.editors.title": "Custom Editors",
"appSettings.hideScheduler": "Hide dialog for scheduled publishing",
"appSettings.patterns.deleteConfirmText": "Wil je dit patroon echt verwijderen?",
"appSettings.patterns.deleteConfirmTitle": "Verwijder patroon",
+ "appSettings.patterns.description": "Patterns are reusable regular expressions for string field validation.",
"appSettings.patterns.empty": "Nog geen patroon gemaakt.",
"appSettings.patterns.title": "Patterns",
- "appSettings.refreshTooltip": "Refresh UI Settings (CTRL + SHIFT + R)",
+ "appSettings.refreshTooltip": "Refresh UI Settings",
"appSettings.reloaded": "UI Settings reloaded.",
"appSettings.title": "UI Settings",
"assets.createFolder": "Map maken",
"assets.createFolderFailed": "Maken van een map is mislukt. Laad opnieuw.",
- "assets.createFolderTooltip": "Nieuwe map maken (CTRL + SHIFT + G)",
+ "assets.createFolderTooltip": "Nieuwe map maken",
"assets.deleteConfirmText": "Weet je zeker dat je het item wilt verwijderen?",
"assets.deleteConfirmTitle": "Item verwijderen",
"assets.deleteFailed": "Verwijderen van item is mislukt. Laad opnieuw.",
@@ -77,6 +77,7 @@
"assets.downloadVersion": "Download deze versie",
"assets.dropToUpdate": "Zet neer om te updaten",
"assets.duplicateFile": "Asset is al geüpload.",
+ "assets.edit": "Edit Asset",
"assets.editor.flipHorizontally": "Horizontaal spiegelen",
"assets.editor.flipVertically": "Verticaal spiegelen",
"assets.editor.focusPointLabel": "Selecteer positie van focuspunt",
@@ -95,7 +96,7 @@
"assets.metadataAdd": "Metadata toevoegen",
"assets.moveFailed": "Verplaatsen van item is mislukt. Laad opnieuw.",
"assets.protected": "Beschermd",
- "assets.refreshTooltip": "Bestanden vernieuwen (CTRL + SHIFT + R)",
+ "assets.refreshTooltip": "Bestanden vernieuwen",
"assets.reloaded": "Bestanden herladen.",
"assets.removeConfirmText": "Wil je het bestand echt verwijderen?",
"assets.removeConfirmTitle": "Verwijder bestand",
@@ -136,7 +137,7 @@
"backups.empty": "Nog geen back-ups gemaakt.",
"backups.loadFailed": "Laden van back-ups is mislukt.",
"backups.maximumReached": "Je hebt het maximale aantal back-ups bereikt: 10",
- "backups.refreshTooltip": "Vernieuw back-ups (CTRL + SHIFT + R)",
+ "backups.refreshTooltip": "Vernieuw back-ups",
"backups.reloaded": "Back-ups herladen.",
"backups.restore": "Back-up herstellen",
"backups.restoreFailed": "Starten van herstel is mislukt.",
@@ -153,6 +154,8 @@
"backups.startedLabel": "Gestart",
"backups.startFailed": "Starten van back-up is mislukt.",
"clients.add": "Client toevoegen",
+ "clients.add.description": "Add a client to give other applications access to your content.",
+ "clients.add.title": "Add a new Client",
"clients.addFailed": "Toevoegen van client is mislukt. Laad opnieuw.",
"clients.allowAnonymous": "Sta anonieme toegang toe.",
"clients.allowAnonymousHint": "Sta toegang tot de API toe zonder toegangstoken voor alle bronnen die zijn geconfigureerd via de rol van deze client. Geef niet meer dan één client anonieme toegang.",
@@ -191,7 +194,7 @@
"clients.deleteConfirmTitle": "Client intrekken",
"clients.empty": "Nog geen client aangemaakt.",
"clients.loadFailed": "Kan clients niet laden. Laad opnieuw.",
- "clients.refreshTooltip": "Ververs clients (CTRL + SHIFT + R)",
+ "clients.refreshTooltip": "Ververs clients",
"clients.reloaded": "Clients herladen.",
"clients.revokeFailed": "Kan client niet intrekken. Laad opnieuw.",
"clients.tokenFailed": "Maken van token is mislukt. Probeer het opnieuw.",
@@ -236,6 +239,7 @@
"common.contributors": "Bijdragers",
"common.create": "Maken",
"common.created": "Gemaakt",
+ "common.dashboard": "Dasboard",
"common.date": "Datum",
"common.dateTimeEditor.local": "Lokaal",
"common.dateTimeEditor.now": "Nu",
@@ -249,6 +253,7 @@
"common.disabled": "Disabled",
"common.displayName": "Weergavenaam",
"common.edit": "Bewerken",
+ "common.editing": "Editing",
"common.email": "E-mail",
"common.enabled": "Enabled",
"common.error": "Fout",
@@ -290,10 +295,12 @@
"common.mapHide": "Verberg kaart",
"common.mapShow": "Toon kaart",
"common.message": "Bericht",
+ "common.more": "More",
"common.name": "Naam",
"common.no": "Nee",
"common.nothingChanged": "Er is niets veranderd.",
"common.noValue": "- Geen waarde -",
+ "common.openAPI": "Open API",
"common.or": "of",
"common.pagerInfo": "{itemFirst} - {itemLast} van {numberOfItems}",
"common.password": "Wachtwoord",
@@ -328,11 +335,11 @@
"common.rules": "Regels",
"common.sampleCodeLabel": "Voorbeeldcode bij",
"common.save": "Opslaan",
- "common.saveShortcut": "CTRL + S",
"common.schemas": "Schema's",
"common.search": "Search",
"common.searchGoogleMaps": "Zoeken in Google Maps",
"common.searchResults": "Zoekresultaten",
+ "common.security": "Security",
"common.separateByLine": "Scheiden op regel",
"common.settings": "Instellingen",
"common.sidebar": "Zijbalk Uitbreiding",
@@ -388,7 +395,7 @@
"contents.contentTab.references": "References",
"contents.contentTab.referencing": "Referencing",
"contents.create": "Nieuw",
- "contents.createContentTooltip": "Nieuwe inhoud (CTRL + SHIFT + G)",
+ "contents.createContentTooltip": "Nieuwe inhoud",
"contents.created": "Inhoud succesvol aangemaakt.",
"contents.createdByFieldDescription": "De gebruiker die het inhoudsitem heeft gemaakt.",
"contents.createFailed": "Maken van inhoud is mislukt. Laad opnieuw.",
@@ -432,7 +439,7 @@
"contents.referencesLink": "Link geselecteerde inhoud ({count})",
"contents.referencesSelectExisting": "Selecteer bestaande",
"contents.referencesSelectSchema": "Selecteer {schema}",
- "contents.refreshTooltip": "Ververs inhoud (CTRL + SHIFT + R)",
+ "contents.refreshTooltip": "Ververs inhoud",
"contents.reloaded": "Inhoud opnieuw geladen.",
"contents.removeConfirmText": "Wil je de inhoud echt verwijderen?",
"contents.removeConfirmTitle": "Verwijder inhoud",
@@ -476,6 +483,7 @@
"contents.viewLatest": "Bekijk laatste",
"contents.viewReset": "Standaardweergave herstellen",
"contributors.add": "Bijdrager toevoegen",
+ "contributors.add.title": "Add or invite contributor",
"contributors.addFailed": "Toevoegen van bijdragers is mislukt. Laad opnieuw.",
"contributors.contributorAssigned": "Een nieuwe gebruiker met het ingevoerde e-mailadres is aangemaakt en toegewezen als bijdrager.",
"contributors.contributorAssignedExisting": "Gebruiker is toegewezen",
@@ -494,7 +502,7 @@
"contributors.importTitle": "Bijdragers importeren",
"contributors.loadFailed": "Laden van bijdragers is mislukt. Laad opnieuw.",
"contributors.planHint": "Uw plan staat maximaal {maxContributors} bijdragers toe.",
- "contributors.refreshTooltip": "Bijdragers vernieuwen (CTRL + SHIFT + R)",
+ "contributors.refreshTooltip": "Bijdragers vernieuwen",
"contributors.reloaded": "Contributors reloaded.",
"contributors.search": "Zoeken",
"contributors.userNotFound": "De gebruiker bestaat niet.",
@@ -542,7 +550,7 @@
"eventConsumers.loadFailed": "Kan gebeurtenisgebruikers niet laden. Laad opnieuw.",
"eventConsumers.pageTitle": "Evenementconsumenten",
"eventConsumers.position": "Positie",
- "eventConsumers.refreshTooltip": "Ververs evenementgebruikers (CTRL + SHIFT + R)",
+ "eventConsumers.refreshTooltip": "Ververs evenementgebruikers",
"eventConsumers.reloaded": "Evenementconsumenten herladen.",
"eventConsumers.resetFailed": "Kan gebeurtenisgebruiker niet resetten. Laad opnieuw.",
"eventConsumers.resetTooltip": "Reset Event Consumer",
@@ -554,6 +562,8 @@
"history.loadFailed": "Kan geschiedenis niet laden. Laad opnieuw.",
"history.title": "Activiteit",
"languages.add": "Taal toevoegen",
+ "languages.add.description": "Add a new language that you want to support for your content.",
+ "languages.add.title": "Add a new Language",
"languages.addFailed": "Toevoegen van taal is mislukt. Laad opnieuw.",
"languages.deleteConfirmText": "Wil je de taal echt verwijderen?",
"languages.deleteConfirmTitle": "Verwijder taal",
@@ -563,7 +573,7 @@
"languages.masterHint": "Andere talen vallen terug op de master als er geen fallback is gedefinieerd.",
"languages.optional": "Is optioneel",
"languages.optionalHint": "Waarden voor optionele talen mogen niet worden ingevoerd, zelfs niet als dit veld vereist is.",
- "languages.refreshTooltip": "Ververs talen (CTRL + SHIFT + R)",
+ "languages.refreshTooltip": "Ververs talen",
"languages.reloaded": "Talen herladen.",
"languages.updateFailed": "Het wijzigen van de taal is mislukt. Laad opnieuw.",
"news.headline": "Wat is er nieuw?",
@@ -583,15 +593,20 @@
"plans.notPlanOwner": "Je hebt geen abonnement aangemaakt. Daarom kun je het plan niet wijzigen.",
"plans.perMonth": "Per maand",
"plans.perYear": "Per jaar",
- "plans.refreshTooltip": "Plannen vernieuwen (CTRL + SHIFT + R)",
+ "plans.refreshTooltip": "Plannen vernieuwen",
"plans.reloaded": "Plans reloaded.",
"plans.selected": "Geselecteerd",
"profile.title": "Profiel",
"profile.userEmail": "Aangemeld met",
"roles.add": "Rol toevoegen",
+ "roles.add.description": "Add a new role if you need custom permission and policies.",
+ "roles.add.title": "Add a custom Role",
"roles.addFailed": "Toevoegen van rol is mislukt. Laad opnieuw.",
+ "roles.customRoles": "Custom roles",
"roles.default.owner": "Kan alles doen, inclusief het verwijderen van de app.",
"roles.default.reader": "Kan alleen items en inhoud lezen.",
+ "roles.defaultRoles": "Default roles",
+ "roles.defaultRoles.hint": "Default roles cannot be deleted and are always part of your app.",
"roles.defaults.developer": "Kan de API-weergave gebruiken, middelen, inhoud, schema's, regels, workflows en patronen bewerken.",
"roles.defaults.editor": "Kan middelen en inhoud bewerken en workflows bekijken.",
"roles.deleteConfirmText": "Rol verwijderen",
@@ -608,7 +623,7 @@
"roles.properties.hideSchemas": "Verberg schema's",
"roles.properties.hideSettings": "Verberg instellingen",
"roles.propertiesDescription": " Eigenschappen beschrijven het gedrag van de beheerinterface, maar bieden geen beveiliging voor de API. ",
- "roles.refreshTooltip": "Ververs rollen (CTRL + SHIFT + R)",
+ "roles.refreshTooltip": "Ververs rollen",
"roles.reloaded": "Rollen opnieuw geladen.",
"roles.revokeFailed": "Kan rol niet intrekken. Laad opnieuw.",
"roles.roleNamePlaceholder": "Voer de rolnaam in",
@@ -618,7 +633,7 @@
"rules.cancelFailed": "Annuleren van regel is mislukt. Laad opnieuw.",
"rules.create": "Maak een nieuwe regel",
"rules.createFailed": "Maken van regel is mislukt. Laad opnieuw.",
- "rules.createTooltip": "Nieuwe regel (CTRL + SHIFT + G)",
+ "rules.createTooltip": "Nieuwe regel",
"rules.deleteConfirmText": "Wil je de regel echt verwijderen?",
"rules.deleteConfirmTitle": "Regel verwijderen",
"rules.deleteFailed": "Verwijderen van regel is mislukt. Laad opnieuw.",
@@ -629,8 +644,8 @@
"rules.listPageTitle": "Regels",
"rules.loadFailed": "Laden van regels is mislukt. Laad opnieuw.",
"rules.readMore": "Lees meer",
- "rules.refreshEventsTooltip": "Ververs evenementen (CTRL + SHIFT + R)",
- "rules.refreshTooltip": "Vernieuwingsregels (CTRL + SHIFT + R)",
+ "rules.refreshEventsTooltip": "Ververs evenementen",
+ "rules.refreshTooltip": "Vernieuwingsregels",
"rules.reloaded": "Regels herladen.",
"rules.restarted": "Regel begint over een paar seconden te lopen.",
"rules.ruleEvents.cancelFailed": "Annuleren van regelgebeurtenis is mislukt. Laad opnieuw.",
@@ -680,7 +695,7 @@
"schemas.create": "Schema maken",
"schemas.createCategory": "Nieuwe categorie maken ...",
"schemas.createFailed": "Kan schema niet maken. Laad opnieuw.",
- "schemas.createSchemaTooltip": "Nieuw schema (CTRL + SHIFT + G)",
+ "schemas.createSchemaTooltip": "Nieuw schema",
"schemas.deleteConfirmText": "Weet je zeker dat je het schema wilt verwijderen?",
"schemas.deleteConfirmTitle": "Schema verwijderen",
"schemas.deleteFailed": "Kan schema niet verwijderen. Laad opnieuw.",
@@ -911,7 +926,7 @@
"users.createFailed": "Aanmaken van gebruiker mislukt. Laad opnieuw.",
"users.createPageTitle": "Gebruiker aanmaken",
"users.createTitle": "Nieuwe gebruiker",
- "users.createTooltip": "Nieuwe gebruiker (CTRL + N)",
+ "users.createTooltip": "Nieuwe gebruiker",
"users.deleteConfirmText": "Do you really want to delete this user?",
"users.deleteConfirmTitle": "Delete user",
"users.deleteFailed": "Failed to delete user. Please reload.",
@@ -924,7 +939,7 @@
"users.lockFailed": "Failed to lock user. Please reload.",
"users.lockTooltip": "Gebruiker vergrendelen",
"users.passwordConfirmValidationMessage": "Wachtwoorden moeten hetzelfde zijn.",
- "users.refreshTooltip": "Ververs gebruikers (CTRL + SHIFT + R)",
+ "users.refreshTooltip": "Ververs gebruikers",
"users.reloaded": "Gebruikers herladen.",
"users.search": "Zoeken naar gebruiker",
"users.unlockFailed": "Failed to unlock user. Please reload.",
@@ -944,7 +959,6 @@
"validation.min": "{field|upper} moet groter zijn dan of gelijk zijn aan '{min}'.",
"validation.minlength": "{field|upper} moet minimaal {requiredlength} item (s) bevatten.",
"validation.minlengthstring": "{field|upper} moet minimaal {requiredlength} teken (s) bevatten.",
- "validation.notAnValidSvg": "The SVG is malicious and contains script tags.",
"validation.pattern": "{field|upper} komt niet overeen met het patroon.",
"validation.patternmessage": "{message}",
"validation.required": "{field|upper} is vereist.",
@@ -954,6 +968,8 @@
"validation.validdatetime": "{field|upper} is geen geldige datum en tijd.",
"validation.validvalues": "{field|upper} is geen geldige waarde.",
"workflows.add": "Workflow toevoegen",
+ "workflows.add.description": "The workflow name is only used in the UI and not shown to editors.",
+ "workflows.add.title": "Add a new workflow",
"workflows.addStep": "Stap toevoegen",
"workflows.createFailed": "Maken van workflow mislukt. Laad opnieuw.",
"workflows.deleteConfirmText": "Wil je de workflow echt verwijderen?",
@@ -964,7 +980,7 @@
"workflows.notNamed": "Naamloze workflow",
"workflows.preventUpdates": "Updates voorkomen",
"workflows.publishedNotRemovable": "Kan niet worden verwijderd",
- "workflows.refreshTooltip": "Werkstromen vernieuwen (CTRL + SHIFT + R)",
+ "workflows.refreshTooltip": "Werkstromen vernieuwen",
"workflows.reloaded": "Workflows opnieuw geladen.",
"workflows.saved": "Workflow is opgeslagen.",
"workflows.schemasHint": "Beperk deze workflow tot specifieke schema's of laat het leeg voor alle schema's.",
diff --git a/backend/i18n/frontend_zh.json b/backend/i18n/frontend_zh.json
index 260f8f667..0f4b1e980 100644
--- a/backend/i18n/frontend_zh.json
+++ b/backend/i18n/frontend_zh.json
@@ -42,8 +42,6 @@
"apps.removeImageFailed": "删除应用图片失败。请重新加载。",
"apps.updateFailed": "更新应用失败。请重新加载。",
"apps.updateSettingsFailed": "更新界面设置失败。请重新加载。",
- "apps.upgradeHintCurrent": "你在 {plan} 计划中。",
- "apps.upgradeHintUpgrade": "升级!",
"apps.uploadImage": "拖放文件以替换应用图片。使用正方形大小。",
"apps.uploadImageButton": "上传文件",
"apps.uploadImageFailed": "上传图片失败,请重新加载。",
@@ -52,19 +50,21 @@
"apps.welcomeTitle": "Hi {user}",
"appSettings.editors.deleteConfirmText": "你真的要删除这个编辑器 URL 吗?",
"appSettings.editors.deleteConfirmTitle": "删除编辑器 URL",
+ "appSettings.editors.description": "Manage the URLs to custom editors to use them in the schema designer.",
"appSettings.editors.empty": "尚未创建编辑器 URL。",
"appSettings.editors.title": "自定义编辑器",
"appSettings.hideScheduler": "隐藏预定发布对话框",
"appSettings.patterns.deleteConfirmText": "你真的要删除这个模式吗?",
"appSettings.patterns.deleteConfirmTitle": "删除模式",
+ "appSettings.patterns.description": "Patterns are reusable regular expressions for string field validation.",
"appSettings.patterns.empty": "尚未创建模式。",
"appSettings.patterns.title": "模式",
- "appSettings.refreshTooltip": "刷新 UI 设置 (CTRL + SHIFT + R)",
+ "appSettings.refreshTooltip": "刷新 UI 设置",
"appSettings.reloaded": "UI 设置重新加载。",
"appSettings.title": "界面设置",
"assets.createFolder": "创建文件夹",
"assets.createFolderFailed": "资源文件夹创建失败,请重新加载。",
- "assets.createFolderTooltip": "创建新文件夹 (CTRL + SHIFT + G)",
+ "assets.createFolderTooltip": "创建新文件夹",
"assets.deleteConfirmText": "你真的要删除资源吗?",
"assets.deleteConfirmTitle": "删除资源",
"assets.deleteFailed": "资源删除失败,请重新加载。",
@@ -77,7 +77,8 @@
"assets.downloadVersion": "下载此版本",
"assets.dropToUpdate": "下拉更新",
"assets.duplicateFile": "资源已经上传。",
- "assets.editor.flipHorizontally": "水平翻转",
+ "assets.edit": "Edit Asset",
+ "assets.editor.flipHorizontally": "Flip Horizontally",
"assets.editor.flipVertically": "垂直翻转",
"assets.editor.focusPointLabel": "选择焦点位置",
"assets.editor.focusPointPreview": "不同尺寸的预览",
@@ -95,7 +96,7 @@
"assets.metadataAdd": "添加元数据",
"assets.moveFailed": "资源移动失败。请重新加载。",
"assets.protected": "受保护",
- "assets.refreshTooltip": "刷新资源 (CTRL + SHIFT + R)",
+ "assets.refreshTooltip": "刷新资源",
"assets.reloaded": "资源重新加载。",
"assets.removeConfirmText": "你真的要移除资源吗?",
"assets.removeConfirmTitle": "移除资源",
@@ -136,7 +137,7 @@
"backups.empty": "尚未创建备份。",
"backups.loadFailed": "加载备份失败。",
"backups.maximumReached": "您已达到最大备份数:10。",
- "backups.refreshTooltip": "刷新备份 (CTRL + SHIFT + R)",
+ "backups.refreshTooltip": "刷新备份",
"backups.reloaded": "备份已重新加载。",
"backups.restore": "恢复备份",
"backups.restoreFailed": "无法开始恢复。",
@@ -153,6 +154,8 @@
"backups.startedLabel": "开始",
"backups.startFailed": "启动备份失败。",
"clients.add": "添加客户端",
+ "clients.add.description": "Add a client to give other applications access to your content.",
+ "clients.add.title": "Add a new Client",
"clients.addFailed": "添加客户端失败,请重新加载。",
"clients.allowAnonymous": "允许匿名访问。",
"clients.allowAnonymousHint": "允许在没有访问令牌的情况下访问通过此客户端角色配置的所有资源的 API。不要给多个客户端匿名访问。",
@@ -191,7 +194,7 @@
"clients.deleteConfirmTitle": "撤销客户端",
"clients.empty": "尚未创建客户端。",
"clients.loadFailed": "加载客户端失败。请重新加载。",
- "clients.refreshTooltip": "刷新客户端 (CTRL + SHIFT + R)",
+ "clients.refreshTooltip": "刷新客户端",
"clients.reloaded": "客户端重新加载。",
"clients.revokeFailed": "撤销客户端失败。请重新加载。",
"clients.tokenFailed": "创建令牌失败。请重试。",
@@ -236,6 +239,7 @@
"common.contributors": "贡献者",
"common.create": "创建",
"common.created": "创建",
+ "common.dashboard": "Dasboard",
"common.date": "日期",
"common.dateTimeEditor.local": "本地",
"common.dateTimeEditor.now": "现在",
@@ -249,6 +253,7 @@
"common.disabled": "已禁用",
"common.displayName": "显示名称",
"common.edit": "编辑",
+ "common.editing": "Editing",
"common.email": "电子邮件",
"common.enabled": "已启用",
"common.error": "错误",
@@ -290,10 +295,12 @@
"common.mapHide": "隐藏地图",
"common.mapShow": "显示地图",
"common.message": "消息",
+ "common.more": "More",
"common.name": "名称",
"common.no": "不",
"common.nothingChanged": "什么都没有改变。",
"common.noValue": "- 无值 -",
+ "common.openAPI": "Open API",
"common.or": "或",
"common.pagerInfo": "{itemFirst}-{itemLast} 的 {numberOfItems}",
"common.password": "密码",
@@ -328,11 +335,11 @@
"common.rules": "规则",
"common.sampleCodeLabel": "示例代码在",
"common.save": "保存",
- "common.saveShortcut": "CTRL + S",
"common.schemas": "Schemas",
"common.search": "搜索",
"common.searchGoogleMaps": "搜索谷歌地图",
"common.searchResults": "搜索结果",
+ "common.security": "Security",
"common.separateByLine": "按行分隔",
"common.settings": "设置",
"common.sidebar": "侧边栏扩展",
@@ -388,7 +395,7 @@
"contents.contentTab.references": "参考资料",
"contents.contentTab.referencing": "引用",
"contents.create": "新建",
- "contents.createContentTooltip": "新建内容 (CTRL + SHIFT + G)",
+ "contents.createContentTooltip": "新建内容",
"contents.created": "内容创建成功。",
"contents.createdByFieldDescription": "创建内容项的用户。",
"contents.createFailed": "创建内容失败,请重新加载。",
@@ -432,7 +439,7 @@
"contents.referencesLink": "链接所选内容 ({count})",
"contents.referencesSelectExisting": "选择现有",
"contents.referencesSelectSchema": "选择 {schema}",
- "contents.refreshTooltip": "刷新内容 (CTRL + SHIFT + R)",
+ "contents.refreshTooltip": "刷新内容",
"contents.reloaded": "内容已重新加载。",
"contents.removeConfirmText": "您真的要删除内容吗?",
"contents.removeConfirmTitle": "删除内容",
@@ -476,6 +483,7 @@
"contents.viewLatest": "查看最新",
"contents.viewReset": "重置默认视图",
"contributors.add": "添加贡献者",
+ "contributors.add.title": "Add or invite contributor",
"contributors.addFailed": "添加贡献者失败。请重新加载。",
"contributors.contributorAssigned": "一个具有输入电子邮件地址的新用户已被创建并被指定为贡献者。",
"contributors.contributorAssignedExisting": "用户已被分配",
@@ -494,7 +502,7 @@
"contributors.importTitle": "导入贡献者",
"contributors.loadFailed": "加载贡献者失败。请重新加载。",
"contributors.planHint": "您的计划允许最多 {maxContributors} 个贡献者。",
- "contributors.refreshTooltip": "刷新贡献者 (CTRL + SHIFT + R)",
+ "contributors.refreshTooltip": "刷新贡献者",
"contributors.reloaded": "贡献者重新加载。",
"contributors.search": "搜索",
"contributors.userNotFound": "用户不存在。",
@@ -542,7 +550,7 @@
"eventConsumers.loadFailed": "加载事件消费者失败。请重新加载。",
"eventConsumers.pageTitle": "事件消费者",
"eventConsumers.position": "位置",
- "eventConsumers.refreshTooltip": "刷新事件消费者 (CTRL + SHIFT + R)",
+ "eventConsumers.refreshTooltip": "刷新事件消费者",
"eventConsumers.reloaded": "事件消费者重新加载。",
"eventConsumers.resetFailed": "无法重置事件消费者。请重新加载。",
"eventConsumers.resetTooltip": "重置事件消费者",
@@ -554,6 +562,8 @@
"history.loadFailed": "加载历史记录失败。请重新加载。",
"history.title": "活动",
"languages.add": "添加语言",
+ "languages.add.description": "Add a new language that you want to support for your content.",
+ "languages.add.title": "Add a new Language",
"languages.addFailed": "添加语言失败。请重新加载。",
"languages.deleteConfirmText": "你真的要删除语言吗?",
"languages.deleteConfirmTitle": "删除语言",
@@ -563,7 +573,7 @@
"languages.masterHint": "如果没有定义回退,其他语言回退到母版。",
"languages.optional": "是可选的",
"languages.optionalHint": "不得输入可选语言的值,即使字段是必需的。",
- "languages.refreshTooltip": "刷新语言 (CTRL + SHIFT + R)",
+ "languages.refreshTooltip": "刷新语言",
"languages.reloaded": "语言已重新加载。",
"languages.updateFailed": "更改语言失败。请重新加载。",
"news.headline": "有什么新鲜事?",
@@ -583,15 +593,20 @@
"plans.notPlanOwner": "您尚未创建订阅。因此您无法更改计划。",
"plans.perMonth": "每月",
"plans.perYear": "每年",
- "plans.refreshTooltip": "刷新计划 (CTRL + SHIFT + R)",
+ "plans.refreshTooltip": "刷新计划",
"plans.reloaded": "计划重新加载。",
"plans.selected": "已选择",
"profile.title": "个人资料",
"profile.userEmail": "登录方式",
"roles.add": "添加角色",
+ "roles.add.description": "Add a new role if you need custom permission and policies.",
+ "roles.add.title": "Add a custom Role",
"roles.addFailed": "添加角色失败,请重新加载。",
+ "roles.customRoles": "Custom roles",
"roles.default.owner": "可以做任何事情,包括删除应用程序。",
"roles.default.reader": "只能读取资源和内容。",
+ "roles.defaultRoles": "Default roles",
+ "roles.defaultRoles.hint": "Default roles cannot be deleted and are always part of your app.",
"roles.defaults.developer": "可以使用 API 视图,编辑资源、内容、Schemas、规则、工作流和 appSettings.patterns。",
"roles.defaults.editor": "可以编辑资源和内容并查看工作流程。",
"roles.deleteConfirmText": "删除角色",
@@ -608,7 +623,7 @@
"roles.properties.hideSchemas": "隐藏Schemas",
"roles.properties.hideSettings": "隐藏设置",
"roles.propertiesDescription": "属性描述管理 UI 的行为,但不为 API 提供安全性。",
- "roles.refreshTooltip": "刷新角色 (CTRL + SHIFT + R)",
+ "roles.refreshTooltip": "刷新角色",
"roles.reloaded": "重新加载角色。",
"roles.revokeFailed": "撤销角色失败,请重新加载。",
"roles.roleNamePlaceholder": "输入角色名称",
@@ -618,7 +633,7 @@
"rules.cancelFailed": "取消规则失败,请重新加载。",
"rules.create": "新规则",
"rules.createFailed": "创建规则失败。请重新加载。",
- "rules.createTooltip": "新规则 (CTRL + SHIFT + G)",
+ "rules.createTooltip": "新规则",
"rules.deleteConfirmText": "你真的要删除规则吗?",
"rules.deleteConfirmTitle": "删除规则",
"rules.deleteFailed": "删除规则失败,请重新加载。",
@@ -629,8 +644,8 @@
"rules.listPageTitle": "规则",
"rules.loadFailed": "加载规则失败。请重新加载。",
"rules.readMore": "阅读更多",
- "rules.refreshEventsTooltip": "刷新事件 (CTRL + SHIFT + R)",
- "rules.refreshTooltip": "刷新规则 (CTRL + SHIFT + R)",
+ "rules.refreshEventsTooltip": "刷新事件",
+ "rules.refreshTooltip": "刷新规则",
"rules.reloaded": "规则重新加载。",
"rules.restarted": "规则将在几秒钟后开始运行。",
"rules.ruleEvents.cancelFailed": "取消规则事件失败。请重新加载。",
@@ -680,7 +695,7 @@
"schemas.create": "Create Schema",
"schemas.createCategory": "创建新类别...",
"schemas.createFailed": "无法创建Schemas。请重新加载。",
- "schemas.createSchemaTooltip": "新Schemas (CTRL + SHIFT + G)",
+ "schemas.createSchemaTooltip": "新Schemas",
"schemas.deleteConfirmText": "您真的要删除Schemas吗?",
"schemas.deleteConfirmTitle": "删除Schemas",
"schemas.deleteFailed": "删除Schemas失败。请重新加载。",
@@ -911,7 +926,7 @@
"users.createFailed": "创建用户失败,请重新加载。",
"users.createPageTitle": "创建用户",
"users.createTitle": "新用户",
- "users.createTooltip": "新用户 (CTRL + N)",
+ "users.createTooltip": "新用户",
"users.deleteConfirmText": "你真的要删除这个用户吗?",
"users.deleteConfirmTitle": "删除用户",
"users.deleteFailed": "删除用户失败,请重新加载。",
@@ -924,7 +939,7 @@
"users.lockFailed": "锁定用户失败。请重新加载。",
"users.lockTooltip": "锁定用户",
"users.passwordConfirmValidationMessage": "密码必须相同。",
- "users.refreshTooltip": "刷新用户 (CTRL + SHIFT + R)",
+ "users.refreshTooltip": "刷新用户",
"users.reloaded": "用户重新加载。",
"users.search": "搜索用户",
"users.unlockFailed": "解锁用户失败。请重新加载。",
@@ -944,7 +959,6 @@
"validation.min": "{field|upper} 必须大于或等于 '{min}'。",
"validation.minlength": "{field|upper} 必须至少有 {requiredlength} 项。",
"validation.minlengthstring": "{field|upper} 必须至少有 {requiredlength} 个字符。",
- "validation.notAnValidSvg": "The SVG is malicious and contains script tags.",
"validation.pattern": "{field|upper} 与模式不匹配。",
"validation.patternmessage": "{message}",
"validation.required": "{field|upper} 是必需的。",
@@ -954,6 +968,8 @@
"validation.validdatetime": "{field|upper} 不是有效的日期时间。",
"validation.validvalues": "{field|upper} 不是一个有效值。",
"workflows.add": "添加工作流",
+ "workflows.add.description": "The workflow name is only used in the UI and not shown to editors.",
+ "workflows.add.title": "Add a new workflow",
"workflows.addStep": "添加步骤",
"workflows.createFailed": "创建工作流失败。请重新加载。",
"workflows.deleteConfirmText": "你真的要删除工作流吗?",
@@ -964,7 +980,7 @@
"workflows.notNamed": "未命名的工作流程",
"workflows.preventUpdates": "防止更新",
"workflows.publishedNotRemovable": "无法删除",
- "workflows.refreshTooltip": "刷新工作流 (CTRL + SHIFT + R)",
+ "workflows.refreshTooltip": "刷新工作流",
"workflows.reloaded": "工作流已重新加载。",
"workflows.saved": "工作流已保存。",
"workflows.schemasHint": "将此工作流限制为特定Schemas或将其保留为所有Schemas的空。",
diff --git a/backend/i18n/source/backend_en.json b/backend/i18n/source/backend_en.json
index 48393394a..668425f10 100644
--- a/backend/i18n/source/backend_en.json
+++ b/backend/i18n/source/backend_en.json
@@ -361,6 +361,7 @@
"validation.lessEqualsThan": "{property|upper} must be less or equal to {other|lower}.",
"validation.lessThan": "{property|upper} must be less than {other|lower}.",
"validation.notAnImage": "Picture is not a valid image.",
+ "validation.notAnValidSvg": "The SVG is malicious and contains script tags.",
"validation.onlyOneFile": "Can only upload one file.",
"validation.required": "{property|upper} is required.",
"validation.requiredBoth": "If {property1|lower} or {property2|lower} is used both must be defined.",
diff --git a/backend/i18n/source/frontend_en.json b/backend/i18n/source/frontend_en.json
index 833b35fd9..ff6535621 100644
--- a/backend/i18n/source/frontend_en.json
+++ b/backend/i18n/source/frontend_en.json
@@ -42,8 +42,6 @@
"apps.removeImageFailed": "Failed to remove app image. Please reload.",
"apps.updateFailed": "Failed to update app. Please reload.",
"apps.updateSettingsFailed": "Faield to update UI settings. Please reload.",
- "apps.upgradeHintCurrent": "You are on the {plan} plan.",
- "apps.upgradeHintUpgrade": "Upgrade!",
"apps.uploadImage": "Drop an file to replace the app image. Use a square size.",
"apps.uploadImageButton": "Upload File",
"apps.uploadImageFailed": "Failed to upload image. Please reload.",
@@ -52,19 +50,21 @@
"apps.welcomeTitle": "Hi {user}",
"appSettings.editors.deleteConfirmText": "Do you really want to remove this Editor URL?",
"appSettings.editors.deleteConfirmTitle": "Delete Editor URL",
+ "appSettings.editors.description": "Manage the URLs to custom editors to use them in the schema designer.",
"appSettings.editors.empty": "No Editor URL created yet.",
"appSettings.editors.title": "Custom Editors",
"appSettings.hideScheduler": "Hide dialog for scheduled publishing",
"appSettings.patterns.deleteConfirmText": "Do you really want to remove this pattern?",
"appSettings.patterns.deleteConfirmTitle": "Delete pattern",
+ "appSettings.patterns.description": "Patterns are reusable regular expressions for string field validation.",
"appSettings.patterns.empty": "No pattern created yet.",
"appSettings.patterns.title": "Patterns",
- "appSettings.refreshTooltip": "Refresh UI Settings (CTRL + SHIFT + R)",
+ "appSettings.refreshTooltip": "Refresh UI Settings",
"appSettings.reloaded": "UI Settings reloaded.",
"appSettings.title": "UI Settings",
"assets.createFolder": "Create Folder",
"assets.createFolderFailed": "Failed to create asset folder. Please reload.",
- "assets.createFolderTooltip": "Create new folder (CTRL + SHIFT + G)",
+ "assets.createFolderTooltip": "Create new folder",
"assets.deleteConfirmText": "Do you really want to delete the asset?",
"assets.deleteConfirmTitle": "Delete asset",
"assets.deleteFailed": "Failed to delete asset. Please reload.",
@@ -77,6 +77,7 @@
"assets.downloadVersion": "Download this Version",
"assets.dropToUpdate": "Drop to update",
"assets.duplicateFile": "Asset has already been uploaded.",
+ "assets.edit": "Edit Asset",
"assets.editor.flipHorizontally": "Flip Horizontally",
"assets.editor.flipVertically": "Flip Vertically",
"assets.editor.focusPointLabel": "Select position of focus point",
@@ -95,7 +96,7 @@
"assets.metadataAdd": "Add Metadata",
"assets.moveFailed": "Failed to move asset. Please reload.",
"assets.protected": "Protected",
- "assets.refreshTooltip": "Refresh Assets (CTRL + SHIFT + R)",
+ "assets.refreshTooltip": "Refresh Assets",
"assets.reloaded": "Assets reloaded.",
"assets.removeConfirmText": "Do you really want to remove the asset?",
"assets.removeConfirmTitle": "Remove asset",
@@ -136,7 +137,7 @@
"backups.empty": "No backups created yet.",
"backups.loadFailed": "Failed to load backups.",
"backups.maximumReached": "Your have reached the maximum number of backups: 10.",
- "backups.refreshTooltip": "Refresh backups (CTRL + SHIFT + R)",
+ "backups.refreshTooltip": "Refresh backups",
"backups.reloaded": "Backups reloaded.",
"backups.restore": "Restore Backup",
"backups.restoreFailed": "Failed to start restore.",
@@ -153,6 +154,8 @@
"backups.startedLabel": "Started",
"backups.startFailed": "Failed to start backup.",
"clients.add": "Add Client",
+ "clients.add.description": "Add a client to give other applications access to your content.",
+ "clients.add.title": "Add a new Client",
"clients.addFailed": "Failed to add client. Please reload.",
"clients.allowAnonymous": "Allow anonymous access.",
"clients.allowAnonymousHint": "Allow access to the API without an access token to all resources that are configured via the role of this client. Do not give more than one client anonymous access.",
@@ -191,7 +194,7 @@
"clients.deleteConfirmTitle": "Revoke client",
"clients.empty": "No client created yet.",
"clients.loadFailed": "Failed to load clients. Please reload.",
- "clients.refreshTooltip": "Refresh clients (CTRL + SHIFT + R)",
+ "clients.refreshTooltip": "Refresh clients",
"clients.reloaded": "Clients reloaded.",
"clients.revokeFailed": "Failed to revoke client. Please reload.",
"clients.tokenFailed": "Failed to create token. Please retry.",
@@ -236,6 +239,7 @@
"common.contributors": "Contributors",
"common.create": "Create",
"common.created": "Created",
+ "common.dashboard": "Dasboard",
"common.date": "Date",
"common.dateTimeEditor.local": "Local",
"common.dateTimeEditor.now": "Now",
@@ -249,6 +253,7 @@
"common.disabled": "Disabled",
"common.displayName": "Display Name",
"common.edit": "Edit",
+ "common.editing": "Editing",
"common.email": "Email",
"common.enabled": "Enabled",
"common.error": "Error",
@@ -290,10 +295,12 @@
"common.mapHide": "Hide map",
"common.mapShow": "Show map",
"common.message": "Message",
+ "common.more": "More",
"common.name": "Name",
"common.no": "No",
"common.nothingChanged": "Nothing has been changed.",
"common.noValue": "- No value -",
+ "common.openAPI": "Open API",
"common.or": "or",
"common.pagerInfo": "{itemFirst}-{itemLast} of {numberOfItems}",
"common.password": "Password",
@@ -328,11 +335,11 @@
"common.rules": "Rules",
"common.sampleCodeLabel": "Sample Code at",
"common.save": "Save",
- "common.saveShortcut": "CTRL + S",
"common.schemas": "Schemas",
"common.search": "Search",
"common.searchGoogleMaps": "Search Google Maps",
"common.searchResults": "Search Results",
+ "common.security": "Security",
"common.separateByLine": "Separate by line",
"common.settings": "Settings",
"common.sidebar": "Sidebar Extension",
@@ -388,7 +395,7 @@
"contents.contentTab.references": "References",
"contents.contentTab.referencing": "Referencing",
"contents.create": "New",
- "contents.createContentTooltip": "New Content (CTRL + SHIFT + G)",
+ "contents.createContentTooltip": "New Content",
"contents.created": "Content created successfully.",
"contents.createdByFieldDescription": "The user who created the content item.",
"contents.createFailed": "Failed to create content. Please reload.",
@@ -432,7 +439,7 @@
"contents.referencesLink": "Link selected contents ({count})",
"contents.referencesSelectExisting": "Select Existing",
"contents.referencesSelectSchema": "Select {schema}",
- "contents.refreshTooltip": "Refresh Contents (CTRL + SHIFT + R)",
+ "contents.refreshTooltip": "Refresh Contents",
"contents.reloaded": "Contents reloaded.",
"contents.removeConfirmText": "Do you really want to remove the content?",
"contents.removeConfirmTitle": "Remove content",
@@ -442,7 +449,7 @@
"contents.scheduledTo": "to",
"contents.schemasPageTitle": "Contents",
"contents.searchPlaceholder": "Fulltext search",
- "contents.searchSchemasPlaceholder": "Search for schemas...",
+ "contents.searchSchemasPlaceholder": "Search",
"contents.selectionCount": "{count} items selected",
"contents.statusFieldDescription": "The status of the content item.",
"contents.statusQueries": "Status Queries",
@@ -476,6 +483,7 @@
"contents.viewLatest": "View latest",
"contents.viewReset": "Reset Default View",
"contributors.add": "Add Contributor",
+ "contributors.add.title": "Add or invite contributor",
"contributors.addFailed": "Failed to add contributors. Please reload.",
"contributors.contributorAssigned": "A new user with the entered email address has been created and assigned as contributor.",
"contributors.contributorAssignedExisting": "User has been assigned",
@@ -494,7 +502,7 @@
"contributors.importTitle": "Import contributors",
"contributors.loadFailed": "Failed to load contributors. Please reload.",
"contributors.planHint": "Your plan allows up to {maxContributors} contributors.",
- "contributors.refreshTooltip": "Refresh contributors (CTRL + SHIFT + R)",
+ "contributors.refreshTooltip": "Refresh contributors",
"contributors.reloaded": "Contributors reloaded.",
"contributors.search": "Search",
"contributors.userNotFound": "The user does not exist.",
@@ -542,7 +550,7 @@
"eventConsumers.loadFailed": "Failed to load event consumers. Please reload.",
"eventConsumers.pageTitle": "Event Consumers",
"eventConsumers.position": "Position",
- "eventConsumers.refreshTooltip": "Refresh event consumers (CTRL + SHIFT + R)",
+ "eventConsumers.refreshTooltip": "Refresh event consumers",
"eventConsumers.reloaded": "Event Consumers reloaded.",
"eventConsumers.resetFailed": "Failed to reset event consumer. Please reload.",
"eventConsumers.resetTooltip": "Reset Event Consumer",
@@ -554,6 +562,8 @@
"history.loadFailed": "Failed to load history. Please reload.",
"history.title": "Activity",
"languages.add": "Add Language",
+ "languages.add.description": "Add a new language that you want to support for your content.",
+ "languages.add.title": "Add a new Language",
"languages.addFailed": "Failed to add language. Please reload.",
"languages.deleteConfirmText": "Do you really want to remove the language?",
"languages.deleteConfirmTitle": "Remove language",
@@ -563,7 +573,7 @@
"languages.masterHint": "Other languages fall back to the master if no fallback is defined.",
"languages.optional": "Is Optional",
"languages.optionalHint": "Values for optional languages must not be entered, even if field is required.",
- "languages.refreshTooltip": "Refresh languages (CTRL + SHIFT + R)",
+ "languages.refreshTooltip": "Refresh languages",
"languages.reloaded": "Languages reloaded.",
"languages.updateFailed": "Failed to change language. Please reload.",
"news.headline": "What's new?",
@@ -583,16 +593,21 @@
"plans.notPlanOwner": "You have not created the subscription. Therefore you cannot change the plan.",
"plans.perMonth": "Per Month",
"plans.perYear": "Per Year",
- "plans.refreshTooltip": "Refresh Plans (CTRL + SHIFT + R)",
+ "plans.refreshTooltip": "Refresh Plans",
"plans.reloaded": "Plans reloaded.",
"plans.selected": "Selected",
"profile.title": "Profile",
"profile.userEmail": "Signed in with",
"roles.add": "Add role",
+ "roles.add.description": "Add a new role if you need custom permission and policies.",
+ "roles.add.title": "Add a custom Role",
"roles.addFailed": "Failed to add role. Please reload.",
+ "roles.customRoles": "Custom roles",
"roles.default.owner": "Can do everything, including deleting the app.",
"roles.default.reader": "Can only read assets and contents.",
- "roles.defaults.developer": "Can use the API view, edit assets, contents, schemas, rules, workflows and appSettings.patterns.",
+ "roles.defaultRoles": "Default roles",
+ "roles.defaultRoles.hint": "Default roles cannot be deleted and are always part of your app.",
+ "roles.defaults.developer": "Can use the API view, edit assets, contents, schemas, rules, workflows and settings.",
"roles.defaults.editor": "Can edit assets and contents and view workflows.",
"roles.deleteConfirmText": "Delete role",
"roles.deleteConfirmTitle": "Do you really want to delete the role?",
@@ -608,7 +623,7 @@
"roles.properties.hideSchemas": "Hide Schemas",
"roles.properties.hideSettings": "Hide Settings",
"roles.propertiesDescription": "Properties describe the behavior of the Management UI, but do not provide security for the API.",
- "roles.refreshTooltip": "Refresh roles (CTRL + SHIFT + R)",
+ "roles.refreshTooltip": "Refresh roles",
"roles.reloaded": "Roles reloaded.",
"roles.revokeFailed": "Failed to revoke role. Please reload.",
"roles.roleNamePlaceholder": "Enter role name",
@@ -618,7 +633,7 @@
"rules.cancelFailed": "Failed to cancel rule. Please reload.",
"rules.create": "New Rule",
"rules.createFailed": "Failed to create rule. Please reload.",
- "rules.createTooltip": "New Rule (CTRL + SHIFT + G)",
+ "rules.createTooltip": "New Rule",
"rules.deleteConfirmText": "Do you really want to delete the rule?",
"rules.deleteConfirmTitle": "Delete rule",
"rules.deleteFailed": "Failed to delete rule. Please reload.",
@@ -629,8 +644,8 @@
"rules.listPageTitle": "Rules",
"rules.loadFailed": "Failed to load Rules. Please reload.",
"rules.readMore": "Read More",
- "rules.refreshEventsTooltip": "Refresh Events (CTRL + SHIFT + R)",
- "rules.refreshTooltip": "Refresh Rules (CTRL + SHIFT + R)",
+ "rules.refreshEventsTooltip": "Refresh Events",
+ "rules.refreshTooltip": "Refresh Rules",
"rules.reloaded": "Rules reloaded.",
"rules.restarted": "Rule will start to run in a few seconds.",
"rules.ruleEvents.cancelFailed": "Failed to cancel rule event. Please reload.",
@@ -680,7 +695,7 @@
"schemas.create": "Create Schema",
"schemas.createCategory": "Create new category...",
"schemas.createFailed": "Failed to create schema. Please reload.",
- "schemas.createSchemaTooltip": "New Schema (CTRL + SHIFT + G)",
+ "schemas.createSchemaTooltip": "New Schema",
"schemas.deleteConfirmText": "Do you really want to delete the schema?",
"schemas.deleteConfirmTitle": "Delete schema",
"schemas.deleteFailed": "Failed to delete schema. Please reload.",
@@ -842,7 +857,7 @@
"schemas.schemaNameHint": "You can only use letters, numbers and dashes and not more than 40 characters.",
"schemas.schemaNameValidationMessage": "Name can only contain letters, numbers, dashes and spaces.",
"schemas.schemaTagsHint": "Tags to annotate your schema for automation processes.",
- "schemas.searchPlaceholder": "Search for schemas...",
+ "schemas.searchPlaceholder": "Search...",
"schemas.showFieldFailed": "Failed to show field. Please reload.",
"schemas.synchronized": "Schema synchronized successfully.",
"schemas.synchronizeFailed": "Failed to synchronize schema. Please reload.",
@@ -911,7 +926,7 @@
"users.createFailed": "Failed to create user. Please reload.",
"users.createPageTitle": "Create User",
"users.createTitle": "New User",
- "users.createTooltip": "New User (CTRL + N)",
+ "users.createTooltip": "New User",
"users.deleteConfirmText": "Do you really want to delete this user?",
"users.deleteConfirmTitle": "Delete user",
"users.deleteFailed": "Failed to delete user. Please reload.",
@@ -924,7 +939,7 @@
"users.lockFailed": "Failed to lock user. Please reload.",
"users.lockTooltip": "Lock User",
"users.passwordConfirmValidationMessage": "Passwords must be the same.",
- "users.refreshTooltip": "Refresh Users (CTRL + SHIFT + R)",
+ "users.refreshTooltip": "Refresh Users",
"users.reloaded": "Users reloaded.",
"users.search": "Search for user",
"users.unlockFailed": "Failed to unlock user. Please reload.",
@@ -944,7 +959,6 @@
"validation.min": "{field|upper} must be greater or equal to '{min}'.",
"validation.minlength": "{field|upper} must have at least {requiredlength} item(s).",
"validation.minlengthstring": "{field|upper} must have at least {requiredlength} character(s).",
- "validation.notAnValidSvg": "The SVG is malicious and contains script tags.",
"validation.pattern": "{field|upper} does not match to the pattern.",
"validation.patternmessage": "{message}",
"validation.required": "{field|upper} is required.",
@@ -954,6 +968,8 @@
"validation.validdatetime": "{field|upper} is not a valid date time.",
"validation.validvalues": "{field|upper} is not a valid value.",
"workflows.add": "Add Workflow",
+ "workflows.add.description": "The workflow name is only used in the UI and not shown to editors.",
+ "workflows.add.title": "Add a new workflow",
"workflows.addStep": "Add Step",
"workflows.createFailed": "Failed to create workflow. Please reload.",
"workflows.deleteConfirmText": "Do you really want to remove the workflow?",
@@ -964,7 +980,7 @@
"workflows.notNamed": "Unnamed Workflow",
"workflows.preventUpdates": "Prevent updates",
"workflows.publishedNotRemovable": "Cannot be removed",
- "workflows.refreshTooltip": "Refresh workflows (CTRL + SHIFT + R)",
+ "workflows.refreshTooltip": "Refresh workflows",
"workflows.reloaded": "Workflows reloaded.",
"workflows.saved": "Workflow has been saved.",
"workflows.schemasHint": "Restrict this workflow to specific schemas or keep it empty for all schemas.",
diff --git a/backend/i18n/source/frontend_it.json b/backend/i18n/source/frontend_it.json
index 54b955dba..1bf6e17c7 100644
--- a/backend/i18n/source/frontend_it.json
+++ b/backend/i18n/source/frontend_it.json
@@ -40,8 +40,6 @@
"apps.removeImage": "Rimuovi l'immagine",
"apps.removeImageFailed": "Non è stato possibile rimuovere l'immagine dell'app. Per favore ricarica.",
"apps.updateFailed": "Non è stato possibile aggiornare l'app. Per favore ricarica.",
- "apps.upgradeHintCurrent": "Tu sei nel piano {plan}.",
- "apps.upgradeHintUpgrade": "Aggiorna!",
"apps.uploadImage": "Trascina il file per sostituire l'immagine dell'app. Utilizza una dimensione quadrata.",
"apps.uploadImageButton": "Carica il File",
"apps.uploadImageFailed": "Non è stato possibile caricare l'immagine. Per favore ricarica.",
@@ -53,7 +51,7 @@
"appSettings.patterns.empty": "Nessun pattern è stato ancora creato.",
"assets.createFolder": "Crea cartella",
"assets.createFolderFailed": "Non è stato possibile creare la cartella degli asset. Per favore ricarica.",
- "assets.createFolderTooltip": "Crea una nuova cartella (CTRL + SHIFT + G)",
+ "assets.createFolderTooltip": "Crea una nuova cartella",
"assets.deleteConfirmText": "Sei sicuro di voler cancellare la risorsa?",
"assets.deleteConfirmTitle": "Elimina la risorsa",
"assets.deleteFailed": "Non è stato possibile cancellare la risorsa. Per favore ricarica.",
@@ -84,7 +82,7 @@
"assets.metadataAdd": "Aggiungi un metadato",
"assets.moveFailed": "Non è stato possibile spostare la risorsa. Per favore ricarica.",
"assets.protected": "Protetto",
- "assets.refreshTooltip": "Aggiorna le risorse (CTRL + SHIFT + R)",
+ "assets.refreshTooltip": "Aggiorna le risorse",
"assets.reloaded": "Risorse ricaricate.",
"assets.removeConfirmText": "Sei sicuro di voler cancellare la risorsa?",
"assets.removeConfirmTitle": "Risorsa cancellata",
@@ -125,7 +123,7 @@
"backups.empty": "Nessun backup è stato ancora creato.",
"backups.loadFailed": "Non è stato possibile caricare i backup.",
"backups.maximumReached": "Hai raggiunto il numero massimo di backup: 10.",
- "backups.refreshTooltip": "Aggiorna i backup (CTRL + SHIFT + R)",
+ "backups.refreshTooltip": "Aggiorna i backup",
"backups.reloaded": "Backup aggiornati.",
"backups.restore": "Backup ripristinato",
"backups.restoreFailed": "Non è stato possibile avviare il ripristino.",
@@ -180,7 +178,7 @@
"clients.deleteConfirmTitle": "Rimuovere il client",
"clients.empty": "Nessun client ancora creato.",
"clients.loadFailed": "Non è stato possibile caricare i client. Per favore ricarica.",
- "clients.refreshTooltip": "Aggiorna i client (CTRL + SHIFT + R)",
+ "clients.refreshTooltip": "Aggiorna i client",
"clients.reloaded": "Client ricaricati.",
"clients.revokeFailed": "Non è stato possibile rimuovere il client. Per favore ricarica.",
"clients.tokenFailed": "Non è stato possibile creare il token. Per favore riprova.",
@@ -308,7 +306,6 @@
"common.rules": "Regole",
"common.sampleCodeLabel": "Esempio di codice per",
"common.save": "Salva",
- "common.saveShortcut": "CTRL + S",
"common.schemas": "Schemi",
"common.searchGoogleMaps": "Cerca su Google Maps",
"common.searchResults": "Risultati di ricerca",
@@ -363,7 +360,7 @@
"contents.contentTab.references": "Collegato a",
"contents.contentTab.referencing": "Collegato da",
"contents.create": "Nuovo",
- "contents.createContentTooltip": "Nuovo contenuto (CTRL + SHIFT + G)",
+ "contents.createContentTooltip": "Nuovo contenuto",
"contents.created": "Contenuto creato con successo.",
"contents.createdByFieldDescription": "L'utente che ha creato l'elemento del contenuto.",
"contents.createFailed": "Non è stato possibile creare il contenuto. Per favore ricarica.",
@@ -407,7 +404,7 @@
"contents.referencesLink": "Collega i contenuti selezionati ({count})",
"contents.referencesSelectExisting": "Seleziona da contenuti esistenti",
"contents.referencesSelectSchema": "Seleziona {schema}",
- "contents.refreshTooltip": "Aggiorna i contenuti (CTRL + SHIFT + R)",
+ "contents.refreshTooltip": "Aggiorna i contenuti",
"contents.reloaded": "Contenuti aggiornati.",
"contents.removeConfirmText": "Sei sicuro di voler rimuovere il contenuto?",
"contents.removeConfirmTitle": "Cancella il contenuto",
@@ -469,7 +466,7 @@
"contributors.importTitle": "Importa collaboratori",
"contributors.loadFailed": "Non è stato possibile caricare contributors. Per favore ricarica.",
"contributors.planHint": "Il tuo piano prevede un numero massimo di {maxContributors} collaboratori.",
- "contributors.refreshTooltip": "Aggiorna i collaboratori (CTRL + SHIFT + R)",
+ "contributors.refreshTooltip": "Aggiorna i collaboratori",
"contributors.reloaded": "Collaboratori aggiornati.",
"contributors.search": "Cerca",
"contributors.userNotFound": "L'utente non esiste.",
@@ -517,7 +514,7 @@
"eventConsumers.loadFailed": "Non è stato possibile caricare event consumers. Per favore ricarica.",
"eventConsumers.pageTitle": "Eventi degli utenti",
"eventConsumers.position": "Posizione",
- "eventConsumers.refreshTooltip": "Aggiorna gli eventi degli utenti (CTRL + SHIFT + R)",
+ "eventConsumers.refreshTooltip": "Aggiorna gli eventi degli utenti",
"eventConsumers.reloaded": "Eventi degli utenti aggiornati.",
"eventConsumers.resetFailed": "Non è stato possibile ripristinare gli eventi degli utenti. Per favore ricarica.",
"eventConsumers.resetTooltip": "Ripristina gli event degli utenti",
@@ -538,7 +535,7 @@
"languages.masterHint": "Se non è stata impostata nessuna lingua come alternativa, le altre lingue hanno la lingua principale come alternativa.",
"languages.optional": "È Opzionale",
"languages.optionalHint": "Se sono presenti campi obbligatori questi non devono essere compilati anche per le lingue opzionali.",
- "languages.refreshTooltip": "Aggiorna le lingue (CTRL + SHIFT + R)",
+ "languages.refreshTooltip": "Aggiorna le lingue",
"languages.reloaded": "Lingue ricaricate.",
"languages.updateFailed": "Non è stato possibile cambiare la lingua. Per favore ricarica.",
"news.headline": "Che cosa c'è di nuovo?",
@@ -558,7 +555,7 @@
"plans.notPlanOwner": "Non hai creato nessun abbonamento, pertanto non è possibile cambiare il piano.",
"plans.perMonth": "Al mese",
"plans.perYear": "all'anno",
- "plans.refreshTooltip": "Aggiorna i piani (CTRL + SHIFT + R)",
+ "plans.refreshTooltip": "Aggiorna i piani",
"plans.reloaded": "Piano aggiornati.",
"plans.selected": "Selezionato",
"profile.title": "Profilo",
@@ -583,7 +580,7 @@
"roles.properties.hideSchemas": "Nascondi gli Schemi",
"roles.properties.hideSettings": "Nascondi le impostazioni",
"roles.propertiesDescription": "Le proprietà descrivono il comportamento nelle Interfacce Utente, ma non garantiscono la sicurezza per le API.",
- "roles.refreshTooltip": "Aggiorna i ruoli (CTRL + SHIFT + R)",
+ "roles.refreshTooltip": "Aggiorna i ruoli",
"roles.reloaded": "Ruoli ricaricati.",
"roles.revokeFailed": "Non è stato possibile rimuovere il ruolo. Per favore ricarica.",
"roles.roleNamePlaceholder": "Inserisci il nome del ruolo",
@@ -591,7 +588,7 @@
"rules.cancelFailed": "Non è stato possibile eliminare la regola. Per favore ricarica.",
"rules.create": "Crea un nuova Regola",
"rules.createFailed": "Non è stato possibile creare una nuova regola. Per favore ricarica.",
- "rules.createTooltip": "Nuova regola (CTRL + SHIFT + G)",
+ "rules.createTooltip": "Nuova regola",
"rules.deleteConfirmText": "Sei sicuro di voler eliminare la regola?",
"rules.deleteConfirmTitle": "Cancella la regola",
"rules.deleteFailed": "Non è stato possibile eliminare la regola. Per favore ricarica.",
@@ -601,8 +598,8 @@
"rules.listPageTitle": "Regole",
"rules.loadFailed": "Non è stato possibile caricare le regole. Per favore ricarica.",
"rules.readMore": "Leggi di più",
- "rules.refreshEventsTooltip": "Aggiorna gli Eventi (CTRL + SHIFT + R)",
- "rules.refreshTooltip": "Aggiorna le Regole (CTRL + SHIFT + R)",
+ "rules.refreshEventsTooltip": "Aggiorna gli Eventi",
+ "rules.refreshTooltip": "Aggiorna le Regole",
"rules.reloaded": "Regole ricaricate.",
"rules.restarted": "La Regola sarà eseguita fra pochi secondi.",
"rules.ruleEvents.cancelFailed": "Non è stato possibile cancellare l'evento della regola. Per favore ricarica.",
@@ -646,7 +643,7 @@
"schemas.create": "Crea uno Schema",
"schemas.createCategory": "Crea una nuova categoria...",
"schemas.createFailed": "Non è stato possibile creare lo schema. Per favore ricarica.",
- "schemas.createSchemaTooltip": "Nuovo Schema (CTRL + SHIFT + G)",
+ "schemas.createSchemaTooltip": "Nuovo Schema",
"schemas.deleteConfirmText": "Sei sicuro di voler eliminare lo schema?",
"schemas.deleteConfirmTitle": "Cancella lo schema",
"schemas.deleteFailed": "Non è stato possibile cancellare lo schema. Per favore ricarica.",
@@ -866,7 +863,7 @@
"users.createFailed": "Non è stato possibile creare l'utente. Per favore ricarica.",
"users.createPageTitle": "Crea un utente",
"users.createTitle": "Nuovo utente",
- "users.createTooltip": "Nuovo utente (CTRL + N)",
+ "users.createTooltip": "Nuovo utente",
"users.deleteConfirmText": "Sei sicuro di voler eliminare questo utente?",
"users.deleteConfirmTitle": "Elimina utente",
"users.deleteFailed": "Non è stato possibile eliminare l'utente. Per favore ricarica.",
@@ -879,7 +876,7 @@
"users.lockFailed": "Non è stato possibile bloccare l'utente. Per favore ricarica.",
"users.lockTooltip": "Utente bloccato",
"users.passwordConfirmValidationMessage": "Le password devono essere uguali.",
- "users.refreshTooltip": "Aggiorna gli Utenti (CTRL + SHIFT + R)",
+ "users.refreshTooltip": "Aggiorna gli Utenti",
"users.reloaded": "Utenti ricaricati.",
"users.search": "Cerca l'utente",
"users.unlockFailed": "Non è stato possibile sbloccare l'utente. Per favore ricarica.",
@@ -918,7 +915,7 @@
"workflows.notNamed": "Workflow senza nome",
"workflows.preventUpdates": "Impedisci gli aggiornamenti",
"workflows.publishedNotRemovable": "Non è possibile rimuoverlo",
- "workflows.refreshTooltip": "Aggiorna i workflow (CTRL + SHIFT + R)",
+ "workflows.refreshTooltip": "Aggiorna i workflow",
"workflows.reloaded": "Workflow ricaricati.",
"workflows.saved": "Il Workflow è stato salvato.",
"workflows.schemasHint": "Limita questo workflow ad uno schema specifico, o lascialo bianco per applicarlo a tutti gli schemi.",
diff --git a/backend/i18n/source/frontend_nl.json b/backend/i18n/source/frontend_nl.json
index 00c21802c..c55d31626 100644
--- a/backend/i18n/source/frontend_nl.json
+++ b/backend/i18n/source/frontend_nl.json
@@ -36,8 +36,6 @@
"apps.removeImage": "Afbeelding verwijderen",
"apps.removeImageFailed": "Verwijderen van app-afbeelding is mislukt. Laad opnieuw.",
"apps.updateFailed": "Update app mislukt. Laad opnieuw.",
- "apps.upgradeHintCurrent": "Je zit in het plan {plan}.",
- "apps.upgradeHintUpgrade": "Upgrade!",
"apps.uploadImage": "Zet een bestand neer om de app-afbeelding te vervangen. Gebruik een vierkant formaat.",
"apps.uploadImageButton": "Upload bestand",
"apps.uploadImageFailed": "Uploaden van afbeelding is mislukt. Laad opnieuw.",
@@ -49,7 +47,7 @@
"appSettings.patterns.empty": "Nog geen patroon gemaakt.",
"assets.createFolder": "Map maken",
"assets.createFolderFailed": "Maken van een map is mislukt. Laad opnieuw.",
- "assets.createFolderTooltip": "Nieuwe map maken (CTRL + SHIFT + G)",
+ "assets.createFolderTooltip": "Nieuwe map maken",
"assets.deleteConfirmText": "Weet je zeker dat je het item wilt verwijderen?",
"assets.deleteConfirmTitle": "Item verwijderen",
"assets.deleteFailed": "Verwijderen van item is mislukt. Laad opnieuw.",
@@ -80,7 +78,7 @@
"assets.metadataAdd": "Metadata toevoegen",
"assets.moveFailed": "Verplaatsen van item is mislukt. Laad opnieuw.",
"assets.protected": "Beschermd",
- "assets.refreshTooltip": "Bestanden vernieuwen (CTRL + SHIFT + R)",
+ "assets.refreshTooltip": "Bestanden vernieuwen",
"assets.reloaded": "Bestanden herladen.",
"assets.removeConfirmText": "Wil je het bestand echt verwijderen?",
"assets.removeConfirmTitle": "Verwijder bestand",
@@ -119,7 +117,7 @@
"backups.empty": "Nog geen back-ups gemaakt.",
"backups.loadFailed": "Laden van back-ups is mislukt.",
"backups.maximumReached": "Je hebt het maximale aantal back-ups bereikt: 10",
- "backups.refreshTooltip": "Vernieuw back-ups (CTRL + SHIFT + R)",
+ "backups.refreshTooltip": "Vernieuw back-ups",
"backups.reloaded": "Back-ups herladen.",
"backups.restore": "Back-up herstellen",
"backups.restoreFailed": "Starten van herstel is mislukt.",
@@ -174,7 +172,7 @@
"clients.deleteConfirmTitle": "Client intrekken",
"clients.empty": "Nog geen client aangemaakt.",
"clients.loadFailed": "Kan clients niet laden. Laad opnieuw.",
- "clients.refreshTooltip": "Ververs clients (CTRL + SHIFT + R)",
+ "clients.refreshTooltip": "Ververs clients",
"clients.reloaded": "Clients herladen.",
"clients.revokeFailed": "Kan client niet intrekken. Laad opnieuw.",
"clients.tokenFailed": "Maken van token is mislukt. Probeer het opnieuw.",
@@ -297,7 +295,6 @@
"common.rules": "Regels",
"common.sampleCodeLabel": "Voorbeeldcode bij",
"common.save": "Opslaan",
- "common.saveShortcut": "CTRL + S",
"common.schemas": "Schema's",
"common.searchGoogleMaps": "Zoeken in Google Maps",
"common.searchResults": "Zoekresultaten",
@@ -345,7 +342,7 @@
"contents.changeStatusToLater": "Zet op {action} op een latere datum en tijd.",
"contents.contentNotValid": "Inhoudselement niet geldig, controleer het veld met de rode balk aan de linkerkant in alle talen (indien lokaliseerbaar).",
"contents.create": "Nieuw",
- "contents.createContentTooltip": "Nieuwe inhoud (CTRL + SHIFT + G)",
+ "contents.createContentTooltip": "Nieuwe inhoud",
"contents.created": "Inhoud succesvol aangemaakt.",
"contents.createdByFieldDescription": "De gebruiker die het inhoudsitem heeft gemaakt.",
"contents.createFailed": "Maken van inhoud is mislukt. Laad opnieuw.",
@@ -385,7 +382,7 @@
"contents.referencesLink": "Link geselecteerde inhoud ({count})",
"contents.referencesSelectExisting": "Selecteer bestaande",
"contents.referencesSelectSchema": "Selecteer {schema}",
- "contents.refreshTooltip": "Ververs inhoud (CTRL + SHIFT + R)",
+ "contents.refreshTooltip": "Ververs inhoud",
"contents.reloaded": "Inhoud opnieuw geladen.",
"contents.removeConfirmText": "Wil je de inhoud echt verwijderen?",
"contents.removeConfirmTitle": "Verwijder inhoud",
@@ -441,7 +438,7 @@
"contributors.importTitle": "Bijdragers importeren",
"contributors.loadFailed": "Laden van bijdragers is mislukt. Laad opnieuw.",
"contributors.planHint": "Uw plan staat maximaal {maxContributors} bijdragers toe.",
- "contributors.refreshTooltip": "Bijdragers vernieuwen (CTRL + SHIFT + R)",
+ "contributors.refreshTooltip": "Bijdragers vernieuwen",
"contributors.reloaded": "Contributors reloaded.",
"contributors.search": "Zoeken",
"contributors.userNotFound": "De gebruiker bestaat niet.",
@@ -489,7 +486,7 @@
"eventConsumers.loadFailed": "Kan gebeurtenisgebruikers niet laden. Laad opnieuw.",
"eventConsumers.pageTitle": "Evenementconsumenten",
"eventConsumers.position": "Positie",
- "eventConsumers.refreshTooltip": "Ververs evenementgebruikers (CTRL + SHIFT + R)",
+ "eventConsumers.refreshTooltip": "Ververs evenementgebruikers",
"eventConsumers.reloaded": "Evenementconsumenten herladen.",
"eventConsumers.resetFailed": "Kan gebeurtenisgebruiker niet resetten. Laad opnieuw.",
"eventConsumers.resetTooltip": "Reset Event Consumer",
@@ -510,7 +507,7 @@
"languages.masterHint": "Andere talen vallen terug op de master als er geen fallback is gedefinieerd.",
"languages.optional": "Is optioneel",
"languages.optionalHint": "Waarden voor optionele talen mogen niet worden ingevoerd, zelfs niet als dit veld vereist is.",
- "languages.refreshTooltip": "Ververs talen (CTRL + SHIFT + R)",
+ "languages.refreshTooltip": "Ververs talen",
"languages.reloaded": "Talen herladen.",
"languages.updateFailed": "Het wijzigen van de taal is mislukt. Laad opnieuw.",
"news.headline": "Wat is er nieuw?",
@@ -530,7 +527,7 @@
"plans.notPlanOwner": "Je hebt geen abonnement aangemaakt. Daarom kun je het plan niet wijzigen.",
"plans.perMonth": "Per maand",
"plans.perYear": "Per jaar",
- "plans.refreshTooltip": "Plannen vernieuwen (CTRL + SHIFT + R)",
+ "plans.refreshTooltip": "Plannen vernieuwen",
"plans.reloaded": "Plans reloaded.",
"plans.selected": "Geselecteerd",
"profile.title": "Profiel",
@@ -555,7 +552,7 @@
"roles.properties.hideSchemas": "Verberg schema's",
"roles.properties.hideSettings": "Verberg instellingen",
"roles.propertiesDescription": " Eigenschappen beschrijven het gedrag van de beheerinterface, maar bieden geen beveiliging voor de API. ",
- "roles.refreshTooltip": "Ververs rollen (CTRL + SHIFT + R)",
+ "roles.refreshTooltip": "Ververs rollen",
"roles.reloaded": "Rollen opnieuw geladen.",
"roles.revokeFailed": "Kan rol niet intrekken. Laad opnieuw.",
"roles.roleNamePlaceholder": "Voer de rolnaam in",
@@ -563,7 +560,7 @@
"rules.cancelFailed": "Annuleren van regel is mislukt. Laad opnieuw.",
"rules.create": "Maak een nieuwe regel",
"rules.createFailed": "Maken van regel is mislukt. Laad opnieuw.",
- "rules.createTooltip": "Nieuwe regel (CTRL + SHIFT + G)",
+ "rules.createTooltip": "Nieuwe regel",
"rules.deleteConfirmText": "Wil je de regel echt verwijderen?",
"rules.deleteConfirmTitle": "Regel verwijderen",
"rules.deleteFailed": "Verwijderen van regel is mislukt. Laad opnieuw.",
@@ -573,8 +570,8 @@
"rules.listPageTitle": "Regels",
"rules.loadFailed": "Laden van regels is mislukt. Laad opnieuw.",
"rules.readMore": "Lees meer",
- "rules.refreshEventsTooltip": "Ververs evenementen (CTRL + SHIFT + R)",
- "rules.refreshTooltip": "Vernieuwingsregels (CTRL + SHIFT + R)",
+ "rules.refreshEventsTooltip": "Ververs evenementen",
+ "rules.refreshTooltip": "Vernieuwingsregels",
"rules.reloaded": "Regels herladen.",
"rules.restarted": "Regel begint over een paar seconden te lopen.",
"rules.ruleEvents.cancelFailed": "Annuleren van regelgebeurtenis is mislukt. Laad opnieuw.",
@@ -617,7 +614,7 @@
"schemas.create": "Schema maken",
"schemas.createCategory": "Nieuwe categorie maken ...",
"schemas.createFailed": "Kan schema niet maken. Laad opnieuw.",
- "schemas.createSchemaTooltip": "Nieuw schema (CTRL + SHIFT + G)",
+ "schemas.createSchemaTooltip": "Nieuw schema",
"schemas.deleteConfirmText": "Weet je zeker dat je het schema wilt verwijderen?",
"schemas.deleteConfirmTitle": "Schema verwijderen",
"schemas.deleteFailed": "Kan schema niet verwijderen. Laad opnieuw.",
@@ -828,7 +825,7 @@
"users.createFailed": "Aanmaken van gebruiker mislukt. Laad opnieuw.",
"users.createPageTitle": "Gebruiker aanmaken",
"users.createTitle": "Nieuwe gebruiker",
- "users.createTooltip": "Nieuwe gebruiker (CTRL + N)",
+ "users.createTooltip": "Nieuwe gebruiker",
"users.editPageTitle": "Gebruiker bewerken",
"users.editTitle": "Gebruiker bewerken",
"users.listPageTitle": "Gebruikersbeheer",
@@ -837,7 +834,7 @@
"users.loadUserFailed": "Kan gebruiker niet laden. Laad opnieuw.",
"users.lockTooltip": "Gebruiker vergrendelen",
"users.passwordConfirmValidationMessage": "Wachtwoorden moeten hetzelfde zijn.",
- "users.refreshTooltip": "Ververs gebruikers (CTRL + SHIFT + R)",
+ "users.refreshTooltip": "Ververs gebruikers",
"users.reloaded": "Gebruikers herladen.",
"users.search": "Zoeken naar gebruiker",
"users.unlockTooltip": "Gebruiker ontgrendelen",
@@ -875,7 +872,7 @@
"workflows.notNamed": "Naamloze workflow",
"workflows.preventUpdates": "Updates voorkomen",
"workflows.publishedNotRemovable": "Kan niet worden verwijderd",
- "workflows.refreshTooltip": "Werkstromen vernieuwen (CTRL + SHIFT + R)",
+ "workflows.refreshTooltip": "Werkstromen vernieuwen",
"workflows.reloaded": "Workflows opnieuw geladen.",
"workflows.saved": "Workflow is opgeslagen.",
"workflows.schemasHint": "Beperk deze workflow tot specifieke schema's of laat het leeg voor alle schema's.",
diff --git a/backend/i18n/source/frontend_zh.json b/backend/i18n/source/frontend_zh.json
index 139744df6..e9e53404c 100644
--- a/backend/i18n/source/frontend_zh.json
+++ b/backend/i18n/source/frontend_zh.json
@@ -42,8 +42,6 @@
"apps.removeImageFailed": "删除应用图片失败。请重新加载。",
"apps.updateFailed": "更新应用失败。请重新加载。",
"apps.updateSettingsFailed": "更新界面设置失败。请重新加载。",
- "apps.upgradeHintCurrent": "你在 {plan} 计划中。",
- "apps.upgradeHintUpgrade": "升级!",
"apps.uploadImage": "拖放文件以替换应用图片。使用正方形大小。",
"apps.uploadImageButton": "上传文件",
"apps.uploadImageFailed": "上传图片失败,请重新加载。",
@@ -59,12 +57,12 @@
"appSettings.patterns.deleteConfirmTitle": "删除模式",
"appSettings.patterns.empty": "尚未创建模式。",
"appSettings.patterns.title": "模式",
- "appSettings.refreshTooltip": "刷新 UI 设置 (CTRL + SHIFT + R)",
+ "appSettings.refreshTooltip": "刷新 UI 设置",
"appSettings.reloaded": "UI 设置重新加载。",
"appSettings.title": "界面设置",
"assets.createFolder": "创建文件夹",
"assets.createFolderFailed": "资源文件夹创建失败,请重新加载。",
- "assets.createFolderTooltip": "创建新文件夹 (CTRL + SHIFT + G)",
+ "assets.createFolderTooltip": "创建新文件夹",
"assets.deleteConfirmText": "你真的要删除资源吗?",
"assets.deleteConfirmTitle": "删除资源",
"assets.deleteFailed": "资源删除失败,请重新加载。",
@@ -77,7 +75,6 @@
"assets.downloadVersion": "下载此版本",
"assets.dropToUpdate": "下拉更新",
"assets.duplicateFile": "资源已经上传。",
- "assets.editor.flipHorizontally": "水平翻转",
"assets.editor.flipVertically": "垂直翻转",
"assets.editor.focusPointLabel": "选择焦点位置",
"assets.editor.focusPointPreview": "不同尺寸的预览",
@@ -95,7 +92,7 @@
"assets.metadataAdd": "添加元数据",
"assets.moveFailed": "资源移动失败。请重新加载。",
"assets.protected": "受保护",
- "assets.refreshTooltip": "刷新资源 (CTRL + SHIFT + R)",
+ "assets.refreshTooltip": "刷新资源",
"assets.reloaded": "资源重新加载。",
"assets.removeConfirmText": "你真的要移除资源吗?",
"assets.removeConfirmTitle": "移除资源",
@@ -136,7 +133,7 @@
"backups.empty": "尚未创建备份。",
"backups.loadFailed": "加载备份失败。",
"backups.maximumReached": "您已达到最大备份数:10。",
- "backups.refreshTooltip": "刷新备份 (CTRL + SHIFT + R)",
+ "backups.refreshTooltip": "刷新备份",
"backups.reloaded": "备份已重新加载。",
"backups.restore": "恢复备份",
"backups.restoreFailed": "无法开始恢复。",
@@ -191,7 +188,7 @@
"clients.deleteConfirmTitle": "撤销客户端",
"clients.empty": "尚未创建客户端。",
"clients.loadFailed": "加载客户端失败。请重新加载。",
- "clients.refreshTooltip": "刷新客户端 (CTRL + SHIFT + R)",
+ "clients.refreshTooltip": "刷新客户端",
"clients.reloaded": "客户端重新加载。",
"clients.revokeFailed": "撤销客户端失败。请重新加载。",
"clients.tokenFailed": "创建令牌失败。请重试。",
@@ -328,8 +325,6 @@
"common.rules": "规则",
"common.sampleCodeLabel": "示例代码在",
"common.save": "保存",
- "common.saveShortcut": "CTRL + S",
- "common.schema": "Schemas",
"common.search": "搜索",
"common.searchGoogleMaps": "搜索谷歌地图",
"common.searchResults": "搜索结果",
@@ -337,7 +332,6 @@
"common.settings": "设置",
"common.sidebar": "侧边栏扩展",
"common.sidebarTour": "侧边栏导航包含有用的上下文特定链接。您可以在此处查看此Schemas随时间变化的历史记录。",
- "common.skiped": "跳过",
"common.slug": "弹头",
"common.stars.max": "不得超过 15 颗星",
"common.status": "状态",
@@ -388,7 +382,7 @@
"contents.contentTab.references": "参考资料",
"contents.contentTab.referencing": "引用",
"contents.create": "新建",
- "contents.createContentTooltip": "新建内容 (CTRL + SHIFT + G)",
+ "contents.createContentTooltip": "新建内容",
"contents.created": "内容创建成功。",
"contents.createdByFieldDescription": "创建内容项的用户。",
"contents.createFailed": "创建内容失败,请重新加载。",
@@ -432,7 +426,7 @@
"contents.referencesLink": "链接所选内容 ({count})",
"contents.referencesSelectExisting": "选择现有",
"contents.referencesSelectSchema": "选择 {schema}",
- "contents.refreshTooltip": "刷新内容 (CTRL + SHIFT + R)",
+ "contents.refreshTooltip": "刷新内容",
"contents.reloaded": "内容已重新加载。",
"contents.removeConfirmText": "您真的要删除内容吗?",
"contents.removeConfirmTitle": "删除内容",
@@ -494,7 +488,7 @@
"contributors.importTitle": "导入贡献者",
"contributors.loadFailed": "加载贡献者失败。请重新加载。",
"contributors.planHint": "您的计划允许最多 {maxContributors} 个贡献者。",
- "contributors.refreshTooltip": "刷新贡献者 (CTRL + SHIFT + R)",
+ "contributors.refreshTooltip": "刷新贡献者",
"contributors.reloaded": "贡献者重新加载。",
"contributors.search": "搜索",
"contributors.userNotFound": "用户不存在。",
@@ -542,7 +536,7 @@
"eventConsumers.loadFailed": "加载事件消费者失败。请重新加载。",
"eventConsumers.pageTitle": "事件消费者",
"eventConsumers.position": "位置",
- "eventConsumers.refreshTooltip": "刷新事件消费者 (CTRL + SHIFT + R)",
+ "eventConsumers.refreshTooltip": "刷新事件消费者",
"eventConsumers.reloaded": "事件消费者重新加载。",
"eventConsumers.resetFailed": "无法重置事件消费者。请重新加载。",
"eventConsumers.resetTooltip": "重置事件消费者",
@@ -563,7 +557,7 @@
"languages.masterHint": "如果没有定义回退,其他语言回退到母版。",
"languages.optional": "是可选的",
"languages.optionalHint": "不得输入可选语言的值,即使字段是必需的。",
- "languages.refreshTooltip": "刷新语言 (CTRL + SHIFT + R)",
+ "languages.refreshTooltip": "刷新语言",
"languages.reloaded": "语言已重新加载。",
"languages.updateFailed": "更改语言失败。请重新加载。",
"news.headline": "有什么新鲜事?",
@@ -583,7 +577,7 @@
"plans.notPlanOwner": "您尚未创建订阅。因此您无法更改计划。",
"plans.perMonth": "每月",
"plans.perYear": "每年",
- "plans.refreshTooltip": "刷新计划 (CTRL + SHIFT + R)",
+ "plans.refreshTooltip": "刷新计划",
"plans.reloaded": "计划重新加载。",
"plans.selected": "已选择",
"profile.title": "个人资料",
@@ -608,7 +602,7 @@
"roles.properties.hideSchemas": "隐藏Schemas",
"roles.properties.hideSettings": "隐藏设置",
"roles.propertiesDescription": "属性描述管理 UI 的行为,但不为 API 提供安全性。",
- "roles.refreshTooltip": "刷新角色 (CTRL + SHIFT + R)",
+ "roles.refreshTooltip": "刷新角色",
"roles.reloaded": "重新加载角色。",
"roles.revokeFailed": "撤销角色失败,请重新加载。",
"roles.roleNamePlaceholder": "输入角色名称",
@@ -618,7 +612,7 @@
"rules.cancelFailed": "取消规则失败,请重新加载。",
"rules.create": "新规则",
"rules.createFailed": "创建规则失败。请重新加载。",
- "rules.createTooltip": "新规则 (CTRL + SHIFT + G)",
+ "rules.createTooltip": "新规则",
"rules.deleteConfirmText": "你真的要删除规则吗?",
"rules.deleteConfirmTitle": "删除规则",
"rules.deleteFailed": "删除规则失败,请重新加载。",
@@ -629,8 +623,8 @@
"rules.listPageTitle": "规则",
"rules.loadFailed": "加载规则失败。请重新加载。",
"rules.readMore": "阅读更多",
- "rules.refreshEventsTooltip": "刷新事件 (CTRL + SHIFT + R)",
- "rules.refreshTooltip": "刷新规则 (CTRL + SHIFT + R)",
+ "rules.refreshEventsTooltip": "刷新事件",
+ "rules.refreshTooltip": "刷新规则",
"rules.reloaded": "规则重新加载。",
"rules.restarted": "规则将在几秒钟后开始运行。",
"rules.ruleEvents.cancelFailed": "取消规则事件失败。请重新加载。",
@@ -662,34 +656,6 @@
"rules.triggerHint": "以后不能更改触发器类型的选择。",
"rules.unnamed": "未命名规则",
"rules.updateFailed": "更新规则失败。请重新加载。",
- "schema.clone": "克隆Schemas",
- "schema.create": "创建Schemas",
- "schema.field.defaultValue": "默认值",
- "schema.field.editor": "编辑器",
- "schema.field.hiddenMarker": "隐藏",
- "schema.field.localizable": "Localizable",
- "schema.field.localizableMarker": "localizable",
- "schema.field.placeholder": "占位符",
- "schema.field.required": "必需",
- "schema.field.tabEditing": "编辑",
- "schema.field.tabValidation": "验证",
- "schema.field.unique": "唯一",
- "schema.field.visibleMarker": "可见",
- "schema.fieldTypes.array.count": "项目",
- "schema.fieldTypes.assets.size": "大小",
- "schema.fieldTypes.string.length": "长度",
- "schema.fieldTypes.string.lengthMax": "最大长度",
- "schema.fieldTypes.string.pattern": "正则表达式",
- "schema.loadSchemaFailed": "加载Schemas失败。请重新加载。",
- "schema.modeComponent": "组件",
- "schema.published": "已发布",
- "schema.reloaded": "Schemas已重新加载。",
- "schema.saved": "Schemas保存成功。",
- "schema.synchronized": "Schemas同步成功。",
- "schema.tabMore": "更多",
- "schema.tabScripts": "脚本",
- "schema.tabUI": "UI",
- "schema.unpublished": "未发布",
"schemas.addField": "添加字段",
"schemas.addFieldAndClose": "创建并关闭",
"schemas.addFieldAndCreate": "创建并添加字段",
@@ -706,7 +672,7 @@
"schemas.contextMenuTour": "打开上下文菜单以删除Schemas或为内容更改创建一些脚本。",
"schemas.createCategory": "创建新类别...",
"schemas.createFailed": "无法创建Schemas。请重新加载。",
- "schemas.createSchemaTooltip": "新Schemas (CTRL + SHIFT + G)",
+ "schemas.createSchemaTooltip": "新Schemas",
"schemas.deleteConfirmText": "您真的要删除Schemas吗?",
"schemas.deleteConfirmTitle": "删除Schemas",
"schemas.deleteFailed": "删除Schemas失败。请重新加载。",
@@ -908,7 +874,7 @@
"users.createFailed": "创建用户失败,请重新加载。",
"users.createPageTitle": "创建用户",
"users.createTitle": "新用户",
- "users.createTooltip": "新用户 (CTRL + N)",
+ "users.createTooltip": "新用户",
"users.deleteConfirmText": "你真的要删除这个用户吗?",
"users.deleteConfirmTitle": "删除用户",
"users.deleteFailed": "删除用户失败,请重新加载。",
@@ -921,7 +887,7 @@
"users.lockFailed": "锁定用户失败。请重新加载。",
"users.lockTooltip": "锁定用户",
"users.passwordConfirmValidationMessage": "密码必须相同。",
- "users.refreshTooltip": "刷新用户 (CTRL + SHIFT + R)",
+ "users.refreshTooltip": "刷新用户",
"users.reloaded": "用户重新加载。",
"users.search": "搜索用户",
"users.unlockFailed": "解锁用户失败。请重新加载。",
@@ -960,7 +926,7 @@
"workflows.notNamed": "未命名的工作流程",
"workflows.preventUpdates": "防止更新",
"workflows.publishedNotRemovable": "无法删除",
- "workflows.refreshTooltip": "刷新工作流 (CTRL + SHIFT + R)",
+ "workflows.refreshTooltip": "刷新工作流",
"workflows.reloaded": "工作流已重新加载。",
"workflows.saved": "工作流已保存。",
"workflows.schemasHint": "将此工作流限制为特定Schemas或将其保留为所有Schemas的空。",
diff --git a/backend/src/Squidex.Shared/Texts.it.resx b/backend/src/Squidex.Shared/Texts.it.resx
index 3885558d9..13d4f27fc 100644
--- a/backend/src/Squidex.Shared/Texts.it.resx
+++ b/backend/src/Squidex.Shared/Texts.it.resx
@@ -1168,6 +1168,9 @@
L'immagine non è un'immagine valida.
+
+ The SVG is malicious and contains script tags.
+
Puoi caricare solo un file.
diff --git a/backend/src/Squidex.Shared/Texts.nl.resx b/backend/src/Squidex.Shared/Texts.nl.resx
index 54b13e787..b19c1df3a 100644
--- a/backend/src/Squidex.Shared/Texts.nl.resx
+++ b/backend/src/Squidex.Shared/Texts.nl.resx
@@ -1168,6 +1168,9 @@
Afbeelding is geen geldige afbeelding.
+
+ The SVG is malicious and contains script tags.
+
Kan slechts één bestand uploaden.
diff --git a/backend/src/Squidex.Shared/Texts.resx b/backend/src/Squidex.Shared/Texts.resx
index e74810c50..21bcf49b5 100644
--- a/backend/src/Squidex.Shared/Texts.resx
+++ b/backend/src/Squidex.Shared/Texts.resx
@@ -1168,6 +1168,9 @@
Picture is not a valid image.
+
+ The SVG is malicious and contains script tags.
+
Can only upload one file.
diff --git a/backend/src/Squidex.Shared/Texts.zh.resx b/backend/src/Squidex.Shared/Texts.zh.resx
index 1fe9aca84..353c14489 100644
--- a/backend/src/Squidex.Shared/Texts.zh.resx
+++ b/backend/src/Squidex.Shared/Texts.zh.resx
@@ -1168,6 +1168,9 @@
图片不是有效图片。
+
+ The SVG is malicious and contains script tags.
+
只能上传一个文件。
diff --git a/backend/src/Squidex/Areas/Api/Controllers/Apps/AppsController.cs b/backend/src/Squidex/Areas/Api/Controllers/Apps/AppsController.cs
index 81759860e..843059eb5 100644
--- a/backend/src/Squidex/Areas/Api/Controllers/Apps/AppsController.cs
+++ b/backend/src/Squidex/Areas/Api/Controllers/Apps/AppsController.cs
@@ -1,4 +1,4 @@
-// ==========================================================================
+// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschraenkt)
@@ -39,21 +39,18 @@ namespace Squidex.Areas.Api.Controllers.Apps
{
private static readonly ResizeOptions ResizeOptions = new ResizeOptions { Width = 50, Height = 50, Mode = ResizeMode.Crop };
private readonly IAppImageStore appImageStore;
- private readonly IAppPlansProvider appPlansProvider;
private readonly IAppProvider appProvider;
private readonly IAssetStore assetStore;
private readonly IAssetThumbnailGenerator assetThumbnailGenerator;
public AppsController(ICommandBus commandBus,
IAppImageStore appImageStore,
- IAppPlansProvider appPlansProvider,
IAppProvider appProvider,
IAssetStore assetStore,
IAssetThumbnailGenerator assetThumbnailGenerator)
: base(commandBus)
{
this.appImageStore = appImageStore;
- this.appPlansProvider = appPlansProvider;
this.appProvider = appProvider;
this.assetStore = assetStore;
this.assetThumbnailGenerator = assetThumbnailGenerator;
@@ -85,7 +82,7 @@ namespace Squidex.Areas.Api.Controllers.Apps
{
var isFrontend = HttpContext.User.IsInClient(DefaultClients.Frontend);
- return apps.OrderBy(x => x.Name).Select(a => AppDto.FromApp(a, userOrClientId, isFrontend, appPlansProvider, Resources)).ToArray();
+ return apps.OrderBy(x => x.Name).Select(a => AppDto.FromApp(a, userOrClientId, isFrontend, Resources)).ToArray();
});
Response.Headers[HeaderNames.ETag] = apps.ToEtag();
@@ -114,7 +111,7 @@ namespace Squidex.Areas.Api.Controllers.Apps
var isFrontend = HttpContext.User.IsInClient(DefaultClients.Frontend);
- return AppDto.FromApp(App, userOrClientId, isFrontend, appPlansProvider, Resources);
+ return AppDto.FromApp(App, userOrClientId, isFrontend, Resources);
});
Response.Headers[HeaderNames.ETag] = App.ToEtag();
@@ -354,7 +351,7 @@ namespace Squidex.Areas.Api.Controllers.Apps
var isFrontend = HttpContext.User.IsInClient(DefaultClients.Frontend);
- return AppDto.FromApp(x, userOrClientId, isFrontend, appPlansProvider, Resources);
+ return AppDto.FromApp(x, userOrClientId, isFrontend, Resources);
});
}
diff --git a/backend/src/Squidex/Areas/Api/Controllers/Apps/Models/AppDto.cs b/backend/src/Squidex/Areas/Api/Controllers/Apps/Models/AppDto.cs
index b5bf15267..9a47b8b90 100644
--- a/backend/src/Squidex/Areas/Api/Controllers/Apps/Models/AppDto.cs
+++ b/backend/src/Squidex/Areas/Api/Controllers/Apps/Models/AppDto.cs
@@ -84,28 +84,15 @@ namespace Squidex.Areas.Api.Controllers.Apps.Models
///
public bool CanAccessContent { get; set; }
- ///
- /// Gets the current plan name.
- ///
- public string? PlanName { get; set; }
-
- ///
- /// Gets the next plan name.
- ///
- public string? PlanUpgrade { get; set; }
-
///
/// The properties from the role.
///
[LocalizedRequired]
public JsonObject RoleProperties { get; set; } = EmptyObject;
- public static AppDto FromApp(IAppEntity app, string userId, bool isFrontend, IAppPlansProvider plans, Resources resources)
+ public static AppDto FromApp(IAppEntity app, string userId, bool isFrontend, Resources resources)
{
- var result = SimpleMapper.Map(app, new AppDto
- {
- PlanName = plans.GetPlanForApp(app).Plan.Name
- });
+ var result = SimpleMapper.Map(app, new AppDto());
var permissions = PermissionSet.Empty;
@@ -126,11 +113,6 @@ namespace Squidex.Areas.Api.Controllers.Apps.Models
result.CanAccessContent = true;
}
- if (resources.IsAllowed(Shared.Permissions.AppPlansChange, app.Name, additional: permissions))
- {
- result.PlanUpgrade = plans.GetPlanUpgradeForApp(app)?.Name;
- }
-
return result.CreateLinks(app, resources, permissions, isContributor);
}
diff --git a/frontend/.sass-lint.yml b/frontend/.sass-lint.yml
deleted file mode 100644
index a91922a0b..000000000
--- a/frontend/.sass-lint.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-rules:
- no-ids:
- - 1
- no-important:
- - 0
- final-newline:
- - 0
- clean-import-paths:
- - 0
- property-sort-order:
- - 1
- indentation:
- - 2
- -
- size: 4
-
- nesting-depth:
- - 1
- -
- max-depth: 4
-
-leading-underscore: false
-
-files:
- ignore:
- - 'app/theme/_mixins.scss'
- - 'node_modules/**/*.*'
\ No newline at end of file
diff --git a/frontend/.stylelintrc.json b/frontend/.stylelintrc.json
new file mode 100644
index 000000000..7fe7a399e
--- /dev/null
+++ b/frontend/.stylelintrc.json
@@ -0,0 +1,32 @@
+{
+ "extends": "stylelint-config-standard",
+ "plugins": [
+ "stylelint-scss"
+ ],
+ "rules": {
+ "at-rule-empty-line-before": null,
+ "at-rule-no-unknown": null,
+ "selector-class-pattern": "^([a-z][a-z0-9]*)(-[a-z0-9]+)*$",
+ "declaration-empty-line-before": null,
+ "indentation": 4,
+ "no-duplicate-selectors": null,
+ "no-empty-source": null,
+ "no-invalid-position-at-import-rule": null,
+ "no-missing-end-of-source-newline": null,
+ "number-leading-zero": "never",
+ "scss/at-rule-no-unknown": true,
+ "selector-pseudo-element-no-unknown": [
+ true,
+ {
+ "ignorePseudoElements": [
+ "ng-deep"
+ ]
+ }
+ ]
+ },
+ "ignoreFiles": [
+ "**/*.cs",
+ "build/**/*.*",
+ "node_modules/**/*.*"
+ ]
+}
\ No newline at end of file
diff --git a/frontend/app-config/webpack.config.js b/frontend/app-config/webpack.config.js
index 3c9f9cbe3..21dac8ee7 100644
--- a/frontend/app-config/webpack.config.js
+++ b/frontend/app-config/webpack.config.js
@@ -31,8 +31,8 @@ const plugins = {
OptimizeCSSAssetsPlugin: require('optimize-css-assets-webpack-plugin'),
// https://webpack.js.org/plugins/eslint-webpack-plugin/
ESLintPlugin: require('eslint-webpack-plugin'),
- // https://www.npmjs.com/package/sass-lint-webpack
- SassLintPlugin: require('sass-lint-webpack'),
+ // https://github.com/webpack-contrib/stylelint-webpack-plugin
+ StylelintPlugin: require('stylelint-webpack-plugin'),
// https://www.npmjs.com/package/webpack-bundle-analyzer
BundleAnalyzerPlugin: require('webpack-bundle-analyzer').BundleAnalyzerPlugin,
// https://www.npmjs.com/package/@angular-devkit/build-optimizer
@@ -233,7 +233,9 @@ module.exports = function calculateConfig(env) {
},
}),
- new plugins.SassLintPlugin(),
+ new plugins.StylelintPlugin({
+ files: '**/*.scss',
+ }),
/*
* Detect circular dependencies in app.
diff --git a/frontend/app/_theme.html b/frontend/app/_theme.html
index b0d7e5b32..60714a2ea 100644
--- a/frontend/app/_theme.html
+++ b/frontend/app/_theme.html
@@ -32,10 +32,6 @@
margin-bottom: 1rem;
}
- .modal-tabs {
- height: 4rem
- }
-
.panel {
min-height: 500px;
}
@@ -44,9 +40,24 @@
margin-bottom: 1rem;
}
+ .modal-backdrop {
+ height: 500px !important;
+ }
+
.table-items-row-details::before {
right: 80px !important;
}
+
+ .form-bubble {
+ display: block;
+ max-height: 100px;
+ min-height: 100px;
+ }
+
+ .sidebar {
+ position: relative !important;
+ height: 700px;
+ }
@@ -70,28 +81,30 @@
@@ -99,28 +112,30 @@
@@ -155,6 +170,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -209,9 +235,21 @@
-
-
-
+
+
+
+
+
+
+
@@ -220,7 +258,7 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -319,7 +357,7 @@
-
+
-
+
-
+
@@ -495,11 +512,11 @@
-
+
-
Tables2
+ List Tables (on white background)
@@ -509,15 +526,19 @@