PDA

Просмотр полной версии : Mudlet 4.0 на русском


Вадис
12.04.2017, 11:20
Здравствуйте!

Я один из разработчиков Mudlet (http://www.mudlet.org/), и мы стремимся к тому, чтобы Mudlet 4.0 работал с русским. Я хотел бы предложить всем поделиться своим опытом с переведенным программным обеспечением, списками пожеланий для Mudlet и откликами на предложенную «дорожную карту» на наших форумах (http://forums.mudlet.org/viewtopic.php?f=7&t=19499). Если вы уже работали над добавлением поддержки i18n в Mudlet, присоединяйтесь к нам в Github, чтобы присоединиться к нашим усилиям ;)

С уважением
Вадим

prool
07.05.2017, 15:52
Скачал исходники Мудлета отсюда 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>

Или я что-то не так делаю, что вероятнее

Вадис
08.05.2017, 11:28
Привет! Попробуй http://wiki.mudlet.org/w/Compiling_Mudlet#Compiling_on_Ubuntu_16.04 - работает?

prool
08.05.2017, 12:33
Получилось

Полученный mudlet отправляет кириллицу нормально (тестовые кириллические команды в кодировке UTF-8 в моем маде работают). Но не показывает кириллицу, рисует квадратики

Кто-то уже нашел, как устранить эту проблему, или надо искать в коде, где режется старший бит (или что-то аналогичное)

Вот скриншот https://gyazo.com/cc5e5a3d91fbe6913325329e4b765be9

Вадис
08.05.2017, 14:18
Вот почему "стремимся" :) возьми https://github.com/Mudlet/Mudlet/pull/969, там есть начало того - a тут карта разработки (https://github.com/Mudlet/Mudlet/milestone/1).

prool
10.05.2017, 12:16
Мудлет из пулла 969 собрался и ведет себя именно так, как на твоих скриншотах: показывает UTF-8 кириллицу, но не всегда, причем почему, пока не понятно

Вадис
10.05.2017, 16:34
Помоги разяснить почему! Я тоже с етой проблемой столкнулся (https://github.com/Mudlet/Mudlet/pull/969#issuecomment-297756697), но при расследовании мы нашли (https://gitter.im/Mudlet/Mudlet?at=590a4d8608c00c092adf30d1) неверный utf-8.

prool
10.05.2017, 22:12
SlySven сделал новую версию, уже без этих глюков:

https://github.com/SlySven/Mudlet/tree/Enhance_addTextTranscoding

Я думаю, обязательно нужно добавить в кодировку koi8-r

Вадис
11.05.2017, 11:00
https://github.com/SlySven/Mudlet/tree/Enhance_addTextTranscoding ето и тоже самое https://github.com/Mudlet/Mudlet/pull/969!

Почему так думаешь об koi8-r?

prool
11.05.2017, 12:46
Я имею ввиду эту версию 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 этой проблемы нет

Вадис
11.05.2017, 15:20
Я думаю, обязательно нужно добавить в кодировку koi8-r

А, ок, KOI8-R там уже есть - надо что-то менять?

Вадис
11.05.2017, 15:26
Там переделан код перекодировки (зачем, я не понял, наверное для исправления ошибок). И эта версия уже почти нормально работает с UTF-8. Минимум глюков обнаруживается при смене цвета esc-последовательностями, и то не всегда.

Нам тут непонятно ести текст с мада проблематичный или нет когда ети глюки происходят: https://gitter.im/Mudlet/Mudlet?at=590a4d8608c00c092adf30d1 (могу перевести если хочешь)

prool
11.05.2017, 23:14
У меня есть подозрение, что протокол telnet не дружит с кодировкой UTF-8 из-за того, что код 0xFF, присуствующий в UTF, интерпретируется телнетом как команда.

Вот эта версия https://github.com/SlySven/Mudlet/commit/59430a89efd5a6a73a769bcef5c27e3c95bd09b6 работает практически идеально, глюков не наблюдается

Вот скриншот https://gyazo.com/bbb64b7b91aaa8dabe1ce3391f1d8333

Я тестирую сборку Mudlet в Ubuntu, может Windows версии ведут себя по другому?

* * *

Уточните, пожалуйста, какую именно версию Mudlet и в каких условиях надо протестировать?

Вадис
12.05.2017, 06:38
Да нет, я на убунте тоже, на Windows пока сильно так не тестировали даже.

Mudlet с https://github.com/Mudlet/Mudlet/pull/969 на всех русских мадах, с разными кодировками, пожалуйста!

prool
12.05.2017, 13:19
Я не почему надо тестировать именно эту версию (как я уже выше писал, в форке у 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. Глюки Мудлета - это квадратики в третьей строке, после слова "Листать")

Причем эти квадратики на этом месте появляются не всегда. Если листать помощь, просматривая каждую страницу помощи один раз, глюки не появляются. А если первую страницу просмотреть пару раз, глюки появляются. Почему - непонятно

Вадис
13.05.2017, 13:15
Привет! У него только одна ветка, 969 етот тотже Enhance_addTextTranscoding :) он просто добавляет туда коммиты.

Смотри на https://github.com/Mudlet/Mudlet/pull/969/files - ошибки там больше нету.

Вот об етих и глюках я и говорю всё: не понятно ети мад или mudlet ошибочна. Ето случается на других мадах?

prool
13.05.2017, 20:01
Я скачал последний коммит из ветки 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

Вадис
13.05.2017, 20:07
Ага - спасибо за расследование! Посмотрим!

Вадис
13.05.2017, 20:08
Сможешь записать replay с багом? Ето касетта внизу-справа на главном екране.

prool
13.05.2017, 21:45
Очень-очень странно. Дома мне не удалось повторить баг с мадами на базе кода "Былин". Я ношу с собой ноутбук, так что условия входа в мад были теми же самыми. Только Интернет-соединение другое, но может ли это влиять?

Но мне удалось повторить баг в маде на базе библиотеки DeathSouls

Это тестовый мад, который я русифицирую. telnet mud.kharkov.org 6666

Вот запись

http://mud.kharkov.org/pic/mudlet/1/13-05-2017%2320-37-30.dat

Вадис
14.05.2017, 12:00
Спасибо! Попробуй сейчас (git pull)?

prool
14.05.2017, 15:24
То же самое. При включенной кодировке UTF-8 иногда (редко) проявляются глюки, заключающиеся в появлении одной или двух букв m в конце строки или в том месте, где переключается цвет

Вадис
14.05.2017, 17:48
ОК, прошлую запись починили: https://cloud.githubusercontent.com/assets/6163092/26030905/7948abfe-3859-11e7-806c-a3fe015edc61.png можешь достать новую с проблемой?

Вадис
18.05.2017, 16:03
@prool ^ ?

prool
19.05.2017, 15:59
Sorry, я тут немного отвлекся на сетевые проблемы.

Так вот, русификация клиента Mudlet почти идеальна. В кодировках koi8-r, cp866, windows1251 проблем не замечено.

А глюки с UTF-8 проявляются очень редко. Пока мне удалось повторить глюки только в маде "Былины": если несколько раз поряд просматривать ПОМОЩЬ НОВИЧОК, то примерно 1 раз из пяти появится лишняя буква m в конце таблицы с текстом

Других глюков я пока не обнаружил

prool
19.05.2017, 16:03
И такие же глюки появилятся иногда в Ancestry MUD при хождении из комнаты в комнату: по коридору с запада на восток и обратно, и с какой то долей вероятности появляется эта буква m

Вадис
19.05.2017, 16:06
ОК - можешь запись достать, пожалуйста? Нам с ней намного легче работать.

prool
19.05.2017, 17:28
Вот запись глюка, наблюдаемого в AncestryMUD (mud.kharkov.org:6666)

http://mud.kharkov.org/pic/mudlet/2/

Но вот что интересно: на экране лишние буквы m были, а в логе их не видно

Предполагаю, что это из-за некорректной обработки ansi esc sequences

Вадис
22.05.2017, 09:05
Думаем проблема была в переносе utf-8 символов на разные сетевые пакеты. Исправили, попробуй опять!

prool
22.05.2017, 15:14
Обновил исходники. Пересобрал. Потестировал.

Похоже, что ошибки пропали, повторить их на тех же местах, где они проявлялись ранее, не удалось

Всё OK

Вадис
22.05.2017, 15:15
Отлично, спасибо!