- 2012-02-05 13:53:49 - part of checkin [6e0f3af7f1] on branch trunk - first release of MoManager: international translation creator for Puppy (user: BarryK )
HOWTO internationalize applications
Internationalization of applications and scripts in Puppy Linux is a work-in-progress.
Applications written in BaConBaCon 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:
Scripts internationalized with 'gettext'There are a lot of scripts in Puppy that use 'gettext' for translating. Here are some in /usr/sbin:
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:
...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 managerMoManager 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.