![]() |
Gettext verhindern, das ein bestimmtes Label übersetzt wird
Hallo,
ich hoffe ihr könnt mir weiterhelfen, ich nutze für meine Mehrsprachigkeit in meinen Programmen, ich schalte die Language um:
Delphi-Quellcode:
und lasse dann die Form übersetzten
UseLanguage('en');
Delphi-Quellcode:
Mein Problem ist nun aber, dass ich ein Label habe, dass ich zur Laufzeit ändere, und da sollt auch nicht übersetzt werden.
TranslateComponent(self);
Ich kann zwar Klassen von der Übersetzung rausnehmen, aber wie mache ich das mit einzelnen Objekten?? Danke euch!!! |
Re: Gettext verhindern, das ein bestimmtes Label übersetzt w
Ich mache das so:
Ich gebe jeder Component, die übersetzt werden soll einen Tag-Wert > 0. Anschliessend durchlaufe ich mit FindComponent alle Components durch und prüfe ob der Tag > 0 ist. Wenn ja, dann wird der Text umgeschrieben ansonsten nicht. |
Re: Gettext verhindern, das ein bestimmtes Label übersetzt w
Hi,
es gibt ja die Möglichkeit über ein Ignore, aber das klappt bei mir nicht:
Delphi-Quellcode:
TP_Ignore(self,lblVersion.Caption);
TP_Ignore(Self,lblSuperUserMode.Caption); TranslateComponent(self); |
Re: Gettext verhindern, das ein bestimmtes Label übersetzt w
Prinziell ist e gettext, egal, was in den einzelnen Komponenten zum Übersetzen drin steht. Entweder ist eine Übersetzung da oder nicht.
Nach TranslateComponent(self) musst Du also die Caption der entsprechenden Labels selbst auf den gewünschten Inhalt setzen. Beim Umstellen der Sprache zur Laufzeit sollte übrigens ReTranslateComponent aufgerufen werden, wenn das Formuar bereits einmal übersetzt wurde. |
Re: Gettext verhindern, das ein bestimmtes Label übersetzt w
bei TP_Ignore ist die Klasse und der Name des Labels gefragt, also z.B. Label1
ein Blick in die Quellen bringt Klarheit:
Delphi-Quellcode:
procedure TGnuGettextInstance.TP_Ignore(AnObject: TObject;
const name: string); begin TP_IgnoreList.Add(uppercase(name)); {$ifdef DXGETTEXTDEBUG} DebugWriteln ('On object with class name '+AnObject.ClassName+', ignore is set on '+name); {$endif} end; |
Re: Gettext verhindern, das ein bestimmtes Label übersetzt w
Hi,
ich nutzte GnuGettext von folgender Homepage ![]() die Unit hat leider kein ReTranslateComponent... bei mir sieht die Methode so aus:
Delphi-Quellcode:
procedure TGnuGettextInstance.TP_Ignore(AnObject: TObject;
const name: string); begin TP_IgnoreList.Add(uppercase(name)); end; |
Re: Gettext verhindern, das ein bestimmtes Label übersetzt w
Hallo,
anscheinend habe ich eine ganz andere Gettext Version wie alle anderen hier :shock: :shock: Könnt ihr mir evtl. eine direct Link angeben, damit ich mir auch die Version herunterladen kann? Danke euch! |
Re: Gettext verhindern, das ein bestimmtes Label übersetzt w
Bis auf den DEBUG-Switch sieht Deine Methode doch auch so aus.
Ich hab meine Version per SVN geholt. Den Link findest Du auf der von Dir genannten Seite. |
Re: Gettext verhindern, das ein bestimmtes Label übersetzt w
Hi,
ja bei der Funktion ja, aber es gibt kein ReTranslateComponent in meiner Version :pale: Ich hol mir auch mal die aktuellste per SVN. Danke dir (euch) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz