Просмотр полной версии : Mudlet 4.0 на русском
Здравствуйте!
Я один из разработчиков Mudlet (http://www.mudlet.org/), и мы стремимся к тому, чтобы Mudlet 4.0 работал с русским. Я хотел бы предложить всем поделиться своим опытом с переведенным программным обеспечением, списками пожеланий для Mudlet и откликами на предложенную «дорожную карту» на наших форумах (http://forums.mudlet.org/viewtopic.php?f=7&t=19499). Если вы уже работали над добавлением поддержки i18n в Mudlet, присоединяйтесь к нам в Github, чтобы присоединиться к нашим усилиям ;)
С уважением
Вадим
Скачал исходники Мудлета отсюда https://github.com/Mudlet/Mudlet
Попробовал собрать в среде Ubuntu 16.10 x86_64
Выполнял инструкции из файла COMPILE, в частности, установил Qt5 с их сайта
Не собирается, такое впечатление, что исходник ищет файлы, которых нет в Qt5, но которые есть в Qt4
Вот эти
ui_main_window.h:
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QHeaderView>
#include <QtGui/QMainWindow>
#include <QtGui/QMdiArea>
#include <QtGui/QMenu>
#include <QtGui/QMenuBar>
#include <QtGui/QVBoxLayout>
#include <QtGui/QWidget>
Или я что-то не так делаю, что вероятнее
Привет! Попробуй http://wiki.mudlet.org/w/Compiling_Mudlet#Compiling_on_Ubuntu_16.04 - работает?
Получилось
Полученный mudlet отправляет кириллицу нормально (тестовые кириллические команды в кодировке UTF-8 в моем маде работают). Но не показывает кириллицу, рисует квадратики
Кто-то уже нашел, как устранить эту проблему, или надо искать в коде, где режется старший бит (или что-то аналогичное)
Вот скриншот https://gyazo.com/cc5e5a3d91fbe6913325329e4b765be9
Вот почему "стремимся" :) возьми https://github.com/Mudlet/Mudlet/pull/969, там есть начало того - a тут карта разработки (https://github.com/Mudlet/Mudlet/milestone/1).
Мудлет из пулла 969 собрался и ведет себя именно так, как на твоих скриншотах: показывает UTF-8 кириллицу, но не всегда, причем почему, пока не понятно
Помоги разяснить почему! Я тоже с етой проблемой столкнулся (https://github.com/Mudlet/Mudlet/pull/969#issuecomment-297756697), но при расследовании мы нашли (https://gitter.im/Mudlet/Mudlet?at=590a4d8608c00c092adf30d1) неверный utf-8.
SlySven сделал новую версию, уже без этих глюков:
https://github.com/SlySven/Mudlet/tree/Enhance_addTextTranscoding
Я думаю, обязательно нужно добавить в кодировку koi8-r
https://github.com/SlySven/Mudlet/tree/Enhance_addTextTranscoding ето и тоже самое https://github.com/Mudlet/Mudlet/pull/969!
Почему так думаешь об koi8-r?
Я имею ввиду эту версию https://github.com/SlySven/Mudlet/commit/59430a89efd5a6a73a769bcef5c27e3c95bd09b6
Это последняя (2 дня назад) версия с тегом Enhance_addTextTranscoding
Там переделан код перекодировки (зачем, я не понял, наверное для исправления ошибок). И эта версия уже почти нормально работает с UTF-8. Минимум глюков обнаруживается при смене цвета esc-последовательностями, и то не всегда.
Там же нормально работает кириллица в кодировках WINDOWS-1251 и koi8-r. Там даже реализована старая кодировка кириллицы - CP866
А почему я агитировал за koi-8r? Потому что UTF, хоть и является стандартом де-факто, реализовано не во всех русских мадах. А koi, как и 1251 есть везде. Но у кодировки 1251 есть проблема с маленькой буквой я, код которой ff совпадает со служебным кодом протокола telnet. А у koi этой проблемы нет
Я думаю, обязательно нужно добавить в кодировку koi8-r
А, ок, KOI8-R там уже есть - надо что-то менять?
Там переделан код перекодировки (зачем, я не понял, наверное для исправления ошибок). И эта версия уже почти нормально работает с UTF-8. Минимум глюков обнаруживается при смене цвета esc-последовательностями, и то не всегда.
Нам тут непонятно ести текст с мада проблематичный или нет когда ети глюки происходят: https://gitter.im/Mudlet/Mudlet?at=590a4d8608c00c092adf30d1 (могу перевести если хочешь)
У меня есть подозрение, что протокол telnet не дружит с кодировкой UTF-8 из-за того, что код 0xFF, присуствующий в UTF, интерпретируется телнетом как команда.
Вот эта версия https://github.com/SlySven/Mudlet/commit/59430a89efd5a6a73a769bcef5c27e3c95bd09b6 работает практически идеально, глюков не наблюдается
Вот скриншот https://gyazo.com/bbb64b7b91aaa8dabe1ce3391f1d8333
Я тестирую сборку Mudlet в Ubuntu, может Windows версии ведут себя по другому?
* * *
Уточните, пожалуйста, какую именно версию Mudlet и в каких условиях надо протестировать?
Да нет, я на убунте тоже, на Windows пока сильно так не тестировали даже.
Mudlet с https://github.com/Mudlet/Mudlet/pull/969 на всех русских мадах, с разными кодировками, пожалуйста!
Я не почему надо тестировать именно эту версию (как я уже выше писал, в форке у SlySven есть другая ветка, там больше кодировок и почти нет глюков)
Но раз надо, то вот:
В пулле номер 969 в меню только две кодировки - UTF-8 и WINDOWS-1251. Кодировка 1251 не работает из-за ошибки (опечатки) в коде:
else if (mpHost->mTelnet.getEncoding() == QLatin1String("WINDOWS-1250")) {
mMudLine.append(QString(decodeByteToWindows_1250(c h)));
}
else if (mpHost->mTelnet.getEncoding() == QLatin1String("WINDOWS-1251")) {
mMudLine.append(QString(decodeByteToWindows_1250(c h)));
А кодировка UTF-8 в целом работает, но иногда дает вот такие глюки
https://gyazo.com/b3cfd3fcff96ae83aa860801e021335c
(на линии на экране не смотри, это глюки моего gyazo. Глюки Мудлета - это квадратики в третьей строке, после слова "Листать")
Причем эти квадратики на этом месте появляются не всегда. Если листать помощь, просматривая каждую страницу помощи один раз, глюки не появляются. А если первую страницу просмотреть пару раз, глюки появляются. Почему - непонятно
Привет! У него только одна ветка, 969 етот тотже Enhance_addTextTranscoding :) он просто добавляет туда коммиты.
Смотри на https://github.com/Mudlet/Mudlet/pull/969/files - ошибки там больше нету.
Вот об етих и глюках я и говорю всё: не понятно ети мад или mudlet ошибочна. Ето случается на других мадах?
Я скачал последний коммит из ветки Enhance_addTextTranscoding командой
git checkout Enhance_addTextTranscoding
В этой версии реализовано много кодировок, в частности, UTF-8, WINDOWS-1251, KOI8-R, KOI8-U, CP866
Я потестировал Мудлет на двух разных мадах. В кодировках 1251, koi8, 866 глюков нет.
А в кодировке UTF-8 глюки иногда появляются, но редко, чаще всего в том месте, где переключается цвет. На одном и том же месте глюк может быть, а может и не быть
Я приложил скриншоты
http://mud.kharkov.org/pic/mudlet/1/
Обрати внимание: внизу экрана иногда появляется буква m, это скорее всего кусок esc-sequence
вроде \x1b[30m
Первые два скриншота от моего мада на базе кода "Былин"
Третий скриншот - частично русифицированный мад на базе библиотеки DeadSouls
Глюки есть в обоих мадах, значит, это что-то в коде Мудлета, в подпрограмме перекодировки с UTF-8
Ага - спасибо за расследование! Посмотрим!
Сможешь записать replay с багом? Ето касетта внизу-справа на главном екране.
Очень-очень странно. Дома мне не удалось повторить баг с мадами на базе кода "Былин". Я ношу с собой ноутбук, так что условия входа в мад были теми же самыми. Только Интернет-соединение другое, но может ли это влиять?
Но мне удалось повторить баг в маде на базе библиотеки DeathSouls
Это тестовый мад, который я русифицирую. telnet mud.kharkov.org 6666
Вот запись
http://mud.kharkov.org/pic/mudlet/1/13-05-2017%2320-37-30.dat
Спасибо! Попробуй сейчас (git pull)?
То же самое. При включенной кодировке UTF-8 иногда (редко) проявляются глюки, заключающиеся в появлении одной или двух букв m в конце строки или в том месте, где переключается цвет
ОК, прошлую запись починили: https://cloud.githubusercontent.com/assets/6163092/26030905/7948abfe-3859-11e7-806c-a3fe015edc61.png можешь достать новую с проблемой?
Sorry, я тут немного отвлекся на сетевые проблемы.
Так вот, русификация клиента Mudlet почти идеальна. В кодировках koi8-r, cp866, windows1251 проблем не замечено.
А глюки с UTF-8 проявляются очень редко. Пока мне удалось повторить глюки только в маде "Былины": если несколько раз поряд просматривать ПОМОЩЬ НОВИЧОК, то примерно 1 раз из пяти появится лишняя буква m в конце таблицы с текстом
Других глюков я пока не обнаружил
И такие же глюки появилятся иногда в Ancestry MUD при хождении из комнаты в комнату: по коридору с запада на восток и обратно, и с какой то долей вероятности появляется эта буква m
ОК - можешь запись достать, пожалуйста? Нам с ней намного легче работать.
Вот запись глюка, наблюдаемого в AncestryMUD (mud.kharkov.org:6666)
http://mud.kharkov.org/pic/mudlet/2/
Но вот что интересно: на экране лишние буквы m были, а в логе их не видно
Предполагаю, что это из-за некорректной обработки ansi esc sequences
Думаем проблема была в переносе utf-8 символов на разные сетевые пакеты. Исправили, попробуй опять!
Обновил исходники. Пересобрал. Потестировал.
Похоже, что ошибки пропали, повторить их на тех же местах, где они проявлялись ранее, не удалось
Всё OK
vBulletin® v3.8.1, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot