Ideas about how to keep the translations updated across versions (e.g. LTS and development) #8038
Replies: 4 comments 13 replies
-
Until we find a real solution... Why not advice/mailing translators 2-3 weeks before each new release? About weblate limitations so we know how much would cost to implement the "multi-branch" feature? |
Beta Was this translation helpful? Give feedback.
-
To describe the issue from translator's perspective: one usual problem with translations is they are frozen when the release is packaged... and when the translator discovers a string is missing (usually when they install the packaged release or people report issues in translations), is not easy to fix it (because weblate is pointing to main branch, instead of the packaged one). And this problem also happens with LTS versions too. I was working on a drupal and I noticed that the translations are downloaded independently of the core or plugin code... which allows both processes (code and translations) to follow different times. This way, a partially translated plugin/core can benefit from a translation that has been done months after its release. Make sense to apply a similar approach in OxS tools and implement an "update locale" button? I suspect it won't be a big difference for translators as they will need to commit to github branch directly instead of Weblate (that can only point to one branch) but will make final user's life easier. Any idea about the weblate part, at least for the LTS versions? |
Beta Was this translation helpful? Give feedback.
-
Our current workflowWe may actually have 3 branches to consider. Imagine that 3.4 is released in Q1 2023, and 3.5 comes out in Q4 2023. As we approach the beginning of Q4, we will have:
We can cherry-pick translation changes between branches. Our normal git workflow for merging the changes onto
Because there is a merge commit, this results in the translations being grouped together in a way that's easier to merge to another branch. See this example commit. I have not tried merging to other branches, but it is a possibility. PrinciplesHere are some principles I think are important to keep central. Must-haves:
Nice-to-haves:
ProposalI propose we use a "summit" workflow, as documented beautifully by the KDE project. This means:
The
|
Beta Was this translation helpful? Give feedback.
-
In this thread we were mainly focused in how WE (pkp and translators) deal with the translations but we talk a little about what final users expect. Related with this, let me compile what is been said:
Not sure if I was suggesting separate localizations from code (probably it's implicit but I was just thinking in the feature, not in the implementation) but what I discovered in the last meeting with our local network is most of them have broken translations and use default translations or custom translations plugins to deal with it. Let me verbalize what is happening with the translation workflow so you can correct me if I'm thinking it in the wrong way... Usually when new releases is packaged to be released, translations are not 100% complete (by design, only English does). And I think it happens for many reasons: first because translators are volunteers and we can make them to do their work in the precise moment/windows we like them to translate, but also because translators work without context (don't know where a string will be placed in the interface) and this makes them fail or because they wrongly prioritize their work (we ask them to translate first that are more visible than the ones that are kind of hidden) and also because they are humans and... well we commit errors all the time. So, at a certain time (months, but it could also be years... depending on the translation team upgrade plans) we got time to check the packaged new release, and we discover the missing chains so we go to weblate to translate them. But at this moment it's too late because a lot of fellows (newcomers or fellows that upgraded faster than us) downloaded a translation-broken version of OJS and won't probably upgrade for a while. And even if they upgrade fast, they will need to wait till next release to complete the missing chains. So answering Jonas I thinks I understand the issues you pointed but: It's not a big deal if they keep old translations till they upgrade, isn't it? I insist with the idea of the "upgrade button" because every time I talk with our local community (and also from the feedback got during the usability tests) the problem with the broken translations is perceived as a major issue. @asmecher in my head this is all related and we need to think about it as a whole but if you prefer to keep the thread focused on finding a solution to keep different branches of translation or you think I'm straying too far off-topic, let me know and I'll move the debate where you say. |
Beta Was this translation helpful? Give feedback.
-
Summary
Our translation workflow for localized strings in OJS, OMP, OPS, pkp-lib and many plugins involves an integration between Weblate and Github. For each piece of software, Weblate is configured to base its work on a particular branch of a git repository. The translation updates are available as commits on a fork.
Unfortunately Weblate does not currently support multiple branches, so we must currently choose whether it operates on
main
orstable-3-3_0
(current LTS).This leads to a problem where the translations are forked. If we point Weblate at
stable-3_3_0
,main
falls out of date and will need to be reconciled; if we point Weblate atmain
, then users are frustrated with out-of-date translations onstable-3_3_0
.Conversation imported from Slack.
@asmecher
Unfortunately it's hard to port translations between 3.3 (LTS) and 3.4 -- there have been a lot of changes and keys moved.
@marcbria
An LTS without updated strings is a major handicap. In the past, with the first 3.3 we got a lot of complaints because the translations were not up to date and when we updated them, we had no way to package for the old versions (cherry-pick it is not trivial).
I guess the idea is keep the translations always up to date, but that's something we can't ask the translators to do because they mostly do this work on a voluntary basis.
I've given it some thought and (as weblate doesn't support different versions) the only thing I can think of is to have a second weblate against the LTS version... Is there any better solution?
Our team will keep the version we're on up to date (even if it's using the custom translations plugin), but it would be a shame if the work doesn't go back to the community.
I'm really interested to see how we can find a fit. If there is a sprint on this topic, is there a possibility to attend virtually?
@asmecher
Two Weblates are not a good solution, though; it means we'll have two competing versions of translations, which will be impossible to merge/reconcile.
@marcbria
I don't follow you Alec. 😅
One weblate will commit in "main" while the other installation will be setup to commit in "3.3-lts".
If the LTS is only modified with bug/security fixes and new translations, when would it compete with "main"?
@asmecher
I did pitch a discussion about this during the Finland sprint, and will probably try again in Bogota.
If I'm following what you're proposing, this would have 2 big downsides:
We'd have to maintain double the Weblate environment (not the end of the world but a pain when adding/removing/managing translation components)
It would require translators to translate each string twice, and for competing translations to end up in different branches, leading to degraded quality when moving from an LTS to a newer branch.
Beta Was this translation helpful? Give feedback.
All reactions