Автор Тема: Локализация + GUI  (Прочетена 1037 пъти)

windproof

  • Напреднали
  • *****
  • Публикации: 49
    • Профил
Локализация + GUI
« -: Feb 23, 2005, 10:57 »
Здравейте!
Наскоро имах следния проблем - инсталирах си beep media player за да го сравня с xmms... Обаче, след инсталацията и опита ми да го пусна се получи грешка:

#beep-media-player

(process:8589): Gdk-WARNING **: locale not supported by C library
#

Малко се озадачих... Обаче след това, при спиране на графичната ми среда, забелязах подобни съобщения за програми, които вървят без проблеми - Mozillla Firefox, SIM. Тогава направих връзката с предишния ми проблем със SIM и Kopete, но реших да направя нова тема. Съобщението за грешка е идентично за всички програми, затова ще ви покажа само това от Firefox-a:

(mozilla-firefox-bin:5019): Gtk-WARNING **: Locale not supported by C library. Using the fallback 'C' locale

Някакви идеи?
Активен

rpetrov

  • Напреднали
  • *****
  • Публикации: 571
    • Профил
    • WWW
Локализация + GUI
« Отговор #1 -: Feb 23, 2005, 12:19 »
Какво връщат командите:
locale
locale charmap
Активен

windproof

  • Напреднали
  • *****
  • Публикации: 49
    • Профил
Локализация + GUI
« Отговор #2 -: Feb 23, 2005, 15:48 »
locale ми дава:
#locale
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=bg_BG
LC_CTYPE="bg_BG"
LC_NUMERIC="bg_BG"
LC_TIME="bg_BG"
LC_COLLATE="bg_BG"
LC_MONETARY="bg_BG"
LC_MESSAGES=en
LC_PAPER="bg_BG"
LC_NAME="bg_BG"
LC_ADDRESS="bg_BG"
LC_TELEPHONE="bg_BG"
LC_MEASUREMENT="bg_BG"
LC_IDENTIFICATION="bg_BG"
LC_ALL=

А locale charmap:

# locale charmap
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
CP1251
Активен

rpetrov

  • Напреднали
  • *****
  • Публикации: 571
    • Профил
    • WWW
Локализация + GUI
« Отговор #3 -: Feb 23, 2005, 16:37 »
Понеже гадая дистрибуцията отговарям малко мъгливо: nай-вероятно липсва пакет glibc-*{data|i18n|common}*

localedef -? | tail -10 ще ти изпише няколко директории и в тях трябва да има файлчета.


localedef --list-archive | grep bg  казва дали има за bg...
Активен

windproof

  • Напреднали
  • *****
  • Публикации: 49
    • Профил
Локализация + GUI
« Отговор #4 -: Feb 23, 2005, 20:35 »
Съжалявам за дистрибуцията '<img'> Slackware 10.0 - current, kernel 2.6.10, KDE 3.3.2...
Пакета го имам - glibc-i18n-2.3.4-noarch-1
Командите ми дадоха следните резултати:

# localedef -? | tail -10
  -V, --version              Print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

System's directory for character maps : /usr/share/i18n/charmaps
                       repertoire maps: /usr/share/i18n/repertoiremaps
                       locale path    : /usr/lib/locale:/usr/share/i18n
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.
################

в директория charmaps има файлове, но в repertoiremaps няма.
Другата команда:

# localedef --list-archive | grep bg
bg_BG
bg_BG.cp1251
bg_BG.iso88595
bg_BG.koi8r
bg_BG.utf8
Активен

rpetrov

  • Напреднали
  • *****
  • Публикации: 571
    • Профил
    • WWW
Локализация + GUI
« Отговор #5 -: Feb 24, 2005, 16:23 »
трябваше да прочета по-внимателно по-предишния отговор

решение:
1.) не присвояваш на LC_MESSAGES нищо
2.) създаваш "en" locale
3.) присвояваш на LC_MESSAGES "C"
4.) присвояваш на LC_MESSAGES "en_US.ISO8859-1"
5.) присвояваш на LC_MESSAGES "en_US"

избери си някое, като 1 и 3 са за предпочитане, а 5 не е добро.

може би е добре и изрично да укажеш използвания codeset/charset - избягваш бъгове в програми, които не могат, не знаят как или незнам какво си не правят като хората. Например Qt е с такъв проблем.

Пример: вместо LANG=bg_BG се използва LANG=bg_BG.ISO8859-5 (в твоя случай LANG=bg_BG.CP1251). Затова и решение 5.), от предложените по-горе, не се препоръчва.

/извън темата
виждам, че си създал сам bg_BG.iso88595 и bg_BG.koi8r '<img'>
може да си създадеш за пълнота и "bg" и "bulgarian", но винаги тройката "bg_BG", "bg" и "bulgarian" трябва да е за един и същи codeset.
Активен