-
Improvement
-
Resolution: Outdated
-
Major
-
None
-
3.6
-
Irrelevant
-
-
Yes
-
Empty show more show less
In MAGNOLIA-1431 it is stated that we should make copies of dialog controls (or even locale tabs) with locale extensions if we want to have i18n aware dialog.
This solution leads as to many copies (tabs) if we want to cover many languages.
Therefore, we've modified the initialization of dialogs in order to have one dialog for all languages.
The solution works like this:
When a page is displayed i18nContentSupportFilter sets the current locale and when a dialog is opened all the control's names are suffixed with the locale (if the locale is different than the fallback locale)
ex. a dialog with edit control named "text" will become "text_[locale]".
The rest of the job remains to the Save handler which creates the localized content (nodeDatas).
If you edit the dialog then the content of the current language is filled in the controls.
This way we have only one dialog and unlimited number of languages, without the need of creating additional tabs (or controls).
Note: This way there is no possibility to edit more than one language at once.
For this functionality we modified the following:
- DialogControlImpl.initializeConfig
- I18nContentSupportFilter
- DefaultI18nContentSupport
- I18nContentSupport
All of the classes have minor changes, that don't affect other functionalities.
We attached the patch and hope that you'll like it.
p.s. we also have created a language chooser (changer) tag that successfully implements the suggested solution
- is related to
-
MAGNOLIA-1431 i18n: basic content support
- Closed
- is superseded by
-
MAGNOLIA-3062 i18n: support multiple languages in edit mode
- Closed