.po files (message translation files) for Squeak/OpenSmalltalk
I am checking the Squeak Wiki for Squeak localisation and adding this Github issue as a "Feature" as there is no bug here, as far as I can see.
For example Squeak in Russian : https://wiki.squeak.org/squeak/5773
or Squeak in Japanese : https://wiki.squeak.org/squeak/582
and efforts in the past for "Multilingual Squeak" such as: https://wiki.squeak.org/squeak/919
In the DrGeo package for mathematics/geometry , the DrGeo package is providing .po message translation files (or msgid, msgstr, xgettext etc.) so that the user interface is translated in Dutch (see screenshot).
The translation in Dutch for DrGeo is an advantage, the mathematical terminology is then as in a text book on mathematics in Dutch.
What about for the labels on buttons in the Monticello browser such as "Open Repository Type:" "Choose" and "Cancel". As far as I can see the labels on those buttons (of the Monticello browser) are not translated by the Locale plugin.
A lot of GNU software (and other UNIX software) is using Solaris message catalogues or GNU gettext message catalogues and .po portable object files for translation (and .mo message object files). The .mo object files are created by "msgfmt" from the .po files, for example for GNU awk, GNU make, GNU gettext-tools etc. but also for applications in GNOME or KDE.
Solaris message catalogs and GNU gettext message catalogs are discussed in the OpenGroup 'Single UNIX Specification' in "Additional APIs for the Base Specifications Issue 8, Part 2".
US ISBN 1-957866-06-2 Published 30 Nov 2022 Subject Single UNIX Specification
https://publications.opengroup.org/c228
In the case of Smalltalk the DrGeo Smalltalk applications supports GetText and Solaris message catalogues for localisation, but as far as I can see Cuis or Squeak themselves do not do this (maybe I am wrong here).
The feature request could be to provide messages in multiple languages via the message catalogue of the operating system.
In the case of DrGeo in LANG=de_BE.UTF-8 (the German language locale for Belgium) it provides buttons "Bearbeiten" "Abbrechen" "Löschen" and so on (translated user interface).
a lot of software on GNOME desktop or KDE (Plasma) desktop provides .po files for internationalisation of GNOME or KDE applications
As an example, the Scratch project (http://www.squeaksource.com/NuScratch.html) uses .po files and provided a large number of them for many languages including very much non-Latin/English ones.
On 2025-05-23, at 11:20 PM, dcstes via Vm-dev @.***> wrote:
dcstes left a comment (OpenSmalltalk/opensmalltalk-vm#718) a lot of software on GNOME desktop or KDE (Plasma) desktop provides .po files for internationalisation of GNOME or KDE applications
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.
Vm-dev mailing list -- @.*** To unsubscribe send an email to @.***
tim
tim Rowledge; @.***; http://www.rowledge.org/tim Useful Latin Phrases:- Magister Mundi sum! = I am the Master of the Universe!
NuScratch loads (succesfully) from SqueakMap catalog into a Squeak 5.2 image for me (but not into a 6.1 Squeak image) , provided I install first the ScratchSkin files from https://github.com/raspberrypi/scratch. SqueakMap catalog only distributes Smalltalk code, not any .po message translation files. Those must be obtained from some other location (such as from github or files.squeak.org).
I found .po files for Scratch 1.4 in the ScratchFoundation project : https://github.com/scratchfoundation/Scratch_1.4/
If I run the Scratch.image from that git repository using the Squeak classic VM for Squeak 4.6 or Squeak 4.2 (because Scratch asks for the SqueakV2.sources from https://files.squeak.org/2.0/SqueakV2.sources.gz), then Scratch is translated in various languages.
For example for the Dutch language it is using nl.po
Would this also work with the NuScratch project if I load it into either Squeak Classic VM or OpenSmalltalk VM using the 5.0 image ?
Indeed there is a fairly large list of .po (message translation files) for languages in Scratch for non Latin script (russian, korean, japanese, chinese, vietnamese and many others, I think). All of this is of course specifically for the Scratch project.
NuScratch used the exact same .po files.
On 2025-07-22, at 10:33 AM, dcstes via Vm-dev @.***> wrote:
dcstes left a comment (OpenSmalltalk/opensmalltalk-vm#718) I found .po files for Scratch 1.4 in the ScratchFoundation project : https://github.com/scratchfoundation/Scratch_1.4/
If I run the Scratch.image from that git repository using the Squeak classic VM for Squeak 4.6 or Squeak 4.2 (because Scratch asks for the SqueakV2.sources from https://files.squeak.org/2.0/SqueakV2.sources.gz), then Scratch is translated in various languages.
For example for the Dutch language it is using nl.po
Would this also work with the NuScratch project if I load it into either Squeak Classic VM or OpenSmalltalk VM using the 5.0 image ?
ScratchDutch.png (view on web) — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.
Vm-dev mailing list -- @.*** To unsubscribe send an email to @.***
tim
tim Rowledge; @.***; http://www.rowledge.org/tim Gotta run, the cat's caught in the printer.
NuScratch on OpenSmalltalk (just like Scratch 1.4 on Squeak Classic VM) also provides a translated userinterface, if I load NuScratch (from SqueakMap) into a Squeak 5.2 image. (version 382 from NuScratch). The method translationDir from the class ScratchTranslator insists on the location /usr/share/scratch for .po files so I modified the method. Also in the Scratch.ini file I set the homedir=/somepath variable to override the value that is set in labelForHomeFolder in ScratchFileChooserDialog. Scratch provides a translated interface in many languages (including many non Latin script). I have the impression that Scratch does not rely on LocalePlugin as it provides a user interface for selecting the language or allows the language to be set in the Scratch.ini file. It uses .po files but does not require .mo files and in fact many of the provided .po files (such as the Dutch or French .po file) have incorrect contents from the UNIX perspective. But those .po files can be read and updated by Scratch.
I changed the title of this issue, as I think Scratch shows that the use of .po files is independent of the LocalePlugin.
Almost certainly correct - I can't be certain after all this time without digging into the code. IIRC the translation stuff predates that in ordinary Squeak. It also expects to do the text rendering via the pango related plugins/libraries and so may not work on non-Pi platforms without more work. Though I'm reasonably certain we did make a functional package for the old x86 release of Raspberry Pi OS waaaaaay back when. (It's a great pity they decided not to keep that going since RPOS is so much less annoying than the terrible x/ubuntu I have to use right now)
On 2025-07-23, at 10:35 AM, dcstes via Vm-dev @.***> wrote:
dcstes left a comment (OpenSmalltalk/opensmalltalk-vm#718) I changed the title of this issue, as I think Scratch shows that the use of .po files is independent of the LocalePlugin.
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.
Vm-dev mailing list -- @.*** To unsubscribe send an email to @.***
tim
tim Rowledge; @.***; http://www.rowledge.org/tim Base 8 is just like base 10, if you are missing two fingers.