Hi devs, I started recently to refactor the localization module Sergiu had started. You can look at the current status in the branch https://github.com/xwiki/xwiki-platform/tree/feature-localization.
Nothing is working yet but I wrote enough APIs to see a bit more clear on what I'm up to so here it is. This mail is mostly to discuss the general architecture. There will be other more detailed mails for voting class name and things like that. = Get a translation = * here is the main client API: the client ask for a Translation object to LocalizationManager by indicating it's key (String) and locale (java.util.Locale). Then it calls Translation#render() with optional parameters to get a rendering Block as result. This Block is then inserted in the main XDOM using the translation macro or rendered as text by XWikiMessageTools#get() and other APIs like that if there is = Provide new translations = * support "injecting" new translations just by "marking" pages containing translation using an object to not have to list them in XWikiPreferences anymore. This is especially required for extensions. * the same way I think we should be able to provide translation in a jar extension * on idea introduce by Sergiu and that I agree with is the fact that like with ssx/jsx we need to be able to pull a specific translation explicitly without it to be automatically registered for the whole wiki or something like this * LocalizationManager (and more specifically BundleContext) find the right translations bundles to look at by lokuping all the org.xwiki.localization.Bundle components depending of the context (component can be registered for specific wikis/users). = Translation message syntaxes = * translation message syntax: the current syntax of our translations is a MessageTool based syntax depending on the fact that your have custom parameters or not. This syntax is not very good IMO (managing ' char is a mess) but good or not I think we need to have the possibility to introduce new features (like variables, light formating syntax, etc.) whenever we needs it without breaking anything and the way to do it is by having the possibility to have translation resources in different syntaxes and associated parsers. Note that TranslationMessage does not appear anywhere in the Translation API, any Bundle can implement Translation the way it want but we will have a lot of Bundle on our side using this concept of translation message syntax. The main target is wiki translations. Not all that is going to ends up in 4.3 but the goal is to have at least the new architecture support the "old" ApplicationResources resource and XWikiPreferences static translations pages and start introduce dynamically registered wiki translations. Shoot ! -- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

