• Devi18n
  • Simplify translation process with Weblate

I updated Weblate instance to version 3.9 (from 3.7.1). It brings improvements and new features but above all it improves performance of some views, so interface should be a lot more responsive.

Also, some time ago I created basic FAQ about this project and fixed description in README.

3 months later

A couple of new features and improvements have been added in last week:

  1. Script for fetching new strings from extensions was updated to prefer stable releases over branches. It turns out that it is pretty common for extensions to make some backward-incompatible changes in master branch and never release it. Since now there should be no situations where translations were adjusted for an unreleased version of extension, which makes them incompatible with last stable release. New strings still will be fetched from default branch as long they're not conflicting with stable release.
  2. I created command to generate releases. It generates changelog entry, publishes release (following semver) on GitHub and generates an announcement for forum discussion. You can see example for Polish language pack: template, changelog, release, and discussion on the forum.
  3. I added pages with translation status - list of extensions ordered by a number of monthly downloads (see example for Polish). It should help to decide which extensions are the most popular and should be translated first.
  4. Subsplit command no longer adds English fallback for missing translations - since flarum/core1961 was merged, it should be no longer needed in next version of Flarum.
    23 days later

    rob006 I added pages with translation status - list of extensions ordered by a number of monthly downloads (see example for Polish). It should help to decide which extensions are the most popular and should be translated first.

    Since now these pages display trends - script compares current download stats with stats from last week and add badges with differences. Since badges are images (GitHub limitation) it could take w while to load the whole page.

    3 months later
    9 days later
    11 days later
    17 days later

    Minor change - all translations are now handled by single Weblate project (previously there were separate projects for core, FoF and community extensions). It should make navigation and searching easier.

    6 months later

    Really cool, why didn't this popup in my front page earlier?

    A while ago, I had the same idea - make Flarum translations easier using some interface... But I couldn't do it alone, and yours looks great!

    Such tool definitely needs more attention! Could this work as a webpage? My idea was to create a web interface with a bunch of translation files and languages where everyone can contribute (something like Crowdin)

      tolgaaaltas Do you think to update your Weblate? v4 looks really good.

      I will definitely update at some point, but right now this is far more complicated than just upgrading Weblate. I have a lot of stuff on this server and it is kind of like a chain reaction where upgrading Weblate will require upgrading server version, which will require upgrading other apps installed on this server. Still I hope I will be able to do this in first half of 2021.

      SKevo Could this work as a webpage? My idea was to create a web interface with a bunch of translation files and languages where everyone can contribute (something like Crowdin)

      What do you mean? Weblate already works like a web interface where people can contribute.

        rob006 never used it so I didn't know, sorry. I just read your discussion 😛

        a month later

        Since today new feature is available for translation status summary (example for Polish) - I've added compatibility indicator. It is based on constraint for flarum/core in composer.json and recognizes 3 states:

        • 🟢 - compatible: it is compatible with last 2 releases of Flarum and incompatible with release before last "big BC break" (like beta 13). This is usually extension under active support.
        • 🟡 - unknown: it is compatible with last 2 releases of Flarum, but also compatible with release before last "big BC break" (like beta 13). While extension may work in such case, it is usual abandoned extension with too wide constraint for flarum/core (like ^0.1.0-beta.8), so while you can install it with recent Flarum, it may not work.
        • 🔴 - incompatible: This extension can't be even installed with recent Flarum due to upper bound in constraint for flarum/core (like>=0.1.0-beta.10 <0.1.0-beta.14).

        Now it should be easier to decide what extension may not be worth to translate.

        In next 1-2 weeks I plan to remove most of incompatible extensions (🔴) and some of probably incompatible (🟡) with low number of installations. I will share list of affected extension few days before actual removal.

          12 days later
          8 days later

          askvortsov You would need to split document to smaller translatable parts and put into format recognized by Weblate. There are tools for that (like po4a), but I'm not sure how reliable they are - you would need to test it on actual documentation to spot any problems. So while it is possible, Weblate itself does not support this usecase and there may be better tools for translating documentation.

          2 months later

          Some "news":

          1. I finally improved docs for this project:

            • I created separate page describing benefits of using this project for your language pack.
            • I finally created description how to integrate language pack with Weblate.
            • Today I published template for language pack, which should simplify creating new language packs.
          2. So far 10 languages is using this project for maintaining their language packs.

          3. Currently, almost 200 extensions are supported.

          14 days later

          Just a reminder that upcoming Flarum 1.0.0 introduces breaking change in pluralization syntax used in translations. Some extensions already released new versions targeting Flarum 1.0.0 and using new ICU syntax for translations, and Weblate fetched these new releases (it always picks newest release). So you need to be careful and NOT translate these phrases if you still want to support beta 16 release in your language pack (there is probably like 1-2 weeks to 1.0.0 release and new extensions are released targeting beta 16, so cutting off 0.1.x line may be premature right now). If you want to target 1.0.0 and translate all new extensions, remember to update constraints in composer.json of your language pack to "flarum/core": "^1.0", so people on beta 16 will not install new version of your language pack with incompatible syntax.

          AFAIK right now there are only 3 extensions with translations changes targeting 1.0.0 - I suggest to ignore them for now if you want to support beta 16 (it should be fine, since beta 16 users cannot install them, and 1.0.0 was not released, so there are no users that would need translations for them):

          6 days later

          @rob006 i'm about to finish the language pack for 1.0. and i have a question for you.

          i need to create a new tag for the 1.0 version of course, but weblate can handle the new translations changes?