Attention: This site is an archive of my previous blog at agro1986.wordpress.com, which is now closed. Thank you for your support visiting the Singularity all these year. I have decided to get serious in blogging, so some refactoring were made. As a result, the Singularity was torn apart into various blogs. Please visit my new blogs below (en means in English, id means in Indonesian):

  • Aguro (en): The blog for my Japanese language study progress, which will include articles and tutorials on learning Japanese language and its culture.
  • Yumeko (id): A subset of Aguro translated into Bahasa Indonesia. It will not be jumbled with stuffs about my personal study, so no posts like word dumps here. Just to rephrase: Daily articles of Japanese language and culture written in Bahasa Indonesia.
  • Midoria (en): A blog about my casual delving into plant taxonomy. Yeah, you heard it right.
  • Agronesia (en): My personal weblog. It will contain my mundane daily life and various other junks not fit for my other blogs above.
  • Agronesia (id): A subset of the English Agronesia in Bahasa Indonesia. It will contain only writings which I think will benefit my fellow Indonesians. And that doesn't include my life.

No new posts will be made to this site, except for announcements of any other blogs I make along the way. Announcement of new blogs will also be posted on Agronesia, so you can actually leave this site for good. See you on the new blogs!

Perhatian: Situs ini adalah arsip dari blogku sebelumnya agro1986.wordpress.com yang kini telah ditutup. Terima kasih telah mengunjungi Singularity selama ini. Aku telah memutuskan untuk lebih serius di blogging, sehingga terjadi beberapa penataan. Sebagai hasilnya, Singularity dipecah menjadi beberapa blog. Kunjungi blog-blog baruku berikut (en berarti berbahasa Inggris, id berarti berbahasa Indonesia):

  • Aguro (en): Blog tentang kemajuan belajar bahasa Jepangku, yang memuat juga artikel dan tutorial tentang bahasa dan budaya Jepang.
  • Yumeko (id): Terjemahan sebagian dari Aguro ke bahasa Indonesia. Hal-hal yang berkaitan dengan studi personalku tidak akan dimasukkan di sini. Dengan kata lain, isinya adalah "artikel harian mengenai bahasa dan budaya Jepang dalam bahasa Indonesia".
  • Midoria (id): Blog tentang perjalanan santaiku di bidang taksonomi tumbuhan. Ya, sungguh!
  • Agronesia (en): Blog personalku, mulai dari keseharianku sampai tulisan-tulisan yang tidak bisa dikategorikan ke blog-blog lain di atas.
  • Agronesia (id): Terjemahan artikel-artikel di Agronesia bahasa Inggris yang menurutku berguna bagi teman-teman sebangsa dan setanah air. Ya, dan itu berarti tidak termasuk keseharianku.

Tidak akan ada postingan baru di situs ini, kecuali pemberitahuan blog-blog lain yang mungkin kubuat di masa mendatang. Segala blog-blog baru juga akan diberitakan di Agronesia, jadi kamu bisa meninggalkan situs ini sepenuhnya. Sampai jumpa di blog-blogku yang baru!

Commanding someone using “sana”

May 15th, 2008 by Agro Rachmatullah

In bahasa Indonesia, “sana” literally means “there” like this sentence shows:

(1) Nanti malem aku bakal ke sana.
- I will go there tonight.

However, another of its important use is to make a casual yet strong command. Some example sentences:

(1) Kerjain PR sana!
- Go do your homework!

(2) Sana main di luar!
- Go play outside!

(3) Mandi dulu sana!
- Go take a bath first!

As can be seen, “sana” can be put either at the front or the end of the sentence. It has a sense of urgency, e.g. “do it immediately”. It also implies anger or annoyance on the speaker’s part, and the speaker won’t really accept a “no”. If you want to associate “sana” with its literal meaning “there”, you can remember it as having the connotation “go there and do what I told”.

It’s used when there is a very close relationship between the speaker and the one commanded, where such strong words are acceptable. Examples include a parent telling their child and a boy being angry towards his older sister.

- Jangan ngenet mulu, belajar sana!

A unique Japanese captcha

May 9th, 2008 by Agro Rachmatullah

Everybody knows captcha, the verification image we meet everytime we register something to help keep spammers off the board. It usually involves retyping a badly distorted or other visually-abnormal text. Boring, because What You See Is What You Type (WYSIWYT).

Every once in a while someone came up with a clever CAPTCHA, like those simple arithmetic CAPTCHAs where you are asked to do an addition.

Recently, I registered on a Japanese site FC2. It has this never-before-seen (by me) CAPTCHA:

Japanese kana captcha

You, got it right! They spell a series of numbers in kana and we need to retype it using the all-too-familiar 1 2 3. Of course, the image is still littered with those bacteria we’ve been accustomed to.

If you’re studying Japanese, please try to answer in the comments. I’ll give you… a nice reply comment :).

PS: CAPTCHA is actually an acronym so it is written in capitals. However I very much prefer it to write it like: “captcha”.

The ASP.NET Bin and App_Code folder misconception

May 5th, 2008 by Agro Rachmatullah

This might very well be my misconception only.

From what I inferred by reading books and articles, when developing an ASP.NET application you have two special folders at your disposal, the Bin and App_Code folder. You can place assemblies in the Bin folder (e.g., MysteryOfLifeSolver.dll) and automagically you can use the classes inside the assembly from your ASP.NET pages. App_Code is for putting C# source code files (e.g., ComplexNumber.cs) and ASP.NET will compile the files for you so that the classes inside can be used on your ASP.NET app.

Except it didn’t work.

Well, since in IIS the directory C:\inetpub\wwwroot corresponds to http://localhost, naturally I put my applications inside there. For example, I might have three ASP.NET applications:

C:\inetput\wwwroot\app1
C:\inetput\wwwroot\app2
C:\inetput\wwwroot\app3

I thought I could easily have a separate Bin and App_Code for each application. For example, for app1 I created:

C:\inetput\wwwroot\app1\Bin
C:\inetput\wwwroot\app1\App_Code

But ASP.NET refused to use those 2 folders! What worked is that I put Bin and App_Code in the wwwroot folder, like:

C:\inetput\wwwroot\Bin
C:\inetput\wwwroot\App_Code

It worked, but obviously created a massive mess because now all my ASP.NET application must share the same Bin and App_Code folder.

The problem is simply because those three applications I made were imaginary. Yes, for IIS/ASP.NET, there was only one ASP.NET application, the one with wwwroot as its root folder. The folder I named app1 etc. was part of that wwwroot application as far as IIS is concerned.

To tell IIS that “Hey! This app1 folder is an application in its own right!”, you need to configure it as a “virtual directory”. Go to the IIS snap in (C:\WINDOWS\system32\inetsrv\iis.msc), keep opening the tree on the left until you meet Default Web Site, right click it, and choose New -> Virtual Directory....

Enter any name for the alias (e.g., newapp), which will determine the URI (e.g., http://localhost/newapp). Next, browse for the directory in the file sytem which contains the files of your application (e.g., C:\inetput\wwwroot\app1). Note that you can even name the alias just like the directory name in the filesystem (e.g., app1 for the previous example). For the permissions, you can leave the default but you might need Write in case your application needs to write into the file system.

After that it’s bliss. You can have Bin and App_Code in each of your application’s root folder.

For your ear’s pleasure: japanesepod101.com

April 30th, 2008 by Agro Rachmatullah

The useless background narrative

I’m 3 years late, but here it is…

There are indeed chance meetings that are just wonderful. Meetings which upon reflection would make you think, “I couldn’t imagine how things would work out without it!”. A perfect example is when I was hotspotting in Puskom UGM with Karnan and met Adit there. Adit is a fellow Ilkomer, and I had chatted with him through IM about studying kanji. I had told him that I want to copy his study materials some time.

And what a time indeed! After copying the kanji-related files, I was shown quite a lot of mp3s on his Nihongo folder. Not anime soundtracks or jpop whatnots, mind you, but Japanese language lessons! Adit said that you can turn it on and enjoy it while having your Morning Coffee. (or was it another drink?)

My focus was, and probably still, on reading. Therefore I thought some audio learning materials would be a great boon to enhance one of my weakest Japanese skills, listening. I happily copied it.

Most of them were japanesepod101.com podcasts and some nihongojuku. I listened to some of them, and indeed thought it was very great. However, in the end I didn’t have enough yaruki to do a full-fledged and regular listening of it. Probably because a lot of the episodes are missing. I like to study a certain thing thoroughly, from back to back, so those podcasts look like a book with lots of torn and missing pages. Not very appetizing.

Until one day I stayed at a relative’s house in Jakarta with ultra-blazing Internet connection. I wisely utilized it to download jpod101’s audio files (nihongojuku was dead). Collecting all the links and feeding it to Flashget took me well beyond midnight.

The first episode was in 2005. So yes, I was years late and was faced with a 4 GiB pile of digitalized sinusoidal waves. But no worry! They release like 1 episode per day, so one can definitely catch up just by listening to 31 podcasts a month.

About the podcast itself

The essence is simple: The free podcast teaches you Japanese using English. The teachers are Peter-san who is a native English speaker and at least a native Japanese speaker. After a short intro, you will be given a short dialog, then that dialog again in slo-mo, and finally the dialog with the English translation inserted in-between. Vocabulary is given after that dialog parade. Then finally the grammar points.

What’s so captivating about it? Probably because Peter-san is such a skillful and mesmerizing teacher. He gives lots of insights, interesting anecdotes, and Peter-style jokes in the explanation. Or maybe it’s because of the many nihonjin casts with their unique personality. From Yoshi the cool guy to Takase the tough girl. Or is it because the stories are genuinely interesting and most of the time hilarious?

No matter what your level is, if you’re learning Japanese then you should try to tune in to japanesepod101.com. They have a fine gradation of level ranging from newbie to upper intermediate. For those interested in the Japanese culture, they also have weekly Japanese Culture Class podcasts with topics from superstitions to marriage. Advanced students can even enjoy Miki-sama’s full-Japanese audio blog. (the link points to the wrong person, but their nickname are actually same) And if that isn’t enough to assure you, they even have 1 lesson with Morning Musume as the topic!

Currently I try to listen to 2 podcasts per day. I’ve covered 300+ lessons so now my ears can even differentiate the voices of Yoshi, Jun, Natsuko, Sakura, Hatsumi, Naomi, Takase, Chigusa, and others. I’m quite surprised that I found lots of new words even in the Survival and Newbie series because I was well beyond my 3rd year of studying Japanese.

It certainly increased my listening comprehension significantly. Probably my speaking skill too, because I often repeated after the dialogs. At any rate, I’m looking forward for the day I can catch up with the latest episodes.

Closing words

I probably should send Adit a DVD as my gratitude. Oh, and anyway, upon leaving Puskom that day I carelessly left my student card and had to travel all the way from Milan

And lastly, are you a japanesepod101 listener too?

n program yang paling sering kupakai

April 18th, 2008 by Agro Rachmatullah

Beberapa waktu yang lalu di Planet Ubuntu tersebar mim “Inilah 10 program yang paling sering kupakai”. Contohnya ini. Caranya sangat mudah, yaitu mengetikkan suatu perintah konsol kompleks tertentu.

Ikut-ikutan ah…

C:\Documents and Settings\Agro>history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}’ | sort -rn | head
‘history’ is not recognized as an internal or external command,
operable program or batch file.

C:\Documents and Settings\Agro>

Aduh! Lupa aku!

Damn, now I can’t invite just about anyone to Mixi!

April 17th, 2008 by Agro Rachmatullah

Probably because of my previous post advertising free Mixi invites, the staff decided to take a measure!

Now to register as a new Mixi user, you need to enter that thing called “handphone mail address”. Simple, except that I don’t even know what it is. I have a handphone, and all I get with it is the “phone number”. You can’t let the field empty. You can’t fill it with a gmail or yahoo address either.

With some chittery-chat on 2ch irc (#japanese), I got someone to tell me that one valid such address is something@ezweb.ne.jp. I put a random “something”, and it did succeed.

Until I realized that other than confirming from your normal email, you need to confirm from that dreaded “handphone mail address”.

In the end, I only managed to invite 1 person to Mixi… He was lucky to sign up fast.

Configuring the correct Japanese fonts for Windows GTK applications

April 13th, 2008 by Agro Rachmatullah

On a previous blog, I discussed how win32 GTK/GTK+ programs are smart enough to choose a Japanese translation by default if your system’s language is set to Japanese. However, there’s one big shame that I concealed: it will not choose the fonts correctly.

Related to this problem is how the Unicode standard handles Japanese and Chinese characters. You see, the characters knows as kanji, used in Japan, historically comes from China. In fact, kanji literally means Han characters. But that happened more than a thousand years ago. Time always brings change, and now many characters are drawn differently in each countries.

On the image below, you can see how some Japanese characters (black) differs from the Chinese counterpart (blue):

Difference between Japanese and Chinese kanji glyphs

You can see that even the stroke count can differ!

Unicode, in its effort called Han Unification, insisted that Japanese, traditional Chinese, and Korean characters which historically were same must only get a codepoint. So there can’t be one Unicode character for the Japanese version of ‘close’ and another for the Chinese version. Any differences then must be achieved by fonts. So yes, in the screenshot above, the Japanese and Chinese characters are actually the same Unicode character, but rendered in OpenOffice.org with different fonts. And yes, that means you can’t display both Chinese and Japanese text in a simple text document (which can only use one font for the whole file), unless you happen to use only the characters which are country invariant.

Now, back to GTK. GTK programs use a configuration file called pango.aliases to select its fonts. Here’s a sample line:

sans = "arial,browallia new,mingliu,simhei,gulimche,ms gothic"

Now that line means that, if a character must be drawn on screen as a Sans-serif character (”sans”), then try to display it using the “arial” font which is first in the list. If the character isn’t on the system’s Arial font, then try “browallia new”. If it fails, try the next one, “mingliu”. And so on.

Problem comes when a static list like that meets the intricacies of Unicode’s Han unification. For probably a random reason, the configuration file of Windows GTK programs put Chinese fonts (mingliu etc.) before Japanese fonts (ms gothic etc.). So there you have it, a user interface of Japanese translation displayed using “Chinese” characters:

Inkscape using Japanese translation but Chinese characters!

If you’re like me, then that extra dot stroke on “chikai” will really get on your nerve.

The solution is a simple exercise of find and replace. Now find all files named pango.aliases on your hard drive, which most probably will be inside your Program Files folder. Each installed GTK program can have one, but they can also use the “shared” GTK’s. If you already know where your GTK programs are, the file is actually located in the etc\pango subfolder. Once found, replace the content with my hand-crafted version:

courier = "courier new,MS Mincho"

tahoma = "tahoma,MS PGothic,browallia new,mingliu,simhei,gulimche,ms gothic,kartika,latha,mangal"
sans = "arial,MS PGothic,browallia new,mingliu,simhei,gulimche,ms gothic,kartika,latha,mangal"
serif = "times new roman,MS PMincho,angsana new,mingliu,simsun,gulimche,ms gothic,kartika,latha,mangal"
mono = "courier new,MS Mincho,courier monothai,mingliu,simsun,gulimche,ms gothic,kartika,latha,mangal"
monospace = "courier new,MS Mincho,courier monothai,mingliu,simsun,gulimche,ms gothic,kartika,latha,mangal"

Now your configuration will prefer Japanese fonts rather than Chinese ones. Talk about font discrimination! Here’s the result:

Inkscape using Japanese translation and the correct fonts

Ah, Japanese translation in Japanese fonts. No more wrong fonts. That feels better.

Pemblokiran situs oleh pemerintah Indonesia

April 10th, 2008 by Agro Rachmatullah

Buka Pidgin, tiba-tiba aja dapet pesan offline dari teman saya Ferdi. Dikasih link untuk berpartisipasi dalam petisi yang menolak pemblokiran situs-situs tertentu, termasuk YouTube, oleh pemerintah Republik Indonesia.

“Apa pula ini?”, pikirku…

Kausalitas mengharuskan kejadian ini memiliki sebab tertentu. Aku menduga ini pasti gara-gara film yang namanya Fitna itu. Judul itu pertama kali kudengar dari adikku yang di Jakarta beberapa waktu lalu. Udah nonton di YouTube katanya. Selanjutnya nggak sengaja kudengar di radio saat berada di dalam mobil. Berikutnya, ngeliat judul itu di headline sebuah tabloid, entah apa namanya, yang tergeletak di rumah. Terakhir, adikku yang di ITB juga bilang udah nonton, dikasih temennya lewat fasilitas transfer berkas Y!M.

Kutanya temenku yang lagi online, ternyata bener Fitnalah penyebabnya :).

Ah, sepertinya Fitna memang sedang menjadi wadai. Aku sendiri… waktu luangku tidak terlalu banyak untuk menyempatkan mencari atau menonton film tersebut.

Banyak hal yang bisa dibahas tentang topik ini, cuma aku hanya ingin menyampaikan pendapatku tentang pemblokirannya: Sangat tidak setuju! Penyensoran internet tidak sepantasnya dilakukan pemerintah. Memblokir halaman tertentu saja aku tidak setuju, lebih bodoh lagi kalau yang diblokir adalah satu situs penuh! Apa yang pantas dibuka, dan apa yang tidak ingin dilihat, biarkan diserahkan kepada individu masing-masing.

Jangan sampai pemerintahan kita jadi seperti China, yang bahkan membuat Google terpaksa mensensor hasil pencariannya agar sesuai dengan sudut pandang pemerintah.

2,500 kanji and counting :)

April 9th, 2008 by Agro Rachmatullah

kanji scroll

Wow… I haven’t done my dump for ages. The last one was around 3 months ago!

But rest assured, since graduation I have been doing lots of real readings. I stil haven’t finished the monstrous Wikipedia WW2 article. I also managed to read some stories from bookstudio, mostly ren’ai stuffs and some adventures. Plus some other random stuffs like newspapers and some physical books I have.

I also still haven’t finished these two textbooks: Routledge and Colloquial Japanese. I’m also still listening to japanesepod101 daily to improve my listening. I’ve finished all survival and newbie series, and now halfway through beginner season 1 :).

But now that I’m now officially working as a programmer whose job doesn’t have anything to do with Japanese, my time to study Japanese has decreased significantly. Let’s just hope it doesn’t die out. Please everyone, pray for me.

Anyway, for this dump I’ve gathered 300 new kanji and 491 new words. Now the total is 2,609 kanji and 10,888 words. Yes, I’ve passed the 2,500 milestone!

Impressive? Well, I think I still need around 500 more to achive the level of literacy I want. I still occasionally find new ones, see? The key here is constancy. If I keep reading and learning new kanji, no matter how slow it is, it will pile up. In my case, the average learning rate between my last dump and this one is only 3.9 kanji per day. That’s not too demanding, right? Couple it with Mnemosyne so you won’t forget kanji you’ve learned.

One tip today for those also learning kanji. Don’t get too caught up in artificial lists (Jouyou, JLPT)! Go find some real reading material and learn the kanji you find there! By experiencing how the kanji is actually used, it will stick on your mind more easily. You might be interested to know that from the 2600+ kanji I’ve learned, I still haven’t encountered three grade 5 and one grade 6 Jouyou kanji. And of course lots of grade 8 kanji. That’s depite the fact that I found lots of “gradeless” kanji! Shows you how useful those lists are…

The only time where you should exhaust an artificial list is when you’re going to take a test with predetermined kanji (e.g., JLPT) soon. Other than that, you can forget about them.

Anyway, here are all the new kanji:

耕俵賃卵憾恨剤剖泥憤窮喪藻准酬酵紡祉劣鯨鋳濫庶忌衰痢弦栓酢沼繕懲閥礁堕諭粘唆朴膜畔虜禍疾較塊稚炊隅彫憂耗爵勲賊糧悦吟穫漸慨隻累霧鎮囚棺愁賄硫鉢窯剛墜狩洪脂昆喬那捷爾鷹彬冶雛匡宏瑚胡鮎蒔晃瑛綺艶杏玲鯛碧倭蓮鶴倖毅茜祐眉袈裟鳳瞭杜耽盧醒嬌倅甥賁躬壺澡嵒癌國對汪峯鍼雚灌旡漑賑榮梁刅桼膝鵜裾氾諜隂榴憐楚諺孚孵芻殲註楯迂坦匛柩匙厷鮪躓珊瞑冥埶藝鼎蹲夋戚尗脆冨撒鞍晦顛顚喩囁妓叱驢哨壽躊躇溌剌悖遜狐與嶼蜂卜頷叕啜雫掬鬯鬱蛤烏曖昧雜囃菱霰俯淵蚤掻怯焚眈窺隙涛偕炸絨毯戮翏耒廻蓋盍牡鴨禽浙咳厠珀奄串魏酎隺堺楔犀蛾皺栖醤籤韱怨杓這睫顰姑舅艮饂飩噤厓弄鯖煎凭吃麺拉軋蕩謨匆枷戎賂櫛凰羔匋掏仇妬耄彔碌抓膠撰洛苔廿燕臙汝鎧

And the words:

Read the rest of this entry »

Multilanguage support in Windows programs

April 6th, 2008 by Agro Rachmatullah

The more our information society progresses, the more we realize the value of having a program available in different languages. The effort towards internationalization and localization is an amusing trend for me, because at childhood I once thought that the existence of multiple languages is a bother, and envisioned that at some age the human civilization will settle on one ultimate lingua-gaea.

I couldn’t be more wrong. Now I realize that each language is beautiful and unique in its own right and every effort must be spent to conserve them, or at least document them sufficiently before its last speaker dies.

Anyway, multilingual programs… People might need a certain language simply because she couldn’t understand any other languages. In this case, the availability of a program in a certain language is crucial to reduce the technological gap. People might also want a certain language simply because she enjoys that particular language the most. Another use is for studying foreign languages, like me who tries to set every possible program to Japanese in order to immerse myself in the language.

With that in mind, we will investigate how Windows programs currently handle the user’s desire to choose her preferred language. (Some of the discussion might apply to other OSes such as GNU/Linux and OS X)

One installer to rule them all

The most convenient case is when a program installer includes all available translations. Examples are Inkscape, Pidgin, Battle for Wesnoth, Paint.NET, and iTunes. For example, when I tried to download the newest Inkscape, there’s only one installer for Windows: Inkscape-0.46.win32.exe. It has English, Japanese, and a myriad of other languages included. Even Indonesian!

The next question is, what language will such programs use by default? Some programs, most notably GTK programs, are smart enough to detect the operating system’s language settings. Where is it set?

In Windows XP, the user can set what language she prefers from “Control Panel” → “Regional and Language Options” → “Advanced” → “Language for non-Unicode programs”, like so:

Note that this setting is actually to enable non-Unicode (e.g., ancient) programs to display its text correctly instead of mojibake. However modern Unicode-aware programs use the value we set here to decide what language it should present to the user.

Mine is set to Japanese, so Inkscape appears like this:

Japanese Inkscape

Other programs ask for what language the user would like to use, perhaps at install time or when the program is run for the first time. An example is Paint.NET:

Paint.NET Setup

The rest just set the default language to English or whatever else the developer prefers. If the user desires, she can change the language through some means because the language data are already installed anyway. An example is an old version of OpenTTD which defaults to English:

Open TTD defaults to English

If the default language doesn’t suit you, how do you change it? Some programs offer the convenience of setting it within the program itself. An example is iTunes:

Language selection in iTunes

And The Battle for Wesnoth:

Language selection in The Battle for Wesnoth

GTK programs does not visibly offer any such options, because it assumes that you will in most cases want the language you set on the operating system. However, it atually checks for the availability of the LANG environment variable (probably ISO 639-1 codes). You can use it to quickly try out a language. For example, go to the command prompt and type:

set LANG=th

And from the same command prompt, run the program, say inkscape.exe:

Inkscape in Thai

Ah, I feel nostalgic :).

Exceptionally Easy to Extend (E3)

Some programs come with only one language, and to choose another we must download the required language files. Though quite inconvenient, it is not that bad because language files shouldn’t be that large. An example is µTorrent:

Language selection in uTorrent. Oops, you must download the language pack first...

Predestination, believe it or not

Other programs offer seperate installer for each language. If you go to their web sites, you will find one installer for the English version, another for the French version, and so on. The concept is very simple: what you download is what you get. Needless to say, it’s a pain the arse for the curious or the language learners out there. Two glaring examples are OpenOffice.org and Mozilla Firefox. Here’s a Japanese version of Firefox that I recently installed:

Firefox in Japanese

It’s of course better than no multilingual support at all, but still it’s a waste of bandwidth to download another version and troublesome to actually install it (uninstall the other-language version first).

My take

A modern program should at all cost include all available translations in its installer. It should then detect and display the user’s preferred language by default.

About language-changing facility, I can understand GTK’s decision to hide it from the program’s preferences. They are probably following Gnome’s guideline that every GTK app should look the same (think about themes), and if the user wants to change anything, she can apply a system-wide change. To take things into perspective, it’s bizzare to imagine that every GTK app has its own theme settings, right? At least you can set it per program using an environment variable.

For µTorrent that separates its language pack, I think it’s an acceptable special case because µTorrent aims to be a small no-frills downloadable program. Heck, even the language pack is larger than the core English program itself! However, I think for most other programs the size of the language files shouldn’t matter that much.

So big cheers for GTK apps and other programs that include all translations by default. A big, big boo for OpenOffice.org, Firefox, and the gangs that require a different download for each language.