руский язык,UTF-8 , кросплаформеность.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

руский язык,UTF-8 , кросплаформеность.

Сообщение Attid »

в общем как этого добится
есть системы
win2k3
ubuntu 6.06

и там и там lazarus вчерашний срез
в виндовсе интерфейс win32
в линуксе gtk2

рисую окошко под виндуусом
переношу в линукс кракозябры,
перкодирую файлы в UTF-8
в венде кракозяки, в линуксе в лазаре нормально.

но стоит скомпилировать все :/ только капшен окошка отображается нормально а вот кнопы\лейбелы вывод в мемо все в кракозяки.

я даже готов в ручную перекодировать файлы, но как мне добится одинакового вида :( ??
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Похоже, что нужно малость подождать. Gtk2 сам по себе работает в UTF-8, под Win32 до сих пор UTF-8 не поддерживался, но сейчас (поскольку Gtk2 становится работоспособным) начаты работы по его поддержке. Как раз капшены окошек и сделаны :)
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

а лазарус компилирует программы в том же интерфесе что и он сам или это еще можно директивами контролировать ?
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

В диалоге опций компилятора можно выбрать WidgetSet, с которым будет собрана программа.
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

мои опасения подтвердились. проэкt компилировался все равно в gtk1 хотя сама ide была в gtk2 выставил принудительно и все прекрасно зарабботало и по русски.
еще раз выражаю вам Sergei I. Gorelkin свою благодарность.
SergKam
постоялец
Сообщения: 251
Зарегистрирован: 16.11.2005 20:31:11
Откуда: Украина,Харьков

Сообщение SergKam »

Во первых надо при перехде из винды в линукс и обратно конверить все файлы проекта, формы и исходники. После этого в свойствах проекта выбирать gtk2(потому что по умолчанию Gtk1 который какраз UTF8 непонимает)
но стоит скомпилировать все :/ только капшен окошка отображается нормально а вот кнопы\лейбелы вывод в мемо все в кракозяки.
потому что интерфейс лазаруса на gtk2, а компилится с библиотеками gtk1.
Я так делаю.
вручную не обязательно вот скрипт для линукса назови его win2utf

Код: Выделить всё

#!/bin/sh
for x in $*
do
cp $x $x.win
iconv -f WINDOWS-1251 -t UTF-8  -o $x $x.win
done

в папке проекта выполнить
win2utf *.pas *.lfm *.lpr

а при пережоде в винду utf2win

Код: Выделить всё

#!/bin/sh
for x in $*
do
cp $x $x.utf
iconv -f UTF-8 -t  WINDOWS-1251 -o $x $x.utf
done

в папке проекта выполнить
utf2win *.pas *.lfm *.lpr
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

скриптик конвертации немного переделали

называем convert

используем
convert 2utf
или
convert 2win



Код: Выделить всё

#!/bin/sh

if [ "$1" = "" ]; then
  echo "convert [2win | 2utf]";
fi

if [ "$1" = "2utf" ]; then
  for i in $(ls|grep .pas); do
    cp $i $i.win
    iconv -f WINDOWS-1251 -t UTF-8 -o $i $i.win
  done

  for i in $(ls|grep .lfm); do
    cp $i $i.win
    iconv -f WINDOWS-1251 -t UTF-8 -o $i $i.win
  done

  for i in $(ls|grep .lpr); do
    cp $i $i.win
    iconv -f WINDOWS-1251 -t UTF-8 -o $i $i.win
  done
fi

if [ "$1" = "2win" ]; then
  for i in $(ls|grep .pas); do
    cp $i $i.utf
    iconv -f UTF-8 -t WINDOWS-1251 -o $i $i.utf
  done

  for i in $(ls|grep .lfm); do
    cp $i $i.utf
    iconv -f UTF-8 -t WINDOWS-1251 -o $i $i.utf
  done

  for i in $(ls|grep .lfm); do
    cp $i $i.utf
    iconv -f UTF-8 -t WINDOWS-1251 -o $i $i.utf
  done

  for i in $(ls|grep .lpr); do
    cp $i $i.utf
    iconv -f UTF-8 -t WINDOWS-1251 -o $i $i.utf
  done
fi

Ответить