Решения тех проблем, с которым мне приходилось сталкиваться.

Показаны сообщения с ярлыком i18n. Показать все сообщения
Показаны сообщения с ярлыком i18n. Показать все сообщения

четверг, 19 марта 2009 г.

кодировки в gedit

Как упростить работу в gedit с файлами в разных кодировках?


  1. С помощью gconf-editor расширить список кодировок в ветке /apps/gedit-2/preferences/encodings/auto_detected

  2. Установить специальный плагин, позволяющий менять кодировки на лету. Плагин нужно распаковать в ~/.gnome/gedit/plugins и активировать в gedit (Edit --> Preferences --> Plugins --> Encoding)


Подсмотрено здесь:
кодировка в текстовом редакторе Gedit

пятница, 13 марта 2009 г.

Документы Excel, OpenOffice и кодировка

В некоторых кривых Excel'евских документах русские символы при открытии их в OpenOffice Calc отображаются кракозябрами. Решение найдено такое:


  1. Скачивается дополнение CyrTools к OpenOffice

  2. Устанавливается (Сервис->Управление расширениями->Добавить...). Дополнение проявляет себя как новый пункт главного меню (Кириллический документ)

  3. После открытия "кривого" документа в меню выбираем "Кириллический документ->Перекодировка документа->Латиница-1 в кириллицу"

вторник, 14 октября 2008 г.

Язык интерфейса и локаль

Я уже писал про разницу между локалью и языком интерфейса, а недавно самому пришлось вспоминать куда чего прописывать.
Итак, свежеустановленная ubuntu 8.04.1. Требуется иметь английский интерфейс для меню и программ, но русскую локаль. Так как я один пользователь, то прописываю настройки глобально, в /etc/environment

LANG=ru_RU.utf8
LANGUAGE=en_US.utf8

После перезагрузки выясняется, что не работает - язык интерфейса по-прежнему русский. Переменная LANGUAGE вообще не определена. После долгих копаний обнаруживается, что это дело рук gdm. Уже не знаю почему, но он сравнивает значение LANGUAGE и GDM_LANG и, если они не совпадают, сбрасывает LANGUAGE. GDM_LANG же берется или из ~/.dmrc или из LANG или можно выбрать в меню экрана входа.
Т.е. пришлось искать место, где сделать установку LANGUAGE в рамках пользователя, после gdm, но до остальных гномовских приложений. К счастью, старые правила еще работают. Таким местом стало ~/.gnomerc

четверг, 10 января 2008 г.

добавление локали в ubuntu

Иногда требуется использовать одну или несколько дополнительных локалей (например, ru_RU.KOI8-R, ru_RU.CP1251). Как добавить? В новых версиях ubuntu процедура немного отличается от старых. Все поддерживаемые локали находятся в файлах, расположенных в каталоге /var/lib/locales/supported.d/
В частности там есть файл local. Добавляем строчки с названиями нужных локалей.


ru_RU.CP1251 CP1251
ru_RU.KOI8-R KOI8-R

А потом выполняем команду locale-gen

четверг, 28 июня 2007 г.

перекодировка текста

До сих пор часто требуется перекодировать файл из одной кодировки в другую. Например, если он попал на машину с системы Windows, для которой родной 8-битной является Windows-1251.
До сего дня не знал, что в большинстве nix-систем есть маленькая программка iconv, которая перекодирует стандартный поток ввода и направляет результат в стандартный поток вывода.
Формат использования самоочевидно прост:


iconv -f <from_encoding> -t <to_encoding>

Также можно посмотреть список поддерживаемых кодировок:

iconv -l

Сама функция iconv предоставляется glibc, так что действительно программа вездесуща.

четверг, 31 мая 2007 г.

русский в текстовой консоли

Когда я пользовался debian я ставил пакет console-cyrillic. Он загружал нужные шрифты и настраивал сочетания клавиш для переключения между раскладками.

Теперь (по крайней мере в 7.04) эти же функции возложены на console-setup. Т.е. выполняем


sudo dpkg-reconfigure console-setup

и выбираем нужные параметры.

Кстати говоря, console-cyrillic, которым я таки до сего дня пользовался не нравился мне тем, что при старте во время загрузки портил splash-screen какими-то своими артефактами. Теперь я его удалил и все исчезло. Я доволен.

суббота, 26 мая 2007 г.

русскоязычные тэги в mp3

MP3 появился значительно раньше его свободного аналога OGG Vorbis, поэтому о unicode и национальных символах в момент его создания особенно не заметились.
Первая версия MP3-тэгов ID3v1 вообще не было ориентирована на многобайтные кодировки и на кодировки отличные от ISO8859-1. Но, надо было как-то хранить русские названия и их стали хранить, подразумевая, что они представлены в кодировке windows-1251. В системах, отличных от оффтопика это стало вызывать проблемы. Появились плагины, конвертирующие on-line кодировку в понятную системе, и это частично решало проблему.

С появлением ID3v2 стала доступна возможность использовать многобайтные кодировки. Но и тут было не всего гладко, подверсии ID3v2 поддерживали кодирование метаинформации по-разному, а некоторые плееры не считали нужным отличать, скажем, ID3v2.3 и ID3v2.4.

И тем не менее, на данные момент самым правильным способом хранения русских тэгов является использование Unicode внутри ID3v2 тэгов. Большинство современных программных плееров, а в последнее время и аппаратные плееры ориентируются именно 2-ую версию.

Если у вас есть коллекция песен в старом формате можно неспеша сконвертить ее в новый, использую замечательную программку EasyTag. Она умеет читать тэги из ID3v1 (в любой кодировке, это настраивается) и соотвественно записывать в "правильном" современном формате. Какая разновидность unicode (UTF-8, UTF-16) будет использована также настраивается.

понедельник, 7 мая 2007 г.

язык интерфейса и локализация

Иногда хочется использовать англоязычный интерфейс для программ, сохраняя при этом национальные настройки локали (дата, время, валюта и т.д.). Языковые настройки устанавливаются в linux через переменные окружения:


  • LANG. Определяет собственно локаль (национальные особенности в представлении определенного вида данных). Пользуется наименьшим приоритетом, может быть переопределена другими переменными (см. далле);

  • LANGUAGE. Предпочитаемые языки интерфейса программ в порядке убывания. Не входит в POSIX стандарт, поддерживается программами, использующими GNU gettext;

  • Группа переменных LC_*. Позволяет установить раздельные языковые предпочтения для каждого типа локализуемой информации. Отдельно стоит обратить внимание на переменную LC_ALL. Если она определена, то она перекрывает все остальные настройки, т.е. имеет наивысший приоритет. Обычно, эту переменную используют в целях отладки, когда нужно быстро (временно) переключить все настройки локали на другой язык.


Таким образом, чтобы иметь русскую дату/время и английский интерфейс нужно установить две переменные окружения:

LANG=ru_RU.UTF-8
LANGUAGE=en_GB:en

Но не все программы "реагируют" на LANGUAGE. В частности firefox и thunderbird в таком случае продолжают использовать LC_MESSAGES или LANG (в указанном приоритете).
Т.е. более правильно будет сделать даже так:

LANG=ru_RU.UTF-8
LC_MESSAGES=en_GB

Мне пока неизвестны программы, которые "не понимают" LC_MESSAGES, но понимают LANGUAGE.

понедельник, 30 апреля 2007 г.

ZIP и интернациональные символы в именах файлов архива

Программа zip не очень правильно работает с национальными символами в именах файлов. Чтобы потом распаковать архив, созданный, например, под Windows, нужно сделать следующее:


unzip <archive>
convmv -f iso8859-1 -t cp850 -r --notest --nosmart <arch_dir>
convmv -f cp866 -t utf8 -r --notest --nosmart <arch_dir>

Это при условии, что локаль utf8. Если koi8-r, то в последней команде это нужно отразить.

Собственно основную работу выполняет утилитка convmv, предназначенная для преобразования кодировок в именах файлов. Находится она в одноименном пакете.

суббота, 28 апреля 2007 г.

запись номер 1

Итак, первый маленький совет, но очень актуальный, ибо этого мне и в самом деле не хватало в убунте. Речь идет о индикаторе текущей раскладки клавиатуры не в виде аббревиатуры страны, а в виде флага.

Настроить эту возможность через меню самого апплета не представляется возможным. Но задействовать эту функцию можно через gconf-editor
Ставим флажок


/desktop/gnome/peripherals/keyboard/indicator/showFlags

и помещаем файлики с картинками флажков в ~/.icons/flags

Работает :)

Спасибо товарищам из списка рассылки ubuntu-ru, которые постепенным приближением к истине откопали решение.