Day 3 - Translation - Technology
Did you go out and purchase a VZ-90, but now the Japanese UI is getting on your nerves, because you don't understand it at all?
How about changing some of the programs to have partial English menus, forms and other strings ?
This article ("Day 3") covers some of the technology and techniques for translation. The "Day 4" article includes some of the results, and other advice for making a "good enough" translated Japanese device.
Background: How programs are built
The standard recommended way of building PalmOS applications is to separate the program code from the language specific user interface (strings, menus, forms etc).
This is done by placing the user interface parts in resources which can be edited using standard resource editors. Usually the language specific resources are stored in the same .PRC as the rest of the program. Sometimes the language specific resources are stored separately in an overlay file (common for some system parts).
There are other ways that some programs are built that don't follow this model (eg: hard coded strings, or application specific string database file). Since these are non-standard and relatively rare, I won't discuss them further in this article.
Issue: Duplication / Copyright
When translating menus and other strings, there is the problem of duplicating other (non-string) parts.
This duplication does eat up memory (program storage RAM), but for most programs, this is not a problem. Also the VZ90 has lots of storage RAM to fill up (compared to past CLIE models ;-)
BTW: posting the resulting translated programs is potentially a copyright violation (depending on what else is included besides the translated strings). A light gray are of piracy as I call it.
Chapter 2: the lazy approach - live with it
If you have spent the $$$ on a VZ90, I assume it is not your first PalmOS PDA. You can generally 'figure out' the Japanese user interface for many programs because the programs are very similar to their English counterparts.
For Japanese programs you don't use/need, you can hide them with SharkROM.
Chapter 3: How to translate: the lazy approach - find the same version on an English CLIE
The absolute easiest way to translate your CLIE is to find the same program on an English language CLIE and copy it over to the VZ90. Then run it and see if it works acceptably.
This is a good approach for the standard built-in apps (eg: ToDo, MemoPad, Address Book, etc). The best match for many programs is the UX40/50, since it has a landscape orientation. However for most of the simple built-in apps are the same for all recent PalmOS devices (ie. they run 320x320).
Sometimes copying the English program over will not run because of model differeces or other problems. Sometimes it runs mostly in English, but some things will remain in Japanese (usually parts of the user interface provided by the system).
Chapter 4: How to translate: the lazy approach - find a 3rd party alternative
For more complicated programs, it is sometimes easier to install a 3rd party English version you are familar with.
For example, instead of worrying about translating the CLIEFiles and CardInfo utilities, I just use the English version of FileZ (free).
Similarly there are English replacement apps for many common system utilities, including big ones like NetFront, PicSelViewer and Organizer.
Chapter 5: How to translate: RsrcEdit Technique (on VZ90 itself)
If the lazy approaches listed above don't work for you, then you have to do a true translation.
The most direct way is to edit the resources in the program yourself, on the CLIE itself, using the RsrcEdit Palm program: http://www.palmblvd.com/software/pc...15-palm-pc.html
This works well if you have an application with a small number of strings, and you have a general idea what the Japanese program does.
Find the program you wish to translate, usually found in ROM.
Make a duplicate of it, now in RAM.
Edit the resources of the RAM copy.
Run that modified version of the program
(sometimes a soft reset is needed)
Repeat until you are happy with your new English translation.
Note: this is not a good answer for apps with many strings or if you don't understand the original Japanese app well enough to translate the strings.
Chapter 6: How to translate: PC technique and batch processing
For heavy-duty translation, the best way is to use a dictionary lookup of strings or other batch processing.
The process goes something like this:
a) copy the .PRC you wish to translate from the CLIE to your PC
b) dump the translatable resources (forms, strings, menus, etc) into a text readable form (eg: using prc2pilrc or other tools)
c) lookup the Japanese strings and replace with English strings (from a dictionary or other source)
d) re-compile the translated resource (now English)
e) merge with the original .prc (for the non-language parts)
f) install that modified .prc on your CLIE
NOTE: this approach changes the strings only, it does not adjust the location of text and controls in a form. Therefore in many cases, the English string should be the same length or shorter than the original Japanese string.
I won't go into the gorry detail in this article, but it does automate a lot of the more tedious translation. It also allows you to tweek the user interface in more detailed ways.
For example: copying over the English UX50 General Prefs panel user interface solves 99% of the problems. What is missing is the last color theme ("Black") that is unique to the VZ90. With a little resource editing this extra item can be added.
The harder part is knowing what the strings should be translated to.
I don't understand Japanese, and an automatic translation process is fastest.
Translation software can do a credible job of longer strings.
Translation software usually does a poor job on shorter strings. If the translated string is too large, it won't fit in the space
Fortunately you can get the best of both worlds, using existing PalmOS E<->J translations for many standard things (including short strings like those in menus and on buttons) and automatic translation for longer strings.
As mentioned, the resulting .prcs may contain significant copyrighted material (by Sony, PalmSource or whoever wrote the program) in addition to the translated strings.
Chapter 7: How to translate: standard overlay resources
The standard Prefs panel, Security, Calculator etc use an overlay technique.
The user interface resources are stored in a separate .PRC (eg: Boot_jpJP for the Japanese version, Boot_enUS for the US English version)
The technique for translation is the same as 'Chapter 6', with the added advantage there isn't an extra copy of the language independent code and data.
For many of the Prefs panels, I simply tweeked a few values in the UX50 versions and they work great on the VZ90.
That covers a lot of technical problems, intentionally glossed over.
Please check out "Day 4" report (to be posted soon) for the result of my translation.
It changes many of the commonly used core system features, and gives advice on how to live with the remaining Japanese parts.
I call this a "good enough" translation. More elaborate translations are possible, if you don't want to use the "lazy" techniques mentioned above (copying over English apps, or living with Japanese for some things).