Difference between revisions of "How to translate OpenJUMP into another language"

From OpenJUMP Wiki
Jump to navigation Jump to search
Line 7: Line 7:
  
 
;<span style="color:#FF0000">ATTENTION
 
;<span style="color:#FF0000">ATTENTION
:<span style="color:#FF0000">It's crucial that you use the latest snapshot. '''Only''' snapshots are packaged with the language files exposed in the ''/language'' folder.</span>
+
:<span style="color:#FF0000">It's crucial that you use the latest snapshot. '''Only snapshots''' are packaged with the language files exposed in the ''/language'' folder.</span>
  
 
=== Translation process ===
 
=== Translation process ===

Revision as of 11:35, 13 February 2013

The steps on how to translate OpenJUMP

This in an example for translation into Brazilian Portuguese.

NOTE
The steps below show the translation on the operating system windows. The steps however are pretty much generally the same for every operating system.
ATTENTION
It's crucial that you use the latest snapshot. Only snapshots are packaged with the language files exposed in the /language folder.

Translation process

  1. download
  2. extract
    • it contains a folder named like 'OpenJUMP-DATE-rREV-CORE' (called OJfolder in the further steps)
    • unpack it to a path of your choice, e.g. to 'C:\' should result in a folder structure like
    C:\OJfolder\bin\
    C:\OJfolder\lib\
    C:\OJfolder\licenses\
    C:\OJfolder\readme.txt
  3. set the language
    SKIP
    if your operating system is configured to use the language you want to translate OJ to you can skip this step (e.g. your Windows is portuguese and you want to edit OJ's portuguese translation)
    • edit the start script for your platform
    • locate the following lines in the file OJfolder\bin\oj_windows.bat, a similar line exists in oj_linux.sh for MacOS and Unix os's
     rem --- uncomment and change your language/country here to overwrite OS locale setting ---
     rem set JAVA_OPTS=%JAVA_OPTS% -Duser.language=de -Duser.country=DE
    • uncomment the line
    • add your language and optionally country code
     set JAVA_OPTS=%JAVA_OPTS% -Duser.language=pt -Duser.country=BR 
  4. extract the language files
    SKIP
    if using a current snapshots as they distribute the language/ folder already as described below. Be aware that this is not the case for stable releases, but they are not suggested for translation work anyway because they are probably missing changes of the development tree.
    • extract from 'OJfolder\lib\openjump-core-*.jar' (where * are nightly built specific name) only the folder language into 'OJfolder' resulting in a folder structure like
    C:\OJfolder\bin\
    C:\OJfolder\language\
    C:\OJfolder\lib\
    C:\OJfolder\licenses\
    C:\OJfolder\readme.txt
    NOTE that OJfolder/language/ contains lots of jump_<languagecode>_<countrycode>.properties files
  5. look in language folder for a file called "jump_pt_BR.properties" (or the language you want to add/edit). If it does not exist see #On new translations and come back here thereafter.
  6. open the file with your favorite editor and translate the strings
    HINT if it appears like one line of text try an editor that supports unix line breaks e.g. wordpad
  7. you will see that on left side is an identifier string while on the right side of the "=" (equal sign) is the translated text
    HINT new strings have a date line just before like [sstein 7 march 2007]
  8. when you are finished editing, save the file
    NOTE
    You should verify your changes by running OpenJUMP now as described in the next step.

Formatting message

Messages can use variables. For example :

  1. openjump.error = The layer {0} contains invalid features.

Note that in case a message contains variables (and only in this case), apostrophes must be doubled :

  1. openjump.error = L''attribut {0} existe déjà!


Verification

  1. start openjump with the start script for your platform
  2. check the translated strings

Release

  1. send me the modified properties file to sstein@geo(....) or
  2. to the development mailing list http://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

After adding it, the nightly built of the next day should include your translation. I hope that is detailed enough :o) If questions appear please don't hesitate to contact me (Stefan/sstein) or the mailing list.

On new translations

  • please simply make a copy of the file jump.properties file and rename the copy to your language abbreviation (e.g. the swedish one should be like: jump_se.properties)
  • translate everything
  • put the properties file into language folder

Problems with "special" characters (e.g. translation of asian languages or european accented characters)

Use an UTF-8 capable editor (notepad, notepad++, jEdit ...) to do the translation and save a UTF-8 text file eg. as jump_zh_HK-utf8.properties.

In a second step convert the whole file

Convert the utf-8 to unicode literals using native2ascii.exe (part of the java development kit, e.g. C:\Program Files\Java\jdk<version>\bin\native2ascii.exe
native2ascii.exe -encoding utf8 jump_zh_HK-utf8.properties jump_zh_HK.properties 

or

Convert via web service copy & paste from/to the text editor and save with encoding ISO-8859-1 (latin-1). To find online services use your favorite search engine with keywords like "online converter unicode literal" or "online escape unicode". Two examples at the time of writing [Apr.2012] include
http://www.htmlescape.net/javaescape_tool.html
http://www.snible.org/java2/uni2java.html

Useful tools

Attesoro

7zip

  • can be used to unpack jar files (which use the zip compression)
  • a graphical (un)packer utility
  • available for windows or unofficially for several other operating systems (see downloads page) at

jEdit

  • a java based text editor
  • support all major text encodings
  • mighty search and replace engine
  • get it at
  • If you use jEdit, you might want to download the macro called "Escape properties" on jEdit site.