Katello 4.7.0 GA which is being built today and handed off to the release team, has translations in it finally
I’ve waited for another 3 weeks and updated my Katello/Foreman nightly only today.
Katello version I got is 4.8.0-0.1.pre.master.20221222225014git53b2a56.el8
However, Katello is still in English.
Was it only GA which got translation files or is there anything I have to know?
I am just getting back from being out for the holiday. I will add this to our sprint board and follow up shortly and see what went wrong.
Any news, please?
Starting to work on Katello 4.7.1 and will also make a translations PR to Katello master, so we can get the translations both in nightly so it carries over into Katello 4.8 and what was missing in 4.7.1
Just saw 4.7.1 released, so went ahead and updated my nightly too. Version I got is: 4.8.0-0.1.pre.master.20230116175840git3ef7613.el8
Did update, reboot and…
It’s still in English.
I think the problem is that we’re not compiling the .po file to .mo: I only see
locale/ka/katello.po but not any
locale/ka/LC_MESSAGES/katello.mo file. Not for any language. I also don’t see a task in RPM packaging to generate those.
I also looked at the various other Katello releases and none of the Katello 4.5, 4.6 or 4.7 RPMs contain any
This is something I noticed in more plugins: we don’t have a task to generate the
.mo files so many store them in git. However, generated files do not belong in version control. This is something we should add to packaging. I already created Bug #35789: Compile plugin .mo files during package build - Packaging - Foreman a while back, but this is really needed.
I compiled it manually and put it in LC_MESSAGES folder, reboot and…
Only 2 strings are in English, so I went ahead and grepped for other .po files. seems like there are 2 more:
this, which I also recompiled and put it both with .po file and in LC_MESSAGES dir and
Which has no ka.po in. Should it be pulled separately?
ops. Unfortunately, on screenshot there is foreman only which had Georgian even before.
I can provide katello screenshot with still English strings, if needed.
Sorry for inconvinience.
It’s actually been my pain point for the releases: getting everything properly translated. As you can see, even if there are translated strings it’s really crucial to get them into releases. That process is broken in a few places. This post it partly a brain dump of what I’m currently trying to fix.
So I came up with a script that uses pofilter to verify:
You can see I hardcoded a few languages, but changing that to just
ka should help you decide on what needs work.
First a bit of background about the steps:
- Developer extracts strings: update
locale/$DOMAIN.potso Transifex can pick up the new strings
- Translators translate strings into each language
- Developer pulls in updated translations
- Developer releases new version
- New version is packaged
So for every plugin (and Foreman itself) we need to do these steps. In State of translations - 3.5 you can see I did steps 1 and 3 for the plugins (using a script), but because they were at the same time there may not have been time for step 2. It may also be that step 4 hasn’t happened yet. For some the step 3 PRs are still open.
All in all this is a rabbit hole that’s deeper than I expected, but I still intend to find my way out.
We got more Georgian strings translated in Katello 4.7.1 so I am going to do the same on Master/nightly today as we prepare for Katello 4.8
Thanks for all the info. Will be testing it every now and then.
Just out of curiousity, is it me or releases happen more often then nightlies are compiled?
I’ve installed it just to have latest translations available (thought it’s done automatically, when package is being built) and I see releases more often.
There can certainly be more releases than nightly composes.
How it works is that for nightly packages we have: source release-> package release. So katello-master-source-release [Jenkins] will trigger after anything is merged to Katello’s git master branch (with some delay, so you don’t build twice if you merge multiple times within a few minutes). This then triggers katello-master-source-release [Jenkins] which actually builds the RPM.
This is then done for all packages with nightly releases. For all non-nightly packages it’s whatever is merged to GitHub - theforeman/foreman-packaging at rpm/develop that gets build using foreman-packaging-rpm-nightly-release [Jenkins].
Then once every day we run foreman-nightly-rpm-pipeline [Jenkins] (or more if we trigger it manually) which takes all the latest package versions and runs some automated tests on them. If they pass, the foreman repository is published (Index of /releases/nightly) and the katello pipeline triggered. That does the same thing using katello-nightly-rpm-pipeline [Jenkins] and Index of /katello/nightly.
That is is in a very brief overview how we manage our nightly builds. I also linked to RPMs, but for Debian packages it’s all very similar.
Any news, please?