easy.sfs internationalized, langpack PETs abandoned
Right from the early days of Puppy, we tried to keep the puppy*.sfs file as small as possible. We hoped for it to be small enough to load into RAM at bootup, and back in the day, there wasn't much RAM. One strategy to keep the SFS small was for it to be English-only, with translations for a particular language in PET packages -- these PETs were named "langpacks".
Quirky Linux and now EasyOS have kept this langpack method. In
woofQ have built French and German image files with the langpack
builtin. Until now, with the upcoming Kirkstone-series; there will
only be one image file to download, no langpacks.
easy.sfs is big, as have kept the Puppy tradition of building with the "kitchen sink" included; that is, just about every package you will need builtin. Including translations for all languages in easy.sfs will make it a lot bigger.
I conducted an experiment in woofQ, built a 'nls.sfs' with all translations, and it is 189MB with squashfs zstd compression.
I was considering shipping EasyOS with a 'nls.sfs' file with all
translations, so a kind of "super langpack". You would download
this separately and include it in the SFS layers and hence have
translations. However, there are many complications with that
approach, so decided to go for simplicity; all translations
builtin to easy.sfs.
Hmmm, don't want to add that much bloat to easy.sfs. So, decided
on a compromise; support a subset of the translations. EasyOS has
a small number of users, as far as I know only requiring languages
that have the latin or cyrillic character sets. I created a new
variable, BUILD_SUPPORT_LANGS, in the 'build-choices' file. You
will find this file in a running EasyOS at /root/.packages
BUILD_SUPPORT_LANGS='bg:Bulgarian cs:Czech da:Danish de:German
el:Greek en:English es:Spanish et:Estonian fi:Finnish fr:French
hr:Croatian hu:Hungarian is:Icelandic it:Italian lt:Lithuanian
lv:Latvian mk:Macedonian nl:Dutch no:Norwegian pl:Polish
pt:Portuguese ro:Romanian ru:Russian sk:Slovak sl:Slovenian
sq:Albanian sr:Serbian sv:Swedish tr:Turkish uk:Ukrainian
uz:Uzbek'
If this variable is set, woofQ now builds easy.sfs with translations for all of these languages builtin. This includes the country-variants, such as es_ES, es_AR, es_BO, etc., -- if such translations exist.
'easy.sfs' is now 728MB, with zstd compression. Yeah, can live with that, given how it simplifies international language support.
The most recent github commits for this:
https://github.com/bkauler/woofq/commit/a75113e7f759736c9e8c745aa5e2309c88269da2
I posted recently that the locale is now asked at first bootup:
- Bringing back run GTK apps in the initrd — January 23, 2023
- First
bootup 2-letter language asked in initrd — January 13, 2023
...that first window will need to have English text, but thereafter everything should be translated, according to choice made.
Of course, if there is interest for another language to be added
to BUILD_SUPPORT_LANGS, it can be done.
There is still a lot of work to do before the Kirkstone-series
can be released.
Tags: easy