pvbrowser manual
Zurück Inhalt Vor

Sprachübersetzungen

Der Menu Text in pvbrowser kann über die INI Datei "~/.pvbrowser.ini" an verschiedene Sprachen angepasst werden. Falls Sie nichtlateinische Sprachen verwenden möchten, setzen Sie den "codec=utf8 ## Unicode, 8-bit" in der INI Datei. Daraufhin können Sie diese Zeichen in der INI Datei und in Ihrem Quelltext verwenden.

Um UTF-8 unter Linux zu nutzen, müssen Sie es in Ihrer ~/.bashrc oder Ihrem System profile definieren.

Beispiel:


export LC_ALL=de_DE.utf8
export LANG=de_DE.utf8
export LANGUAGE=de_DE.utf8

Sie können die installierten locales mit folgendem Befehl anzeigen:

locale -a

Um UTF-8 zur Entwicklung von pvservern unter Windows nutzen zu können benötigen Sie Visual Studio .Net

Während pvbrowser läuft, kann man von einer Sprache auf die andere umschalten, vorausgesetzt Sie haben das in Ihrem pvserver vorgesehen. Es gibt ein "#define DEFAULT_LANGUAGE 0" in processviewserver.h . Nun können Sie in pvapp.h weitere Sprachen definieren.

#define GERMAN_LANGUAGE  DEFAULT_LANGUAGE+1
#define FRENCH_LANGUAGE  DEFAULT_LANGUAGE+2
#define SPANISH_LANGUAGE DEFAULT_LANGUAGE+3
#define ITALIAN_LANGUAGE DEFAULT_LANGUAGE+4
#define CHINESE_LANGUAGE DEFAULT_LANGUAGE+5
...

Setzen Sie nun den Sprachparameter von "PARAM *p" auf Ihre Sprache. Lassen Sie den Benutzer die Sprache auswählen.

p->language = GERMAN_LANGUAGE; // standard ist: p->language = DEFAULT_LANGUAGE;

In "slotInit" überschreiben Sie nun alle Texte der Objekte in der anderen Sprache.

static int slotInit(PARAM *p, DATA *d)
{
  if(p == NULL || d == NULL) return -1;
  switch(p->language)
  {
    case GERMAN_LANGUAGE:
      pvPrintf(p,idOfAnObject,"%s","Dies ist der deutsche Text");
      break;
    case FRENCH_LANGUAGE:
      break;
    case SPANISH_LANGUAGE:
      break;
    case ITALIAN_LANGUAGE:
      break;
    case CHINESE_LANGUAGE:
      break;
    default:
      // nothing todo, because generated_defineMask has already set the text
      break;
  }
  return 0;
}

Alternativ kann man die Klasse rlIniFile aus rllib benutzen. Sehen Sie dazu die Methode

const char *i18n(const char *tag, const char *default_text);

Zurück Inhalt Vor