Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The issues are briefly summarised in 

Jira
serverMagnolia - Issue tracker
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId500b06a6-e204-3125-b989-2d75b973d05f
keyMGNLUI-3490
. This page aims to provide a bit more details and possible ways to improve the situation.

...

Localisation support

  • Mess with the interfaces, high level of indirection.
    • Transformer#hasI18NSupportTransformedProperty#hasI18NSupport which delegates to the first one.
    • Three objects' methods have to be called so that the new language is applied to a property (TransformerTransformedProperty and DefaultI18NAuthoringSupport):
      • DefaultI18NAuthoringSupport#constructI18NPropertyName;
      • Transformer#setI18NPropertyName;
      • Transformer#setLocale which simply stores new locale in transformer object;
      • TransformedProperty#fireI18NValueChange which in reality simply re-reads the value from the transformer.
  • I18NAuthoringSupport digs into UI structures code searching for the components with localize-able data-sources.
    • Logic separation levels breached - ideally Vaadin-agnostic component crawls the UI hierarchy searching for the property data-sources that can be localised;
    • Looks cryptic and patchy - one has to know how the forms are composed and how the i18n mechanism is implemented in Transformers and TransformedProperty;
    • Rigidness and hacks - instanceof's checking the abstract objects to belong to concrete types like BasicTransformerTransformedProperty etc.
  • Poor support of multi-field localisation 
    • The old property transformers do not support i18n and that probably cannot be fixed due to their implementation;
    • The new "delegating" transformers do support i18n but internally management of locale-specific data is complicated.
  • Jira
    serverMagnolia - Issue tracker
    serverId500b06a6-e204-3125-b989-2d75b973d05f
    keyMGNLUI-3491
     - switching language negatively affects validation.

Default values

  • Handled only once by the FieldFactory object. Later during lifecycle of the field the default value is not resolvable.
    • Consequence - during change of locale there is no straightforward way to set the default value for a localized property (
      Jira
      serverMagnolia - Issue tracker
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId500b06a6-e204-3125-b989-2d75b973d05f
      keyMGNLUI-3489
      ).

...