Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: vanessa от Март 08, 2011, 20:06



Название: Как зарядить текстовый файл в лингвист ?
Отправлено: vanessa от Март 08, 2011, 20:06
Давно хотел спросить, но все как-то было не критично, а теперь уже критично...
Иногда приходится ложить в ресурсы программы текстовый файл, строки из которого потом выводятся в разные места (в основном показываются в QLabel и QLineEdit), предварительно эти строки загружаются в хеш (примерно такой QHash<QString,QString> ) а далее в необходимых мне местах они извлекаются из этого хеша и вызовом setText() отправляются на екран.  Вот как его зарядить в лингвист  для перевода ?


Название: Re: Как зарядить текстовый файл в лингвист ?
Отправлено: Stiff от Март 08, 2011, 21:22
Что-то подобное делают макросы QT_TR_NOOP и QT_TRANSLATE_NOOP, но в данном случае даже не знаю, как их можно применить, так как их аргументы - строковые константы.
Думаю, самое простое в данном случае - хранить в ресурсах несколько таких файлов для разных языков. Например file_ru, file_en итп. А уже в ходе выполнения определять файл для загрузки в зависимости от значения QLocale::system().name()


Название: Re: Как зарядить текстовый файл в лингвист ?
Отправлено: vanessa от Март 08, 2011, 21:50
Что-то подобное и мне приходило в голову но вот только лингвист тут вроде как сбоку получается, для перевода нужно пользовать другую програму.


Название: Re: Как зарядить текстовый файл в лингвист ?
Отправлено: ритт от Март 15, 2011, 08:25
а кто запрещает для перевода пользовать всё тот же лингвист?

и что-то у меня ни разу не возникало необходимости в костыле наподобии Вашего...


Название: Re: Как зарядить текстовый файл в лингвист ?
Отправлено: vanessa от Март 15, 2011, 08:39
Цитировать
а кто запрещает для перевода пользовать всё тот же лингвист?
я и спрашиваю: как ? как оформить этот файл, как потом скормить его lupdate ?


Название: Re: Как зарядить текстовый файл в лингвист ?
Отправлено: twp от Март 15, 2011, 11:40
это описано в асистенте в Internationalization with Qt. Если кратко, то просто в коде использовать tr, QT_TR_NOOP или QT_TRANSLATE_NOOP. Потом в pro-файле указать нужные ts-файлы в секции TRANSLATIONS и потом вскормить pro-файл lupdate, и он сам сгенерит нужные ts-файлы. И теперь можно будеть загружать их в лингвист