LINUX.ORG.RU — Русская информация об ОС Linux

Сообщения xintrea

[Египет][Надёжность системы] И как луноходы собираются пользоваться Linux?

Форум - Talks

... в условиях отсутствия интернета?

Известно, что Windows вполне себе может существовать без интернета. Установил систему, остальное с дисков можно доставить. Установить программу с диска нет никакой проблемы. И дисков с варезом вокруг навалом. А если что - привезут. Жизненный цикл платформы - 5-10 лет, с таким запасом она и создается.

А пользователям Линуха придётся туго. Из дисков обычно хранятся только установочные, в надежде, что "остальное из инета докачается!". Никто полных репозитариев не держит обычно. А тут бах, и нет интернета. Как быть пользователю? Все знакомые луноходы своими любименькими дистрами пользуются. Ни у кого ничего не совместимо. Программу у соседа не возьмешь - всеравно на твой дистр не установится. Заказывать репозиторий - дорого, ибо персонально тебе придется платить за диски для своей системы, а другим пользователям - тоже персонально придется платить за диски под свою систему. Да можете себя вспомнить, если пытались освоить линух при отсутсвии интернета с помощью одного только FIDO. Тяжко было?

Так вот, кто-нибудь задумывался, какая надежность операционки Linux и инфраструктуры вокруг нее? Какой процент возможности использования остаётся, если интернета несколько месяцев не будет? Что-то мне подсказывает, что Windows тут выигрывает по всем параметрам. Линух в таких условиях явно сливает.

Дискус.

xintrea (01.02.2011 1:28:10)

[KDE4][Squeeze] Эпичный баг с буфером обмена

Форум - General

Здравствуйте!


(По следам темы: http://www.linux.org.ru/forum/general/5854887?lastmod=1296471815251)


Пользователей Debian Squeeze и KDE4 прошу проверить такую вещь:

1. Открываем Kate
2. Пишем строку, копируем её в буфер обмена
3. Закрываем Kate (именно выходим из программы)
4. В любой другой программе, например в браузере, вставляем строку из буфера обмена
5. И что получилось? Пишем сюда.

Спасибо.

xintrea (31.01.2011 14:11:03)

[wine] Очищается буфер обмена при закрытии программы. У всех так?

Форум - General

Здравствуйте!


Я недавно переехал с Lenny на Squeeze, и наткнулся на регрессию, которая мешает мне использовать нужную для работы win-программу. Не могу понять, кто виноват - Wine, KDE4 или X11.

Регрессия заключается в следующем. Если в окне запущенной win-программы выделить и скопировать какой-нибудь текст, то он нормально помещается в буфер обмена. Проблема в том, что он там лежит только на время работы программы. При выходе из win-программы в буфере обмена становится пусто.

В Debian Lenny с родным Wine 1.0.1 такого не наблюдалось.

В Debian Squeeze невозможно собрать Wine 1.0.x, так как в библиотеке freetype на текущий момент выпилили какие-то функции. Ошибка "freetype.c error: ‘FT_MulFix’ undeclared here (not in a function)".

Попытки собрать другие версии (чтоб "поймать" момент, когда же буфер стал обнуляться при выходе) показала, что та минимальная версия Wine, которая собирается и работает в Squeeze, уже имеет регрессию.

Были пророверены следующие версии Wine (номера выбирались методом бисекций, до момента неработающего функционала):


1.2.2 - Буфер обмена очищается при выходе

1.1.34 - Буфер обмена очищается при выходе

1.1.28 - Буфер обмена очищается при выходе

1.1.26 - Буфер обмена очищается при выходе

1.1.25 - Зависает при нажатии Ctrl+C, в буфер вообще ничего не копируется

1.1.23 - Программа не запускается, Access violation, exception 0x00000001

1.1.20 - Программа не запускается, Access violation, exception 0x00000001

1.1.17 - Зависает при нажатии Ctrl+C, в буфер вообще ничего не копируется

1.1.12 - Зависает при нажатии Ctrl+C, в буфер вообще ничего не копируется


В общем, в Squeeze использовать Wine стало невозможно.

А вопрос в следующем. Нужно выяснить, в чем причина такой регрессии. Вполне может быть что и не Wine виновата, а KDE4 или X11. Просьба к тем, у кого есть Wine, запустить команду:

wine ~/.wine/drive_c/windows/notepad.exe

написать пару строк и скопировать в буфер обмена. Вставить текст в другой редактор не закрывая notepad.exe, и попроовать вставить текст после закрытия notepad.exe.

Отпишите в эту тему, что у вас происходит. Желательно указать версию Wine и версию десктопа (Gnome, KDE, etc...).

Спасибо.

xintrea (31.01.2011 11:57:17)

[wine] Как увидеть TRACE() - сообщения?

Форум - General

Здравствуйте!


В коде wine понатыкан вывод сообщений, сделанный в таком виде:

TRACE("Sending SelectionNotify event...\n");

Что-то я не пойму, как увидеть эти сообщения? Запускаю wine например так:

env WINEDEBUG="warn+all,+relay,+seh,+tid"
wineconsole --backend=user /opt/programm/programm.exe

Но сообщений не видно. В man про trace ни слова.

xintrea (30.01.2011 1:29:28)

[Пользователям MC] Как заставить работать выделение по Shift+Стрелки в Konsole KDE4

Форум - Desktop


Некоторые пользователи MC не знают, что в Midnigth Commander с некоторых пор работает выделение текста с помощью Shift+Стрелки. Такое выделение работает во всех эмуляторах терминалов, за исключением Konsole. Объясняю, как настроить этот естественный метод выделения, чтоб не мучать себя F3.


Разобъём настройку на два этапа.


Первый этап простой. Называется "Настриваем работу Shift+Left и Shift+Right".

Тут всё просто. Заходим в настройки профиля "Настройка -> Настроить профиль -> Клавиатура -> Именить". Удаляем строки:

Left+Shift-AppScreen | не помню что, уже удалил
Right+Shift-AppScreen | не помню что, уже удалил

Добавляем строки:

Left+Shift | \EO2D
Right+Shift | \EO2C

Сохраняем, и сразу же начнет работать выделение в MC-редакторе по Shift+Влево и Shift+Вправо.



Второй этап сложнее. Называется "Как заставить работать Shift+Up и Shift+Down".

Рецепт для Debian, и видимо подойдет для Ubuntu.

Вначале заходим в настройки профиля "Настройка -> Настроить профиль -> Клавиатура -> Именить". Удаляем строки:

Up+Shift-AppScreen | ScrollLineUp
Down+Shift-AppScreen | ScrollLineDown

Далее с удивлением узнаем, что комбинации клавиш Shift+Up, Shift+Down, Shift+PgUp, Shift+PgDn захардкорены прямо в коде Kondole, поэтому ничего не остается, как править исходники.

Вначале получаем и компилируем исходники Konsole, чтобы удостовериться, что у нас действительно работает компиляция. Весь процесс по шагам написан в этой статье:

http://webhamster.ru/site/page/index/articles/comp/131

Затем находим в исходниках файл:

./kdebase-4.4.5/apps/konsole/src/TerminalDisplay.cpp

В нем находим метод keyPressEvent, и комментируем следующий блок:

// Keyboard-based navigation
if ( event->modifiers() == Qt::ShiftModifier )
{
    bool update = true;

    if ( event->key() == Qt::Key_PageUp )
    {
        _screenWindow->scrollBy( ScreenWindow::ScrollPages , -1 );
    }
    else if ( event->key() == Qt::Key_PageDown )
    {
        _screenWindow->scrollBy( ScreenWindow::ScrollPages , 1 );
    }
    else if ( event->key() == Qt::Key_Up )
    {
        _screenWindow->scrollBy( ScreenWindow::ScrollLines , -1 );
    }
    else if ( event->key() == Qt::Key_Down )
    {
        _screenWindow->scrollBy( ScreenWindow::ScrollLines , 1 );
    }
    else
        update = false;

    if ( update )
    {
        _screenWindow->setTrackOutput( _screenWindow->atEndOfOutput() );

        updateLineProperties();
        updateImage();

        // do not send key press to terminal
        emitKeyPressSignal = false;
    }
}

Компилируем, устанавливаем полученный пакет, и в Konsole начинают работать Shift+Up и Shift+Down.


В исходниках Konsole присутствует бардак в идеологии, комбинации клавиш для скроллинга вверх и вниз постоянно обрабатываются отдельным кодом, вместо того, чтобы просто обработать событие по клавишам, как оно настроенно в рабочем профиле Konsole. Отсюда и такой нетрадиционный способ исправления.

Любителям английского языка рекомендую активировать в багтрекере KDE4 действия по устранению этого безобразия.

xintrea (28.01.2011 23:59:38)

[Debian][Kde4] Самодельный курсор в Konsole

Форум - Talks

Для Ъ:

>>-----Цитата---->>

Вы умеете в Linux собирать программы из исходников? Наверно, доводилось набирать ./configure, make, make install. Результат обычно зависит от расположения звёзд и фазы луны. Наверно, вы даже научились угадывать имена dev-пакетов, которые нужно доустановить, по имени функции, которая не хочет компилироваться. Однако, этих умений иногда оказывается недостаточно.

Компиляция в операционной системе Linux может принимать разнообразные, извращенные формы. Например, компиляция исходников, расположенных в deb-src репозитариях, в корне отличается от привычных configure & make.

В новой статье нашей постоянной рубрики "Linux: как перестать плеваться, и начать работать" рассказывается о том, как пересобрать программу, внеся в нее маленькие, но очень полезные изменения.


Статья: "Меняем форму курсора в Konsole. Или как в Debian подправить исходники из deb-src и перекомпилировать их".

<<-----Цитата----<<

http://webhamster.ru/site/page/index/articles/comp/132

xintrea (27.01.2011 16:40:28)

Простой вопрос. Где взять правильные строки для прописывания в sources.list (Squeeze) ?

Форум - General

Здравствуйте!


Я не могу нигде в интернете найти простую вещь.

Нужно в /etc/sources.list прописать все (ну хотя бы основные) репозитарии Debian Squeeze, включая репозитарии с исходникамм. В интернете полный зоопарк, какие строки надо прописывать. На офицальном сайте debian.org тоже этой информации не нашел.

Мне предлагают прописывать:

deb http://security.debian.org squeeze/updates main contrib non-free                              
deb-src http://security.debian.org stable/updates main contrib non-free                          
                                                                                                  
deb http://ftp.ru.debian.org/debian/ squeeze main non-free contrib                                
deb-src http://ftp.ru.debian.org/debian/ stable main non-free contrib

Но с какого перепуга для deb-src строки "stable/updates" и "stable" присутствуют?

Вообще, с репозитариями полный хаос. В другом месте предлагают прописывать:

deb ftp://ftp.ru.debian.org/debian/ testing main contrib non-free
deb-src ftp://ftp.ru.debian.org/debian/ testing main contrib non-free
deb http://ftp.ru.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.ru.debian.org/debian/ testing main contrib non-free

Вроде больше похоже на правду, но кому верить? Почему testing а не squeeze?


Дайте пожалуста правильные строки репозитариев. Или скажите где их _офицально_можно посмотреть? Я излазил весь debian.org - хрен, нигде нету.

xintrea (27.01.2011 1:47:27)

Кто-нибудь знает, как скомпилировать кусок KDE4 со своими изменениями?

Форум - General

Здравствуйте!


В свете вот этого обсуждения:

http://www.linux.org.ru/forum/general/5835297

выяснилось, что в программе Konsole среды KDE4 захардкорена работа с некоторыми нужными сочетаниями клавиш. Я решил посмотреть что там в исходниках, и по возможности поправить хотя бы для себя.


Для начала я прочитал вот эту страничку:

http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN

И полазил по дереву исходников, чтоб примерно понять что к чему:

http://websvn.kde.org/branches/KDE/4.4/


Затем выяснил, какая версия KDE4 у меня, оказалась 4.4.5 (Debian Squeeze). Для закачки исходников выполнил команды:

mkdir kde_4_4_src
cd kde_4_4_src
svn co svn://anonsvn.kde.org/home/kde/branches/KDE/4.4/kdelibs
svn co svn://anonsvn.kde.org/home/kde/branches/KDE/4.4/kdepimlibs
svn co svn://anonsvn.kde.org/home/kde/branches/KDE/4.4/kdebase

Исходники программы Konsole нашлись в каталоге ./kdebase/apps/konsole/.


Выполнить команду "cmake ." в каталоге ./kdebase/apps/konsole/ не получилось. Выдается ошибка:

CMake Error at CMakeLists.txt:3 (KDE4_NO_ENABLE_FINAL):
  Unknown CMake command "KDE4_NO_ENABLE_FINAL".

По всей видимости, не определен макрос KDE4_NO_ENABLE_FINAL, который должен определяться где-то CMakeLists.txt, расположенном выше в иерархии каталогов.


Тогда я попробовал запустить компиляцию непосредственно в каталоге ./kdebase. Даю в этом каталоге команду "cmake .", и получаю ошибку:

CMake Error at /usr/share/cmake-2.8/Modules/FindKDE4.cmake:98 (MESSAGE):
  ERROR: cmake/modules/FindKDE4Internal.cmake not found in
  /home/xi/.kde/share/apps;/usr/share/kde4/apps
Call Stack (most recent call first):
  CMakeLists.txt:19 (find_package)

Вот тут я уже понять не могу, что надо сделать, чтоб побороть эту ошибку.

Нужны нормальные советы, а не предположения.

xintrea (27.01.2011 0:12:06)

Jabber.ru - не могу подключиться

Форум - General

Здравствуйте!

Что-то не могу я зайти клиентом KVirc на jabber.ru. Порылся у них там, так и не нашел ни параметров подключения, ни на каком порту они работают.

В лог у меня вылазит следующее:

[16:52:58] Попытка соединение к jabber.ru (Rusnet) через порт 6667
[16:52:58] Поиск сервера (jabber.ru)...
[16:52:58] У сервера есть 2 IP адресов, выбираем случайный
[16:52:58] Адрес сервера 77.88.57.177
[16:52:58] Подключение к IRC серверу jabber.ru (77.88.57.177) через порт 6667
[16:53:19] [ОШИБКА СОКЕТА]: Закончилось время соединения
[16:53:19] Ошибка при попытке соединения [jabber.ru]
[16:53:19] Попытка повторного подключения через 10 секунд [8 из 15]

Вопрос - какие параметры подключения к jabber.ru у вас?

xintrea (26.01.2011 16:53:37)

[Midnight Commander] [KDE4] Кто-нибудь смог настроить работу выделения по Shift+Стрелки?

Форум - General

Здравствуйте!


Несколько лет я потратил на то, чтобы разобраться, как в Konsole KDE3 в редакторе MC заставить работать выделение по Shift+Стрелки. Статья о том как это делать:

http://forum.ubuntu.ru/index.php?topic=67387.0

С переходом на Debian Squeeze пришлось распрощаться с KDE3 и начать пользовать KDE4. Новая Konsole устроено по-другому, и конечно, выделение по Shift+Стрелки в редакторе MC не работает.

Я попытался настроить Konsole через Настройка -> Настроить профиль -> Клавиатура -> Именить. И, так же как и в KDE3, я попробовал там изменить строки:

Up+Shift-AppScreen \EO2A
Down+Shift-AppScreen \EO2B
Вправо-влево пока не трогал

Сохранил конфигурацию, перезапускаю Konsole - и никакого толку. Shift+Стрелки не работат для выделения в редакторе.


Вопрос. У кого-нибудь получилось настроить Konsole так, чтобы в редакторе MC заработало выделение по Shift+Стрелки?

xintrea (26.01.2011 3:04:10)

[KDE4] "Часы с циферблатом" - какой идиот их делал?

Форум - Talks

Здравствуйте!


Я вшоке, господа. Обновился с Lenny до Squeeze, всвязи с чем пришлось распрощаться с третьими кедами. Я конечно слышал, что KDE4 не торт, но не ожидал что до такой степени.

Фимоз разработчиков заходит гораздо дальше, чем можно было бы предположить.

Сейчас добрался до настроек часов. В системую панель стрелочные часы вставить вроде и можно, но время по ним узнать невозможно - не видно стрелок. А чтобы было видно, надо высоту панели увеличивать эдак до 40-50 пихселей (в KDE3 время на часах видно при высоте панели 24 пикселя).

Пришлось повесить виджет часов на рабочий стол. И когда я ЭТО увидел...

http://rghost.ru/3997179/image.png

Как, скажите, как можно узнать время по таким часам? Кто этот идиот, который писал код? Кому послать лучи поноса? Это же каким надо быть кретином, чтобы такие часы сделать, и о чем думала та толпа кретинов, которые приняли это поделие в основную ветку кед?

xintrea (19.01.2011 16:50:59)

Решился на обновление Debian с Lenny до Squeeze, а оно...

Форум - General

Здравствуйте!


Нашел краткую инструкцию: http://linuxforum.ru/viewtopic.php?id=2109

1. Прописываем репозитарии, старые комментируем
2. aptitude update
3. aptitude install apt aptitude dpkg
4. aptitude full-upgrade

Дошел до пункта 3, и как-то ссыкотно стрёмно продолжать дальше.

Лог: http://paste.org.ru/?dt3xkh

Вопрос. Что случится, если согласится на все эти изменения?

По какой-то причине неработоспособны libqt4-..., dpkg, питоновые либы, python-2.5... Будут удалены kdebase-bin-kde3, kdebase-kio-plugins, kdesktop (это что, KDE3 исчезнет?)... Куча неудовлетворенных зависимостей, причем все конфликтующие пакеты родные дебиановские...

Затем страшное:

Удалить следующие пакеты: amarok-konqsidebar apt-file apt-show-versions emacs emacs22 kde-core kdebase konqueror konqueror-nsplugins libapt-pkg-perl libept0 libsndfile1-dev synaptic webmin

С какого перепугу atitude их решил удалить? Как мне работать без apt-file, kde-core, kdebase, synaptic?

Кароче, что станет с ситемой, если соглашусь на эти обновления?

xintrea (17.01.2011 2:28:43)

Установка Stellarium: как указать cmake, откуда брать Qt?

Форум - General

Здравствуйте!

Пытаюсь установить Stellarium 0.10.6. Для сборки он требует Qt версии не менее 4.6.0.

У меня в системе стоит Qt 4.5.3 (установлено из репозитерия) и Qt 4.7.1 (установлено из исходников).

Однако cmake, с помошью которого собирается Stellarium, находит только Qt 4.5.3.

Вопрос. Как указать cmake, что нужно борать Qt из каталога /usr/local/Trolltech/Qt-4.7.1 ?

xintrea (09.01.2011 18:34:00)

CMake: как прописать линковку с использованием библиотеки?

Форум - Development

Здравствуйте!


У меня есть проект, в котором используются библиотеки libSDL.o, libSDL_mixer.o и libogg.o.

Чтобы пошла сборка с использованием этих библиотек, в опциях линковки нужно указать:

-lSDL -lSDL_mixer -logg

Вопрос. Как это дело прописать в файле CMakeLists.txt ? Что-то рою-рою, но нахожу только как подключать библиотеки, которые собираются в самом проекте из исходников. А как подключать готовые библиотеки - не могу понять.

xintrea (09.01.2011 1:21:14)

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

Форум - Development

Как в баше сформировать поток из двух файлов с переносом строк? То есть, мне нужен поток:

Файл1_строка1
Файл1_строка2
Файл1_строка3
Файл1_строка4
+++
Файл2_строка1
Файл2_строка2
Файл2_строка3
Файл2_строка4

Я пытаюсь сформировать его такой командой:

STREAM=$(cat team_a.txt && echo -e "\n+++" && cat team_b.txt)
echo ${STREAM}

В результате в переменной ${STREAM} лежат данные обоих файлов и разделитель "+++" между ними в виде одной большой строки.

А нужно, чтоб сохранились переносы. Как?

xintrea (09.01.2011 0:18:04)

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

Форум - Development

Здравствуйте!

Пишется программа на минимальном C/C++. Программа должна брать исходные данные из стандартного потока ввода. Исходные данные - это содержимое двух файлов.

То есть, программа должна уметь запускаться как из консоли, а так же и другой программой, которая генерирует содержимое двух файлов "на лету".

Со считыванием _одного_ файла воспросов нет. Вызов происходит так:

$ ./solver < file1.txt

Считывание всех байтов в C-коде выглядит так:

 char buf[MAX_DATA_SIZE];

 int i=0;
 while(!feof(stdin) && i<MAX_DATA_SIZE)
  buf[i++]=fgetc(stdin);

 log("Read '%d' bytes from standart input stream\n", i);

Проблема в том, как считать из стандарного потока _два_ файла. То есть, видимо проблема в том, как определить где оканчивается один файл и начинается второй.

Еще проблема - какой командой засунуть в стандартный поток содержимое двух файлов? Вот такая команда засовывает ли два файла или нет:

$ ./solver < file1.txt < file2.txt

?

xintrea (08.01.2011 21:04:45)

jQuery, функция animate(), рекурсия

Форум - Web-development

Здравствуйте!


Есть некая игра (что-то наподобе шахмат), для которой на jQuery пишу "плейер". Плейер предназначен для того, чтобы показывать "запись" игры. Игра на двух человек, сначала ходит фигура одного игрока, потом другого, и т.д. Плейеру скармливаются все ходы в игре, он в соответствие с этими ходами перемещает фигуры на экране.

Перемещение фигур должно поисходить так: движется одна фигура, когда она закончила движение, должна перемещаться следующая фигура, и т.д.

В jQuery есть функция animate(), в последнем параметре которой можно указать "конечную" функцию, которая вызывается в конце движения фигуры. Я могу указывать в качестве конечной функции метод начала обработки нового шага, next_step() например.

Но, у меня складывается впечатление, что это создаст рекурсию. Так как в next_step() снова будет вызвана animate() для следующей фигуры, и т.д. Помню, что совсем недавно в браузерах были какие-то ограничения на глубину стека вызовов. То ли 64, толи 100. А в моей игре возможно и 500 ходов и более.


Всвязи с вышеизложенным, вопросы:

1. Действительно ли в вышеописанном случае будет рекурсия?

2. Какие ограничения в JavaScript на стек вызовов в современных браузерах?

3. Как организовать плейер так, чтобы небыло рекурсии? У меня есть предположение сделать машину состояний, и в качестве конечной функции для animate() указать метод, переключащий некий флаг в состояние "ход закончен". Но тогда надо организовывать основной цикл, который будет отслеживать флаги, а его можно организовать только через setTimeout(), что даже при обработке 10 раз в секунду может дать большую нагрузку на браузер.


То есть, мне бы хотелось просто вызывать обработку следующего хода в момент, когда движение фигуры на текущем ходе закончено. Как это сделать?

xintrea (02.01.2011 18:26:18)

SuperTuxKart 0.7 released - здрасьте новые глюки

Форум - Talks

С радостью прочитал новость:

http://www.linux.org.ru/news/games/5701798

Скачал, начали играть с ребенком (раньше играли в 0.6). Ребенок вроде и рад, но смотрю, что играть у него не получается. Делает какие-то глупые ошибки. В конце концов, говорит - не могу играть, игра эта неправильная. "Почему" - спрашиваю? "Незнаю" - говорит - "Слишком сложно".

Решил я попробовать поиграть. Внешне вроде бы трассы не сильно изменились, в чем же дело думаю? Начинаю играть - и понимаю. Разломана обработка клавиатуры. Игра рандомно не реагирует на нажатия клавиш. Нужно сделать поворот - фиг тебе, едешь прямо, несмотря на то что клавишу нажал. Нужно ускориться - тоже несколько раз нажимай "N", пока не сработает.

В общем, играть стало невыносимо. То есть, вроде и есть игра, и новые уровни, но нервов не хватает. Эти глюки только у меня проявляются или у всех так?


И еще - теперь в игре бутылки с NITRO при приближении к ним _иногда_ превращаются в "ляпсы". Причем, направил машину на бутылку, подъежжаешь - а она "ляпсой" стала. Нет времени отвернуть в сторону, и вместо того чтоб ускориться, замедляешься.

xintrea (01.01.2011 17:43:37)

[Возможно боянчег] Товарищ сделал самодельный микропроцессор в железе

Форум - Talks

"... соединял все элементы на плате вручную, для чего потребовалось более 1250 проводов. Тем не менее, процессор отлично функционирует на частоте 2 МГц и теоретически может работать на 3 МГц, но это пока что не тестировалось. Шина данных имеет ширину 8 бит, а шина адреса - 24 бита, что позволяет работать с 16 Мб оперативной памяти..."

http://www.xakep.ru/post/48403/

xintrea (19.12.2010 1:31:51)

[Qt] Перевод программы. Глючит QtLinguist, и видна только треть переведенных строк.

Форум - Development

Здравствуйте!


Начал я делать перевод программы MyTetra. И что-то у меня не работают механизмы перевода как надо.


1. Глючит QtLinguist

Все исходники у меня в кодировке UTF8. Системная локаль тоже UTF8. После формирования ts-файла с помощью lupdate, при открытии его в QtLinguist, вместо комментариев к переводу отображаются кракозябры. Так же, в окошке исходников вместо русского текста кракозябры.

Выглядит это так: [img]http://rghost.ru/3638596/thumb.png[/img] http://rghost.ru/3638596/image.png

Вот кусок ts-файла. Обратите внимание, что вместо комментариев к переводу lupdate сформировал кракозябры:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="ru_RU" sourcelanguage="en">
<context>
    <name>AddNewRecord</name>
    <message>
        <location filename="../../../src/addnewrecord.cpp" line="34"/>
        <source>Enter a new note</source>
        <translation>Ввод новой записи</translation>
    </message>
    <message>
        <location filename="../../../src/addnewrecord.cpp" line="86"/>
        <source>Please enter the note's <b>title</b>. </source>
        <comment>Обязателен пробел в конце предложения</comment>
        <translation>Пожалуйста, введите <b>название</b> записи. </translation>
    </message>
    <message>
        <location filename="../../../src/addnewrecord.cpp" line="95"/>
        <source>Please enter the note's <b>text</b>. </source>
        <comment>Обязателен пробел в конце предложения</comment>
        <translation>Пожалуйста, введите <b>текст</b> записи. </translation>

Я пробовал и QtLinguist 4.5.0, и 4.5.3 - картина та же самая. Но это не самая большая проблема. Хуже всего другое.


2. В интерфейсе программы переводится только ~треть строк

То есть, в QtLinguist я сделал перевод. Сформировал qm-файл. Запускаю программу, и вижу, что из этого qm-файла используются не все переведенные строки, а где-то треть переведенных строк. В qm-файле видно, что строки переведены, но они всеравно отображаются на английском языке.

Причем, такое впечатление, что доходит до какой-то фразы, после которой переведенные фразы не видны. На вышеприведенном скриншоте есть класс Editor. Вот всё что сверху него - перевод в программе происходит. Всё, что находится в Editor и ниже - перевода в запущенной программе не видно.

То есть, в данном случае, сделан перевод настроек программы - он виден. Сделан перевод интерфейса редактора и панели поиска по базе (которая внизу экрана MyTetra) - перевод не виден.

Вот исходники со всеми файлами, необходимыми для старта программы: http://rghost.ru/3638976 (175 Кб)


Кто может помочь разобраться что не так, почему не работает перевод?

xintrea (17.12.2010 1:47:27)

О Сервере - Правила форума
http://www.linux.org.ru/

Rambler's Top100 Рейтинг@Mail.ru