IMPORTANT NOTICE FOR FIRMWARE 5.1.0:
If you are running 5.1.0, DO NOT attempt the installation. If you are planning to update to 5.1.0, UNINSTALL the language pack and the locale settings enabler before updating. DO NOT REINSTALL AFTER THE UPDATE.

Unfortunately, this effort seems to have come to an end, at least for the time being. All initially active developers have switched their attention to other projects. However, this does not mean that internationalization/localization for newer firmware versions is impossible. In fact, all the required tools exist and are ready to use. The only thing that is needed is someone who is willing to spend some effort on this. All it takes is a little bit of initiative, but it seems like nobody is willing to do that.

Information on how to get your Kindle Touch localized can be found below.

Here are a few screenshots of a Kindle that was localized to german:

The following instructions are valid for Kindle Touch firmwares 5.0.0 - 5.0.4.

All language pack snapshots starting from February 13, 2012 are considered "stable" releases (in the sense that iff the chosen language is 100% correctly translated, your Kindle should be fully localized). Your mileage may still vary for individual languages, as described below.

Note: for the german localization (only!), there is also an all-in-one-installer which replaces steps 2.-5. below by a single one. See here for more information.

Install the locale settings enabler package. Note that this package is not strictly required, but strongly recommended. It enables an entry in the Kindle settings which allows you to easily customize the language. If you do not install this, then you will have to know how to use the command line on the device to change the language settings.

Install your favorite language pack. Daily automatically generated snapshots of all available languages can be found here (reaching back approximately 2 months, older versions may be deleted). These packages can be installed on all currently available Kindle Touch firmwares (5.0.0 - 5.0.4). Be aware that for some languages, translation is still work in progress, so localization may only be partial for your language (see more or less representative statistics). You might even experience crashes etc. You have been warned.

Some (but not all) language packs come with a localized set of default browser bookmarks. If you want to remove all browser bookmarks (thus resetting them to the default state provided by the language pack), install the bookmarks resetter. Note that bookmarks are reset to the ones provided by the currently active language, so only install this after you have switched languages.

To update a language pack: If BOTH the previous, and the current language pack are dated February 1 or newer, you can simply install the new package over the old one. If you have packages dated January 31 or older, please uninstall the packages using the original uninstallers (don't forget to also uninstall the now obsolete locale-base package!), then install as outlined above.

To uninstall a language pack, repeat the above steps in reverse order, using the respective uninstaller ("update_*_uninstall.bin) instead. For all packs created starting February 13, 2012, the uninstallers are compatible (in fact, identical), so you can use a newer uninstaller to uninstall an older translation pack, and vice versa. (Of course, you still have to use the correct uninstaller matching the language).

If you want to get involved in the translations:

Join all 4 subprojects at Transifex. Your language will only even be considered for the automatic snapshots if it exists in the "locale" subproject; merely adding it to the "framework" subproject is NOT enough.

Update the "dist" command to the newest version: wget -O /usr/local/bin/dist http://api2.ge.tt/0/9XeUvcC/31/blob/download. This needs to be done only once, and only if you're actually using the "dist" command, of course.

Get the latest version of the tools: cd /root/kindle-touch-l10n; git clean -f -d; git pull

Only then run the dist command as shown in the message (displayed after you log in).

Original Post:

Hi all,

I have been playing around with the K-Touch to see whether / how it can be localized to languages other than english. Even if it's officially only available in the US, I presume that there are other people out there who would want to see it localized.

I'm not quite at the point of releasing anything yet, but I think I figured out most of the required changes. They affect multiple parts of the system:
* "graphical" messages via blanket ("your kindle is booting","you are connected in USB drive mode" etc).: These are standard locale files (.mo), found in /usr/share/locale.
* Java subsystem: much, but not all, of the UI. Can be localized by dropping the relevant resource bundles into the classpath.
* Pillow (HTML/JS) subsystem: while the strings are nicely outsourced into /usr/share/webkit-1.0/pillow/strings/ , there doesn't seem to be a non-obtrusive way to add additional languages. Probably the best solution is to bind-mount a directory containing the localized strings.
* WAF Apps (Browser etc.): didn't look into these yet, but it would probably be similar to pillow.

The good news is that the K-Touch actually comes with localization facilities (even the UI part of selecting language and various keyboard layouts). These features are present in the code, but not activated. It only takes a slight patch to one class to activate them though. I'd post a screenshot of what it looks like, if only I knew how to make screenshots ;-)

So, anybody interested in this stuff? Any ideas for how the Javascript can be localized in the least intrusive way possible?