Meldung mit Englischen Buttons

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
OLLI_S
Beiträge: 65
Registriert: Di 17. Jan 2012, 20:55

Meldung mit Englischen Buttons

Beitrag von OLLI_S »

Hallo,

ich habe Windows 7 Professional in Deutsch.
Die Sprache im SystemTray ist auch auf Deutsch eingestellt.
Lazarus ist in der Version 1.2.2 ebenfalls in Deutsch installiert.

Ich gebe in meiner Anwendung eine Fehlermeldung aus:

Code: Alles auswählen

Antwort := MessageDlg('Warnung', 'Meddungstext', mtWarning, [mbYes, mbNo], 0);
if Antwort = mrNo then exit;
Im Meldngs-Dialog werden aber die Buttons "Yes" und "No" anstelle von "Ja" und "Nein" angezeigt.

Also bin ich in die Projekteinstellungen und habe unter "Versionsinformationen" die "Sprachauswahl" von "English" auf "German" umgestellt.
Aber selbst wenn ich das Projekt neu kompiliere (Start -> Neu kompilieren) sind die Buttons noch auf Englisch.

Wo kann ich das denn umstellen?

Gruß

OLLI
Zuletzt geändert von OLLI_S am Mi 8. Okt 2014, 11:47, insgesamt 1-mal geändert.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2826
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Meldung mit Englischen Buttons

Beitrag von m.fuchs »

Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

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

Re: Meldung mit Englischen Buttons

Beitrag von theo »

Ich empfehle den Übersetzungscode in den "initialization" Abschnitt zu packen.

Code: Alles auswählen

unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ButtonPanel;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    ButtonPanel1: TButtonPanel;
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
  PODirectory, Lang, FallbackLang: String;
 
implementation
 
uses
  GetText, Translations;
 
{$R *.lfm}
 
initialization
PODirectory := '/home/theo/lazarus/svn/lcl/languages/';  //Pfad entsprechend Installation anpassen
GetLanguageIDs(Lang, FallbackLang);
Translations.TranslateUnitResourceStrings('LCLStrConsts', PODirectory + 'lclstrconsts.%s.po', Lang, FallbackLang);
 
end.  

ruewa
Beiträge: 153
Registriert: Sa 12. Apr 2014, 14:43

Re: Meldung mit Englischen Buttons

Beitrag von ruewa »

OLLI_S hat geschrieben:Wo kann ich das denn umstellen?
Hallo Olli,

mit einfach "umstellen" ist das nicht getan. Andererseits ist das aber auch kein Hexenwerk.

Das hier dürfte Dir weiterhelfen, auch um besser zu verstehen, welche Logik dahintersteckt: http://www.lazarusforum.de/viewtopic.php?p=69170#p69170

Die einfachste Möglichkeit ist: Die dort (unten) aufgeführte Unit AppLanguage rauskopieren, in Dein Projektverzeichnis (oder in das Lazarus-Bibliotheksverzeichnis) zu verfrachten und sie via Projektinspektor in Dein Programm einzubinden (bzw. in die uses-Anweisung Deiner Projekt.lpr-Datei aufzunehmen). Das war's dann auch schon...

Gruß Rüdiger

noenglish
Beiträge: 36
Registriert: Di 4. Mai 2010, 09:14
OS, Lazarus, FPC: Win10 64Bit, L: 1.8.4 FPC 3.0.4

Re: Meldung mit Englischen Buttons

Beitrag von noenglish »

Wenn es auch ein QuestionDLG sein kann, ist dies vermutlich die einfachste Lösung:

Code: Alles auswählen

Antwort := QuestionDLG('Warnung', 'Meldungstext', mtWarning, [mbYes,'beliebig für Yes', mbNo,'beliebig für No'], 0);  
mfG
noenglish

Antworten