So, here I review Weblate wrt. our requirements:
Disclaimer:
I may not be impartial as I fell in love with Weblate and was in love
with Django before.
Also sorry for the long post!
REQUIREMENTS:
MUST
- Provide a usable easy web interface PROVIDED
- Be usable from Tor Browser PROVIDED
- Automatic pull from main Git repo PROVIDED
- Provide a common glossary for each language, easy to use and improve
The interface could be easier, as you need to leave the page to add a
new term. But it is an easy fix that I could submit a patch for if
upstream likes the idea:
- allow translators to view, in the correct order, all strings that come
from the entire page being translated, both in English and in the target
language
PROVIDED (context, but not as per HTML pages, but .po files). Each .po
file is a weblate 'component' and has a URL.
- provide user roles (admin, reviewer, translator) PROVIDED
SHOULD
- be "privacy sensitive", i.e. be operated by a non-profit PROVIDED
Weblate offers hosting for free software projects. It is a non profit.
We can also install our own instance and we are a non profit too.
- allow translators to push translations through Git (so that core
developers only have to fetch reviewed translations from there) PROVIDED
- provide support for Git standard development branches (devel, stable,
and testing) but we could also agree upon translation only master
through this interface PROVIDED
In Weblate, every component has it's own repo and branch. You can also
based several components on the same repo (you don't need thousands of
versions of the same repo)
- provide checks for inconsistent translations PROVIDED
- provide feature to write/read comments between translators PROVIDED
MAY
- allow translating topic branches without confusing translators,
causing duplicate/premature work, fragmentation or merge conflicts --
e.g. present only new or updated strings in topic branches; see
https://mailman.boum.org/pipermail/tails-l10n/2015-March/002102.html for
details PROVIDED
- provide a feature to easily see what is new, what needs updating, what
are translation priorities PROVIDED, except the priorities
- provide possibility to set up new languages easily PROVIDED
- send email notifications to reviewers whenever new strings have been
translated or updated to translators whenever a resource is updated PROVIDED
- respect authorship (different committers?) PROVIDED on the .po file
- provide statistics about the percentage of translated and fuzzy
strings PROVIDED
- Letting translators report about problems in original strings, e.g.
with a "Report a problem in the original English text" link, that e.g.
results in an email being sent to -l10n@ or -support-private@. If we
don't have that, then translate MUST document how to report issues in
the original English text. PROVIDED
OTHER DETAILS
UPSTREAM
Weblate is been actively developed and the devs have already coded one
of the suggestions I've given to them:
https://github.com/nijel/weblate/issues/677
I can script Django a bit, so for frontend requirements I may be able to
help them (if they like the suggestions, which I don't know...)
HOSTING IT OURSELVES
I think a new hosting can always be a problem, and I am not sure about
python web applications in general. But I think a translation website
doesn't need to be such a big deal, and can be isolated from the rest of
the system easily, and just be connected through git commits.
HOSTING BY WEBLATE
We would have to make sure weblate server is well configured for
protecting the privacy of our translators, but the whole 'updating mess'
of such an actively developed webapp will be taken care by the weblate
people.
I am not sure about the stability of their service though.
Workflow proposal:
- Every language has at least one person that can commit to the tails repo
- When a new file needs to be translated, I need to create a new
'component' on Weblate, linked to the .po file, and it will be available
to all translators.
- This component will be automatically reviewed for changes and get the
new strings that are added later on.
- Translators without any interest in git can create an account in
weblate and translate/review the .po files there, comment about them etc.
- When the component is ready, they can ask for a merge
As a translations reviewer or admin, I can:
- have a tails repo on my laptop
- when a .po file has been reviewed, download it from the web interface
- overwrite the one in my local repo
- build the wiki and check everything is OK
- commit to tails/master, for example, without the need of giving the
weblate instance any git push access.
- Weblate could pull automatically the tails repo without any safety
problems for us.
That's all I can think of now, let me know if you have questions. I
cannot provide a testing install unless somebody lends me a server
(hint, hint!)