Buttons in MessageBox deutsch beschriften? Wie?

Für Fragen rund um die Ide und zum Debugger
Carsten Wallner
Beiträge: 7
Registriert: Mo 4. Dez 2006, 15:09

Buttons in MessageBox deutsch beschriften? Wie?

Beitrag von Carsten Wallner »

Hi,

bin kürzlich versuchsweise von Delphi aus Lazarus umgestiegen (unter WinXP) - das ganze gefällt mir wirklich gut - ok, der Debugger ist etwas mühsam, da ich keine Fehlermeldungen kriege sondern nur die Markierung der fehlerhaften Zeile - aber damit kann ich leben :)
Nun habe ich das Problem, dass meine MessageBox (mit MB_YesNoCancel) die Buttons englisch beschriftet. Kann man das irgendwie ändern odermuss ich dafür dann eigene Forms erzeugen und die als MessageBox-Ersatz nehmen?

Bin für jeden Tipp dankbar

Gruß
Carsten

Quit
Beiträge: 65
Registriert: So 5. Nov 2006, 18:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Luzern

Beitrag von Quit »

Er zeigt dir keine Fehlermeldungen an?
Auch nicht im Nachrichten ... Fenster? Ist es vielleicht deaktiviert?

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Er hat vom debugger gesprochen, der hat mit dem Narichtenfenster doch nichts zu tun.
Allerdings weiss ich auch nicht was für fehlermeldungen ein Debugger ist dazu da um fehler zu sucehn und nicht um welche zu produzieren dazu ist der user da.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Carsten Wallner
Beiträge: 7
Registriert: Mo 4. Dez 2006, 15:09

Beitrag von Carsten Wallner »

Hi,

sorry... ich hab gestern glaube ich Quark geschrieben... ich meinte eigentlich die Compiler-Fehlermeldungen...
Von Delphi war ich gewöhnt, dass dort die fehlerhafte Zeile markiert wird und unten sowas wie ":= expected" steht. Das ist bei meiner Lazarus-Version v0.9.16 Beta nicht der Fall

Zu den englischen Beschriftungen der MessageBox-Buttons gibts keine Ideen??

Gruß
Carsten

Benutzeravatar
theo
Beiträge: 10858
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Carsten Wallner hat geschrieben: Zu den englischen Beschriftungen der MessageBox-Buttons gibts keine Ideen??

Code: Alles auswählen

uses Translations;
 
{ TForm1 }
 
procedure TForm1.FormCreate(Sender: TObject);
 var
PODirectory: String;
begin
PODirectory:='/usr/lib/lazarus/languages/';
TranslateUnitResourceStrings('LCLStrConsts',PODirectory+'lazaruside.%s.po','de','');
MessageDlg('Title','Text',mtInformation,[mbOk,mbCancel,mbYes],0);
end;

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

sorry... ich hab gestern glaube ich Quark geschrieben... ich meinte eigentlich die Compiler-Fehlermeldungen...
Von Delphi war ich gewöhnt, dass dort die fehlerhafte Zeile markiert wird und unten sowas wie ":= expected" steht. Das ist bei meiner Lazarus-Version v0.9.16 Beta nicht der Fall
Doch doch das geht schon man sollte nur das Narichten Fenster mit Ansicht -> Narichten mal einschalten dann solltest auch den fehlertext sehn.

Was willst du mit der 0.9.16 die 0.9.20 ist die Aktuelle.

Carsten Wallner
Beiträge: 7
Registriert: Mo 4. Dez 2006, 15:09

Beitrag von Carsten Wallner »

Hi!

@Christian: Danke, ja, das hat geklappt - bei Delphi wars immer schon da - es gibt halt Kleinigkeiten bei denen man sich beim Umstieg umgewöhnen muss - aber mir gefällt Lazarus von Tag zu tag besser! :)
Warumich die 9.16 hab?? Tja als ich das Ganze installiert hab (nicht sooo lange her) war das die neuste - habe nicht damit gerechnet, dass die Versionen so schnell wechseln - ich werd einfach malprobieren, wie aufwändig es ist ne neue Version drüber zu installieren.

@theo: habe das so wörtlich übernommen und in mein Projekt eingebaut - das klappt so leider nicht, buttons bleiben englisch - wo könnte es denn noch haken??

Gruß
Carsten

Benutzeravatar
theo
Beiträge: 10858
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Carsten Wallner hat geschrieben: @theo: habe das so wörtlich übernommen und in mein Projekt eingebaut - das klappt so leider nicht, buttons bleiben englisch - wo könnte es denn noch haken??
Den Pfad (PODirectory) hast du aber schon angepasst, oder?

Vielleicht geht's auch so:

Code: Alles auswählen

uses Translations;
 
procedure TForm1.FormCreate(Sender: TObject);
var
PODirectory: String;
begin
PODirectory:='/path/to/lazarus/lcl/languages/';
TranslateUnitResourceStrings('LCLStrConsts',PODirectory+'lcl.%s.po','de','');
MessageDlg('Title','Text',mtInformation,[mbOk,mbCancel,mbYes],0);
end;
Am besten kopierst du die Datei "lcl.de.po" sowieso in den Anwendungspfad, da du sie beim Weitergeben mitliefern musst.

Mattias
Lazarusforum e. V.
Beiträge: 183
Registriert: Do 22. Mai 2008, 15:14
OS, Lazarus, FPC: LinuxOSX (L head FPC head)
CPU-Target: xxBit

Re:

Beitrag von Mattias »

Obiges Besipiel ist falsch.

Die LCL strings in in lcl/langiages/lclstrconsts.*

Code: Alles auswählen

uses Translations;
procedure TForm1.FormCreate(Sender: TObject);
var
  PODirectory: String;
begin
  PODirectory:='/usr/lib/lazarus/lcl/languages';
  TranslateUnitResourceStrings('LCLStrConsts',PODirectory+'lclstrconsts.%s.po','de','');
  MessageDlg('Title','Text',mtInformation,[mbOk,mbCancel,mbYes],0);
end;

Benutzeravatar
theo
Beiträge: 10858
Registriert: Mo 11. Sep 2006, 19:01

Re: Re:

Beitrag von theo »

Mattias hat geschrieben:Obiges Besipiel ist falsch.
Naja, das kann man so nicht sagen. Am 6/12/2006 war es richtig. :mrgreen:

Mattias
Lazarusforum e. V.
Beiträge: 183
Registriert: Do 22. Mai 2008, 15:14
OS, Lazarus, FPC: LinuxOSX (L head FPC head)
CPU-Target: xxBit

Re: Re:

Beitrag von Mattias »

theo hat geschrieben:Naja, das kann man so nicht sagen. Am 6/12/2006 war es richtig. :mrgreen:
Stimmt, "veraltet" ist wohl besser.
Aber es gab nun einen Bug report, der obigen Code nutzte. Hier der Link zur Dokumentation:

http://wiki.lazarus.freepascal.org/Tran ... rograms/de

Socke
Lazarusforum e. V.
Beiträge: 3177
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Re:

Beitrag von Socke »

Bevor jemand sagt, dass die Datei nicht gefunden werden kann, korrigiere ich besser die Pfadangabe

Code: Alles auswählen

uses Translations;
procedure TForm1.FormCreate(Sender: TObject);
var
  PODirectory: String;
begin
  PODirectory:='/usr/lib/lazarus/lcl/languages/'; // Schrägstrich nicht vergessen!
  TranslateUnitResourceStrings('LCLStrConsts',PODirectory+'lclstrconsts.%s.po','de','');
  MessageDlg('Title','Text',mtInformation,[mbOk,mbCancel,mbYes],0);
end;
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
theo
Beiträge: 10858
Registriert: Mo 11. Sep 2006, 19:01

Re: Buttons in MessageBox deutsch beschriften? Wie?

Beitrag von theo »

Bei mir lautet der Pfad:

Code: Alles auswählen

PODirectory:='/home/theo/lazarus/svn/lcl/languages/'; 
:wink:
Wichtiger als dieser mehr oder weniger beliebige Pfad ist der Hinweis, dass man die Dateien mit der Anwendung mitliefern bzw. als Ressource einbinden muss.

Socke
Lazarusforum e. V.
Beiträge: 3177
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Buttons in MessageBox deutsch beschriften? Wie?

Beitrag von Socke »

theo hat geschrieben:Wichtiger als dieser mehr oder weniger beliebige Pfad ist der Hinweis, dass man die Dateien mit der Anwendung mitliefern bzw. als Ressource einbinden muss.
Mir ging es nicht um den Pfad, sonder darum, dass ein Schrägstrich fehlte. Die Datei languageslclstrconsts.de.po wird man wohl selten finden.

Werden .po-Files, die als Ressource eingebunden sind, automatisch (mit DefaultTranslator) verwendet?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
theo
Beiträge: 10858
Registriert: Mo 11. Sep 2006, 19:01

Re: Buttons in MessageBox deutsch beschriften? Wie?

Beitrag von theo »

Socke hat geschrieben: Werden .po-Files, die als Ressource eingebunden sind, automatisch (mit DefaultTranslator) verwendet?
Ich glaube das funktioniert im Prinzip gleich, nur halt mit LazarusResources.Find()

http://wiki.freepascal.org/Translations ... executable

Antworten