I reside in Poland but I want all my programs to be in English, and they are, except for two: Phatch and Hedgewars.
My locale file:
LANG="en_US.UTF-8"
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
To run Hedgewars in English I need to do this:
LC_NUMERIC="en_US.UTF-8" hedgewars
but to run Phatch in English I need to run this:
LC_CTYPE="en_US.UTF-8"
When I asked in #qt whether its a phatch/hedgewars bug, or a QT bug, this is the reply I got:
[17:33:56] <ahigerd> DrSlony: A little of both
[17:34:22] <ahigerd> DrSlony: QLocale follows LC_NUMERIC because it's intended for numeric formatting purposes, so it's a bug if you're using QLocale for choosing a text language
[17:34:36] <ahigerd> DrSlony: But it's also a flaw in Qt that it doesn't offer any way of detecting the appropriate user-messages language
[17:35:35] <DrSlony> ahigerd : hmm, what about phatch using the correct language when i change LC_CTYPE and NOT LC_NUMERIC?
[17:35:54] <ahigerd> DrSlony: So hedgewars is probably (wrongly) using QLocale. phatch isn't technically wrong because LC_CTYPE is a valid choice although it SHOULD be looking for LC_MESSAGES
[17:36:58] <DrSlony> ahigerd what should hedgewars use instead of qlocale?
[17:37:52] <ahigerd> DrSlony: It should check LC_MESSAGES, LC_ALL, LANG, and LANGUAGE environment variables, probably in that order
I didn't filter out hedgewars from the discussion because perhaps its relevant.
I hope this helps you fix Phatch from using the wrong language :]