Russian Qt Forum
Октябрь 01, 2024, 07:12 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Русские строки в исходниках. Windows-1251  (Прочитано 15653 раз)
Bepec
Гость
« : Декабрь 01, 2011, 14:18 »

Система: Windows 7
Qt: 4.7.2
IDE: MS Visual Studio 2008

Приветствую многоуважаемую публику.

Неожиданно, уже после разработки/тестирования/отладки программы возникла проблема.

А именно - необходимо, чтобы основным языком интерфейса программы был Русский.

И тут начинаются кочки:

1) Lingvist отказывается понимать windows-1251.(исправили указанием в pro файле точной кодировки)
2) После перевода строк и генерации qm перевод русских строк, находящихся в тексте программы не производится.
3) lrelease выдает данную ошибку
Код:
D:\Project\noWorks\tstLangua\tstLangua>lrelease en.ts
No QTextCodec for windows-1251 available. Using Latin1.
Updating 'en.qm'...
    Generated 3 translation(s) (0 finished and 3 unfinished)
    Ignored 5 untranslated source text(s)

В результате перевод не осуществляется.

Прошу помощи и советов по решению данной проблемы.

Рассматриваемые варианты:
1) Использовать в программе идентификаторы строк на английском языке, в дальнейшем(в Lingvist'e) переводить на русский/английский. ("id1" = "file")
2) переводить все проекты в UTF-8 (полазив по форуму, понял что у него таких проблем нет)
3) Неизвестный мне вариант решения моей проблемы.

PS Почему QTextCodec не находится для windows 1251??
« Последнее редактирование: Декабрь 02, 2011, 13:30 от Bepec » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Декабрь 01, 2011, 14:31 »

Догадайся, какой вариант я предлагаю. Подмигивающий
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #2 : Декабрь 01, 2011, 14:40 »

Попробуйте указать CP1251.
Записан
Bepec
Гость
« Ответ #3 : Декабрь 02, 2011, 07:07 »

Пантер, ты предлагаешь Английский в исходниках и перевод на русский.

Я с тобой на все 100% согласен, в моих программах так и работает, НО... Начальство, отдел маркетинга, менеджеры против Улыбающийся

Потому ты мог бы предложить вариант с кодовыми идентификаторами, но тут уже прошу твоего совета Улыбающийся

to Lisander:
Разницы никакой, при работе lupdate CP1251 заменяется на windows-1251, если установить вручную, то ошибка меняется на:
"No QTextCodec for CP1251 available. Using Latin1."

Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Декабрь 02, 2011, 07:19 »

А чем они аргументируют свою противность? В конечном итоге, все равно же русский будет по-умолчанию.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Bepec
Гость
« Ответ #5 : Декабрь 02, 2011, 07:24 »

Аргументы просты, мой язык Русский, прога выйдет на международные стандарты, соответственно перевод русский я сам могу сделать. (они надеются на мое знание русского Улыбающийся ),
а перевод на остальные языки должны делать специалисты-переводчики, дабы не посрамить предприятие, как то "Отрыть форточку..." "Work comlete incomplete" и прочая.

PS кстати!!!! Вопрос - есть ли возможность в Лингвисте создавать файл перевода из файла перевода?

Т.е. чтобы был "исходная строка", "строка в перевода на русский" и введите строку в переводе на английском?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Декабрь 02, 2011, 07:33 »

Тогда переводи исходники в UTF-8. Думаю, проблемы, по большей части, исчезнут.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Bepec
Гость
« Ответ #7 : Декабрь 02, 2011, 12:40 »

Увы появятся Улыбающийся  Разработка вся идет в Visual studio, и соответственно все сопутствующие и прочая прочая прочая программы используют 1251 Улыбающийся

Но прогресс - при пересборе lrelease было замечено, что поставляемая версия lrelease 4.7.2 собрана статически и в ней отсутствует необходимый кодек. При сборке динамически он переваривает спокойно windows-1251.

Ведутся работы по релизной сборки Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #8 : Декабрь 02, 2011, 12:52 »

Увы появятся Улыбающийся  Разработка вся идет в Visual studio, и соответственно все сопутствующие и прочая прочая прочая программы используют 1251 Улыбающийся
в настройках студии ж вроде можно установить дефолтную кодировку для новых файлов, разве нет?
Записан

Изучением C++ вымощена дорога в Qt.

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. © Matt Gallagher
Bepec
Гость
« Ответ #9 : Декабрь 02, 2011, 13:00 »

Kambala ты прав, но вот поправить всё в нескольких десятках проектах(и не наших Улыбающийся ), перевести все. Далее все исправить в архиве (а это извещения, перезапись дисков с исходниками и прочее).

Так немного понятнее? Улыбающийся

Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #10 : Декабрь 02, 2011, 13:02 »

Можно автоматизированно перекодировать. Под Линухом для этого существует iconv.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Bepec
Гость
« Ответ #11 : Декабрь 02, 2011, 13:29 »

Пантер, прошу, напиши автоматизированную систему сдачи в архив с автоматической проверкой/печатями/подписями начальников и тонной росчерков Веселый Я тебя даж обниму за это Улыбающийся

Проблему удалось решить.

Суть проблемы:

lrelease 4.7.2 использует статическую либу в которой собраны все кодеки. Но кодек на 1251 там отсутствует, что приводит к невозможности перевода.

Решение:

Динамическая сборка (благо исходники есть), использующая либы установленной версии Qt. Спокойно переводит/принимает/апдейтит windows-1251.

К сожалению было выяснено, что так сделано троллями, но их мотивации неизвестны Улыбающийся

Спасибо за участие, тема [РЕШЕНА]
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #12 : Декабрь 02, 2011, 13:49 »

Пантер, прошу, напиши автоматизированную систему сдачи в архив с автоматической проверкой/печатями/подписями начальников и тонной росчерков Веселый Я тебя даж обниму за это Улыбающийся
Проще купить автомат и "поговорить" с начальством. Веселый
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Bepec
Гость
« Ответ #13 : Декабрь 02, 2011, 13:58 »

Автомат мне не продают... Даже ножи не продают. Говорят, программистам с красными глазами и клацающими воздух пальцами, запрещено что нибудь больше ложки продавать, а то начальства то и не останется Улыбающийся
Записан
Wozar
Гость
« Ответ #14 : Декабрь 08, 2011, 15:55 »

Пантер, прошу, напиши автоматизированную систему сдачи в архив с автоматической проверкой/печатями/подписями начальников и тонной росчерков Веселый Я тебя даж обниму за это Улыбающийся

Проблему удалось решить.

Суть проблемы:

lrelease 4.7.2 использует статическую либу в которой собраны все кодеки. Но кодек на 1251 там отсутствует, что приводит к невозможности перевода.

Решение:

Динамическая сборка (благо исходники есть), использующая либы установленной версии Qt. Спокойно переводит/принимает/апдейтит windows-1251.

К сожалению было выяснено, что так сделано троллями, но их мотивации неизвестны Улыбающийся

Спасибо за участие, тема [РЕШЕНА]

Верес, не поделитесь ли собранной lrelease  работающей с windows-1251
заранее, спасибо
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.176 секунд. Запросов: 23.