site  contact  subhomenews

Non-English builds of EasyOS

January 08, 2019 — BarryK

I have wanted to do this for years!

Puppy Linux has "langpacks", PET packages named like 'langpack_de-20150419.pet', for the case of a German (de) langpack.

What happens, is you would boot the English Puppy, then choose an appropriate locale, then install an appropriate langpack.

That's OK, however, there is a better way. It is possible to build specific non-English distributions in Woof. Or rather, it can be done with some modifications, mostly to the '3buildeasydistro' script in WoofE (my fork of Woof for building EasyOS).

The advantage of doing it this way is two-fold. Firstly, the '2createpackages' script in Woof extracts all of the translation files as <packagename>_NLS from the original binary packages. These are not included in the build, due to the size. However, a specific language, say 'de' or 'de_*', could be extracted and included in the build.

Also, an appropriate langpack, if it exists, can be included in the build.

So, we have just about everything translated. The second aspect is that the build is ready-to-go in that language, nothing to do.

So, I have done it. WoofE can now build for any language you choose. I have done a 'de' build. I built 'easy-0.9.18-de-amd64.img.gz', and very interesting, it is 8MB bigger than the English build, so there are a lot of de translation files in there! Wrote it to a USB stick and booted:

img1

...this is the reFind boot mamaner menu. See those two "??" -- that is because reFind cannot display UTF-8 characters. We need to do some research on how Syslinux and reFind boot menus can display non-English characters.

Also, some text, for example "Reboot Computer" is built into the refind binary. That also needs to be researched.

After choosing "normales bootup", the init script in the 'initrd' will execute:

img2

...UTF-8 characters now display OK. I do need to give some attention to the different lengths of the background colours.

Then there is a desktop:

img3

...everything is translated, including most apps.

Notice some English strings in QuickSetup. This is due to using an old /usr/share/locale/de/LC_MESSAGES/quicksetup.mo.

Also, the 'de' langpack is dated 20150419, very old. With this 'de' build, it will be very easy to update the langpack. Just run MoManager from the Utility menu, and it is pretty straightforward. You will be able to create updates for particular menus or apps, or even create a new langpack.

I am thinking of releasing several language-specific builds of EasyOS, and everyone will be invited to contribute to updating the translations.

Note that the Utility menu has two entries for MoManager:

MoManager create non-English EasyOS
MoManager translation manager, old version

They are, respectively, /usr/sbin/momanager and /usr/sbin/momanager0. The latter is an older version. I currently use the older version, as it has some fixes for EasyOS. Lutz (Puppy Forum member L18L), has contributed to both, and has put many enhancements into the later version.

We are just getting into non-English support in EasyOS, and most likely Lutz will checkout the later version and make sure it runs well in EasyOS.

Note also, the langpacks in the 'noarch' PET repository all come from Puppy and Quirky Linux days. These are expected to be updated to work nicely in EasyOS. 

Tags: easy