что Qt в версии 4.6.2 читает локаль из LC_ALL и кладёт на всё остальное?
В результате если LC_ALL не выставлен, то QLocale::system().name() всегда возвращает «C».
И этот пример у них в офф. документации. Зарепортил багу. Приняли:
QLocale does not have a concept of mixed locales, so to detect the system locale on Unix systems it gets the content of the LC_ALL, LC_NUMERIC and LANG environment variables and uses the content of the first non-empty variable. That is not very reliable and not correct, but it has always been like that. It should be investigated how this can be improved without breaking too many applications.
Блин, такое чувство, что до меня никто на Qt не пытался писать приложение, которое подгружает перевод в зависимости от локали...