[[TOC]]
Multilingual Plugin is an advanced plugin that allows easy addition and management of translations while editing objects. It supports multiple languages and enables users to define and manage their own language sets.
- First, select the Content Types.
- Add at least two languages and select the default language.
- After saving the settings, the Content Types are modified and a
__translations
field is added, containing an array of available translations. The translation language is available under the__language
field in each__translations
item.
__translations
: Contains an array of translations, excluding the default language, whose data is found in the object fields.__language
: Specifies the translation language. Language is saved in ISO 639 language codes.
Warning! The __translations field should not be manually modified. After each change in the content type for translated fields, go to the plugin settings and save them again to properly update the translation fields.
- When adding/editing an object, tabs with the previously selected languages will be available. The default language is always in the first tab.
- Clicking on another language tab will add the translated fields, populated with the current fields in the default language.
- If we return to the default language tab, make changes, and go back to another language tab, the previously filled fields will not be overwritten.
When removing the content type from the settings, you will be asked whether to keep the translations or remove them:
- Removing: Modifies the content type, removes the
__translations
field, and deletes the collected data. - Keeping: If you choose the "Keep translation fields" option, you can remove
__translations
field later manually by editing the content type.
Let's assume you have an object with title
and slug
fields. Before applying translations, your object will look like:
{
"title": "My first blog post",
"slug": "my-first-blog-post"
}
Now, let's consider that you are adding two languages: Polish
and English
, and your default language is English
. After applying translations, the object will be:
{
"title": "My first blog post",
"slug": "my-first-blog-post",
"__translations": [{
"__language": "pl",
"title": "Mój pierwszy post na blogu",
"slug": "my-first-blog-post",
}]
}
yarn
- to install dependenciesyarn start
- to start development mode - rebuild on file modifications- update your
plugin-manifest.json
file to contain the production URL and other plugin information yarn build
- to build plugins
Dev environment is configured to use:
prettier
- best used with automatic format on save in IDEeslint
- it is built into bothstart
andbuild
commands
The plugins are built into a single dist/index.js
file. The manifest is copied to dist/plugin-manifest.json
file.
Warning: While developing, you can use https://localhost:3053/plugin-manifest.json
address to load the plugin manifest. Make sure your browser trusts the local certificate on the latter, to be able to use it e.g. with https://editor.flotiq.com
Hint: You can use localhost url from development mode https://localhost:3053/index.js
- Open Flotiq editor
- Open Chrome Dev console
- Execute the following script
FlotiqPlugins.loadPlugin('plugin-id', '<URL TO COMPILED JS>')
- Navigate to the view that is modified by the plugin
- Open Flotiq editor
- Open Chrome Dev console
- Paste the content of
dist/index.js
- Navigate to the view that is modified by the plugin
Hint: You can use localhost url from development mode https://localhost:3053/plugin-manifest.json
- Open Flotiq editor
- Add a new plugin and paste the URL to the hosted
plugin-manifest.json
file - Navigate to the view that is modified by the plugin