Hi devs,
We started discussing this yesterday on the xwiki chat.
Here’s the rationale for changing:
* l10n is slow and is preventing users to contribute translations (it’s much harder than
it should be)
* it’s costing us maintenance that we shouldn’t have to do (it’s not our role to maintain
a translation service, even though it was nice to eat our own dog food initially). I see
this very similar to when we switched from our GWT-based WYSIWYG editor to CKEditor.
* It’ll allow us to benefit from new features/bug fixes the external service develops
* Right now it’s taking an hour or more every time we release to integrate the translation
changes and this slows us down to increase our release delivery speed
* We’re putting the onus on the RM only to validate that the proposed translations are
good. So only 1 pair of eyes.
* We have no time to fix any translation if they’re not correct. A system where when
someone proposes a new translation generates a PR that we apply as they come in would be
much better and solve both the review and lateness issues.
Of course it’ll mean some plugins/customizations to develop in the service we will use
since it’s not going to support some custom formats we have such as our XAR XML format. So
we need to pick a tool that allows for this.
The proposal:
* Start investing in implementing XWiki translation using an external tool.
* Start by looking at weblate:
https://weblate.org/en/ since
** it seems to offer lots of features we need (automatic PR - see
https://docs.weblate.org/en/latest/vcs.html#github, quality checks, plugins). See
https://weblate.org/en/features/
** it’s open source itself and in case the service goes down we can ask XWiki SAS to host
it for us (see
https://github.com/WeblateOrg/weblate).
** We need to ask them if they can host us, see
https://weblate.org/en/hosting/ and the
part about "Hosting for free software”.
** We could also ask XWiki SAS if they’d accept paying a “Basic” plan (200 euros/year
which is affordable IMO vs hosting it ourselves)
** There’s a REST API so that if we want we can provide a view/status of the translations
from
xwiki.org:
https://docs.weblate.org/en/latest/api.html . We could even imagine using
this API to convert from a format to our own format, if need be.
* Propose to have a developer work on this in an upcoming roadmap (to be defined but as
early as possible since l10n is not in good shape)
* Fix l10n as much as we can without spending too much time on it, until we have the new
translation service ready to be used
Things to look at:
* Ability to register custom formats or more generally how to handle our custom format
* How do we handle deprecated translations keys
* How do we handle global rename/move of keys from one resource file to another
* <add more here>
WDYT?
I’d like to have especially Thomas’s POV since he’s the one who spent the most time on
l10n and I’d like to make sure he’s ok with this.
Thanks
-Vincent