The state of F-Droid translations
Strings in the English Android client leave much to be desired, and are in some part erroneous. Attempted correction didn’t go so well.
Curiously this means users of the English version of F-Droid ideally get a sub-par product,
compared to the initiative of any prospective translator.
There is a policy in place for translation of components; one of thinking that if a certain threshold of completeness is met, measured in string existence, by the total of strings.
If any translation of the F-Droid client sees the 100% mark, it is deemed ready for every respective user thereof.
The string-base for the client is not that big, nor complex, and has good coverage in many languages, included with every download. Nobody knows for sure how actually good any of these translations are, unless having checked the whole thing themselves, staying on top of any alerts of changes. Even then, still pretty much as good a product as any single translator. Per reviewer review status is how to improve here, that is a matter for Weblate to implement.
The second problem is with employing that same arbitrary % policy for other components.
Other components range from small and neat, to large and bloated. Most of which belong to the collective website.
A lot of users will find no consistency between the coverage in the
most important component, the client, and the landing page of that website,
which leaves the paradoxical conundrum of where to get the idea from.
In actual fact it is somewhat down to the landing page not being translated. Rather because inclusion of a language onto the landing page, is subject to having coverage for many of the components on it. So translations do actually exist, just not anywhere that anyone would see them. To the contrary, German being the only language with 100% coverage, has managed to make work of the component that has all the blog-posts in it.
For smaller languages, the biggest impact lies in fixing the source strings.
That goes both ways. Any one translator can meet a bigger audience this way, and the bigger language efforts could help the smaller ones.
In terms of Internet presence, one of those is Shona. I dare say speakers of
Shona, the language, are not spoilt for choice when it comes to resources available in Shona, the language. To my knowledge there is just one translator.
I see the progress bar for Shona just sitting there. I don’t know if that is enough to get into the client.
What is a considerable amount of all the material in Shona available in any program.is just, there… That is one of the saddest things in F-Droid, especially for adoption.
I wonder what goes into a policy that says blog-posts dating back to however many one needs to translate to meet a percentage is a credible metric for holding back inclusion on the landing page, when the client isn’t in the same translate-wall.
If you like Norwegian Bokmål, get ready for 1052 strings, amounting to 9817 words for your viewing pleasure, available exclusively on the translation platform…
There are a lot more where those came from, most of which through no fault of their own, are marked “needs review” because there is an error in the source string.
I think imposing the 100%-bar encourages translators not to leave “needs work” checked, so you could argue the only meaningful tool to getting it out there, while pragmatically fixing issues, be it in source or translation, is not used. Downfall of the commons.
It could be easier marking source as “needs work” in Weblate, and the issue is being tackled.
My thinking is that it is downright counterproductive to enact the same
flat inclusion policy down for all languages. If a mere 5 strings are translated, that makes it possible to navigate between categories in the F-Droid client for someone who only speaks the one language.
That could be the difference between a user feeling confident enough to use it, and never seeing the software again. If it ever got to that, presumably from a landing page they can’t read either.
The different components have various policies beyond that, most of which is now available as an announcement in the actual translation platform.
For every translator F-Droid can get through the process of translation, there are prospective users. Very much relative to the size of the effort. More is unproblematic, and fewer can eat their own dogfood. If it can get done in Shona, which lacks words for much of what goes on, it can get done in any language. Being able to complain about it is about all the effort needed to do something about it.
Putting eyeballs onto the source strings thus is a process of action, and iterative grinding. Over time the threshold of its doing diminishes greatly. For this to happen, a lot of feedback-loops can amplify positive effort into greater results.
Those eyeballs are needed. One very cool thing is the “Translation” field, a little link in the description for each app on F-Droid for where to find the translation platform it is localized on. So far I have only seen it used for F-Droid in F-Droid.
From there one is bound to see the source strings, and they could get a lot better.
Right now it seems sending fixes for the short summaries, for some reason called “Data” in Weblate, is accepted.
Translation is ramping up too.
Hoping to see all apps available, not just 700 of them. Communication between translators has gotten a lot better by being able to mention people by name on Weblate. Links to source code is extremely useful.
Editing markdown is a new addition to Weblate, courtesy of the effort of Hans of F-Droid securing funds, and nijel of Weblate landing support. Fastlane support makes it possible to edit metadata for Android apps. F-Droid translators got to cut their teeth on very fresh code, and I messed up in having them do it twice. The max. length restriction still makes it sometimes impossible to do.
The sticking point is editing source strings. For some components it can be done directly, but not all. As the direct functionality is new, and has shown itself very beneficial to the source stringbase of for example F-Droid’s new Repomaker, one might ask why 10 years down the road of F-Droid, the same can’t be said for components that actually have been around as long?
The meta of time in memoriam will find me blogging a complaint about about a blog here.
The F-Droid blog does a lot to highlight other good features of libre software, but ends up hurting itself.
If you find an error in any of the F-Droid blog-posts, which all told is very hard to avoid, there is no fixing them. Even if taking to Git to submit a patch. Rejection is policy. Supported by a mindful in bewilderment of uncompelling logic. This is decided by one person, though happily contested by at-least two.
If there is procurement of usage metrics, why not get a firm number of how many read blog posts older than the 10 most recent? Some irony was avoided in making sure the most 2 recent ones were actually published.
The mere requirement for translation coverage across components to be offered a language in the drop-down menu of the website, is very daunting. Why additionally grind through the process for a few users to see in a small language, when the same capabilities could be put to use for English? Why not take advantage of the bigger efforts to at-least make it a bit easier to do? If English isn’t going to see any work, why not instead make sure as few people as possible see any of it?
Translating while using Git is clunky. All translation is done on Weblate, so using Git to do the related fixing of generational errors, is only for the components that need it.
However hopefully, though unlikely to happen; it is all down to policy, not effort, nor patches available.
It seems having a high bar on translations ensures quality translations, but
as far as quality goes, it is quite arbitrary, and functions on the technicality of ensuring no non-quality translations make it in, because no translations for smaller efforts make it in.
Ensuring your language has all components in F-Droid available for translation, is first looking at the English list of components, and then going about clicking each one of the missing ones in the translated language, to issue a request for adding the language component. Not really what anyone wants to wait around for when ready to do the work.
I know it doesn’t work, because not even all the languages that are included on the website have all the components.
As you might imagine, with new components this didn’t happen either, even for languages that are included on the website. How would anyone know if a component was silently added, after the effort looked as if it was completed? This can be solved by future change to how notifications work in Weblate. Notifications and announcements just got a whole lot better there, but I still can’t get my head around how notifications work for GitLab, where the source code of F-Droid is hosted.
Adding those components is done manually, by the same person who decides policy, and largely runs the back-end translation effort. For that I am grateful.
The plugin to do this same thing automatically breaks the staging page, and
various other things. This I regrettably know having done it thinking it was OK to do.
The staging page is nice if you want to see your translation, or show someone a semi-official translated site.
The real website got better just recently, as someone fixed the bug where selecting one particular language from the drop-down menu, meant others vanished from the list.
It Would be interesting to find out how many apps have it. Seems like something that could be added by anyone wanting to help.
From this, as of now still open MR, we find the .spelling file needs entries. One of which should be “Git”, and the names projects use. The latter alone is fine. There should be no doublespaces, as it pollutes the Weblate TM corpus.
As you may know, the “Latest” tab is now a manipulated feed. One of the requirements to enjoy the carousel is to have some translations, which is good, but I don’t know how I feel about it. More should be done to detail the process of setting up translation for app developers. Let’s write a guide?
Would love to be wrong on the Internet, join the discussion, and get to translating F-Droid @ Hosted Weblate
If this instalment proves beneficial, I can also do one on the state of design. Stay busy wonderful people of F-Droid
TL;DR
Right now translation of F-Droid all amounts to a curious, and solvable concoction of considering what I imagine to be professionalism for its own sake, the current possible trend over future end result, and lack of developer time. Fixing the groundwork will set things into motion. This sentiment is encouraging. A lot more translator time could certainly be unlocked, enticed, and just put to better use.
Like everyone learning to row, without sticking an oar in the water, when we are all in the same boat, taking commands from a captain below deck.