Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Динамический перевод
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt инструментарий
RazrFalcon
Обычный перевод:
tr("Some Text");
Мне нужно:
QString str("some text");
tr(str);


Возможно такое сделать?
RazrFalcon
Что то я не пойму как его использовать <_<
Sokoloff
"tr(str);" не прокатит, tr работает двояко, во время работы программы это функция. Но когда создается файл переводов, "tr" это маркер, если строка обрамлена им она попадает в ts-файл. В данном случае в перевод попадет именно строка "str".

Я не совсем понимаю в чем проблема?

Если нужен статический текст, то так:
  QString str = tr("some text");
  foo(str);
  bar(str);


Если надо динамически строить строку, то используй QString::arg. На вроде:
QString errStr;
if (errNo == 1)
    errStr = tr("File '%1' not found").arg(fileName);
else
    errStr = tr("Unknown error");

showErrorMsg(tr("Error in the program:\n%1.").arg(errStr));


RazrFalcon
Проблема в том, что у меня этих "some text" может быть больше сотни разных. Вот я и думаю как лучше всего это реализовать.
Litkevich Yuriy
Цитата(RazrFalcon @ 11.9.2011, 4:45) *
Проблема в том, что у меня этих "some text" может быть больше сотни разных. Вот я и думаю как лучше всего это реализовать.
ну в реальной программе всегда так, проблема всё-таки не ясна
RazrFalcon
Есть QStringList, в нем содержатся строки на английском. Нужно перевести их на русский. Я представлял себе это так:
QStringList translatedOutList;
for (int i = 0; i < outList.count(); ++i) {
  translatedOutList.append(tr(outList.at(i)));
}

Такое возможно?
Sokoloff
Цитата(RazrFalcon @ 11.9.2011, 14:37) *
Есть QStringList, в нем содержатся строки на английском. Нужно перевести их на русский. Я представлял себе это так:
QStringList translatedOutList;
for (int i = 0; i < outList.count(); ++i) {
  translatedOutList.append(tr(outList.at(i)));
}

Такое возможно?


А откуда берутся английские строки? Что это за строки?

В общем случае такое не возможно. Ведь переводит человек, и он может сделать перевод только для текста который есть и который он может увидеть. А если английский текст - это произвольный текст полученный во время работы программы, кто будет делать его перевод?

RazrFalcon
Моя прога :lol:
Я уже понял что через стандартный QTranslator такого не добьешься. Пошел искать обходные пути.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.