Перевод сообщений Qt

Материал из Wiki.crossplatform.ru

(Различия между версиями)
Перейти к: навигация, поиск
(Подправил ссылочку)
(Установка перевода: уточнил :))
 
(6 промежуточных версий не показаны.)
Строка 3: Строка 3:
== Исходные файлы перевода ==
== Исходные файлы перевода ==
-
Команда [[Qt4 RTT]] внесла в клад в перевод этого и других файлов для '''Qt 4.3.2'''. Последнюю версию перевода этого файла можно взять здесь:
+
В данный момент переводом ts-файлов занимется команда [http://www.prog.org.ru/topic_9713_0.html qt-l10n-ru].
-
* [http://trac2.assembla.com/qtrtt/browser/branch/qt4.3.2-ru/ts/qt_ru.ts?format=raw qt_ru.ts]
+
 
 +
Команда [[Qt RTT]] внесла вклад в перевод этого файла для '''Qt 4.3.2'''. Перевод файла этой версии можно взять здесь:
 +
* [http://trac.crossplatform.ru/qtrtt/browser/branch/qt4.3.2-ru/ts/qt_ru.ts?format=raw qt_ru.ts]
== Установка перевода ==
== Установка перевода ==
Строка 12: Строка 14:
#* В командной строке, в каталоге '''%QTDIR%\translations''', скомандуйте <code>lrelease ''qt_ru.ts''</code>
#* В командной строке, в каталоге '''%QTDIR%\translations''', скомандуйте <code>lrelease ''qt_ru.ts''</code>
# Скопируйте файл %QTDIR%\translations\qt_ru.qm в каталог с исполняемым файлом вашей программы.
# Скопируйте файл %QTDIR%\translations\qt_ru.qm в каталог с исполняемым файлом вашей программы.
-
# Добавте в функцию main() следующие строчки:
+
# Добавте в функцию main() вашей программы следующие строчки:
{{code|qt
{{code|qt
|code=// загрузка перевода
|code=// загрузка перевода
Строка 19: Строка 21:
translator->load(QString("qt_") + locale);  // загрузка файла qt_*.qm*
translator->load(QString("qt_") + locale);  // загрузка файла qt_*.qm*
app.installTranslator(translator);        // устанока переводчика}}
app.installTranslator(translator);        // устанока переводчика}}
-
 
+
'''''Замечание:''''' В некоторых системах имя локали может включать не только язык, но и страну. Например, '''ru_RU''', поэтому лучше держать две копии qm-файла:
-
 
+
* qt_ru.qm
-
для Qt 4.3.3
+
* qt_ru_RU.qm
-
# QLocale::system().name() выдаёт не "ru" как описано выше а "ru_RU"
+
т.к. зарание вы можете не знать точное имя локали пользователя.
-
# В функцию translator->load() надо передавать полное имя файла (в описанном примере туда передаётся только название без разрешения).
+
-
{{code|qt
+
-
|code=
+
-
QString strNameFile = QString("qt_") + locale;
+
-
strNameFile += ".qm"
+
-
translator->load(strNameFile); // загрузка файла qt_ru_RU.qm}}
+
== Актуализация перевода ==
== Актуализация перевода ==

Текущая версия на 21:07, 18 сентября 2009

Для перевода сообщений, встроеных в библиотеку Qt, на русский язык необходим исходный файл перевода для русского языка (qt_ru.ts). Этот файл обычно расположен в каталоге %QTDIR%\translations.


Содержание

[править] Исходные файлы перевода

В данный момент переводом ts-файлов занимется команда qt-l10n-ru.

Команда Qt RTT внесла вклад в перевод этого файла для Qt 4.3.2. Перевод файла этой версии можно взять здесь:

[править] Установка перевода

  1. Поместите файл qt_ru.ts в каталог %QTDIR%\translations
  2. Создайте скомпилированый файл перевода (qt_ru.qm), одним из следующих способов :
    • Откройте файл qt_ru.ts спомощью QT Linguist, в меню "Файл" выберите "Релиз";
    • В командной строке, в каталоге %QTDIR%\translations, скомандуйте lrelease qt_ru.ts
  3. Скопируйте файл %QTDIR%\translations\qt_ru.qm в каталог с исполняемым файлом вашей программы.
  4. Добавте в функцию main() вашей программы следующие строчки:
// загрузка перевода
	QString locale = QLocale::system().name(); // запрос языка (например: "ru")
	QTranslator* translator = new QTranslator; // создаем переводчик
	translator->load(QString("qt_") + locale);  // загрузка файла qt_*.qm*
	app.installTranslator(translator);         // устанока переводчика

Замечание: В некоторых системах имя локали может включать не только язык, но и страну. Например, ru_RU, поэтому лучше держать две копии qm-файла:

  • qt_ru.qm
  • qt_ru_RU.qm

т.к. зарание вы можете не знать точное имя локали пользователя.

[править] Актуализация перевода

(предстоит написать)

[править] См. также