[General Topics] Menneisyys:
What about Thunderhawk?

Thunderhawk also sends out the english-by-default header. Unfortunately, it can't be modified in the Settings dialog, it doesn't take into account the PIE/IEM registry setting and, as Thunderhawk doesn't let you use proxy servers, you can't use external proxy servers either to modify this header. This means it's fully impossible to change the language preferences using Thunderhawk, as opposed to all the other browsers.

What about Minimo?

The (as of writing) latest (08-27-2006) Minimo nighly build offers seamless Accept-Language definition capabilities.

While it doesn't use the PIE/IEM registry value for overriding its setting, you can easily modify the header. To do this, enter the “about:config” URL in the address bar. You’ll be taken into the preference list screen. There, just enter ‘lang’ in the Filter field and, then, you’ll be taken right away to the intl.accept_languages property as can also be seen in this screenshot. Double-click intl.accept_languages and edit the value as you find it OK and press Enter. Then, in the config list, “default” will change to ‘user’ and the headers will indeed be correctly sent out.

Paragon Language Extender

Paragon Language Extender is a well-known language changer application (including HTTP request modifying capabilities) for all Pocket PC (and Handheld / Palm-size) operating systems prior to WM5 (there is no WM5 version and never ever try to install the Language Extender on a WM5 device – I’ve tested it on the WM5 Dell Axim x51v; I had to hard reset).

Among other things, WM2003+ versions of the Paragon Language Extender also support dynamic language change as can be seen for example in here:

In this case, ‘de’ denotes I’ve installed the German extender; the screenshot also shows it has its own German-language dictionary.

Interestingly, the Paragon Extender doesn’t create HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage. It does “sit on” the operating system and inserts its own Accept-Language header into the outgoing PIE requests. (Note that if you do create HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage by hand, it’ll override that of Paragon).

Note that there are two major versions of Paragon Lang. Extender: and old, PPC2k/PPC2k2-compatible, 4.23 version still available for non-major languages (that is, not available for, say, German or French but available for, say, Finnish, Bulgarian or Arabic) and a new, WM2003/WM2003SE version (the latter is build 4710 for for example Finnish). Unfortunately, the former does NOT make the PPC2k2 PIE send out the correct header. That is, it’s not possible to make the Pocket PC 2002 PIE to send out the correct request with either using Paragon Lang. Extender or, as we’ve already seen, by directly overwriting HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage.

Finally, in WM2003SE, the Paragon app is not recommended over the “traditional” way of overwriting HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage – it's an overkill and I only recommend it for “plain” request language modification if you need its other capabilities too.

Note that if you don’t need your device to be fully translated, you won’t need to install the full version – the second, Compact setup (as can also be seen in here) will do just fine. The results after the setup will be as follows:

What can I do if I want to browse the Web with a Pocket PC 2002 / WM2003 PIE or with Opera Mobile / NetFront?

You have two choices.

if you have the capability of running a proxy server somewhere (even on your Pocket PC PDA with a suitable Java Virtual Machine (please read this article and search my blog for the word 'Java' for more info) - after all, it's multiplatform); for example, on a 24/7 online desktop PC,

with a client that can be configured to use an external HTTP proxy (in this regard, Thunderhawk is disqualified) and does send out the Accept-Language header (in this case, NetFront), you'll need to use an external proxy server to change the language code sent out to another one before sending the request further, to the target Web server. If you have a Java Virtual Machine (easily downloadable from here - select 'Java Runtime Environment (JRE) 5.0 Update X'), I’ve written an easily modifiable, open-source (source here) HTTP proxy server available here. You will only need to start it with the command

java HTTPProxyAcceptsLangHeaderRewrite portnumber languagecode

if you have a JRE (I’ve compiled the class with JDK 1.3, so, any JRE will do) installed on your PC (again, you can get it at the above-linked Sun page).

For example, the command

java HTTPProxyAcceptsLangHeaderRewrite 8080 cool-eh

will result in the following response from http://www.proxydetect.com/ (after you correctly set up your Pocket Internet Explorer / NetFront browser to use the proxy - please see for example this article on doing so):

This shows that indeed the (of course non-existing) ‘cool-eh’ language code was sent to the server.

If you, on the other hand, have a proxy-configurable client that does not send out the Accept-Language header (the case with PPC2k2 PIE and Opera Mobile), you’ll need to explicitly add the header to the headers relayed to the HTTP server. To do so, you'll need this Java class file (source here). Its usage is exactly the same as with the previous bullet.