ich lade die lclstrconsts.de.po in mein Programm und versuche damit sowohl unter Windows als auch unter Linux mein Programm auf deutsch zum laufen zu bekommen. Ich kompiliere mein finales Programm unter Linux, entwickle aber auch unter Windows. Aus diesem Grund gibt es hier auch noch den Versuch mit den Delemitern, was mein eigentliches Problem aber nicht löst. Hier meine TranslateLCL, die in der Hauptroutine der .lpr aufgerufen wird.
Code: Alles auswählen
procedure TranslateLCL;
var
PODirectroy, Lang, DefLang: string;
begin
// lclstrconsts.de.po liegt unter
// <Lazarus-dir>\lazarus\lcl\languages
Lang := '';
DefLang := '';
{$IFDEF WINDOWS_ENV}
// ToDo: Umgebungsvariable für die EDI setzen
// -dWINDOWS_ENV
PODirectroy := '..\..\Programm\locale\';
{$ELSE}
PODirectroy := '../../Programm/locale/';
{$ENDIF}
GetLanguageIDs(Lang, DefLang);
Translations.TranslateUnitResourceStrings('LCLStrConsts', PODirectroy +
'lclstrconsts.%s.po', Lang, DefLang);
end;
Muss ich die .po-Dateien mitliefern? Ich bin eigentlich davon ausgegangen, dass die in das Programm reinkompiliert werden und wenn das auf meinem System geht, dann sollte es auch wo anders gehen. Ich kann das Problem übrigens auch auf einem virtuellen Windows Rechner bei mir reproduzieren. Die .po-Datei wird auch beim Kompliliervorgang gefunden. Das kann ich im Debug nachfollziehen. Ich bin hier etwas ratlos.
Vielen Dank.