LinLocalize - The first Translation-Tool for multilingual Kylix-apps

What it is
LinLocalize is a translation tool for easy localization of your
Kylix apps.
Linlocalize extracts all embedded Kylix-resources (resourcestring and forms)
of an elf-file (executable or shared-onject file) and writes the translated
textes back to an shared-resource-file or standalone executable.
You only have to convert all hardcoded strings in your source-code to
resourcestrings.

Installation
Kylix must be installed on your system.
Untar the LinLocalize-archive and run "setupLL" in a shell. To start LinLocalize
execute "startLL".

Key Features 
-Easy translation and localization of Kylix-applications
-Resource-parser for embedded Kylix-resources (resourcestrings and forms)
-LinLocalize is available for free and with Kylix-source (GPL)
-Update-feature makes sure that only changes and additions need to be translated
-Generation of shared-resource-files or standalone-executables in different languages
-Use of existing translations
-Uses global and project-glossaries for automatic translation
-Glossaries for kylix runtime- and clx-strings included
-Checking-feature to assert translations
-The statistics feature calculates translation volume and project progress
-Filter-function for untranslated, translated and for review strings
-Find-function
-Export and import of textlists for external translation

How to get started
I recomment you to create the test-project in the menu File/Create test-project,
which will create a project with LinLocalize itself as source-file and two languages.
  To translate an application you have to create a new project. Select one or more
source-files and specify the language of the source-files. In most cases the languages of
all source-file will be identical.
Then you have to define your target-languages for example "de" for german.
In the project-view you see a structur like 
  sourcefile
     source-list
     translation-list language 1
     translation-list language 2.
If you first open a text-list it will be created. New or modified textes since the last
update will be marked blue. 
In the source-list you can hide textes or mark them as readonly. So they will appear in
the translation-list or will be readonly. Just double-click on a item in the text-list.
Then open a translation-list. All untranslated, new, changed textes are in red color,
readonly in gray and translated textes are black. Translated textes can be marked with 
"for review" and will be shown blue.
LinLocalize supports automatic-translation with glossaries. A glossary can contains two ore more
languages and is used like a dictionary. The automatic translation first looks in the same
translation-list for the same text already translated, then in the project-glossries in their
order and then in the global glossaries.
Glossaries for the Kylix-runtime and clx are included, so all the Kylix-specific textes like
exceptions, the message-dialog or the file-open-dialog will be translated with one mouseclick.
All the time you changed your source-file you have to update the source-list and the translation-lists,
already translated textes will remain unchanged. You only have to translate the untranslated, new and changed
textes. Therefore you can use the filter for example to show only all untranslated strings.
Textes in a form are identified by a unique id, resource-strings only have a number.
Kylix sometimes mixes the order of the resourcestrings when compiling an app, so after updating a textlist
they have different numbers and if they are already translated the translation will be lost.
Therefore I recomment to compile your source-file always with "rebuild all" so the strings are always
in the same order.
If you insert a new resourcestring ore remove one the ids will be mixed also. Therefore Its usefull to
export the translation-list to a glossary before updating the textlists. After the textlists are updated
you can auto-translate the strings using the glossary. Be sure to add the glossary to the glossary-list
of the project.
After translating the textes the target-files can be created. In the property-dialog for the
translation-list you can choose between shared-resource-file or standalone-executable and define
the target-filename.
If you start a Kylix-application it automatically looks for existing shared-resource-files to load
depending of the environment-variable "LANG". You can place several translations in the application-directory.
If LANG=de_DE it means de=german-language and DE=language-subcode.
Kylix will look for appname.de_DE in the same directory as the executabel and will load it automatically, if
it doesn't exist Kylix will look for appname.de in the same directory.
So I recomment to select always "de" instead of "de_DE" so the resource-files will be loaded for all
german-speaking countries like Austria="de_AT".
This package includes a german translation-file LinLocalize.de. If you have
a german linux-distro the german version will be loaded automatically.
If you don't have a german linux-distro and want to try it out, set the LANG-environment-variable
to "de_DE" or rename it to your language-code.

Jens Khner
for questions, comments and suggestion mail to kuehner@users.sourceforge.net
homepage:                    http://linlocalize.sourceforge.net
project-page on sourceforge: https://sourceforge.net/projects/linlocalize

Also have a look at xpde.com, the XP-like desktop-environment for linux written in Kylix.
