anytime_podcast_player icon indicating copy to clipboard operation
anytime_podcast_player copied to clipboard

Use Weblate for translations management

Open Chralu opened this issue 2 years ago • 6 comments

Describe the solution you'd like Translations management is tricky and many issues can occur.

  • Transations not reviewed
  • Translations not synchronized (https://github.com/amugofjava/anytime_podcast_player/pull/58)
  • Translating requires a (little) technical skill

I just gave a try to https://weblate.org, and I think it could be a huge help for translations management.

To me, the interesting features are :

  • Plugs directly to Git repository (PR mechanism builtin)
  • It's FOSS
  • Hosted version is free for FOSS
  • handles well arb files
  • simple UI for translators

@amugofjava If that's alright to you, I can setup a Weblate project to give it a try.

Chralu avatar Mar 14 '23 12:03 Chralu

Hi @Chralu,

I agree that translation management is tricky and Anytime relies on a fork of the original intl_translation package, but there is method in the madness.

By default, Anytimes uses the LocalisationsDelegate class to load localisations, but there is also an EmbeddedLocalisationsDelegate that allow specific translations for specific locales to be overridden. The idea here is that this allows third-parties who may wish to use Anytime as the basis of or within their own app to change translated strings. An example of this is the Breez app that takes Anytime as the basis of their own podcast player within their app.

I'm very happy to consider other solutions that will make translations easier, but we would need to maintain this override functionality. :+1:

amugofjava avatar Mar 17 '23 09:03 amugofjava

That's an interesting point indeed !

According to my tests, Weblate only updates *.arb files. So LocalizationDelegate generation remains the build pipeline responsability.

To be further tested...

Chralu avatar Mar 17 '23 12:03 Chralu

There exists a few translation services:

  • https://hosted.weblate.org/ from creator of the Weblate online platform that itself is FOSS. It has pre-moderation for FOSS projects. It doesn't offer free automatic translations, only the LibreTranslate that almost not working. But you can buy and integrate own API key to Google Translate, Yandex, DeepL, Baidu, etc. It will periodically send translations as a PR on the GitHub. It has large user base of translators.
  • https://translate.codeberg.org/ also based on Weblate, doesn't have a pre-moderation which is a plus. It can't send a PR on GitHub because they are competitors.
  • https://toolate.othing.xyz/ based on Weblate, no pre-moderation, can send a PR, has automatic translations from Baidu that gives good results. It's supported by F-Droid translators and hosted in Singapore.
  • https://Crowdin.com has pre-moderation for FOSS, has a better UI.
  • https://Transifex.com also popular because offers a free plan.
  • https://translations.launchpad.net/, https://Lokalize.com, https://PoEditor.com, https://fink.inlang.com/ maybe some other may be also good but less often used.

I created a translation project for you on the Toolate https://toolate.othing.xyz/projects/anytime-podcast/. You can translate the Android app strings and the app's description in F-Droid and PlayStore. Once a day it will collect all translations into one commit and send in a PR like the #148 with testing translation. You may merge the PR once before a release, or even pull the changes manually from the git.

If you are ok with the solution then I'll send you a PR to add the Toolate link to the README to help users to find it. Also if you are interested I can send you an invitation to become an admin of the translation project (needed sometimes to resolve merge conflicts).

yurtpage avatar May 24 '25 08:05 yurtpage

Thanks for the list. I'll take a look through the options, though it does look like Toolate could be a good solution.

amugofjava avatar May 29 '25 13:05 amugofjava

You may not worry too much because it's easy to switch these platforms or even use two simultaneously. The Toolate offers auto translation that helps a lot: sometimes it can be just accepted as is, but most of time needs for manual corrections.

yurtpage avatar May 29 '25 19:05 yurtpage

Please can you send me an admin invite @yurtpage, I would like to take a closer look at Toolate. You can send the invite to [email protected]. Thanks.

amugofjava avatar Jun 12 '25 06:06 amugofjava