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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Интернационализация через QSettings или XML  (Прочитано 5543 раз)
onlik
Гость
« : Февраль 09, 2009, 11:52 »

Кто-то пытался сделать интернационализацию через QSettings или XML?
Проблема в том, что если делать через стандартные средства QT, то файлы можно будет редактировать только тем, у кого есть исходник перевода, я правильно понимаю?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Февраль 09, 2009, 11:57 »

если под исходником понимается ts-файл, то да + Лингвист или утилита lupdate.
Записан

Юра.
onlik
Гость
« Ответ #2 : Февраль 09, 2009, 15:31 »

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

Вот как в Опере реализовано. У них файл языка похож очень на обычный ini.

Может кто-то делал что-то подобное?
Записан
Sergeich
Гость
« Ответ #3 : Февраль 10, 2009, 01:33 »

В принципе, формат  у троллей всегда был открытый и лингвиста они поставляли без проблем. Но вроде они счас готовят поддержку еще "более открытых форматов" типа XLIFF: http://doc.trolltech.com/main-snapshot/qt4-5-intro.html#qt-linguist-improvements
Записан
onlik
Гость
« Ответ #4 : Февраль 10, 2009, 09:55 »

Ну как я понимаю, для перевода нужно создать бинарный файл qm который далеко не открытый (((
Записан
Rcus
Гость
« Ответ #5 : Февраль 10, 2009, 10:12 »

В 4.5 появилась интересная функция:
Цитировать
QString QTranslator::translate ( const char * context, const char * sourceText, const char * disambiguation = 0 ) const   [virtual]

Returns the translation for the key (context, sourceText, disambiguation). If none is found, also tries (context, sourceText, ""). If that still fails, returns an empty string.

If you need to programatically insert translations in to a QTranslator, this function can be reimplemented.

This function was introduced in Qt 4.5.
Но к сожалению это не подходит для перевода чисел
Интересный комментарий кстати в qtranslator.h:
Цитировать
    // ### Qt 5: Merge (with "int n = -1")
    virtual QString translate(const char *context, const char *sourceText,
                              const char *disambiguation = 0) const;
Записан
SABROG
Гость
« Ответ #6 : Февраль 18, 2009, 21:19 »

Ну как я понимаю, для перевода нужно создать бинарный файл qm который далеко не открытый (((
Вместе с программой можно распространять .ts файл из которого люди смогут сделать .qm файл. В самой программе файлы перевода можно впихнуть в ресурсы. Однако прежде чем их оттуда подгрузить можно проверять папочку, скажем translates/language и если там что-то есть, то просто создавать список, который помещать в настройки программы, где пользователь смог бы сам выбрать нужный файл перевода. Если имена файлов в ресурсах и папке совпадают, то использовать тот, что в папке.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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