LINUX.ORG.RU

gtk2 приложения не считаются с локалью


0

0

1. Дистр: Debian Sarge

2. Локаль прописана в .bash_profile
$ locale
LANG=et_EE.UTF-8
LC_CTYPE="et_EE.UTF-8"
LC_NUMERIC="et_EE.UTF-8"
LC_TIME="et_EE.UTF-8"
LC_COLLATE="et_EE.UTF-8"
LC_MONETARY="et_EE.UTF-8"
LC_MESSAGES="et_EE.UTF-8"
LC_PAPER="et_EE.UTF-8"
LC_NAME="et_EE.UTF-8"
LC_ADDRESS="et_EE.UTF-8"
LC_TELEPHONE="et_EE.UTF-8"
LC_MEASUREMENT="et_EE.UTF-8"
LC_IDENTIFICATION="et_EE.UTF-8"
LC_ALL=

3. Например, totem всё кажет на русском (ru_RU.UTF-8 - локаль по умолчанию глобально в системе)

4. sudo find /usr/share/locale/et/ -name "*totem*"
/usr/share/locale/et/LC_MESSAGES/totem.mo
sudo find /usr/share/locale/et/ -name "*gaim*"
/usr/share/locale/et/LC_MESSAGES/gaim.mo

Напомните, каким дебаггером надо пользоваться? Который показывает, какие файлы читает программа.

★★★★

Ответ на: комментарий от Demetrio

По идее должен брать из текущей локали. Раньше так работало.

/etc/environment:
LANGUAGE="ru_EE:ru_RU:ru:en_GB:en"

LANG=ru_RU.UTF-8

Selecter ★★★★
() автор топика
Ответ на: комментарий от Zulu

$ locale -a
C
et_EE.utf8
POSIX
ru_RU.utf8

$ LANG=et_EE.UTF-8 date
L juuni 11 21:03:13 EEST 2005

Как видно, всё работает.

lsof:

totem 3462 anton mem REG 3,1 49689 86939 /usr/share/locale/ru/LC_MESSAGES/gtk20.mo
totem 3462 anton mem REG 3,1 141970 86940 /usr/share/locale/ru/LC_MESSAGES/gtk20-properties.mo
totem 3462 anton mem REG 3,1 32272 102706 /usr/share/locale/ru/LC_MESSAGES/libgnome-2.0.mo
totem 3462 anton mem REG 3,1 36474 138859 /usr/share/locale/ru/LC_MESSAGES/totem.mo
totem 3462 anton mem REG 3,1 26496 138831 /usr/share/locale/en_GB/LC_MESSAGES/totem.mo
totem 3462 anton mem REG 3,1 1474 15493 /usr/share/locale/en_GB/LC_MESSAGES/libc.mo
totem 3462 anton mem REG 3,1 101754 86852 /usr/share/locale/en_GB/LC_MESSAGES/gtk20-properties.mo
totem 3462 anton mem REG 3,1 31949 103413 /usr/share/locale/ru/LC_MESSAGES/libgnomeui-2.0.mo

Selecter ★★★★
() автор топика
Ответ на: комментарий от Selecter

$ grep LC_MESSAGES strace.log
open("/usr/share/locale/ru_EE/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru/LC_MESSAGES/gtk20.mo", O_RDONLY) = 3
open("/usr/share/locale/ru_EE/LC_MESSAGES/gtk20-properties.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru/LC_MESSAGES/gtk20-properties.mo", O_RDONLY) = 6
open("/usr/share/locale/ru_EE/LC_MESSAGES/libgnome-2.0.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru/LC_MESSAGES/libgnome-2.0.mo", O_RDONLY) = 6
open("/usr/share/locale/ru_EE/LC_MESSAGES/totem.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru/LC_MESSAGES/totem.mo", O_RDONLY) = 10
open("/usr/share/locale/ru_RU/LC_MESSAGES/totem.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_GB/LC_MESSAGES/totem.mo", O_RDONLY) = 10
open("/usr/share/locale/en/LC_MESSAGES/totem.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru_EE/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru_RU/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_GB/LC_MESSAGES/libc.mo", O_RDONLY) = 18
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru_RU/LC_MESSAGES/gtk20-properties.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_GB/LC_MESSAGES/gtk20-properties.mo", O_RDONLY) = 18
open("/usr/share/locale/ru_EE/LC_MESSAGES/atk10.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru/LC_MESSAGES/atk10.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru_RU/LC_MESSAGES/atk10.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_GB/LC_MESSAGES/atk10.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/atk10.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru_EE/LC_MESSAGES/libgnomeui-2.0.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru/LC_MESSAGES/libgnomeui-2.0.mo", O_RDONLY) = 19
open("/usr/share/locale/ru_EE/LC_MESSAGES/glib20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru/LC_MESSAGES/glib20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru_RU/LC_MESSAGES/glib20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_GB/LC_MESSAGES/glib20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/glib20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru_EE/LC_MESSAGES/libxine1.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru/LC_MESSAGES/libxine1.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru_RU/LC_MESSAGES/libxine1.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_GB/LC_MESSAGES/libxine1.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libxine1.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

ru_EE - это так и должно быть?

Selecter ★★★★
() автор топика
Ответ на: комментарий от Selecter

В общем, я решил отредактировать /etc/environment и всё получилось.

$ cat /etc/environment
LANGUAGE="et_EE:ru_RU:ru:en_GB:en"

LANG=ru_RU.UTF-8

Selecter ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.