Русские символы под Линукс
Модератор: Модераторы
Русские символы под Линукс
Пробую писать под линукс. Хочу использовать cp1251.
Запускаю Лазаря скриптом:
LANG=ru_RU.cp1251
LC_ALL=ru_RU.cp1251
startlazarus
При старте скрипта пишет:
GDK-WARNING **:Locale not supported by c libriary
GDK-WARNING **:Locale not supported by c libriary
....
После запуска не могу вводить русские символы в редакторе кода.
Запускаю Лазаря скриптом:
LANG=ru_RU.cp1251
LC_ALL=ru_RU.cp1251
startlazarus
При старте скрипта пишет:
GDK-WARNING **:Locale not supported by c libriary
GDK-WARNING **:Locale not supported by c libriary
....
После запуска не могу вводить русские символы в редакторе кода.
Rik писал(а):SUSE Linux Enterprise Desktop 10. Делал всё как указано в статье по установке Lazarus, однако русский алфавит так и не появился. Можно его интерфейс как-нибудь английским сделать, хрен с ним с русским?
Тебе сюда:
http://freepascal.ru/article//raznoe/20040826100000/
tria писал(а):Тебе сюда:
http://freepascal.ru/article//raznoe/20040826100000/
Там я был, всё так и делал. Непрокатило...
Rik писал(а):Там я был, всё так и делал. Непрокатило...
У меня получилось.
Только в 9.16 надо еще нажать кнопку "Сохранить рабочий стол в файл". Это первая сверху широкая кнопка.
При чем в Mylinux команды:
locale=ru_RU.cp1251
lazarus
Привели к появлению нормального русского интерфейса. Даже в инспекторе объектов появился русский.
А если использовать startlazarus - то кракозябры.
А вот в редакторе кода добится русского языка так и не получилось...
tria писал(а):Пробую писать под линукс. Хочу использовать cp1251.
Запускаю Лазаря скриптом:
LANG=ru_RU.cp1251
LC_ALL=ru_RU.cp1251
startlazarus
При старте скрипта пишет:
GDK-WARNING **:Locale not supported by c libriary
GDK-WARNING **:Locale not supported by c libriary
....
После запуска не могу вводить русские символы в редакторе кода.
что выдаёт
Код: Выделить всё
locale -a|grep ruесть там ru_RU.cp1251?
если нет то её надо поставить,если есть тогда смотри что скажет
Код: Выделить всё
LC_ALL=ru_RU.cp1251 strace -e trace=open lazarus 2>&1 |grep ru_RUopen("/usr/lib/locale/ru_RU.cp1251/LC_IDENTIFICATION", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/ru_RU/LC_IDENTIFICATION", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/ru_RU.cp1251/LC_IDENTIFICATION", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/ru_RU/LC_IDENTIFICATION", O_RDONLY) = -1 ENOENT (No such file or directory)
строчки где в конце стоит что то типа "(No such file or directory)" и виновны в "GDK-WARNING **:Locale not supported by c libriary "
Попробовал:
# locale -a|grep ru
ru_RU
ru_Ru.cp1251
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
russian
ru_UA
ru_UA.koi8u
ru_UA.utf8
# LC_ALL=ru_RU.cp1251 strace -e trace=open lazarus 2>&1 |gre p ru_RU
open("/usr/lib/locale/ru_RU.cp1251/LC_IDENTIFICATION", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/ru_RU/LC_IDENTIFICATION", O_RDONLY) = 3
И что теперь делать надо?
# locale -a|grep ru
ru_RU
ru_Ru.cp1251
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
russian
ru_UA
ru_UA.koi8u
ru_UA.utf8
# LC_ALL=ru_RU.cp1251 strace -e trace=open lazarus 2>&1 |gre p ru_RU
open("/usr/lib/locale/ru_RU.cp1251/LC_IDENTIFICATION", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/ru_RU/LC_IDENTIFICATION", O_RDONLY) = 3
И что теперь делать надо?
tria писал(а):Попробовал:
# LC_ALL=ru_RU.cp1251 strace -e trace=open lazarus 2>&1 |gre p ru_RU
open("/usr/lib/locale/ru_RU.cp1251/LC_IDENTIFICATION", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/ru_RU/LC_IDENTIFICATION", O_RDONLY) = 3
И что теперь делать надо?
это и всё?
у меня так:
Код: Выделить всё
open("/usr/lib/locale/ru_RU.cp1251/LC_IDENTIFICATION", O_RDONLY) = 3
open("/usr/lib/locale/ru_RU.cp1251/LC_MEASUREMENT", O_RDONLY) = 3
open("/usr/lib/locale/ru_RU.cp1251/LC_TELEPHONE", O_RDONLY) = 3
open("/usr/lib/locale/ru_RU.cp1251/LC_ADDRESS", O_RDONLY) = 3
open("/usr/lib/locale/ru_RU.cp1251/LC_NAME", O_RDONLY) = 3
open("/usr/lib/locale/ru_RU.cp1251/LC_PAPER", O_RDONLY) = 3
open("/usr/lib/locale/ru_RU.cp1251/LC_MESSAGES", O_RDONLY) = 3
open("/usr/lib/locale/ru_RU.cp1251/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 3
open("/usr/lib/locale/ru_RU.cp1251/LC_MONETARY", O_RDONLY) = 3
open("/usr/lib/locale/ru_RU.cp1251/LC_COLLATE", O_RDONLY) = 3
open("/usr/lib/locale/ru_RU.cp1251/LC_TIME", O_RDONLY) = 3
open("/usr/lib/locale/ru_RU.cp1251/LC_NUMERIC", O_RDONLY) = 3
open("/usr/lib/locale/ru_RU.cp1251/LC_CTYPE", O_RDONLY) = 3
попробуй локаль по новой сгенерить
tria писал(а):...
Привели к появлению нормального русского интерфейса. Даже в инспекторе объектов появился русский.
...
А вот в редакторе кода добится русского языка так и не получилось...
вспомнил
tria писал(а):Сгенерил локаль:
localedef -i ru_RU -f cp1251 ru_RU.cp1251
После этого начало показывать кучу ваших строк но с ошибкой -1 ENOENT (No such file or directory)
Операционка - CentOS
Глянь есть ли в /usr/lib/locale/ каталог ru_RU.cp1251?
если нет то попробуй localedef --no-archive -i ru_RU -f cp1251 ru_RU.cp1251
посмотри в выводе какую локаль именно ищет лазарус?
если ru_RU.CP1251, то сделай линк с ru_RU.cp1251 на ru_RU.CP1251
В /usr/lib/locale/ каталога ru_RU.cp1251 небыло. После:
localedef --no-archive -i ru_RU -f cp1251 ru_RU.cp1251
он появился.
Пробую:
# LC_ALL=ru_RU.cp1251 strace -e trace=open lazarus 2>&1 |grep ru_RU
open("/usr/share/locale/ru_RU.cp1251/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)
-*-arial-medium-r-normal--12-*-*-*-*-*-microsoft-cp1251,*-r-*" does not support all the required character sets for the current locale "ru_RU.cp1251"
open("/usr/share/locale/ru_RU.cp1251/LC_MESSAGES/gtk+.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru_RU/LC_MESSAGES/gtk+.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
Вопрос. Почему ищется файл в /usr/share/locale/ru_RU/
а не в /usr/lib/locale/
?
От чего это зависит?
Не, ну я конечно могу попробовать тупо скопировать директорию из одной папочки в другую. Но я линукс не знаю и не ведаю, к чему это приведет.
localedef --no-archive -i ru_RU -f cp1251 ru_RU.cp1251
он появился.
Пробую:
# LC_ALL=ru_RU.cp1251 strace -e trace=open lazarus 2>&1 |grep ru_RU
open("/usr/share/locale/ru_RU.cp1251/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)
-*-arial-medium-r-normal--12-*-*-*-*-*-microsoft-cp1251,*-r-*" does not support all the required character sets for the current locale "ru_RU.cp1251"
open("/usr/share/locale/ru_RU.cp1251/LC_MESSAGES/gtk+.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/ru_RU/LC_MESSAGES/gtk+.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
Вопрос. Почему ищется файл в /usr/share/locale/ru_RU/
а не в /usr/lib/locale/
?
От чего это зависит?
Не, ну я конечно могу попробовать тупо скопировать директорию из одной папочки в другую. Но я линукс не знаю и не ведаю, к чему это приведет.
- Сергей Смирнов
- энтузиаст
- Сообщения: 595
- Зарегистрирован: 28.04.2005 13:23:25
- Откуда: Москва
- Контактная информация:
