[General Topics] Menneisyys:
I’ve just received a question from one of my blog readers about how the built-in Web browser in the Pocket PC / Windows Mobile operating system, Pocket Internet Explorer (PIE) / Internet Explorer Mobile (IEM) can be configured to request pages in different language than US English if you use an English language Windows Mobile operating system.

As this question is a very interesting one and very few people have the necessary HTTP- and actual programming (let alone offering a proxy server for free that does the trick!)-level knowledge to answer this question, I’ve decided to write a complete article on it.

Unfortunately, modifying the regional setting in Settings/System/Regional Settings doesn’t change the “Accept-Language” HTTP header sent out to the Web server (it’s based on this HTTP request header that most HTTP servers – except for Google, which I’ll elaborate later –, if they have content in more than one language, decide what language they should return their content in) – not even in the latest WM5 AKU2, as can also be seen in this screenshot. I took the screenshot on a Dell Axim x51v with the latest, AKU2 A12 ROM, after setting the regional setting to Germany (and rebooting). It certainly shows IEM sends out requests telling the Web server that it prefers U.S. English pages, no matter what the operating system setting is.

As far as alternate browsers are concerned, NetFront 3.3 always sends out the ‘en-us’ language/country code and Opera 8.6 doesn’t send out any Accept-Language header at all (click the links to see the screenshots showing this!).

Needless to say, PIE/IEM plug-ins like PIEPlus, MultiIE or Spb Pocket Plus (click the links for the latest reviews!) can’t modify this header either.

Finally, IEM/PIE doesn’t store the language code in the Registry anywhere (tested with the latest, AKU2 ROM); neither under HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\ CurrentVersion\ Internet Settings nor under HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Internet Explorer.

Therefore, the only way to get pages in your own language is

selling your English device and buying one with the correct ROM, in the given language

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 (easilky 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 / Internet Explorer Mobile 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.

There may be other header-rewriting proxies out there if you don’t want to use my application.

Mailing the webmaster of the given webpage to do a dynamic country lookup depending on the client’s address. Say, if you have a Thai client IP address, you would receive a page with Thai content even if your Web client sent out an Accept-Language header of ‘en-us’. Many Web sites do so – for example, even Google.

Finally, you can also install the Paragon Language Extender if and only if you have a pre-WM5 device (never ever try to install the Language Extender on a WM5 device – I’ve tested it on the WM5 x51v; I had to hard reset). 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:

which is exactly what you wanted (that is, in this case, ‘de’ denotes I’ve installed the German extender; the screenshot also shows it has its own German-language dictionary).

Again, the Paragon Language Extender is only usable on pre-WM5 devices and the accessible languages are somewhat restricted (there is no, for example, Thai).