Internationalisierung von Funktionsrückgaben

Alles rund um die Programmierung mit Qt
Antworten
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Internationalisierung von Funktionsrückgaben

Beitrag von AuE »

Hi,

habe da folgendes Problem:
Ich kommuniziere mit einen Server und möchte gerne dessen Meldungen übersetzen.
Wie würdet ihr das machen ?

Code: Alles auswählen

static const char *server_strings[] = {
     QT_TRANSLATE_NOOP("Class", "Message1"),
     QT_TRANSLATE_NOOP("Class", "Message")
 };
Irgendwo hin im src und dann einfach immer nur Message1 und 2 Übersetzen lassen?

Also dann quasi

Code: Alles auswählen

ui->label1->setText(tr(server->answer()));
Oder gibt es da einen besseren Weg?
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Ich habe es nun erstmal wie folgt gelöst:

Code: Alles auswählen

QString myTranslationClass::serverMsgToUserStr(const QString &serverMsg)
  {
	  QStringList knowMsgs = QStringList()
				     //add the stats variables
				     << QT_TR_NOOP("Msgs1")
				     << QT_TR_NOOP("Msgs2");

	  int indexInList = knowMsgs.indexOf(serverMsg);

	  if (indexInList != -1) // if the index can be found we tranlate
		  return tr( knowMsgs.at(indexInList).toStdString().c_str() );
	  else // else we return whats comming in
		  return serverMsg;
 };
Falls jmd einen dynamischeren Weg kennt-bin für jede Anregung dankbar!
Antworten