Opened 7 years ago

Closed 6 years ago

Last modified 6 years ago

#913 closed defect (fixed)

Get off of Transifex

Reported by: Christopher Allan Webber Owned by:
Priority: major Milestone: 0.8.0
Component: programming Keywords:
Cc: federicoleva@… Parent Tickets:

Description

Apparently Transifex is [no longer free software](https://github.com/transifex/transifex/issues/206#issuecomment-15243207). Additionally, I have gotten some emails from them that makes it seem like they are doing some quite iffy stuff.

We should get off Transifex and onto something freedom-supporting.

Subtickets

Change History (28)

comment:1 Changed 7 years ago by Christopher Allan Webber

The highly esteemed Greg Grossmeier suggests TranslateWiki:

<greg-g> paroneayea: so, in seriousness,
         https://translatewiki.net/wiki/Special:MainPage
<greg-g> FOSS through and through, run by a combo of full-time WMF devs in
         their free time and part-time WMF devs in their other part-time

comment:2 Changed 7 years ago by Laura Arjona Reina

I'm a user of several translation platforms or systems, I like all of them (as far as they are free software...). Launchpad is nice, Translatewiki, Weblate, Pootle are used in many projects and all of them are free software and offer hosting.

I think for translators it's not so important which one is the platform used (as far as they provide a web-based abstraction from the translation files. Every people willing to work directly with PO files can clone the repo and submit requests...).

I think the developers that are going to merge the translations from the web platform into the source code should assess the facilities and automation of the part of merging translations into the source code, and then make a proposal. In that part, I'm sorry I cannot give advice.

One big point in favor of Weblate is that since each translation is transformed in a git commit, translators can be automatically credited, and everything is more "git"-ish :)
But in the case of MediaGoblin, I think you are doing a great work crediting everybody anyway :)

Translatewiki is a very nice platform, really easy, and I think it eases the transition of translators from one project to another (as Transifex was doing too...). It's nice to be part of a wider community, and it's a team effort. From time to time I receive a news bulletin (it seems that we are more than 5000 people subscribed), they organize translations rallies, and many people related to MediaWiki and WikiMedia projects are around there.

[edit] Oh, forgot to say that @F-Droid transitioned from a selfhosted Pootle to a selfhosted MediaWiki translate extension (same as TranslateWiki): f-droid.org/translate
Since MediaGoblin already has a wiki made of MediaWiki, maybe it could be an option. Maybe @ciarang can give advice on this (experience, maintenance overhead, etc).

Last edited 7 years ago by Laura Arjona Reina (previous) (diff)

comment:3 Changed 7 years ago by Nemo_bis

Cc: federicoleva@… added

larjona, as you have experience with many platforms your help would be greatly appreciated in comparing them even more thoroughly :) at https://docs.google.com/spreadsheet/ccc?key=0AvdoxmL5NpHydFFKMXJVZ1B0ZnpsUWd3LTVQRngtcmc (where the "translatewiki.net" columns applies to any self-hosted MediaWiki+Translate instance as well).

comment:4 in reply to:  3 Changed 7 years ago by Laura Arjona Reina

Replying to Nemo_bis:

larjona, as you have experience with many platforms your help would be greatly appreciated in comparing them even more thoroughly :) at https://docs.google.com/spreadsheet/ccc?key=0AvdoxmL5NpHydFFKMXJVZ1B0ZnpsUWd3LTVQRngtcmc (where the "translatewiki.net" columns applies to any self-hosted MediaWiki+Translate instance as well).

Nemo_bis: indeed I would be interested, but I think that exceedes the purpose of this issue...
Feel free to contact me by mail at larjona99 at gmail.com with the details (purpose, authors and license) of that spreadsheet and I'll try to contribute.

For GNU MediaGoblin's case, I think that Translatewiki would be a nice solution, if developers agree that it's easy for them to push/merge templates and translations from/to the source code.

comment:5 Changed 7 years ago by fr33domlover

Hello! Any progress with this?

Here are things I think should be considered:

  • Is it possible to download a PO file, translate locally and upload
  • Is it easy enough for the developers to pull translations into the MediaGoblin git repo
  • Whether a self-hosted solution is preferred

Both Pootle and TranslateWiki seem to support offline translation with PO files.

Who maintains <https://wiki.mediagoblin.org>? It sounds like a good idea to install the Translate extension there, and use it for all MediaGoblin localization. The software's webpage: <https://www.mediawiki.org/wiki/Extension:Translate>.

comment:6 Changed 7 years ago by Boris Bobrov

Owner: set to Boris Bobrov
Status: newin_progress

comment:7 Changed 7 years ago by Boris Bobrov

After some discussion in IRC, pootle was chosen as a new platform.

What needs to be done:

  1. Create a project there
  2. Rewrite devtools/update_translations.sh
  3. Test

comment:8 Changed 7 years ago by Boris Bobrov

comment:9 Changed 7 years ago by Christopher Allan Webber

Great! Excited to see this moving forward!

comment:10 in reply to:  8 Changed 7 years ago by ayleph

Replying to breton:

point 1 - checked: https://chapters.gnu.org/projects/mediagoblin/

Breton, I thought I remembered you mentioning in IRC that the GNU Pootle instance didn't support the API. I've been playing around with hosting Pootle on my own servers and I'm getting comfortable with it. I can try to enable the API if you need to test something.

comment:11 Changed 7 years ago by Boris Bobrov

Breton, I thought I remembered you mentioning in IRC that the GNU Pootle instance didn't support the API. I've been playing around with hosting Pootle on my own servers and I'm getting comfortable with it. I can try to enable the API if you need to test something.

Yep, I mentioned that. But it might be needed only if we choose not GNU's server.

I was checking out the following issues:

  1. How do we move our existing languages there
  2. How to reogranize current process and how .po upload/download happens
  3. Rewriting the script

It seems that pootle does not have facilities for tx-like translations uploading/downloading. I mean, I cannot get translated files from web UI.

I'll contact the maintainers now with questions.

comment:12 Changed 7 years ago by Boris Bobrov

  1. Was done by Pootle's maintainers. Thank you, fellas.
  2. We can download all translation from https://chapters.gnu.org/export/mediagoblin/mediagoblin/i18n/ . Maintainers suggest downloading translations with something like this:
wget -q -r --no-check-certificate -R .html -nH --cut-dirs=3 \
  --no-parent \
  https://chapters.gnu.org/export/mediagoblin/mediagoblin/i18n/; \
  rm -f robots.txt

@cwebber, what do you think about it?

Upload is done via git and web interface -- project admin clicks the link, source are fetched to Pootle. I am still not sure how to make this more, err, shell-oriented, will contact the maintainers, again.

comment:13 Changed 7 years ago by Christopher Allan Webber

Hm. I am really iffy about APIs that are not really APIs. I worry they are going to break... they have a tendency to, in my experience.

Is there any indicator as to why the GNU server maintainers can't just enable the API?

comment:14 Changed 7 years ago by Boris Bobrov

Some discussion happened in IRC. Short version: Pootle workflow doesn't fit our needs, checking out translatewiki.

00:15 < breton> paroneayea: frankly, I am not so excited about pootle now
00:15 < breton> there are some features that make life uncomfortable
00:16 < paroneayea> breton: oh yeah?
00:16 < breton> for example, there is no way to pull current sources from the git using command line
00:17 < breton> I mean, I have to go to web ui and click "fetch from git" for every language
00:17 < breton> maintainers suggested me to put it to cron job, but I don't see it as a nice solution
00:17 < paroneayea> breton: to be fair
00:17 < paroneayea> our existing setup didn't have that either.
00:18 < paroneayea> but
00:18 < paroneayea> the script could push *to* transifex.
00:18 < breton> paroneayea: yes, but we could easily push to tx and pull from there
00:18 < breton> I see neither in pootle
00:18 < paroneayea> right.
00:18 < paroneayea> breton: would the API allow that?
00:19 < breton> out-of-the-box API does not allow to push and I don't see a way to pull without iterating over all files (and I am not even sure it is possible)
00:20 < paroneayea> okay
00:20 < paroneayea> that sounds like pootle is off the table
00:21 < breton> their docs say "go to web ui and click a link"
00:21 < breton> sounds like it
00:22 < breton> but wait
00:22 < breton> I wonder whether we can have our own pootle instance
00:22 < paroneayea> breton: we probably could, the challenge is maintaining it
00:23 < paroneayea> we don't have a good automated maintainance solution right now
00:23 < paroneayea> so keeping things up to date is a challenge
00:23 < breton> ok. So, pootle is a no.
00:23 < paroneayea> so would be restoring in case of catastrophic failure
00:23 < paroneayea> note: I'd like to improve this soon, and probably will as part of working on the deployment stuff
00:23 < paroneayea> but that's still a bit out
00:25 < breton> ok. So, I'll dig into translatewiki now.

comment:15 Changed 7 years ago by Boris Bobrov

Hooray, another change of opinion!

I finally understood Pootle's workflow. It seems that it will not hurt us, cli-geeks, and it can be nicely adapted to our current workflow.

01:40 < breton> in fact, pootle's workflow hit me half an hour ago
01:44 < breton> paroneayea: in pootle it's not project maintainer who does the push
01:45 < breton> it's language maintainer who does that
01:45 < breton> he pushes the changes by pulling them from git master
01:46 < breton> by pressing a button
01:46 < breton> I mean, he is a translator and uses the web ui anyway, so pressing button in a web ui is common for him
01:49 < breton> paroneayea: now, with tx, you, the project maintainer, decide when .po's are pushed and available for translation
01:49 < breton> in pootle it's language maintainers job
01:49 < breton> in pootle language maintainer also decides when language "release" happens
01:50 < breton> you can't pull updated translations untill he presses "translations are ready for pulling"

comment:16 in reply to:  14 Changed 7 years ago by Nemo_bis

Replying to breton:

Some discussion happened in IRC. Short version: Pootle workflow doesn't fit our needs, checking out translatewiki.net

Hi. I understand you want total control, so as fr33domlover said in comment 5 you may want to install the Translate extension on wiki.mediagoblin.org: packages for 1.20+ are at https://www.mediawiki.org/wiki/MLEB . It's one thing more to update, but an opportunity to upgrade your existing site to last LTS, 1.23 (which should be in the debian repos).

If tarball, git or composer are not ok and you absolutely need a deb, we can talk about it.

On translatewiki.net, we generally prefer to handle sync and commits for you, see https://translatewiki.net/wiki/Translating:Localisation_for_developers (recently updated). Available web APIs are https://www.mediawiki.org/wiki/Help:Extension:Translate/API#Web-API , probably you're most interested in https://translatewiki.net/w/api.php?action=help&modules=query+messagecollection

I don't remember what format you use but we also have e.g. https://translatewiki.net/w/i.php?title=Special%3ATranslate&taction=export&group=out-freecol&language=it&task=export-to-file

comment:17 Changed 7 years ago by Nemo_bis

Hah, it seems I was 30 min too late.

comment:18 Changed 7 years ago by Boris Bobrov

Nemo_bis, not late at all. Thanks for the links, I'll read them soon.

comment:19 Changed 7 years ago by Boris Bobrov

 rsync -vaz \
   chapters.gnu.org::pootle/mediagoblin/mediagoblin/i18n dest

is now the suggested way to pull translations, which seems fine to me.

OK, we stay on GNU's Pootle instance. I'll send an email to maintainers about that and on Sunday will rewrite the script.

comment:20 Changed 7 years ago by Boris Bobrov

So, email fired, congrats with moving to Pootle.

Chris, how do we invite people from Transifex here? Is there some mailing list?

comment:21 Changed 7 years ago by Laura Arjona Reina

I think the project manager in Transifex can make an announcement there, and all the people registered as translator of the project will get it via Transifex and by mail (at least, I get announcements of other projects that I contribute there).

Announcement in the -devel list would be nice too, IMO. As far as I know, there's no other mailing list.

comment:22 Changed 7 years ago by ineiev

Thanks for your work!

Is MediaGoblin now ready to replace the pointer to Transifex with a pointer to Pootle in the wiki, https://wiki.mediagoblin.org/Translations?

If not, what's missing?

comment:23 Changed 7 years ago by Christopher Allan Webber

Milestone: 0.8.0

This ticket is nearing completion. Breton updates that they are experimenting on:

https://chapters.gnu.org/projects/pootletest-mediagoblin/ and
https://gitorious.org/mediagoblin/pootletest-mediagoblin

Marking for 0.8.0. I think that's a pretty reasonable target.

comment:24 Changed 7 years ago by Boris Bobrov

comment:25 Changed 7 years ago by Boris Bobrov

Owner: changed from Boris Bobrov to Christopher Allan Webber

comment:26 Changed 6 years ago by Christopher Allan Webber

Okay, this is done. Done!

With one more small thing remaining. The translate wiki page needs to be updated. Would someone be willing to do that?

comment:27 Changed 6 years ago by Christopher Allan Webber

Component: programmingdocumentation
Owner: Christopher Allan Webber deleted
Status: in_progressaccepted

Unclaiming and now switching to documentation.

comment:28 Changed 6 years ago by Christopher Allan Webber

Component: documentationprogramming
Resolution: fixed
Status: acceptedclosed

I suppose there's no reason to keep this open for a wiki page... that can be updated by translators as things go.

If someone wants to make a documentation ticket for the wiki, that's fine.

Note: See TracTickets for help on using tickets.