Page History
...
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
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 asFieldDefinition
. Is inherited.@I18nText
annotation. Marks a String as to be translated.I18nKeyGenerator<T>
interface. Implementations generate translation keys for<T>
.
...
Validate Concepts
Validate Roadmap
API
Finalize module name, location, and package name.
Implementation details (proxy, Guice module, ...)
...