11

This question was originally posted on ModTeam, but I decided that it would be better to post it here on open space, since not only mods/staff can participate on SE sites localization process.

To add or update translations on non-English language sites of SE (e.g. Stack Overflow in Russian/Spanish/Portuguese/Japanese), now we use traducir.win (it has been recently migrated to the company ownership). As far as I know, after the translation was done on Traducir, it goes to Transifex and finally any following site's build (revision number on the bottom of each page) pull the translations from Transifex and the end user will see the result on site.

But as I noticed that not every new build brings us the new translation even when it's done on Traducir side. Hence I have a question: How I can be sure that the translation will come to the site, what number of builds are needed, and in general what's the exact workflow for updating the translations on non-English sites?

Related question: Recently added translations don't reach the site

1 Answer 1

6

How I can be sure that the translation will come to the site

We had some issues with the process over the last few months, but as far as I'm aware, they are all be fixed now and the whole setup should be reliable. If you see any new problems, please report them, keeping the process description below in mind.

what number of builds are needed

Technically, just one. ;) See below.

and in general what's the exact workflow for updating the translations on non-English sites?

The whole process currently goes like this:

  • When a new translatable string is merged into the main branch, it is added to a database where we store English sources, any overrides (that's how English pluralization works, for example), and the known translations of each string.
  • Every day (00:00 UTC), a scheduled route uploads the source strings to Transifex.
  • I'm not 100% sure about the exact timing here, but a scheduled job in Traducir pulls strings from Transifex and makes them available for community translation. Translations are pushed back to Transifex on a schedule as well.
  • Once an hour, a scheduled route pulls from Transifex and updates our translation database.
  • Once a day (14:30 UTC), a Github action runs that checks for any recent translation changes or new English source strings. If any are found, it creates a pull request to update the JSON file that is used during app startup to build a set of lookups for each locale. This PR is reviewed to satisfy our branch protection rules and once it's merged, the strings are included with the next production deployment.

So, all in all, we're looking at minimum a roughly 12-hour turnaround from string creation to translation deployment. In practice, this time can vary depending on when a string is actually translated, when the PR containing that translations is merged, and when we do a production build. I'd expect a couple days, longer if there's a weekend involved.

2
  • 1
    If I understand correctly it's possible that new build can be started and published on site for some other reason than translation updates. E.g. we made new translation on Traducir while site build number is N, developer made something that triggered new build N+1, but latest translations not yet pulled from Traducir. Is it possible scenario to observe new build number on site but still without translation in this case? Commented Jun 12 at 19:02
  • 1
    @αλεχολυτ Yes, there could be multiple deployments in-between and you'd see whatever build number they have on the site.
    – Adam Lear StaffMod
    Commented Jun 12 at 19:13

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .