Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Mike-Aiki от Март 02, 2012, 15:29



Название: Linguist и русские комментарии
Отправлено: Mike-Aiki от Март 02, 2012, 15:29
WinXP, Qt SDK 1.2, соответственно, Creator 2.4.1, Qt libraries 4.8
Для начала почти сломал мозг, пытаясь понять, почему же не отображается русский интерфейс в Linguist, который запускал ярлыком в пусковой панели?   ;) Не особенно и надо, но должен же быть!  :)  Оказалось, что при установке SDK в ярлыке указан путь запуска C:\QtSDK\QtCreator\bin\linguist.exe (это Linguist 4.7.4, который, естественно, не находит файлы перевода), а запускать-то надо другой Linguist, который 4.8, и лежит в QTDIR=C:\QtSDK\Desktop\Qt\4.8.0\mingw !  Вот в нём как раз русский интерфейс, который, к сожалению, программно не отключить...  ;D  Ну ладно.
  Вопрос: у лингвиста в окне "Sources and forms" ("Исходники и формы") принципиально кодировка Latin1 ? Соответственно, русские комментарии выглядят "кракозябрами"... Пробовал исходники и CP1251, и UTF-8...  С UTF-8 даже BOM-символы видны - позор... Мелочь, а неприятно...


Название: Re: Linguist и русские комментарии
Отправлено: Bepec от Март 02, 2012, 15:38
http://www.prog.org.ru/topic_20210_0.html


Название: Re: Linguist и русские комментарии
Отправлено: Mike-Aiki от Март 02, 2012, 16:05
Я это читал. Но при чём тут lrelease ? У меня с переводом проблем нет. Я про отображение исходников в лингвисте...


Название: Re: Linguist и русские комментарии
Отправлено: Bepec от Март 02, 2012, 19:32
Ты невнимательно читал

Цитировать
1) Lingvist отказывается понимать windows-1251.(исправили указанием в pro файле точной кодировки)


Название: Re: Linguist и русские комментарии
Отправлено: Mike-Aiki от Март 03, 2012, 00:18
Ты невнимательно читал

Цитировать
1) Lingvist отказывается понимать windows-1251.(исправили указанием в pro файле точной кодировки)

Да пробовал я в pro-файле прописывать CODECFORTR = CP1251, CODECFORSRC = CP1251... Соответственно, в ts-файле прописывалось
<defaultcodec>windows-1251</defaultcodec> ...
Но при этом русские комментарии оставались кракозябрами. :D



Название: Re: Linguist и русские комментарии
Отправлено: Bepec от Март 03, 2012, 10:59
CODECFORTR = Windows-1251

немного мой мудрости (писано для меня, мной любимым ;) )
Код:
Для перевода в лингвисте, необходимо в интеграции выбрать пункт меню Qt - create Basic pro file.

Создасться файл "название_вашего_проекта.pro"

//Необходимо добавить в него эти строки
//-
CODECFORTR      = Windows-1251
TRANSLATIONS    = language_eng.ts
//-
// текущую кодировку и название файла перевода

/*
#define если у вас ручная сборка и нет интеграции Qt

После чего выполнить в каталоге с данным файлом команду qmake.

"с:\ваша папка\папка вашего проекта\qmake"

Сгенерируются доп файлы.
*/

Далее выполняем команду lupdate (L U P D A T E)

"с:\ваша папка\папка вашего проекта\lupdate названиевашегопроекта.pro"

будет сгенерирован файл с расширением  - "language_eng.ts"

Этот файл откройте в самом лингвисте. Далее выбирайте предложенные строки и вводите перевод.


После перевода вызываем утилиту lrelease language_eng.ts
/*

После полного перевода(или неполного) сохраните изменения и выберите пункт меня File -> Relise.

*/

Будет создан файл language_eng.qm - который можно уже подключить к программе.

Для подключения и смены языков потребуется элемент QTranslate.

Об его использовании смотрите файл

d:\//-//-//-\QTranslator\перевод


Название: Re: Linguist и русские комментарии
Отправлено: ekochetova1988 от Июль 24, 2012, 09:06
У меня такая проблема. Необходимо подготовить файл для переводчика. Исходники Qt? средство разработки VS 2010+VSAddin последняя версия. В настройках Qt для проекта стоит как надо  -codecfortr Windows-1251. Выполняю lupdate, но получаются коракозябры. Тест экспортируется - QApplication::translate("CXDlgSetting","Выбор временной папки для хранения файлов",0, QApplication::UnicodeUTF8). Если перевести файл в кодировку Utf-8 без BOM то  получается вполне читаемый файл после обработки lupdate, НО большие буквы в частности "И" показываться отказывается. Большая буква "В" отображается нормально.
При дальнейший компиляции файла(с плохой И) lrelease, нормально собирает файл но при переводе(подключаем qm файл) он на слово с большой буквой И перевода на выдает, а все остально нормально переводится. Подскажите где косяк?

 


Название: Re: Linguist и русские комментарии
Отправлено: Bepec от Июль 24, 2012, 09:25
Приведите версию Qt, используемой у вас.

И почитайте мою темку, ссылка на неё во втором комментарии.


Название: Re: Linguist и русские комментарии
Отправлено: ekochetova1988 от Июль 24, 2012, 09:27
Приведите версию Qt, используемой у вас.

И почитайте мою темку, ссылка на неё во втором комментарии.
Qt 4.8.2


Название: Re: Linguist и русские комментарии
Отправлено: Bepec от Июль 24, 2012, 09:31
4.8.2 стоит дома, но не пробовал там перевода. Не могли бы вы скинуть тестовый проектик с 2-3 непереводимыми у вас строками?
PS Тогда я что-нибудь да скажу :D

PPS

Мнение Пантера:
"Использовать русский в программе - зло. Использовать русский в программе и переводить на другие языки -ещё большее зло. Используй English."


Название: Re: Linguist и русские комментарии
Отправлено: ekochetova1988 от Июль 24, 2012, 09:49
проект для тестирования


Название: Re: Linguist и русские комментарии
Отправлено: kambala от Июль 24, 2012, 14:08
В настройках Qt для проекта стоит как надо  -codecfortr Windows-1251. Выполняю lupdate, но получаются коракозябры. Тест экспортируется - QApplication::translate("CXDlgSetting","Выбор временной папки для хранения файлов",0, QApplication::UnicodeUTF8).
как-то подозрительно это.

P.S.
Цитата: Matt Gallagher
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you.


Название: Re: Linguist и русские комментарии
Отправлено: Bepec от Июль 24, 2012, 14:19
Очень странно. Зачем вы указываете windows-1251, когда у вас исходники в юникоде? Оо
И используйте tr("") Он проще и удобнее в использовании.


Название: Re: Linguist и русские комментарии
Отправлено: ekochetova1988 от Июль 24, 2012, 16:29
Очень странно. Зачем вы указываете windows-1251, когда у вас исходники в юникоде? Оо
И используйте tr("") Он проще и удобнее в использовании.
это осталось от старой версии, там исходники были в 1251.
короче решили сделать так весь русский текст в коде сделать английским а перевод навесить фалом


Название: Re: Linguist и русские комментарии
Отправлено: kambala от Июль 24, 2012, 16:50
ИМХО так надо делать сразу


Название: Re: Linguist и русские комментарии
Отправлено: Bepec от Июль 24, 2012, 17:09
+1, если руководство не думает иначе :)