Artifact Content
Not logged in

Artifact 60cd815002b4de659f1c37459b4974512793a015

HOWTO internationalize applications

Internationalization of applications and scripts in Puppy Linux is a work-in-progress.

Applications written in BaCon

BaCon is a BASIC compiler, one of our officially supported languages for Puppy development. Internationalization is supported by the compiler, as explained here:


There are at least two applications that you will find in every recent Puppy that are written in BaCon and have internationalization support:
If you have the 'devx' SFS loaded, then these will also be present:
/usr/sbin/welcome1stboot.pot /usr/sbin/welcome1stboot.pupdev /usr/local/simple_network_setup/proxy-setup.bac /usr/local/simple_network_setup/proxy-setup.pot
The .bac file is the BaCon source code. The .pot file is the language translation file. The .pupdev file is just a text file which has instructions on how to compile and do the language translation. The .pot and .pupdev are optional, not necessarily always in the 'devx' -- but if you read one of the .pupdev files it should show you how to create a language translation for any other BaCon application.

Scripts internationalized with 'gettext'

There are a lot of scripts in Puppy that use 'gettext' for translating. Here are some in /usr/sbin:
If you have the 'devx' SFS loaded, you will also find these in /usr/sbin:
...these are text files that explain how to do the internationalization. You can follow the instructions to translate the script to your own language. The instructions can also be applied to other scripts that use 'gettext'.

Scripts internationalized with 't12s'

This is a very fast technique pioneered by technosaurus and implemented for Puppy by L18L. See discussion in Puppy Forum:


Here is an example script that you will find in recent puppies:
Here are online instructions on how to use this technique to create a translation for your language:


...this relies upon the application /usr/sbin/t12s, a GUI app created by L18L. It requires the 'yad' package be installed, that is likely to be the case in recent puppies.

MoManager translation manager

MoManager is a GUI application written by me (Barry Kauler) that makes it very easy for anyone to create non-English translations for applications in Puppy. You must have a Puppy built from a Woof version later than February 6, 2012.

MoManager is for creating and updating translation files for scripts, XML files and menu files. Scripts are applications that are text files, usually written in Bash or Ash. The first release of MoManager only handles scripts, specifically, scripts that employ the 'gettext' method of translation -- stay tuned for enhancements.

Note, if you are unfamiliar with 'scripts', don't worry, they are just applications.

To use MoManager, the best thing to do is just go ahead and use it. You will find it in the 'Utility' menu. Once started, you will see two drop-down lists of scripts, one list is of scripts that already have a translation file for your language, the other list is for scripts that do not yet have a translation file. if you select a file from the former list, you may update the translation, and in the latter case you may create a new translation file.

Note that in the case of updating an existing translation file, MoManager automatically synchronises with the latest script, and will identify any changed strings -- if you see the text "fuzzy" anywhere in the translation file, it is likely that the original English text has changed and you will need to update the translation.

A translation file for a script means that when the application runs, it will output all text in your language. By creating translation files for all the scripts, you can help to create a Puppy that runs nicely in your language -- and by sending the translation files to me, I can put them into Woof for all future builds of Puppy.

Although it is probably possible to figure out how to edit a translation file, known as a 'po' file in it's editable form, or 'mo' file in it's compiled form, it is helpful to readup a bit on the topic. I suggest:

...note though, reading all of that can be confusing! It is possible to use MoManager without understanding all of those details. MoManager uses a normal text editor to edit po files rather than a specialized po-editor (such as poedit) and this is quite easy to do, you just need a very basic understanding of the format of po files.

Barry Kauler