Next generation of translation interface

There seem to be several problems with pootle, the web application currently used for the translation of Tryton.

Forwarding here the discussion from IRC for the necessary thourough analysis of possible solutions.

(12:14:24) pokoli: What happened to the translation server? Because I lost all my translations I did yesterday
(12:23:11) cedk: pokoli: I do not know, I had to resync translations because of modification in odt
(12:23:37) cedk: I think pootle is really not a good application
(12:24:53) cedk: but free-software community did not provide any good solution (tx to transifex)
(12:25:00) silwol: cedk: weblate
(12:27:13) cedk: silwol: same tool
(12:27:21) cedk: silwol: just a different UI
(12:27:50) silwol: cedk: ok, didn't know that. We're using it internally, and are quite satisfied with it.
(12:27:51) cedk: pokoli: how do you translate?
(12:28:33) pokoli: cedk: I'm using the web interface to add translations, but I'm starting to think in downloading and uploading po files
(12:37:10) cedk: pokoli: I think that when I do sync_store does not correctly sync if I do not add --overwrite
(12:37:45) cedk: https://stackoverflow.com/questions/19115745/pootle-and-po-files-how-to-synchronize-correctly
(12:40:18) pokoli: cedk: but if you download the pootle translations before syncyng, it should not remove the translated entries, shouldn't it?
(12:41:16) pokoli: cedk: this is not required when the translation starts, but I think it will be a good practise when syncing in the translation window
(12:41:46) cedk: pokoli: I guess pootle does work as expected, if you sync without override it does not do it
(12:42:31) cedk: pokoli: I did a sync but pootle did not sync all
(12:44:58) cedk: I'm trying a new update
(12:45:08) cedk: pokoli: did you lost again?
(12:46:40) pokoli: cedk: I think that no but could you please re-update so I can ensure it?
(12:47:23) cedk: pokoli: OK but it takes about 15min
(12:47:41) pokoli: cedk: just ping me when it finishes :)
(12:49:20) cedk: pokoli: start sync
(12:49:43) cedk: pokoli: start update
(12:53:50) cedk: pokoli: ca should have been updated
(12:56:24) pokoli: cedk: yes, I lost the translations :(
(12:56:46) cedk: so pootle is a buggy
(12:57:18) cedk: I think we will have to write our own application
(13:01:25) cedk: maybe weblate is a solution: https://stackoverflow.com/questions/19115745/pootle-and-po-files-how-to-synchronize-correctly#comment28301372_19115745
(13:01:38) cedk: silwol: is it easy to deploy
(13:02:26) cedk: I'm just afraid that it uses Django
(13:05:07) pokoli: cedk: it uses django: https://github.com/nijel/weblate/blob/master/requirements.txt#L1
(13:05:51) cedk: pokoli: I know
(13:06:11) cedk: pokoli: can we make a last test, I would like to test to sync with --force option
(13:06:37) pokoli: cedk: one moment, let me modify some strings
(13:07:35) pokoli: cedk: done, you can sync
(13:08:50) cedk: another solution will be to use a trytond server and have everyone write on it
(13:09:12) cedk: but we will not have the suggestion feature
(13:09:22) cedk: and we will have to find a solution for tryton and sao
(13:20:46) yangoon: May I propose to plan and discuss any change of the translation interface this time on the mailing list or on dicuss.t.o to not make the same mistake as with the overhasty installation of pootle?
(13:22:59) cedk: pokoli: can you check the update?
(13:28:18) pokoli: cedk: now the translations are not lost
(13:28:29) pokoli: cedk: so this is the way of doing it
(13:29:29) cedk: pokoli: OK I wrote scripts on the pootle directory with the right parameters
(13:34:45) cedk: still one mistery, why is some language has less translations
(13:36:04) pokoli: cedk: maybe because this languages have empty strings?
(13:36:19) pokoli: cedk: ca is one that have more strings, and it have the empty string
(13:39:57) pokoli: yangoon: you can propose anything on discuss
(13:40:35) pokoli: yangoon: just for curiosity: do you have some better alternative to pootle?
(13:41:32) cedk: pokoli: I think the Total is wrongly computed, I checked fr/account_fr.po
(13:41:48) cedk: pokoli: it shows total 37 and when you open it it has only 18
(13:42:40) cedk: pokoli: indeed total is the number of words and not the number of string
(13:42:51) yangoon: pokoli: I knew at the time when pootle was introduced without former evaluation already about weblate (despite not having personal experience with it)
(13:44:12) yangoon: and you can find on the mailing list my input always advocating the usage (or at least support) of the internal interface for several reasons
(13:45:20) pokoli: cedk: yes the total is the words. But if source words should be the same. It's strange :$
(13:45:53) pokoli: yangoon: internal interface, you mean using the tryton server?
(13:46:03) yangoon: pokoli: yes
(13:47:32) cedk: pokoli: it looks like sometimes it counts also old/deprecated words
(13:48:53) pokoli: yangoon: then, a flask_app using the web_user module and connected to a demo server will be the best option
(13:49:18) pokoli: yangoon: and then we can have a server for testing also trunk version on translation period
(13:49:25) pokoli: s/translation/testing/
(13:54:43) yangoon: pokoli: as long as I am able to translate locally and upload/sync remotely all is fine for me. But really, those matters should be planned thouroughly on a better place than IRC if they are subject to change again.
(13:59:11) cedk: translate localy does not allow collaboration
(14:05:24) pokoli: yangoon: I agree with cedk that locally does not allow collaboration, So that's why I'm pointing to a flask_app
(14:09:16) yangoon: I always said, that having both worlds would be best. "Power" translators are primarily better served with the internal interface, but occasionally the use of a web interface has its advantages, too.
(14:10:04) notizblock: cedk: weblate is quite easy to deploy
(14:13:57) cedk: notizblock: but doc seems to talk only about git not mercurial
(14:14:22) cedk: notizblock: and also how is the update process?
(14:20:58) notizblock: cedk: we use it with git internally.
(14:21:36) notizblock: cedk: regarding updates: there is a generic update guide and if required a specific update guide per version
(14:22:48) notizblock: cedk: weblate is quite stable right now and the last ~10 updates worked flawlessly
(14:24:13) notizblock: cedk: mercurial seems to be supported since 2.1: https://docs.weblate.org/en/latest/vcs.html?highlight=mercurial#mercurial
(14:33:38) cedk: notizblock: still mercurial seems to be a second citizen :-(
(14:34:28) notizblock: cedk: it might be, yes
(14:35:10) notizblock: from the documentation: "Git is first VCS backend that was available in Weblate and is still the most stable and tested one."
(14:45:58) pokoli: yangoon: with the flask app and the demo database Translators (what you call "Power" users) can use the internal interface if they wan't. So the web interface can be usefull for third parties willinig to collaborate
(15:03:24) yangoon: pokoli: how do we want to manage the level of suggestions/commits (different permissions of translators) to a common Tryton translation database? Furthermore I always prefer to make my errors locally and to commit tested results. There are quite many important questions to find the best compromise. Forwarding the discussion finally to discuss.t.o

Indeed we found a solution to no more loose translations when updating the stores after synchronise the repository with the templates (requires to use --overwrite and --force option).
For now the work-flow seems to be working, so I think we can stay with Pootle, we just need to learn by experience (like we will need with any other tool).