Hallo hbr
ich habe auch lange gefummelt, bevor ich das mit der Übersetzung hinbekommen habe. Irgendwo fand ich eine gute und einfache Anleitung. Vielleich versuchtst Du mal folgendes Beispiel:
- Erstelle ein neues Projekt (Anwendung) mit einem Button
- Speichere dieses in einem Ordner
- Nimm folgende Projekteinstellungen vor (Projekt --> Projekteinstellungen --> i18n):
i18n einschalten [x]
PO-Ausgabeverzeichnis "languages" (im Projektverzeichnis neu anlegen)
.po Datei beim Speichern einer lfm Datei erstellen/aktualisieren [x]
- füge in der Form Unit
uses defaulttranslator;
-und in dem Button-Click-Ereignis ein Meldungsfenster hinzu.
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
resourcestring
MyCaption = 'A simple example!';
implementation
uses defaulttranslator;
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
MessageDlg(MyCaption, mtInformation, [mbYes, mbNo, mbOK, mbCancel, mbAbort,
mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp, mbClose],0);
end;
end.
- Übersetze und starte das Programm.
Nun hast Du deine Englische Version.
Im Verzeichnis languages gibt es eine Datei
project1.po.
Benenne diese in
project1.de.po um und ändere sie mit einem Text-Editor (der UTF-8 kann) wie folgt.
Code: Alles auswählen
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: tform1.button1.caption
msgid "Button1"
msgstr "Schalter1"
#: tform1.caption
msgid "Form1"
msgstr "Formular1"
#: unit1.mycaption
msgid "A simple example!"
msgstr "Ein einfaches Beispiel"
Wenn Du nun das Programm mit dem Kommandozeilen-Parameter "-l de" startest, hast Du die deutsche Version.
Damit auch die Schalter im Meldungsfenster übersetzt werden, musst Du die Datei
lclstrconsts.de.po aus dem Verzeichnis
.../lazarus/lcl/languages in Dein languages-Verzeichnis kopieren.
Du wirst dort auch die lcl-Sprachdateien für andere Sprachen finden.
Genauso kannst Du Dir auch für Dein Projekt eine project1.fr.po, project1.es.po usw. erstellen.
Übrigens, ohne Kommandozeilenparameter wird die Sprachversionsdatei verwendet, die zum Betriebssystem passt, wenn vorhanden.
Hilft Dir das weiter?
Viele Grüße
Willi4Willi