Autor Beitrag
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mi 28.02.24 18:41 
Hallo zusammen!

Es geht wieder mal um Lazarus mit deutscher Sprache. Ich binde eine Datei UseCurrentLanguage.pas ein, die deutsche Meldungstexte, Buttons-Beschriftungen ("Ja" statt "Yes" usw.) sicherstellt.
Trotzdem bekomme ich beim Aufruf von Memo1.Lines.LoadFromFile('Test.txt'); die Meldung
Zitat:
Unable to open file "Test.txt".

OK, um dies zu ignorieren und Datenverlust zu riskieren.
Abbrechen, um das Programm zu beenden.

Die obere Zeile ist Lazarus-Original, den Text der unteren beiden Zeilen habe ich in der Datei lclstrconsts.de.po so festgelegt. "Unable to open file" kommt in mehreren zu Lazarus gehörenden Dateien vor. Änderungen dort nutzten nichts.

Das ist nur ein Testprogramm, und ich wollte sehen, was Lazarus macht, wenn eine Datei eingelesen werden soll, die nicht existiert. Dass es kein try/except gibt, ist also Absicht.

Kurz: Wie bekomme ich ein für alle Mal mit Lazarus entwickelte und kompilierte Programme durchgehend in deutsch? Ohne diesen Mix aus englisch und deutsch? :autsch:
Ich meine damit nicht die IDE, sondern mit Lazarus erstellte Programme!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: So 03.03.24 09:50 
Von Zeit zu Zeit denke ich mir, ich mach mal was mit Lazarus, und sei es nur ein Testprogramm, irgendwas eben. Und schon taucht irgendwo eine Meldung oder sonstwas auf englisch auf, obwohl in den Projekteinstellungen i18n eingeschaltet ist.

Das verdirbt mir schon gleich den Wunsch, Lazarus zu benutzen. Was die Umstellung auf deutsch angeht, ist alles offenbar nur so halb-halb, so irgendwie und doch nicht ganz.
Wo es sonst noch bei Lazarus hakt, weiss ich gar nicht, denn weil es schon an der Sprache scheitert, mache ich gar nicht erst weiter.

Momentan würde ich Lazarus so bewerten: Brauchbar, aber :hair: :nixweiss: :?

Gibt's eine Lösung?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Winterschlaf2
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 03.03.24 14:59 
Gar nicht!
Deine Programme sind auf deine Fehlerbehandlungen angewiesen. Andere IDEs in anderen Programmiersprachen werden dir auch solche Ergebnisse liefern oder komplett in Englisch.
Es liegt mehr an dir und weniger an Lazarus.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19274
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 03.03.24 19:59 
user profile iconWinterschlaf2 hat folgendes geschrieben Zum zitierten Posting springen:
Andere IDEs in anderen Programmiersprachen werden dir auch solche Ergebnisse liefern oder komplett in Englisch.
Es liegt mehr an dir und weniger an Lazarus.
Das stimmt leider nicht. Schau dir Delphi, Visual Studio oder Remobjects an.
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 762
Erhaltene Danke: 127



BeitragVerfasst: So 03.03.24 21:34 
Binde doch mal folgende unit ein (uses myTranslation) und sage, ob sich etwas geändert hat.
Hinweis: Bei Linux muss man die Pfade ändern.

ub60

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
unit myTranslation;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Translations;

implementation

var PODirectory: String;

initialization

begin
  PODirectory:='c:\lazarus\languages\';
  TranslateUnitResourceStrings('LCLStrConsts',PODirectory+
    'lazaruside.de.po','de','');
  PODirectory:='c:\lazarus\lcl\languages\';
  TranslateUnitResourceStrings('LCLStrConsts',PODirectory+
    'lclstrconsts.de.po','de','');
end;

end.

Für diesen Beitrag haben gedankt: galagher
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: So 03.03.24 22:00 
user profile iconub60 hat folgendes geschrieben Zum zitierten Posting springen:
Binde doch mal folgende unit ein (uses myTranslation) und sage, ob sich etwas geändert hat.
Nein, da ändert sich nichts. Ich habe mir bereits selbst so eine Unit gebastelt, aber "Unable to open file" bleibt mit meiner und auch mit deiner Unit englisch. Den Text darunter kann man in lclstrconsts.de.po (also statt "Press OK to ignore and [...]" meinetwegen "OK drücken, um den Fehler zu ignorieren und [...]") beliebig anpassen.
Aber "Unable to open file" bleibt englisch.

Und wie viele solche Meldungen in englisch gibt es denn noch? Man müsste ja jedes Szenario durchprobieren, um dem auf die Schliche zu kommen!

Natürlich würde ich in einem "richtigen" Programm eine Datei nicht so laden wie im Beispielprogramm! Man fängt Fehler ja immer möglichst selbst ab.
Aber - wie user profile iconjaenicke das ja geschrieben hat, bei Delphi werden solche Meldungen eben nicht in englisch ausgegeben.
Lazarus ist eine seltsame Mischung aus deutsch und englisch...

Gibt es den kein "Sprachpaket", das ich installieren oder in meinen Programmen angeben kann?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 04.03.24 10:56 
Dies sind ja interne Exceptions, welche dann (damit das Programm nicht abstürzt) per Application.ShowException(...) angezeigt werden - und diese sind üblicherweise nur in englisch, z.B. in TFileStreamUTF8.Create(...) (aus welchen Gründen auch immer wurde SFOpenError auskommentiert).

Du müßtest also den Code von Lazarus komplett durchgehen und alle String-Literale anpassen - und dann neu kompilieren.
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1322
Erhaltene Danke: 117

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Mo 04.03.24 12:00 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Du müßtest also den Code von Lazarus komplett durchgehen und alle String-Literale anpassen - und dann neu kompilieren.

Genau!

Oder Du gehst einen Schritt weiter, schaust nach wie es in anderen Units gemacht wurde und machst es dort genauso.
Nebenbei nimmst Du noch Kontakt mit den Entwicklern auf und verwandelst nörgeln in helfen.
Am Ende bist Du dann Teil der Lazarus Community und aktiver contributor.
Wäre das nicht was tolles?

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?

Für diesen Beitrag haben gedankt: hydemarie
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mo 04.03.24 17:41 
user profile iconSinspin hat folgendes geschrieben Zum zitierten Posting springen:
Oder Du gehst einen Schritt weiter, schaust nach wie es in anderen Units gemacht wurde und machst es dort genauso.
Ich denke, dafür gibt es die .po-Dateien? Ich habe dort erfolgreich ins deutsche übersetzt, nur kann man da eben nicht alles auf deutsch machen.
user profile iconSinspin hat folgendes geschrieben Zum zitierten Posting springen:
Nebenbei nimmst Du noch Kontakt mit den Entwicklern auf und verwandelst nörgeln in helfen.
Danke für deinen freundlichen Tipp! :mrgreen: Hast ja nicht ganz unrecht, schliesslich ist Lazarus gratis, da darf man schon auch selbst tätig werden.

Wenn ich Zeit und wieder mal Lust dazu habe, schaue ich mir die diversen Lazarus-Units mal an, vielleicht finde ich etwas.

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!