Автор Тема: Русификация DwarfTherapist  (Прочитано 97152 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Skin36

  • Старожил
  • ****
  • Сообщений: 320
    • Просмотр профиля
Русификация DwarfTherapist
« : 05 Сентября 2012, 21:23:47 »
Скачать руссифицированную версию  DwarfTherapist можно здесь
https://bitbucket.org/dfint/dwarftherapistrus/downloads (основано на DT 0.6.12)

Скачать перевод версии DwarfTherapistRus-attributes можно здесь
https://bitbucket.org/dfint/dwarftherapistrus-attributes/downloads (DT 0.21.8)

Перевод версии DwarfTherapist 31.0.0:
https://bitbucket.org/keepmind/dwarf-therapist-translate/downloads











Nagosid, так что,получилось запилить поддержку кириллицы в Терапевте ?
« Последнее редактирование: 15 Сентября 2015, 19:42:21 от insolor »

Оффлайн Arex

  • Старожил
  • ****
  • Сообщений: 407
  • Ленивый дварфовод
    • Просмотр профиля
    • На викидварфии
Re: Русификация DwarfTherapist
« Ответ #1 : 06 Сентября 2012, 01:36:28 »
Nagosid, так что,получилось запилить поддержку кириллицы в Терапевте ?
Там ничего особо сложного, просто надо перекодировать в юникод. У меня там возникла другая проблема: сильное обрывание текста из-за вдвое большей длины юникода. Как справиться, пока не придумал. Кто подскажет, буду благодарен.
Спойлер
[свернуть]

Оффлайн Skin36

  • Старожил
  • ****
  • Сообщений: 320
    • Просмотр профиля
Re: Русификация DwarfTherapist
« Ответ #2 : 06 Сентября 2012, 08:34:35 »
как раз с переводом интерфейса нет проблем,я его переводил в Qt дизайнере и ничего не перекодировал и все было хорошо.а вот с названиями профессий,которые находятся не в файлах .ui полная опа.
« Последнее редактирование: 06 Сентября 2012, 09:00:41 от Skin36 »

Оффлайн Skin36

  • Старожил
  • ****
  • Сообщений: 320
    • Просмотр профиля
Re: Русификация DwarfTherapist
« Ответ #3 : 07 Сентября 2012, 20:37:10 »
есть специалист в С++ и Qt Creator ? Ибо Терапист создан на базе этого.Проблема с переводом на русский язык профессий.Английский вариант названий находится в файле .dfg,это файл конфигурации который представляет собой массив, который считывает программа и затем выводит виджет с названиями профессий.Так вот если английские слова менять на русские ,потом в тераписте после сборки .ехе они выводятся не верно.

Оффлайн insolor

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1064
  • Adequate Reverse Engineer
    • Просмотр профиля
Re: Русификация DwarfTherapist
« Ответ #4 : 08 Сентября 2012, 01:21:39 »
есть специалист в С++ и Qt Creator ? Ибо Терапист создан на базе этого.Проблема с переводом на русский язык профессий.Английский вариант названий находится в файле .dfg,это файл конфигурации который представляет собой массив, который считывает программа и затем выводит виджет с названиями профессий.Так вот если английские слова менять на русские ,потом в тераписте после сборки .ехе они выводятся не верно.
Скорее всего нужно сохранять этот файл в кодировке utf-8. Попробуй текстовый редактор, поддерживающий более одной кодировки )

Оффлайн Jesus

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1459
  • Баню, удаляю исключительно рекламо-спамеров.
    • Просмотр профиля
Re: Русификация DwarfTherapist
« Ответ #5 : 08 Сентября 2012, 14:12:12 »
В двух словах. (то что успел найти за 2 часа)
1. *.dtg это по сути ini файл.
2. *.dtg можно экспортировать из программы и импортировать в нее.
3. импортируются только такие закладки которых еще нет (как удалять я что-то не разобрался). для проверки сделал закладку "Проверка".
4. поправил в файле gridview.cpp строка 106 с
ret_val->set_name(s.value("name", "UNKNOWN").toString());на
ret_val->set_name(QString::fromUtf8(s.value("name", "UNKNOWN").toString().toStdString().c_str()));но надо искать остальные места где идет загрузка из файла и делать строки из utf8.
может оно где-то все рядом может нет :) я еще покопаюсь может найду, но в ДФ давно не играю просто решил глянуть.

Оффлайн Skin36

  • Старожил
  • ****
  • Сообщений: 320
    • Просмотр профиля
Re: Русификация DwarfTherapist
« Ответ #6 : 08 Сентября 2012, 14:40:30 »
перекодирование файла .dfg в UTF c BOM или без результатов не дало.

Оффлайн insolor

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1064
  • Adequate Reverse Engineer
    • Просмотр профиля
Re: Русификация DwarfTherapist
« Ответ #7 : 08 Сентября 2012, 14:54:53 »
перекодирование файла .dfg в UTF c BOM или без результатов не дало.
Skin36, ну не дало и не дало. Попробуй то, о чем Jesus пишет.

Оффлайн Jesus

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1459
  • Баню, удаляю исключительно рекламо-спамеров.
    • Просмотр профиля
Re: Русификация DwarfTherapist
« Ответ #8 : 08 Сентября 2012, 14:56:08 »
перекодирование файла .dfg в UTF c BOM или без результатов не дало.
в коде надо заменить все места где встречается строчка
s.value("name"на что-то типа
QString::fromUtf8(s.value("name", "UNKNOWN").toString().toStdString().c_str())короче помимо того что файл в UTF8 надо еще QString`у обьяснить что оно в UTF8 и читать надо соответственно.
http://rghost.ru/40249282 (это exe) собранный файлик... только там перевод кривой :) мне лениво было думать над переводом...
собрал измененные файлы.(прикрепленный к сообщению russain.rar) :) распакуй замени собери и будет тебе счастье... следующим этапом переписать файл dtg нормально.

Оффлайн Skin36

  • Старожил
  • ****
  • Сообщений: 320
    • Просмотр профиля
Re: Русификация DwarfTherapist
« Ответ #9 : 08 Сентября 2012, 15:13:49 »
я конечно ничего не понимаю в программировании...но есть такой вопрос.


void ViewManager::reload_views() {
    m_views.clear();

    QSettings *s = new QSettings(
            ":config/default_gridviews", QSettings::IniFormat);

    int total_views = s->beginReadArray("gridviews");
    QList<GridView*> built_in_views;
    for (int i = 0; i < total_views; ++i) {
        s->setArrayIndex(i);
        GridView *gv = GridView::read_from_ini(*s, this);
        gv->set_is_custom(false); // this is a default view
        m_views << gv;
        built_in_views << gv;
    }
    s->endArray();


это то место где читаются названия проффессий из dfg.нельзя сделать чтобы на этом этапе все кодировалось в UTF ?

Оффлайн Jesus

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1459
  • Баню, удаляю исключительно рекламо-спамеров.
    • Просмотр профиля
Re: Русификация DwarfTherapist
« Ответ #10 : 08 Сентября 2012, 15:17:32 »
счас гляну... :) есть идеи...
если что моя ася 425 939 645 если есть ася пиши :)

Оффлайн Jesus

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1459
  • Баню, удаляю исключительно рекламо-спамеров.
    • Просмотр профиля
Re: Русификация DwarfTherapist
« Ответ #11 : 08 Сентября 2012, 15:28:14 »
да блин :) снова Qt меня удивляет своей продуманностью...
можно указать что ini в UTF-8. вставить 1 строчку :)
QSettings *s = new QSettings(
            ":config/default_gridviews", QSettings::IniFormat);
    s->setIniCodec("UTF-8");
    int total_views = s->beginReadArray("gridviews");
а если написать вот так:
QSettings *s = new QSettings(
            "./default_gridviews.dtg", QSettings::IniFormat);
то default_gridviews.dtg вообще будет грузится динамически при запуске программы (в нормальном варианте он линкуется в exe и после изменений надо пересобирать проект).
« Последнее редактирование: 08 Сентября 2012, 15:38:15 от Jesus »

Оффлайн Skin36

  • Старожил
  • ****
  • Сообщений: 320
    • Просмотр профиля
Re: Русификация DwarfTherapist
« Ответ #12 : 08 Сентября 2012, 15:36:36 »
спасибо! с первым вариантом перевелось только "Сейчас выполняет "

Оффлайн Jesus

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1459
  • Баню, удаляю исключительно рекламо-спамеров.
    • Просмотр профиля
Re: Русификация DwarfTherapist
« Ответ #13 : 08 Сентября 2012, 15:40:20 »
спасибо! с первым вариантом перевелось только "Сейчас выполняет "
dtg мой использовал? :) там социальные "переведены", Current job и mining - добыча. большинство профессий оставил на английском.

Оффлайн Skin36

  • Старожил
  • ****
  • Сообщений: 320
    • Просмотр профиля
Re: Русификация DwarfTherapist
« Ответ #14 : 08 Сентября 2012, 15:42:56 »
да. Английские остались английскими,рускиие-крокозябрами.только "сечас выполняет"