- PVSM.RU - https://www.pvsm.ru -

Решение проблемы с поддержкой кодировок в утилитах lrelease.exe и linguist.exe

Для разработки графического интерфейса использую Qt 4.8.6. Возникла необходимость написать приложение поддерживающее несколько языков интерфейса. При написании столкнулся с проблемой — отсутствие поддержки кодировки Windows-1251 в утилитах lrelease.exe и linguist.exe.

Для решения проблемы необходимо:

  1. Собрать $QtDirsrctoolsbootstrap без ключа QT_NO_CODECS
  2. Собрать $QtDirtoolslinguistlrelease
  3. Собрать $QtDirtoolslinguistlinguist предварительно внеся изменения в файл $QtDirtoolslinguistlinguistmessagemodel.cpp

в методе: bool DataModel::release(const QString &fileName, bool verbose, bool ignoreUnfinished, TranslatorSaveMode mode, QWidget *parent)

после строки: tor.setLanguageCode(locale.name());
добавить строку: tor.setCodecName(m_codecName);

Изменения в исходном коде утилиты linguist.exe необходимы если вы собираетесь использовать её для генерации QM файлов, в противном случае достаточно пересобрать только lrelease.

Данная проблема актуальна и для Qt 5.

Автор: push

Источник [1]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/qt-2/281585

Ссылки в тексте:

[1] Источник: http://habrahabr.ru/sandbox/121737/