Versions Compared

Key

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

...

Introducing a couple of concepts. The basic API will be in its own module in magnolia_main; it doesn't need to be in core, and will maybe not even depend on it. It could even be outside of magnolia_main if there is no dependency to core, but we currently lack a good location for such modules (wink)

Module and package

magnolia-i18n in magnolia_main would contain the API and some implementation. Key generators etc would live near their counterparts (i.e in _ui mostly)

I would simply use info.magnolia.i18n as a package name. However, if this ends up only being usable within the context of magnolia_ui, I would move it there instead of _main, and reflect that in the module and package names.

API

  • @I18nable annotation. "Internationalizable": marks any object as a candidate for translations. Used on interfaces/classes such as FieldDefinition. Is inherited.
  • @I18nText annotation. Marks a String as to be translated.
  • I18nKeyGenerator<T> interface. Implementations generate translation keys for <T>.

...

(question) Validate Concepts

(question) Validate Roadmap

(tick) API

(error) Finalize module name, location, and package name.

(error) Implementation details (proxy, Guice module, ...)

...