@plone-collective/volto-image-editor 1.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.changelog.draft +19 -0
- package/.release-it.json +34 -0
- package/CHANGELOG.md +27 -0
- package/README.md +209 -0
- package/babel.config.js +17 -0
- package/locales/de/LC_MESSAGES/volto.po +187 -0
- package/locales/en/LC_MESSAGES/volto.po +187 -0
- package/locales/es/LC_MESSAGES/volto.po +194 -0
- package/locales/pt_BR/LC_MESSAGES/volto.po +192 -0
- package/locales/volto.pot +189 -0
- package/news/.gitkeep +0 -0
- package/package.json +50 -0
- package/public/.gitkeep +0 -0
- package/src/components/.gitkeep +0 -0
- package/src/components/ImageEditor/ImageEditor.scss +59 -0
- package/src/components/ImageEditor/ImageEditor.tsx +290 -0
- package/src/components/ImageEditor/ImageEditorWrapper.scss +13 -0
- package/src/components/ImageEditor/ImageEditorWrapper.tsx +91 -0
- package/src/components/ImageEditor/components/AdjustableCropperBackground.tsx +60 -0
- package/src/components/ImageEditor/components/AdjustableImage.scss +3 -0
- package/src/components/ImageEditor/components/AdjustableImage.tsx +85 -0
- package/src/components/ImageEditor/components/AdjustablePreviewBackground.tsx +59 -0
- package/src/components/ImageEditor/components/Button.scss +30 -0
- package/src/components/ImageEditor/components/Button.tsx +27 -0
- package/src/components/ImageEditor/components/Navigation.scss +38 -0
- package/src/components/ImageEditor/components/Navigation.tsx +153 -0
- package/src/components/ImageEditor/components/SettingsModal.scss +369 -0
- package/src/components/ImageEditor/components/SettingsModal.tsx +582 -0
- package/src/components/ImageEditor/components/Slider.scss +231 -0
- package/src/components/ImageEditor/components/Slider.tsx +322 -0
- package/src/components/ImageEditor/types/ImageSettings.ts +23 -0
- package/src/components/Widgets/FileWidget.scss +14 -0
- package/src/components/Widgets/FileWidget.tsx +239 -0
- package/src/config/settings.ts +5 -0
- package/src/customizations/volto/components/manage/Widgets/FileWidget.jsx +3 -0
- package/src/icons/AspectRatioIcons.tsx +39 -0
- package/src/icons/BrightnessIcon.tsx +19 -0
- package/src/icons/ContrastIcon.tsx +19 -0
- package/src/icons/CropIcon.tsx +19 -0
- package/src/icons/DownloadIcon.tsx +20 -0
- package/src/icons/FlipHorizontalIcon.tsx +21 -0
- package/src/icons/FlipVerticalIcon.tsx +27 -0
- package/src/icons/HueIcon.tsx +20 -0
- package/src/icons/ResetIcon.tsx +19 -0
- package/src/icons/ResetRotationIcon.tsx +20 -0
- package/src/icons/RestrictionIcons.tsx +19 -0
- package/src/icons/RotateLeftIcon.tsx +21 -0
- package/src/icons/RotateRightIcon.tsx +21 -0
- package/src/icons/SaturationIcon.tsx +20 -0
- package/src/icons/SettingsIcon.tsx +21 -0
- package/src/icons/StencilIcons.tsx +8 -0
- package/src/index.ts +10 -0
- package/src/theme/constants.scss +13 -0
- package/src/theme/custom.css +82 -0
- package/src/theme/mixins.scss +91 -0
- package/towncrier.toml +33 -0
- package/tsconfig.json +30 -0
package/.changelog.draft
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
## 1.0.0-alpha.1 (2025-10-20)
|
|
2
|
+
|
|
3
|
+
### Feature
|
|
4
|
+
|
|
5
|
+
- Adds support editing the brightness of an image. @Humanaice
|
|
6
|
+
- Adds support editing the contrast of an image. @Humanaice
|
|
7
|
+
- Adds support editing the hue of an image. @Humanaice
|
|
8
|
+
- Adds support editing the saturation of an image. @Humanaice
|
|
9
|
+
- Adds support for image cropping. @Humanaice
|
|
10
|
+
- Adds support for image flipping. @Humanaice
|
|
11
|
+
- Adds support for rotating the image by 90 degrees clockwise and counter-clockwise. @Humanaice
|
|
12
|
+
- Implement a widget to edit Images in Volto. @Humanaice
|
|
13
|
+
|
|
14
|
+
### Internal
|
|
15
|
+
|
|
16
|
+
- Adds basic instructions to use GitHub Copilot features. @ericof
|
|
17
|
+
- Implement GitHub Action's workflows. @ericof
|
|
18
|
+
|
|
19
|
+
|
package/.release-it.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"plugins": {
|
|
3
|
+
"../../core/packages/scripts/prepublish.js": {}
|
|
4
|
+
},
|
|
5
|
+
"hooks": {
|
|
6
|
+
"after:bump": [
|
|
7
|
+
"uvx towncrier build --draft --yes --version ${version} > .changelog.draft",
|
|
8
|
+
"uvx towncrier build --yes --version ${version}",
|
|
9
|
+
"cp ../../README.md ./ && cp CHANGELOG.md ../../CHANGELOG.md",
|
|
10
|
+
"python3 -c 'import json; data = json.load(open(\"../../package.json\")); data[\"version\"] = \"${version}\"; json.dump(data, open(\"../../package.json\", \"w\"), indent=2)'",
|
|
11
|
+
"git add ../../CHANGELOG.md ../../package.json"
|
|
12
|
+
],
|
|
13
|
+
"after:release": "rm .changelog.draft README.md"
|
|
14
|
+
},
|
|
15
|
+
"npm": {
|
|
16
|
+
"publish": false
|
|
17
|
+
},
|
|
18
|
+
"plonePrePublish": {
|
|
19
|
+
"publish": true
|
|
20
|
+
},
|
|
21
|
+
"git": {
|
|
22
|
+
"changelog": "uvx towncrier build --draft --yes --version 0.0.0",
|
|
23
|
+
"requireUpstream": false,
|
|
24
|
+
"requireCleanWorkingDir": false,
|
|
25
|
+
"commitMessage": "Release ${version}",
|
|
26
|
+
"tagName": "${version}",
|
|
27
|
+
"tagAnnotation": "Release ${version}"
|
|
28
|
+
},
|
|
29
|
+
"github": {
|
|
30
|
+
"release": true,
|
|
31
|
+
"releaseName": "${version}",
|
|
32
|
+
"releaseNotes": "cat .changelog.draft"
|
|
33
|
+
}
|
|
34
|
+
}
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
<!-- You should *NOT* be adding new change log entries to this file.
|
|
4
|
+
You should create a file in the news directory instead.
|
|
5
|
+
For helpful instructions, please see:
|
|
6
|
+
https://6.docs.plone.org/contributing/index.html#contributing-change-log-label
|
|
7
|
+
-->
|
|
8
|
+
|
|
9
|
+
<!-- towncrier release notes start -->
|
|
10
|
+
|
|
11
|
+
## 1.0.0-alpha.1 (2025-10-20)
|
|
12
|
+
|
|
13
|
+
### Feature
|
|
14
|
+
|
|
15
|
+
- Adds support editing the brightness of an image. @Humanaice
|
|
16
|
+
- Adds support editing the contrast of an image. @Humanaice
|
|
17
|
+
- Adds support editing the hue of an image. @Humanaice
|
|
18
|
+
- Adds support editing the saturation of an image. @Humanaice
|
|
19
|
+
- Adds support for image cropping. @Humanaice
|
|
20
|
+
- Adds support for image flipping. @Humanaice
|
|
21
|
+
- Adds support for rotating the image by 90 degrees clockwise and counter-clockwise. @Humanaice
|
|
22
|
+
- Implement a widget to edit Images in Volto. @Humanaice
|
|
23
|
+
|
|
24
|
+
### Internal
|
|
25
|
+
|
|
26
|
+
- Adds basic instructions to use GitHub Copilot features. @ericof
|
|
27
|
+
- Implement GitHub Action's workflows. @ericof
|
package/README.md
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Volto Image Editor (@plone-collective/volto-image-editor)
|
|
2
|
+
|
|
3
|
+
An image editor, based on [React Advanced Image Cropper](https://www.npmjs.com/package/react-advanced-cropper), to be used with Plone and Volto.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@plone-collective/volto-image-editor)
|
|
6
|
+
[](https://simplesconsultoria.github.io/volto-image-editor/)
|
|
7
|
+
[](https://github.com/collective/volto-image-editor/actions/workflows/main.yml)
|
|
8
|
+
|
|
9
|
+
## ✨ Features
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
This add-on modifies Volto's File widget, providing an image editor with the following actions:
|
|
13
|
+
|
|
14
|
+
- Crops the image. Supports many aspect ratios
|
|
15
|
+
- Rotates the image in 90-degree increments
|
|
16
|
+
- Flips the image horizontally or vertically
|
|
17
|
+
- Adjusts the image saturation
|
|
18
|
+
- Adjusts the image brightness
|
|
19
|
+
- Adjusts the image contrast
|
|
20
|
+
- Adjusts the image hue
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## 🚀 Installation
|
|
25
|
+
|
|
26
|
+
> **Note:** This add-on requires Volto 18 or newer. Follow your project's official workflow for dependency management.
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
To install this add-on, edit the `package.json` of your policy package (usually located in `packages/<policy-package>/package.json`):
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
"addons": [
|
|
33
|
+
"@plone-collective/volto-image-editor"
|
|
34
|
+
],
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@plone-collective/volto-image-editor": "*"
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
After editing, follow your project's standard process to update dependencies and rebuild.
|
|
41
|
+
|
|
42
|
+
## 🧪 Test Installation
|
|
43
|
+
|
|
44
|
+
Visit http://localhost:3000/ in a browser, log in, and verify that the image editor features are available in the File widget.
|
|
45
|
+
|
|
46
|
+
## 🌍 Internationalization (i18n)
|
|
47
|
+
|
|
48
|
+
All UI strings in this add-on are translatable. Use the provided `make i18n` command to extract and sync translation messages.
|
|
49
|
+
|
|
50
|
+
## 🛠️ Development
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
Development for this add-on uses pnpm workspaces, the latest `mrs-developer`, and Volto core improvements. It is compatible only with pnpm and Volto 18.
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
### 📋 Prerequisites
|
|
57
|
+
|
|
58
|
+
- An [operating system](https://6.docs.plone.org/install/create-project-cookieplone.html#prerequisites-for-installation) that runs all the requirements mentioned.
|
|
59
|
+
- [nvm](https://6.docs.plone.org/install/create-project-cookieplone.html#nvm)
|
|
60
|
+
- [Node.js and pnpm](https://6.docs.plone.org/install/create-project.html#node-js) 22
|
|
61
|
+
- [Make](https://6.docs.plone.org/install/create-project-cookieplone.html#make)
|
|
62
|
+
- [Git](https://6.docs.plone.org/install/create-project-cookieplone.html#git)
|
|
63
|
+
- [Docker](https://docs.docker.com/get-started/get-docker/) (optional)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
### 📦 Installation
|
|
67
|
+
|
|
68
|
+
1. Clone this repository, then change your working directory.
|
|
69
|
+
|
|
70
|
+
```shell
|
|
71
|
+
git clone git@github.com:collective/volto-image-editor.git
|
|
72
|
+
cd volto-image-editor
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
2. Install this code base.
|
|
76
|
+
|
|
77
|
+
```shell
|
|
78
|
+
make install
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
### 🧰 Make Convenience Commands
|
|
83
|
+
|
|
84
|
+
Run `make help` to list the available commands.
|
|
85
|
+
|
|
86
|
+
```text
|
|
87
|
+
help Show this help
|
|
88
|
+
install Installs the add-on in a development environment
|
|
89
|
+
start Starts Volto, allowing reloading of the add-on during development
|
|
90
|
+
build Build a production bundle for distribution of the project with the add-on
|
|
91
|
+
i18n Sync i18n
|
|
92
|
+
ci-i18n Check if i18n is not synced
|
|
93
|
+
format Format codebase
|
|
94
|
+
lint Lint, or catch and remove problems, in code base
|
|
95
|
+
release Release the add-on on npmjs.org
|
|
96
|
+
release-dry-run Dry-run the release of the add-on on npmjs.org
|
|
97
|
+
test Run unit tests
|
|
98
|
+
ci-test Run unit tests in CI
|
|
99
|
+
backend-docker-start Starts a Docker-based backend for development
|
|
100
|
+
storybook-start Start Storybook server on port 6006
|
|
101
|
+
storybook-build Build Storybook
|
|
102
|
+
acceptance-frontend-dev-start Start acceptance frontend in development mode
|
|
103
|
+
acceptance-frontend-prod-start Start acceptance frontend in production mode
|
|
104
|
+
acceptance-backend-start Start backend acceptance server
|
|
105
|
+
ci-acceptance-backend-start Start backend acceptance server in headless mode for CI
|
|
106
|
+
acceptance-test Start Cypress in interactive mode
|
|
107
|
+
ci-acceptance-test Run cypress tests in headless mode for CI
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 🏗️ Development Environment Setup
|
|
111
|
+
|
|
112
|
+
Install package requirements:
|
|
113
|
+
|
|
114
|
+
```shell
|
|
115
|
+
make install
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 🚦 Start Developing
|
|
119
|
+
|
|
120
|
+
Start the backend:
|
|
121
|
+
|
|
122
|
+
```shell
|
|
123
|
+
make backend-docker-start
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
In a separate terminal session, start the frontend:
|
|
127
|
+
|
|
128
|
+
```shell
|
|
129
|
+
make start
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 🧹 Lint Code
|
|
133
|
+
|
|
134
|
+
Run ESLint, Prettier, and Stylelint in analyze mode:
|
|
135
|
+
|
|
136
|
+
```shell
|
|
137
|
+
make lint
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 🎨 Format Code
|
|
141
|
+
|
|
142
|
+
Run ESLint, Prettier, and Stylelint in fix mode:
|
|
143
|
+
|
|
144
|
+
```shell
|
|
145
|
+
make format
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### 🌍 Internationalization (i18n)
|
|
149
|
+
|
|
150
|
+
Extract the i18n messages to locales:
|
|
151
|
+
|
|
152
|
+
```shell
|
|
153
|
+
make i18n
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 🧪 Unit Tests
|
|
157
|
+
|
|
158
|
+
Run unit tests:
|
|
159
|
+
|
|
160
|
+
```shell
|
|
161
|
+
make test
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### 🧪 Run Cypress Tests
|
|
165
|
+
|
|
166
|
+
Run each of these steps in separate terminal sessions:
|
|
167
|
+
|
|
168
|
+
In the first session, start the frontend in development mode:
|
|
169
|
+
|
|
170
|
+
```shell
|
|
171
|
+
make acceptance-frontend-dev-start
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
In the second session, start the backend acceptance server:
|
|
175
|
+
|
|
176
|
+
```shell
|
|
177
|
+
make acceptance-backend-start
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
In the third session, start the Cypress interactive test runner:
|
|
181
|
+
|
|
182
|
+
```shell
|
|
183
|
+
make acceptance-test
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
## 📄 License
|
|
188
|
+
|
|
189
|
+
This project is licensed under the MIT license.
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
## 🙏 Credits and Acknowledgements
|
|
193
|
+
|
|
194
|
+
The development of this add-on was supported by:
|
|
195
|
+
|
|
196
|
+
<div style="text-align:center;">
|
|
197
|
+
<div>
|
|
198
|
+
<img src="https://raw.githubusercontent.com/collective/volto-image-editor/refs/heads/main/docs/docs/_static/ifpb-icon.svg" height="50px" style="max-height:50px">
|
|
199
|
+
<h3>Instituto Federal da Paraíba</h3>
|
|
200
|
+
</a>
|
|
201
|
+
</div>
|
|
202
|
+
<div>
|
|
203
|
+
<img src="https://raw.githubusercontent.com/collective/volto-image-editor/refs/heads/main/docs/docs/_static/logo-simples.svg" height="50px" style="max-height:50px">
|
|
204
|
+
<h3>Simples Consultoria</h3>
|
|
205
|
+
</a>
|
|
206
|
+
</div>
|
|
207
|
+
</div>
|
|
208
|
+
|
|
209
|
+
Generated using [Cookieplone (0.9.9)](https://github.com/plone/cookieplone) and [cookieplone-templates (62683ae)](https://github.com/plone/cookieplone-templates/commit/62683aec96c2b6454cc32e06e57910fab3d52425) on 2025-10-14 23:13:02.127574. A special thanks to all contributors and supporters!
|
package/babel.config.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module.exports = function (api) {
|
|
2
|
+
api.cache(true);
|
|
3
|
+
const presets = ['razzle'];
|
|
4
|
+
const plugins = [
|
|
5
|
+
[
|
|
6
|
+
'react-intl', // React Intl extractor, required for the whole i18n infrastructure to work
|
|
7
|
+
{
|
|
8
|
+
messagesDir: './build/messages/',
|
|
9
|
+
},
|
|
10
|
+
],
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
return {
|
|
14
|
+
plugins,
|
|
15
|
+
presets,
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
msgid ""
|
|
2
|
+
msgstr ""
|
|
3
|
+
"Project-Id-Version: \n"
|
|
4
|
+
"Report-Msgid-Bugs-To: \n"
|
|
5
|
+
"POT-Creation-Date: \n"
|
|
6
|
+
"PO-Revision-Date: \n"
|
|
7
|
+
"Last-Translator: \n"
|
|
8
|
+
"Language: de\n"
|
|
9
|
+
"Language-Team: \n"
|
|
10
|
+
"Content-Type: \n"
|
|
11
|
+
"Content-Transfer-Encoding: \n"
|
|
12
|
+
"Plural-Forms: \n"
|
|
13
|
+
|
|
14
|
+
#. Default: "Aspect Ratio"
|
|
15
|
+
#: components/ImageEditor/components/SettingsModal
|
|
16
|
+
msgid "Aspect Ratio"
|
|
17
|
+
msgstr ""
|
|
18
|
+
|
|
19
|
+
#. Default: "Choose a file"
|
|
20
|
+
#: components/Widgets/FileWidget
|
|
21
|
+
msgid "Choose a file"
|
|
22
|
+
msgstr ""
|
|
23
|
+
|
|
24
|
+
#. Default: "Circle"
|
|
25
|
+
#: components/ImageEditor/components/SettingsModal
|
|
26
|
+
msgid "Circle"
|
|
27
|
+
msgstr ""
|
|
28
|
+
|
|
29
|
+
#. Default: "Drop file here to replace the existing file"
|
|
30
|
+
#: components/Widgets/FileWidget
|
|
31
|
+
msgid "Drop file here to replace the existing file"
|
|
32
|
+
msgstr ""
|
|
33
|
+
|
|
34
|
+
#. Default: "Drop file here to upload a new file"
|
|
35
|
+
#: components/Widgets/FileWidget
|
|
36
|
+
msgid "Drop file here to upload a new file"
|
|
37
|
+
msgstr ""
|
|
38
|
+
|
|
39
|
+
#. Default: "Drop files here ..."
|
|
40
|
+
#: components/Widgets/FileWidget
|
|
41
|
+
msgid "Drop files here ..."
|
|
42
|
+
msgstr ""
|
|
43
|
+
|
|
44
|
+
#. Default: "Edit image"
|
|
45
|
+
#: components/ImageEditor/ImageEditorWrapper
|
|
46
|
+
msgid "Edit image"
|
|
47
|
+
msgstr ""
|
|
48
|
+
|
|
49
|
+
#. Default: "Editor Settings"
|
|
50
|
+
#: components/ImageEditor/components/SettingsModal
|
|
51
|
+
msgid "Editor Settings"
|
|
52
|
+
msgstr ""
|
|
53
|
+
|
|
54
|
+
#. Default: "File is not of the accepted type {accept}"
|
|
55
|
+
#: components/Widgets/FileWidget
|
|
56
|
+
msgid "File is not of the accepted type {accept}"
|
|
57
|
+
msgstr ""
|
|
58
|
+
|
|
59
|
+
#. Default: "Fill"
|
|
60
|
+
#: components/ImageEditor/components/SettingsModal
|
|
61
|
+
msgid "Fill Area"
|
|
62
|
+
msgstr ""
|
|
63
|
+
|
|
64
|
+
#. Default: "Fit"
|
|
65
|
+
#: components/ImageEditor/components/SettingsModal
|
|
66
|
+
msgid "Fit Area"
|
|
67
|
+
msgstr ""
|
|
68
|
+
|
|
69
|
+
#. Default: "Free"
|
|
70
|
+
#: components/ImageEditor/components/SettingsModal
|
|
71
|
+
msgid "Free aspect ratio"
|
|
72
|
+
msgstr ""
|
|
73
|
+
|
|
74
|
+
#. Default: "Image Restriction"
|
|
75
|
+
#: components/ImageEditor/components/SettingsModal
|
|
76
|
+
msgid "Image Restriction"
|
|
77
|
+
msgstr ""
|
|
78
|
+
|
|
79
|
+
#. Default: "2:1"
|
|
80
|
+
#: components/ImageEditor/components/SettingsModal
|
|
81
|
+
msgid "Landscape (2:1)"
|
|
82
|
+
msgstr ""
|
|
83
|
+
|
|
84
|
+
#. Default: "Max height"
|
|
85
|
+
#: components/ImageEditor/components/SettingsModal
|
|
86
|
+
msgid "Max height"
|
|
87
|
+
msgstr ""
|
|
88
|
+
|
|
89
|
+
#. Default: "Max width"
|
|
90
|
+
#: components/ImageEditor/components/SettingsModal
|
|
91
|
+
msgid "Max width"
|
|
92
|
+
msgstr ""
|
|
93
|
+
|
|
94
|
+
#. Default: "Maximum Crop Dimensions"
|
|
95
|
+
#: components/ImageEditor/components/SettingsModal
|
|
96
|
+
msgid "Maximum Crop Dimensions"
|
|
97
|
+
msgstr ""
|
|
98
|
+
|
|
99
|
+
#. Default: "Min height"
|
|
100
|
+
#: components/ImageEditor/components/SettingsModal
|
|
101
|
+
msgid "Min height"
|
|
102
|
+
msgstr ""
|
|
103
|
+
|
|
104
|
+
#. Default: "Min width"
|
|
105
|
+
#: components/ImageEditor/components/SettingsModal
|
|
106
|
+
msgid "Min width"
|
|
107
|
+
msgstr ""
|
|
108
|
+
|
|
109
|
+
#. Default: "Minimum Dimensions"
|
|
110
|
+
#: components/ImageEditor/components/SettingsModal
|
|
111
|
+
msgid "Minimum Dimensions"
|
|
112
|
+
msgstr ""
|
|
113
|
+
|
|
114
|
+
#. Default: "9:16"
|
|
115
|
+
#: components/ImageEditor/components/SettingsModal
|
|
116
|
+
msgid "Mobile (9:16)"
|
|
117
|
+
msgstr ""
|
|
118
|
+
|
|
119
|
+
#. Default: "4:3"
|
|
120
|
+
#: components/ImageEditor/components/SettingsModal
|
|
121
|
+
msgid "Monitor (4:3)"
|
|
122
|
+
msgstr ""
|
|
123
|
+
|
|
124
|
+
#. Default: "Free"
|
|
125
|
+
#: components/ImageEditor/components/SettingsModal
|
|
126
|
+
msgid "No Restriction"
|
|
127
|
+
msgstr ""
|
|
128
|
+
|
|
129
|
+
#. Default: "3:4"
|
|
130
|
+
#: components/ImageEditor/components/SettingsModal
|
|
131
|
+
msgid "Photo (3:4)"
|
|
132
|
+
msgstr ""
|
|
133
|
+
|
|
134
|
+
#. Default: "1:2"
|
|
135
|
+
#: components/ImageEditor/components/SettingsModal
|
|
136
|
+
msgid "Portrait (1:2)"
|
|
137
|
+
msgstr ""
|
|
138
|
+
|
|
139
|
+
#. Default: "Rectangle"
|
|
140
|
+
#: components/ImageEditor/components/SettingsModal
|
|
141
|
+
msgid "Rectangle"
|
|
142
|
+
msgstr ""
|
|
143
|
+
|
|
144
|
+
#. Default: "Replace existing file"
|
|
145
|
+
#: components/Widgets/FileWidget
|
|
146
|
+
msgid "Replace existing file"
|
|
147
|
+
msgstr ""
|
|
148
|
+
|
|
149
|
+
#. Default: "Reset rotation and flip"
|
|
150
|
+
#: components/ImageEditor/components/Navigation
|
|
151
|
+
msgid "Reset rotation and flip"
|
|
152
|
+
msgstr ""
|
|
153
|
+
|
|
154
|
+
#. Default: "1:1"
|
|
155
|
+
#: components/ImageEditor/components/SettingsModal
|
|
156
|
+
msgid "Square (1:1)"
|
|
157
|
+
msgstr ""
|
|
158
|
+
|
|
159
|
+
#. Default: "Stencil"
|
|
160
|
+
#: components/ImageEditor/components/SettingsModal
|
|
161
|
+
msgid "Stencil"
|
|
162
|
+
msgstr ""
|
|
163
|
+
|
|
164
|
+
#. Default: "Stencil Grid"
|
|
165
|
+
#: components/ImageEditor/components/SettingsModal
|
|
166
|
+
msgid "Stencil Grid"
|
|
167
|
+
msgstr ""
|
|
168
|
+
|
|
169
|
+
#. Default: "Stencil Type"
|
|
170
|
+
#: components/ImageEditor/components/SettingsModal
|
|
171
|
+
msgid "Stencil Type"
|
|
172
|
+
msgstr ""
|
|
173
|
+
|
|
174
|
+
#. Default: "The file you uploaded exceeded the maximum allowed size of {size} bytes"
|
|
175
|
+
#: components/Widgets/FileWidget
|
|
176
|
+
msgid "The file you uploaded exceeded the maximum allowed size of {size} bytes"
|
|
177
|
+
msgstr ""
|
|
178
|
+
|
|
179
|
+
#. Default: "21:9"
|
|
180
|
+
#: components/ImageEditor/components/SettingsModal
|
|
181
|
+
msgid "Ultra Wide (21:9)"
|
|
182
|
+
msgstr ""
|
|
183
|
+
|
|
184
|
+
#. Default: "16:9"
|
|
185
|
+
#: components/ImageEditor/components/SettingsModal
|
|
186
|
+
msgid "Widescreen (16:9)"
|
|
187
|
+
msgstr ""
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
msgid ""
|
|
2
|
+
msgstr ""
|
|
3
|
+
"Project-Id-Version: \n"
|
|
4
|
+
"Report-Msgid-Bugs-To: \n"
|
|
5
|
+
"POT-Creation-Date: \n"
|
|
6
|
+
"PO-Revision-Date: \n"
|
|
7
|
+
"Last-Translator: \n"
|
|
8
|
+
"Language: en\n"
|
|
9
|
+
"Language-Team: \n"
|
|
10
|
+
"Content-Type: \n"
|
|
11
|
+
"Content-Transfer-Encoding: \n"
|
|
12
|
+
"Plural-Forms: \n"
|
|
13
|
+
|
|
14
|
+
#. Default: "Aspect Ratio"
|
|
15
|
+
#: components/ImageEditor/components/SettingsModal
|
|
16
|
+
msgid "Aspect Ratio"
|
|
17
|
+
msgstr ""
|
|
18
|
+
|
|
19
|
+
#. Default: "Choose a file"
|
|
20
|
+
#: components/Widgets/FileWidget
|
|
21
|
+
msgid "Choose a file"
|
|
22
|
+
msgstr ""
|
|
23
|
+
|
|
24
|
+
#. Default: "Circle"
|
|
25
|
+
#: components/ImageEditor/components/SettingsModal
|
|
26
|
+
msgid "Circle"
|
|
27
|
+
msgstr ""
|
|
28
|
+
|
|
29
|
+
#. Default: "Drop file here to replace the existing file"
|
|
30
|
+
#: components/Widgets/FileWidget
|
|
31
|
+
msgid "Drop file here to replace the existing file"
|
|
32
|
+
msgstr ""
|
|
33
|
+
|
|
34
|
+
#. Default: "Drop file here to upload a new file"
|
|
35
|
+
#: components/Widgets/FileWidget
|
|
36
|
+
msgid "Drop file here to upload a new file"
|
|
37
|
+
msgstr ""
|
|
38
|
+
|
|
39
|
+
#. Default: "Drop files here ..."
|
|
40
|
+
#: components/Widgets/FileWidget
|
|
41
|
+
msgid "Drop files here ..."
|
|
42
|
+
msgstr ""
|
|
43
|
+
|
|
44
|
+
#. Default: "Edit image"
|
|
45
|
+
#: components/ImageEditor/ImageEditorWrapper
|
|
46
|
+
msgid "Edit image"
|
|
47
|
+
msgstr ""
|
|
48
|
+
|
|
49
|
+
#. Default: "Editor Settings"
|
|
50
|
+
#: components/ImageEditor/components/SettingsModal
|
|
51
|
+
msgid "Editor Settings"
|
|
52
|
+
msgstr ""
|
|
53
|
+
|
|
54
|
+
#. Default: "File is not of the accepted type {accept}"
|
|
55
|
+
#: components/Widgets/FileWidget
|
|
56
|
+
msgid "File is not of the accepted type {accept}"
|
|
57
|
+
msgstr ""
|
|
58
|
+
|
|
59
|
+
#. Default: "Fill"
|
|
60
|
+
#: components/ImageEditor/components/SettingsModal
|
|
61
|
+
msgid "Fill Area"
|
|
62
|
+
msgstr ""
|
|
63
|
+
|
|
64
|
+
#. Default: "Fit"
|
|
65
|
+
#: components/ImageEditor/components/SettingsModal
|
|
66
|
+
msgid "Fit Area"
|
|
67
|
+
msgstr ""
|
|
68
|
+
|
|
69
|
+
#. Default: "Free"
|
|
70
|
+
#: components/ImageEditor/components/SettingsModal
|
|
71
|
+
msgid "Free aspect ratio"
|
|
72
|
+
msgstr ""
|
|
73
|
+
|
|
74
|
+
#. Default: "Image Restriction"
|
|
75
|
+
#: components/ImageEditor/components/SettingsModal
|
|
76
|
+
msgid "Image Restriction"
|
|
77
|
+
msgstr ""
|
|
78
|
+
|
|
79
|
+
#. Default: "2:1"
|
|
80
|
+
#: components/ImageEditor/components/SettingsModal
|
|
81
|
+
msgid "Landscape (2:1)"
|
|
82
|
+
msgstr ""
|
|
83
|
+
|
|
84
|
+
#. Default: "Max height"
|
|
85
|
+
#: components/ImageEditor/components/SettingsModal
|
|
86
|
+
msgid "Max height"
|
|
87
|
+
msgstr ""
|
|
88
|
+
|
|
89
|
+
#. Default: "Max width"
|
|
90
|
+
#: components/ImageEditor/components/SettingsModal
|
|
91
|
+
msgid "Max width"
|
|
92
|
+
msgstr ""
|
|
93
|
+
|
|
94
|
+
#. Default: "Maximum Crop Dimensions"
|
|
95
|
+
#: components/ImageEditor/components/SettingsModal
|
|
96
|
+
msgid "Maximum Crop Dimensions"
|
|
97
|
+
msgstr ""
|
|
98
|
+
|
|
99
|
+
#. Default: "Min height"
|
|
100
|
+
#: components/ImageEditor/components/SettingsModal
|
|
101
|
+
msgid "Min height"
|
|
102
|
+
msgstr ""
|
|
103
|
+
|
|
104
|
+
#. Default: "Min width"
|
|
105
|
+
#: components/ImageEditor/components/SettingsModal
|
|
106
|
+
msgid "Min width"
|
|
107
|
+
msgstr ""
|
|
108
|
+
|
|
109
|
+
#. Default: "Minimum Dimensions"
|
|
110
|
+
#: components/ImageEditor/components/SettingsModal
|
|
111
|
+
msgid "Minimum Dimensions"
|
|
112
|
+
msgstr ""
|
|
113
|
+
|
|
114
|
+
#. Default: "9:16"
|
|
115
|
+
#: components/ImageEditor/components/SettingsModal
|
|
116
|
+
msgid "Mobile (9:16)"
|
|
117
|
+
msgstr ""
|
|
118
|
+
|
|
119
|
+
#. Default: "4:3"
|
|
120
|
+
#: components/ImageEditor/components/SettingsModal
|
|
121
|
+
msgid "Monitor (4:3)"
|
|
122
|
+
msgstr ""
|
|
123
|
+
|
|
124
|
+
#. Default: "Free"
|
|
125
|
+
#: components/ImageEditor/components/SettingsModal
|
|
126
|
+
msgid "No Restriction"
|
|
127
|
+
msgstr ""
|
|
128
|
+
|
|
129
|
+
#. Default: "3:4"
|
|
130
|
+
#: components/ImageEditor/components/SettingsModal
|
|
131
|
+
msgid "Photo (3:4)"
|
|
132
|
+
msgstr ""
|
|
133
|
+
|
|
134
|
+
#. Default: "1:2"
|
|
135
|
+
#: components/ImageEditor/components/SettingsModal
|
|
136
|
+
msgid "Portrait (1:2)"
|
|
137
|
+
msgstr ""
|
|
138
|
+
|
|
139
|
+
#. Default: "Rectangle"
|
|
140
|
+
#: components/ImageEditor/components/SettingsModal
|
|
141
|
+
msgid "Rectangle"
|
|
142
|
+
msgstr ""
|
|
143
|
+
|
|
144
|
+
#. Default: "Replace existing file"
|
|
145
|
+
#: components/Widgets/FileWidget
|
|
146
|
+
msgid "Replace existing file"
|
|
147
|
+
msgstr ""
|
|
148
|
+
|
|
149
|
+
#. Default: "Reset rotation and flip"
|
|
150
|
+
#: components/ImageEditor/components/Navigation
|
|
151
|
+
msgid "Reset rotation and flip"
|
|
152
|
+
msgstr ""
|
|
153
|
+
|
|
154
|
+
#. Default: "1:1"
|
|
155
|
+
#: components/ImageEditor/components/SettingsModal
|
|
156
|
+
msgid "Square (1:1)"
|
|
157
|
+
msgstr ""
|
|
158
|
+
|
|
159
|
+
#. Default: "Stencil"
|
|
160
|
+
#: components/ImageEditor/components/SettingsModal
|
|
161
|
+
msgid "Stencil"
|
|
162
|
+
msgstr ""
|
|
163
|
+
|
|
164
|
+
#. Default: "Stencil Grid"
|
|
165
|
+
#: components/ImageEditor/components/SettingsModal
|
|
166
|
+
msgid "Stencil Grid"
|
|
167
|
+
msgstr ""
|
|
168
|
+
|
|
169
|
+
#. Default: "Stencil Type"
|
|
170
|
+
#: components/ImageEditor/components/SettingsModal
|
|
171
|
+
msgid "Stencil Type"
|
|
172
|
+
msgstr ""
|
|
173
|
+
|
|
174
|
+
#. Default: "The file you uploaded exceeded the maximum allowed size of {size} bytes"
|
|
175
|
+
#: components/Widgets/FileWidget
|
|
176
|
+
msgid "The file you uploaded exceeded the maximum allowed size of {size} bytes"
|
|
177
|
+
msgstr ""
|
|
178
|
+
|
|
179
|
+
#. Default: "21:9"
|
|
180
|
+
#: components/ImageEditor/components/SettingsModal
|
|
181
|
+
msgid "Ultra Wide (21:9)"
|
|
182
|
+
msgstr ""
|
|
183
|
+
|
|
184
|
+
#. Default: "16:9"
|
|
185
|
+
#: components/ImageEditor/components/SettingsModal
|
|
186
|
+
msgid "Widescreen (16:9)"
|
|
187
|
+
msgstr ""
|