a043342005-03-22Henrik Grubbström (Grubba) Translations for locally installed modules. HOWTO: 1) In your module file add the following code after the #include of <module.h>: //<locale-token project="myproject">LOCALE</locale-token> //<locale-token project="myproject">DLOCALE</locale-token> #define LOCALE(X,Y) _STR_LOCALE("myproject",X,Y) #define DLOCALE(X,Y) _DEF_LOCALE("myproject",X,Y) After the above definitions, you can use LOCALE(0, "String to localize") for strings that must be immediately translated, and DLOCALE(0, "String to localize") for strings that may have deferred translation (eg variable documentation). 2) Add the following lines to the beginning of create() in your module: Locale.register_project("myproject", combine_path(__FILE__, "../../translations/%L/myproject.xml")); Note: You need to specify the correct number of ../ to get to the translations directory. 3) Create a project description xml file in the configs directory specifying the files that are part of your module: <?xml version="1.0" encoding="iso-8859-1"?> <project name="myproject"> <nocopy /> <baselang>eng</baselang> <xmlpath>../local/translations/%L/myproject.xml</xmlpath> <file>../local/modules/myproject.pike</file> </project> Note: The file names are specified relative to the server directory. Note: The path specified in <xmlpath> must correspond to the one in register_project() above in step 2. Note: The directory for the language specified in <baselang> must exist before the next step. 4) Now you can actually generate the translation template files: make 5) To make an initial translation, copy the translation template file eng/myproject.xml to the appropriate language catalog. mkdir ger cp eng/myproject.xml ger Note: Language catalogs are named according to ISO 639-2/T. To get a list valid of ISO 639-2/T codes you can execute: ../../start --silent-start --program \ -e 'write("%O", Standards.ISO639_2.list_languages_t());' $Id: README,v 1.1 2005/03/22 19:18:24 grubba Exp $