LINUX.ORG.RU

Перевод интерфейса на русский язык

 ,


0

2

Всем бобра!

Взялся я тут переводить одну полезную программку на русский язык, но столкнулся с проблемой: если подсунуть программе готовый mo-файл, то переведённые строчки отображаются знаками вопроса. Локаль и кодировка исходного файла — UTF-8.

Программа написана с помощью fltk 1.3

Куда копать?

Нужно установить нужную кодировку вручную в исходниках, например, CP1251. Я точно не помню как это делать, в некоторых компиляторах нужно ещё и в конфигах копаться дополнительно.

Надеюсь, что направил в нужное направление.

Human-source ()
Ответ на: комментарий от Dao_Dezi

нет, просто в более ранних версиях fltk использовалась конструкция типа extern char* fl_encoding=«koi8-r». Попробуй поиграться с Fl::set_font() - может шрифт другой нужен

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

Прошёлся по исходникам - явно шрифт задаётся в единственном месте, и то при проверке на платформу. Для винды Tahoma задаётся. В остальных местах описывается константами типа FL_HELVETICA.

Dao_Dezi ()
Ответ на: комментарий от sigurd

У программы есть опция --font, которая позволяет задавать шрифт гуя. Пробовал разные — ubuntu, tahoma, arial, sans. Шрифт гуя меняется, но проблема остаётся. Имеет ли смысл перекомпилировать с добавленной жёстко строчкой Fl::set_font?

Dao_Dezi ()
Ответ на: комментарий от Dao_Dezi

ИМХО - надо разобраться какой шрифт загружается для FL_HELVETIСA и проверить - есть ли в нем глифы руских букв. Если нет - нужно перегружать FL_HELVETICA своим шрифтом, как указано выше в японском примере. Лучше это проверить на маленьком примере (возьми японский пример как основу и добейся вывода русского)

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

надо разобраться какой шрифт загружается для FL_HELVETIСA и проверить - есть ли в нем глифы руских букв.

Проверил на японском примере. И с Fl::set_font и без него. Всё нормально. Строчки писал как напрямую в редакторе, так и хексом.

Дело в том, что в самой программе с русским всё нормально. Можно печатать и читать текст по-русски. А вот с интерфейсом беда.

ЗЫ: Если кто-то захочет ознакомиться с самой программой: тут исходники. Меньше 3Мб.

Dao_Dezi ()

Не скажу именно за fltk, но если в преамбуле исходного po-файла явно указана кодировка, например,

"Content-Type: text/plain; charset=UTF-8\n"
то gettext перекодирует текст в кодировку LC_MESSAGES (который берётся по LC_ALL (если указан) или по LANG) если был сделан соответствующий вызов setlocale().

bormant ★★★★★ ()
Ответ на: комментарий от bormant
$ grep ^ru /usr/share/locale/locale.alias
russian         ru_RU.ISO-8859-5

Интересно... Хотя файл-то чисто для обратной совместимости лежит.

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