On Tue, Nov 25, 2008 at 01:05:15PM +0200, Igor Vlasenko wrote: > On Tue, Nov 25, 2008 at 01:37:34PM +0300, Alexey Tourbin wrote: > > По-моему, в списке languages() кодировки указывать не надо. > > Но кодировки нужно указывать в langs(), > чтобы не сломать рабочие системы :( lang() будет работать как и раньше. > Например, в > /etc/menu-methods/icewm: > [...] > x11= " prog \"" translate(lang(), title()) "\" \"" findicon($icon, "-") "\" > " $command"\n" > [...] > > $ cat /etc/menu-methods/lang.h > function lang()="ru_RU.CP1251" > function languages()="ru_RU" > > (У меня локаль пользователей - ru_RU.CP1251). > > Проблема в том, что, например, icewm не поддерживает кодировок, > что видит, то и поет (хоть бНОПНЯ, хоть Р╓РСРs). Вот как это будет работать. $ hsh --init && hsh-install menu ... <13>Nov 25 11:26:26 rpmi: sox-14.0.1-alt3 installed <13>Nov 25 11:26:26 rpmi: sound_handler-0.3.1-alt1 installed <13>Nov 25 11:26:26 rpmi: libao-alsa-0.8.8-alt1.13239 installed <13>Nov 25 11:26:26 rpmi: menu-2.1.41-alt3 installed $ echo LC_MESSAGES=ru_RU.CP1251 |hsh-run --rooter -- sort -o /etc/sysconfig/i18n $ hsh-run --rooter /usr/sbin/update-menus $ hsh-run cat /etc/menu-methods/lang.h # Generated by /usr/sbin/update-menus. function lang()="ru_RU.CP1251" function languages()="af:am:ar:az:be:bg:br:bs:ca:cs:cy:da:de:el:eo:es:et:eu:fa:fi:fr:ga:gl:he:hi:hr:hu:id:is:it:ja:ka:ko:lt:lv:mi:mk:mn:ms:mt:nb:nl:nn:oc:pl:pt:pt_BR:ro:ru:sk:sl:sq:sr:sr@Latn:sv:ta:tg:th:tr:uk:uz:uz@Cyrl:vi:wa:xh:zh_CN:zh_TW" $ (Далее.) $ hsh-install icewm ... <13>Nov 25 11:28:41 rpmi: xinitrc-2.4.31-alt1 installed <13>Nov 25 11:28:41 rpmi: icewm-light-1:1.2.36-alt1 installed WARNING: icewm-light uses obsolete alternatives interface <13>Nov 25 11:28:41 rpmi: design-icewm-1.0-alt5 installed <13>Nov 25 11:28:41 rpmi: icewm-1:1.2.36-alt1 installed $ hsh-run cat /etc/X11/icewm/menu |iconv -f cp1251 prog "Terminal" xterm xvt menu "Сессия" "windowmanager_section" { menu "Оконные менеджеры" "windowmanager_section" { restart "IceWM" "icewm" icewm } } menu "Терминалы" "terminals_section" { prog "UXTerm" "xterm-color_48x48" uxterm prog "XTerm" "xterm-color_48x48" xterm -name XTerm } $ > На примере > /etc/menu-methods/xdg-desktop-entry-spec-apps > эта проблема не видна, так как для .desktop файлов > конечная кодировка (utf-8) задана заранее > и не зависит от системной локали. lang() всегда соответсвует LC_MESSAGES (или LC_ALL), и поэтому, как правило, там всегда есть кодировка.