61

xwicked, к чему в зависимостях?

Консоль на мыло. Надо развивать графику.

62 (27.06.2013 23:34:20 отредактировано xwicked)

romkaromka пишет:

xwicked, к чему в зависимостях?

Я представил себя обычным пользователем. Хочу поиграть. Установил. Захотел сам создать из словаря. Нажимаю "Составление"  - "Ошибка открытия базы данных словаря! Возможно не установлен драйвер базы данных Sqlite3.". Намёк понятен?

63

Добавил зависимость qt4-database-plugin-sqlite в пакет klest-crossword.

Консоль на мыло. Надо развивать графику.

64

romkaromka пишет:

Добавил зависимость qt4-database-plugin-sqlite в пакет klest-crossword.

Благодарю!
Сегодня-завтра посмотрю-отпишусь.

65 (02.07.2013 14:36:06 отредактировано romkaromka)

Обратите внимание на изменения в файлах desktop как для klest-crossword, так и для shelk-test. В частности указание [$e] неприемлемо для многих DE, в том числе для LXDE. Также требуется явное указание Name[ru] чтобы в Меню действительно был русский пункт.
Как klest-crossword, так и для shelk-test неверно работают в локали en_US - они на русском, должны быть на английском.

Консоль на мыло. Надо развивать графику.

66

romkaromka пишет:

Обратите внимание на изменения в файлах desktop как для klest-crossword, так и для shelk-test. В частности указание [$e] неприемлемо для многих DE, в том числе для LXDE. Также требуется явное указание Name[ru] чтобы в Меню действительно был русский пункт.
Как klest-crossword, так и для shelk-test неверно работают в локали en_US - они на русском, должны быть на английском.

Понял. Проверил LXDE - там [$e] нету, уберу.

67

romkaromka пишет:

Как klest-crossword, так и для shelk-test неверно работают в локали en_US - они на русском, должны быть на английском.

Это препятствует размещению программ в официальных репозиториях дистрибутивов, нужны патчи или новые версии.

Консоль на мыло. Надо развивать графику.

68 (15.04.2014 23:34:43 отредактировано xwicked)

romkaromka пишет:
romkaromka пишет:

Как klest-crossword, так и для shelk-test неверно работают в локали en_US - они на русском, должны быть на английском.

Это препятствует размещению программ в официальных репозиториях дистрибутивов, нужны патчи или новые версии.

Понял. На этой неделе скачаю последний дистрибутив и сделаю. Если всё заработает, то включу в апстрим.

69

romkaromka пишет:
romkaromka пишет:

Как klest-crossword, так и для shelk-test неверно работают в локали en_US - они на русском, должны быть на английском.

Это препятствует размещению программ в официальных репозиториях дистрибутивов, нужны патчи или новые версии.

Скачал 4-ый дистрибутив CD Gnome-версию. Установил libqt4-devel. Собираю, вылетает ошибка, что не может собрать, не найден QtWebKit/QWebView, там нужно где какие переменные прописывать? Просто во всех дистрябах сразу всё работало.

70

BuildRequires: gcc-c++, libqt4-devel >= 4.4.3, libqtwebkit2.2-devel

Консоль на мыло. Надо развивать графику.

71 (06.05.2014 23:04:35 отредактировано xwicked)

romkaromka пишет:

BuildRequires: gcc-c++, libqt4-devel >= 4.4.3, libqtwebkit2.2-devel

ОК, Я подозревал, но хотел уточнить. Сейчас я уже дома. Ставлю с DVD KDE английскую версию.

[ДОБАВЛЕНО]

...
#include <QtGui/QIcon>
#include <QtCore/QLocale>//Для локали
#include "tfileoptions/tfileoptions.h"
...
//Определение системной локали
//Добавляется перед основной функцией main()
unsigned char loadSystemLocale()
{
    QLocale lcKlest;
    QString sLanguage;
    sLanguage = lcKlest.name();

    if (sLanguage.indexOf("ru") != -1) return 1;
    else return 0;

    return 0;
}

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
...
//Если локаль русская, тогда проверяется язык из файла свойств
//Иначе будет всегда английский
    if (loadSystemLocale() == 1)
    {
        if (FileOptions->isLanguageProgram() == TFileOptions::LANGUAGE_RUSSIAN)
        {
            tr1.load(PATH_SHARE_APP + "/languages/russian/klest_ru.qm", ".");
            tr2.load(PATH_SHARE_APP + "/languages/russian/qt_ru.qm", ".");
        }
    }
...

72 (07.05.2014 08:07:36 отредактировано romkaromka)

Для klest-crossword надо:

 Консоль:
rm -rf ./usr/games
sed -i -e "s|/usr/games|/usr/bin|g" ./klest-crossword/klest-crossword.pro
sed -i -e "s|Qt;KDE;||g" ./usr/share/applications/klest-crossword-1.2.3.desktop
sed -i -e "/MimeType=/d" ./usr/share/applications/klest-crossword-1.2.3.desktop
sed -i -e "/TerminalOptions=/d" ./usr/share/applications/klest-crossword-1.2.3.desktop
sed -i -e "/X-DCOP-ServiceType=/d" ./usr/share/applications/klest-crossword-1.2.3.desktop
sed -i -e "/X-KDE-Username=/d" ./usr/share/applications/klest-crossword-1.2.3.desktop
sed -i -e "s|\[\$e\]||g" ./usr/share/applications/klest-crossword-1.2.3.desktop
echo "Name[ru]=Клёст-кроссворд" >> ./usr/share/applications/klest-crossword-1.2.3.desktop

Для shelk-test надо:

 Консоль:
sed -i -e "s|Qt;KDE;Education;Misc;X-KDE-Edu-Misc;|Education;|g" ./usr/share/applications/shelk-test-1.5.2.desktop
sed -i -e "/MimeType=/d" ./usr/share/applications/shelk-test-1.5.2.desktop
sed -i -e "/TerminalOptions=/d" ./usr/share/applications/shelk-test-1.5.2.desktop
sed -i -e "/X-DCOP-ServiceType=/d" ./usr/share/applications/shelk-test-1.5.2.desktop
sed -i -e "/X-KDE-Username=/d" ./usr/share/applications/shelk-test-1.5.2.desktop
sed -i -e "s|\[\$e\]||g" ./usr/share/applications/shelk-test-1.5.2.desktop
echo "Name[ru]=Шёлковый тест" >> ./usr/share/applications/shelk-test-1.5.2.desktop

Лучше всё это оформить как новые версии.

Консоль на мыло. Надо развивать графику.

73

romkaromka пишет:

Для klest-crossword надо:

 Консоль:
rm -rf ./usr/games
sed -i -e "s|/usr/games|/usr/bin|g" ./klest-crossword/klest-crossword.pro
sed -i -e "s|Qt;KDE;||g" ./usr/share/applications/klest-crossword-1.2.3.desktop
sed -i -e "/MimeType=/d" ./usr/share/applications/klest-crossword-1.2.3.desktop
sed -i -e "/TerminalOptions=/d" ./usr/share/applications/klest-crossword-1.2.3.desktop
sed -i -e "/X-DCOP-ServiceType=/d" ./usr/share/applications/klest-crossword-1.2.3.desktop
sed -i -e "/X-KDE-Username=/d" ./usr/share/applications/klest-crossword-1.2.3.desktop
sed -i -e "s|\[\$e\]||g" ./usr/share/applications/klest-crossword-1.2.3.desktop
echo "Name[ru]=Клёст-кроссворд" >> ./usr/share/applications/klest-crossword-1.2.3.desktop

Для shelk-test надо:

 Консоль:
sed -i -e "s|Qt;KDE;Education;Misc;X-KDE-Edu-Misc;|Education;|g" ./usr/share/applications/shelk-test-1.5.2.desktop
sed -i -e "/MimeType=/d" ./usr/share/applications/shelk-test-1.5.2.desktop
sed -i -e "/TerminalOptions=/d" ./usr/share/applications/shelk-test-1.5.2.desktop
sed -i -e "/X-DCOP-ServiceType=/d" ./usr/share/applications/shelk-test-1.5.2.desktop
sed -i -e "/X-KDE-Username=/d" ./usr/share/applications/shelk-test-1.5.2.desktop
sed -i -e "s|\[\$e\]||g" ./usr/share/applications/shelk-test-1.5.2.desktop
echo "Name[ru]=Шёлковый тест" >> ./usr/share/applications/shelk-test-1.5.2.desktop

Лучше всё это оформить как новые версии.

Про Name[ru] понятно, а остальное это что, удалить лишние строки?
Я могу всё это изменить, сделать тарболл и прикрепить сюда или выложить на свой сайт и сделать временную ссылку.
Изменения в desktop-файле войдёт в апстрим, а вот по поводу локали, для апстрима нужно будет сделать такую проверку только при первом запуске, а для Магии пойдёт?

74 (07.05.2014 09:02:12 отредактировано romkaromka)

xwicked, выполните эти команды над исходниками - увидите.
Тарболл выложить на сайт.

xwicked пишет:

для апстрима нужно будет сделать такую проверку только при первом запуске, а для Магии пойдёт?

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

Русскоговорящие: Украинский, Белорусский, Башкирский, Чеченский, Церковнославянский, Чувашский, Казахский, Коми, Молдавский, Татарский и др. http://www.gnu.org/software/gettext/man … uage-Codes

Или в коде присвоить им русский если перевод для их языка не найден, что даже лучше симлинков.

Консоль на мыло. Надо развивать графику.

75

romkaromka пишет:

xwicked, выполните эти команды над исходниками - увидите.
Тарболл выложить на сайт.

xwicked пишет:

для апстрима нужно будет сделать такую проверку только при первом запуске, а для Магии пойдёт?

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

Русскоговорящие: Украинский, Белорусский, Башкирский, Чеченский, Церковнославянский, Чувашский, Казахский, Коми, Молдавский, Татарский и др. http://www.gnu.org/software/gettext/man … uage-Codes

Или в коде присвоить им русский если перевод для их языка не найден, что даже лучше симлинков.

Самый простой и быстрый вариант сделать как в Shelk-test - при первом запуске выдаётся возможность выбора из 2-ух языков. Всё. А во всех следующих версиях всех программ я сделаю упор в первую очередь на добавлении мультиязычности, чтобы потом просто в languages можно было добавить один файлик перевода, без кодинга. Пойдёт?

76 (07.05.2014 19:46:31 отредактировано romkaromka)

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

Консоль на мыло. Надо развивать графику.

77

romkaromka пишет:

sed -i -e "s|/usr/games|/usr/bin|g"

man patch не пробовали изучить?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

78

drBatty, наверное про патчи неплохо знаю.

Консоль на мыло. Надо развивать графику.

79

romkaromka пишет:

неплохо знаю.

почему не используете?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

80

romkaromka пишет:

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

У меня сейчас такие планы: дособирать Shelk-test 1.6.2 и за один месяц сделать Klest-crossword для Android с телефонным интерфейсом. Если вариант с выбором языка при первом запуске ПОКА пойдёт, то я сделаю, если нет, то я буду дальше заниматься выпуском следующей версии Shelk-test 1.6.2.

81

xwicked пишет:

Если вариант с выбором языка при первом запуске ПОКА пойдёт

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

xwicked пишет:

я буду дальше заниматься выпуском следующей версии

Подожду новой версии с нормальной локализацией.

Консоль на мыло. Надо развивать графику.

82

romkaromka пишет:
xwicked пишет:

Если вариант с выбором языка при первом запуске ПОКА пойдёт

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

xwicked пишет:

я буду дальше заниматься выпуском следующей версии

Подожду новой версии с нормальной локализацией.

http://i61.fastpic.ru/big/2014/0508/96/5ccafdd42b8bf99967a4feba46997796.png
Где ты видишь надписи не на родном языке? Английский на английском, а русский на русском. Другое дело, что это не unixway, но как временный вариант должно сойти.

83

xwicked пишет:

Другое дело, что это не unixway, но как временный вариант должно сойти.

зачем вы вообще это окошко делали? Сложно $LANG прочитать?

вот вам в помощь: http://forum.shelek.ru/index.php/topic,10464.0.html

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

84 (08.05.2014 14:07:52 отредактировано xwicked)

drBatty пишет:
xwicked пишет:

Другое дело, что это не unixway, но как временный вариант должно сойти.

зачем вы вообще это окошко делали? Сложно $LANG прочитать?

вот вам в помощь: http://forum.shelek.ru/index.php/topic,10464.0.html

SoftPedia.com отказалась размещать версию Шёлкового теста 1.5.1, поэтому я сделал финт ушами и нашёл временный выход из ситуации. Теперь, с появлением уже бОльшего интереса к локализации, я позже сделаю всё по-человечески(QLocale) и в апстриме.

85

Посмотрите внимательно на

QLocale::system().name()
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me".
GNU/Linux Debian

86

xwicked пишет:

Самый простой и быстрый вариант сделать как в Shelk-test - при первом запуске выдаётся возможность выбора из 2-ух языков. Всё. А во всех следующих версиях всех программ я сделаю упор в первую очередь на добавлении мультиязычности, чтобы потом просто в languages можно было добавить один файлик перевода, без кодинга. Пойдёт?

Не надо ни чего запрашивать. Qt шными средствами определяете язык системы (оно кроссплатоформенно).  Далее ищите языковой файл соответсвующий.

QTranslator appTranslator;
    appTranslator.load("protimer_" + QLocale::system().name(),qApp->applicationDirPath()+"/lang/");
    qApp->installTranslator(&appTranslator);

Обратите внимание приведенный код не совсем феншуйный. (По расположению языковых файлов). Но это уж не сложно исправить

То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me".
GNU/Linux Debian

87

xwicked, как продвигаются дела с патчами?

Консоль на мыло. Надо развивать графику.

88 (19.07.2014 23:34:59 отредактировано xwicked)

romkaromka пишет:

xwicked, как продвигаются дела с патчами?

Привет! Завтра на работе постараюсь сделать первый патч.
[ДОБАВЛЕНО]
Сделал. Через n часов дам ссылку.

89

Нужны патчи для klest-crossword, klen-library, shelk-test чтобы язык определялся автоматически и не было ручного выбора языка при старте.

Консоль на мыло. Надо развивать графику.

90

romkaromka пишет:

Нужны патчи для klest-crossword, klen-library, shelk-test чтобы язык определялся автоматически и не было ручного выбора языка при старте.

Патч не получился, поэтому новый исходник: http://labfreetech.org/f/klest-crosswor … src.tar.gz
Desktop-файл теперь выглядит так:

[Desktop Entry]
Categories=Game;BoardGame;
Comment=On Qt-based, cross-platform software is designed for creating and guessing the classic crossword puzzles.
Comment[ru]=Кроссплатформенная программа для создания и отгадывания классических кроссвордов. Основана на Qt.
Encoding=UTF-8
Exec=klest-crossword-1.2.3
GenericName=Klest-crossword
GenericName[ru]=Клёст-кроссворд
Icon=/usr/share/klest-crossword-1.2.3/klest-crossword.png
Name=Klest-crossword
Name[ru]=Клёст-кроссворд
Path=/usr/share/klest-crossword-1.2.3
StartupNotify=true
Terminal=false
Type=Application
X-KDE-SubstituteUID=false

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

////Загрузка языка установщика
//unsigned char loadLanguage()
//{
//    QString sLanguage;
//    QFile frLnguage(QDir::tempPath() + "/lang.txt");
//    QTextStream tsLnguage(&frLnguage);
//    tsLnguage.setCodec("UTF-8");

//    if (frLnguage.open(QIODevice::ReadOnly) == true)
//    {
//        sLanguage = tsLnguage.readLine();
//        frLnguage.close();
//        QDir dFile;
//        dFile.remove(frLnguage.fileName());

//        if (sLanguage.indexOf("ru") != -1) return 1;
//        else
//        if (sLanguage.indexOf("en") != -1) return 2;
//        else
//            return 2;
//    }

//    return 0;
//}

Добавлена функция для определния языка системы:

//Загрузка языка системы
unsigned char loadLanguage()
{
    switch (QLocale::system().country())
    {
    case QLocale::RussianFederation:
        return 1;
        break;
    case QLocale::Ukraine:
        return 1;
        break;
    case QLocale::Kazakhstan:
        return 1;
        break;
    case QLocale::Moldova:
        return 1;
        break;
    case QLocale::Belarus:
        return 1;
        break;
    case QLocale::Tatar:
        return 1;
        break;
    case QLocale::Macedonia:
        return 1;
        break;
    case QLocale::Serbia:
        return 1;
        break;
    case QLocale::Croatia:
        return 1;
        break;
    case QLocale::UnitedStates:
        return 2;
        break;
    case QLocale::UnitedKingdom:
        return 2;
        break;
    default:
        return 2;
        break;
    }

    return 0;
}

Так как сейчас всего 2 языка, то для уменьшения кода сделал определение по странам, если не русскоговорящие, то грузится английский язык.
Запускается только один раз, при отсутствии файла свойств(первый запуск):

    //Если нет файла свойств программы(первый запуск), то показывается окно приветствия
    if (!bState)
    {
        //Загрузка языка установщика / языка системы
        switch (loadLanguage())
        {
        case 1:
            FileOptions->setLanguageProgram(TFileOptions::LANGUAGE_RUSSIAN);
            break;
        case 2:
            FileOptions->setLanguageProgram(TFileOptions::LANGUAGE_ENGLISH);
            break;
        }

        FormKlestCrossword.showWelcome();
        FileOptions->write();
    }

Далее, если захочет, пользователь может сменить язык на другой из свойств игры. Если всё ровно, делаю следующий.