Название: Перевод приложения на другие языки Отправлено: JamS007 от Январь 01, 2010, 12:29 Здравствуйте,
пишу проект, который обещает стать очень объемным. Хочу вынести все надписи в отдельный *.h файл, чтоб потом легко переводить. делаю примерно так: Код: #ifndef TRANSLATE_H но на экране, после этого, появляются всякие крякозяблы. Подскажите как грамотно осуществить перевод приложения в Qt. Может для этого есть спец. средства, а если моим способом, то почему шрифты отображаються неправильно? Название: Re: Перевод приложения на другие языки Отправлено: lit-uriy от Январь 01, 2010, 14:33 >>Хочу вынести все надписи в отдельный *.h файл, чтоб потом легко переводить.
т.е. ты собирался переводить, исправляя исходник? Название: Re: Перевод приложения на другие языки Отправлено: DOOMer от Январь 01, 2010, 15:01 JamS007, зачем такие сложности. В Qt предусмотрены далеко не самые плохие средства для облегчения интернационализации разрабатывемых приложений. В принципе даже выносить все строки, нуждающиеся в переводе, в отдельный заголовочник необязательно.
Просто "оборачивай" еобходимые строки функцией QApplication::trUtf8("bla_bla_bla");. А перед релизом приложенрия прогони исходники через утилиту lupdate, она выберет все что ты отметил (и в коде и в ui-файлах) в отдельный ts-файл. Который уже и надо переводить через поставляемую с Qt утилиту linguits. А потом с помощью lrelease собрать все в qm-файл. Возможно поначалу оно и покажется что "сложнно и геморно" все это. Но в реальности все довольно-таки несложно, и весьма удобно, имхо. В документации все описано - http://doc.trolltech.com/4.6/internationalization.html Название: Re: Перевод приложения на другие языки Отправлено: JamS007 от Январь 01, 2010, 17:02 Спасибо!
Название: Re: Перевод приложения на другие языки Отправлено: Dendy от Январь 01, 2010, 17:06 Добавлю от себя - не приучайтесь к плохому, не используйте trUtf8() - это маленькое зло, оставленое нам разработчиками. Довольно спорно переводить программу с русского на другие языки. Пользуйтесь tr().
Название: Re: Перевод приложения на другие языки Отправлено: lit-uriy от Январь 01, 2010, 18:22 >>не используйте trUtf8() - это маленькое зло
скорее наоборт. Особенно для случая, когда делаешь некий универсальный класс. Исходник класса написан в UTF-8, использована эта функция. Применяя в другом коде, где кодировка может отличатся от UTF-8, всё будет работать, т.к. чётко указана кодировка именно этих строк. А вот если использовать класс с кодировкой UTF-8 и вункцией tr(), то для приложения в котором основная кодировка отличается от UTF-8 и соответсвенно кодек для tr() установлен другой, то получим проблемы. Название: Re: Перевод приложения на другие языки Отправлено: Dendy от Январь 01, 2010, 19:53 Забыл сказать - и никаких мультибайтных символов в коде. Исключения бывают, но они достаточно редки, например имена или спец-символы (буквы копирайта и т.п.), которые лень подставлять константой или переводу не подлежат.
break, как по вашему китаец будет переводить trUtf8("Привет")? Ему нужно будет знать русский? Или русскому китайский? Название: Re: Перевод приложения на другие языки Отправлено: lit-uriy от Январь 01, 2010, 22:21 Цитировать Надо? Изучай язык и переводи. Название: Re: Перевод приложения на другие языки Отправлено: Dendy от Январь 01, 2010, 23:34 То-есть из-за того что разработчик не знает английского китайскому переводчику нужно учить русский? Оставим этот спор, я вижу он зашёл в тупик.
|