The old Transifex thread (was: Translating Syncthing)

Yes, that’s what I meant to point out as “it is itself libre software”.

Trying to figure out the failure situation with the duplicated Spanish language entry… Does anyone know why there are lang-es.json and lang-es-ES.json variants? Weblate doesn’t recognize the latter, although it does have several Spanish variants catalogued. On Transifex, the Spanish (Spain) team has 14 members, while plain Spanish has 23 (counting coordinators only). The translations are not identical, but both do show activity within the last two years.

I’ll try to figure out whether we can import and keep both on Weblate, but a migration would be a good opportunity to clean this up as well. Spanish skills, anyone?

That’s a mistake, I bet.

Maybe one of them is the Latin America variant of Spanish? The Web GUI does look almost identical in both of them though, with the exception of a few pieces of vocabulary and different capitalisation.

Also, thank you very much @acolomb for answering all my lengthy questions. Everything seems clear now. Just one last question if you don’t mind, does Weblate allow to assign the same person to multiple languages? For example, currently on Transifex I’m a member of two language teams.

According to Language Code Table, it’s used for Spanish (Spain) and Spanish (Castilian). Would be good to get some people to merge the two translations…

Not quite sure what you mean. You can sign up for any (existing) language you want as a translator. Weblate doesn’t limit you to one language.

@calmh would you mind setting up the Weblate App integration for GitHub? GitHub Apps - Weblate · GitHub provides automatic import of repo changes to Weblate and (optional) pushing back of updated translations. The latter we won’t start using right away, but maybe a good option for later.

Well, Transifex had problems with this and in the end I had to be manually added to the second language, hence the question :wink:. Specifically, it didn’t offer an option to apply for another language once I already belonged to a different language.

I’ve installed the thing.

Thanks. Didn’t notice because apparently my forum notification e-mails are getting blocked again. Will report back when I had some more time to work on the Weblate stuff. We currently have the trial plan available until December 20, if that’s too short, I will ask for an extension. Weblate staff has been very nice and helpful so far.

The biggest challenges yet to be solved are:

  1. Consolidate languages that have different identifiers between Transifex and Weblate (including the es / es-ES confusion).
  2. Try to carry over the “reviewed” status of the Transifex translations. I think it would be helpful to have the current status replicated as closely as possible.

Apparently we have another problem of very recent nature:

Our transifexdl.go script uses the v2 API, which stopped working after Nov 30, 2022. I found out the hard way while trying to programmatically access the existing translations.

@calmh We should probably make adjustments for switching to API v3 for the short-term. Can you look into it? I don’t have much experience with Transifex and so far my attempts all ended in Authorization Required responses.

And I might need some help in cleaning out the duplicated Spanish stuff as well as renaming other languages if possible. Full (admin) access to the Transifex project might help in that regard.

1 Like

I’ll look into the API issue.

I suggest simply dropping the “Spanish (Spain)” variant in favour of “Spanish (Whatever)” for the time being, and letting appropriate Spaniards sort out the result.

The data is still in git, if it turns out to be the wrong choice it’s not irreversible.

I did make some progress on the v3 API, but very cumbersome based on trial and error. As people have spken up in the Transifex forums, the new API requires a complicated dance of at least three API requests just to download the current state of a language translation, where previously it was only one. I haven’t looked into using some jsonapi package, but rather created the API structs manually for now.

Feel free to take inspiration from GitHub - acolomb/syncthing at transifex-api-v3

Yeah I took one look at the new API and decided to just script their cli tool instead.

1 Like

I clicked into Weblate and found the Syncthing project. What I didn’t find was any mechanism to contribute, should I want to add a language or edit a translation. I can click on a language and it looks editable, but attempting anything gives me a permission error, which seems reasonable although it would have been better if it didn’t look writable to begin with. What does the “join the project” story look like, how does one get access to edit a language?

(Also it shows the license as CC-BY-4.0 which I think should be MPL, but obviously the setup isn’t complete yet as noted.)

Hm… not quite sure how the process works to join the project. There must be a button somewhere to join teams, or I can of course invite you / add your user to the teams if you give me your username. I’l set up a test account as well to find out and document the process.

Any idea whether we can export our team members on Transifex including their e-mail addresses?

I took the license from our documentation, where it’s stated quite clearly as CC-BY-4.0: Contribution Guidelines — Syncthing documentation

Seems like there is in fact no way to request joining a team right there on Hosted Weblate. I guess because usually anybody can deploy Weblate themselves, it’s usually up to the organisation to manage access centrally. Approval of team membership needs to be done by an admin anyway, so I guess we can just as well have users speak up in the forum again to be given access. Migrating Transifex users by inviting them would be really nice though.

At least I have given you @calmh the Team Administrator role for the “Translate” team. You can now add or remove members by user name.

Does this scale though? I certainly don’t want to be inviter/approver of new contributors.

(Good catch on the license, I grepped for CC-BY but didn’t find it that way…)

We can assign any user the right to manage any team they’re part of. So I’d say all active maintainters and select contributors get to manage the “Translate” team (we probably don’t need separate language teams). I will monitor a pinned thread here on the forum and we can point to that in the project description. Then whoever gets to it first will add people to the team. IIRC that’s just like we did for Transifex.

P.S. Can we also point to some public contact e-mail address to reach the maintainers? I don’t want to force people to sign up on Weblate and here on the forum just to ask for translation access.

What are the tangible improvements over Transifex that motivate the move, again? My one and only real complaint with Transifex has been that their user management is annoying, but it seems like Weblate is equivalent there. I understand they’re open source, which is sort of nice, and have some contributor who abhors codes of conduct, which kind of isn’t but matters less.

Sorry I don’t know what you mean by this.

My main motivation for pushing the migration is being fed up with the Transifex UI when actually working on translations. Their filters for example are very inflexible, e.g. I couldn’t manage to find all strings not yet reviewed but not translated by myself. It’s also lacking many features like showing similar strings or easily sharing stuff between project components. Weblate just has so many more useful tools and checks that make life easier. Some of these may be available in higher-priced Transifex subscriptions, but in that case I think Syncthing as a FLOSS project should avoid getting locked in to their closed-source service too much. The recent API complication is a definitive step backward IMHO on a technical level, so in general I just don’t get good vibes from how Transifex is managed, especially for open-source projects.

Are you still on board with the switch? I had understood you’d be fine with it and that’s why I have put in many hours of work recently. Which I hope has not been futile.

Probably https://github.com/syncthing/syncthing/pull/8698.