AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Standard-Exceptions lokalisieren

Ein Thema von Der schöne Günther · begonnen am 25. Jun 2014 · letzter Beitrag vom 26. Jun 2014
Antwort Antwort
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Standard-Exceptions lokalisieren

  Alt 25. Jun 2014, 20:11
Ich stelle mich wahrscheinlich ziemlich dumm an- Dinge wie "So übersetzen auch Schimpansen ihre Borland-Anwendungen in 360 Sekunden" gibt es zuhauf.

Ich will nicht meinen eigenen Kram lokalisieren- Ich will verhindern dass in Feuerland-Mitte eine Exception die bis auf die Oberfläche durchbubbelt plötzlich "Achtung Schwitzen Sauerbrot!" steht: Keine deutschen Texte, Englisch.

Ich finde partout nichts, wo ich das irgendwie anfassen könnte. Ich habe bei der Installation immer ein Häkchen für Deutsch und Englisch gesetzt aber das scheint mir momentan auch nicht weiterzuhelfen...
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: Standard-Exceptions lokalisieren

  Alt 25. Jun 2014, 22:02
Sorge doch einfach dafür, das keine Exception bis an die Oberfläche kommt.
Die Holzhammermethode ist, per TApplication.OnException einfach alle Exceptions abzufangen.
Die richtige (imho) Methode ist die, um jede Klasse bzw. System einen Exceptionwrapper zu legen.

Das bedeutet in PseudoCode:

Delphi-Quellcode:
Procedure TOuterClass.Method;
Var
  outerExceptionInfo : TOuterExceptionInfo;

Begin
  Try
    InnerClass.AnotherMethod();
  ...
  Except
    On E:EInnerException do begin
      outerExceptionInfo := HandleInnerException(E);
      raise EOuterException.Create(outerExceptionInfo);
// alternativ: AnotherMethod nochmals aufrufen (falls das Sinn macht)
    End;
    On E:Exception do
      raise EFatalException.Create(E);
  End
End;
D.h. Du verbirgst die inneren Exception, indem Du sie behandelst, also z.B. den Grund auflöst und nochmal probierst. Das geht nur manchmal, denn wenn z.B. das Kennwort falsch ist, ist es falsch, da wird man nichts machen können. Aber wenn ein Deadlock aufgetreten ist, kann man z.B. kurz warten und es dann nochmal probieren usw. Falls Du die Exception nicht auflösen kannst, dann kapselst Du die ziemlich wirren Aussagen (EIdConnectionAbortException, EFooBarBlaFasel usw) und verpasst dann der EOuterException anständige teutonisch-anglistische Haikus. Oder ähnlich Seriöses.

Ein wenig Aufwand, aber deinem Bestreben, ästhetisch ansprechende Software zu schreiben, durchaus zuträglich.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: Standard-Exceptions lokalisieren

  Alt 25. Jun 2014, 22:13
Wenn du deine Anwendung mit BPLs auslieferst, einfach die passenden EN Dateien dazu mitliefern. Wenn es sich um eine einzige Binary handelt, dann kannst du mit der BDSSetLang.exe (liegt im bin Verzeichnis deiner Delphi Installation) die Sprache der RTL umschalten.

Weitere Informationen findest du im Wiki.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Standard-Exceptions lokalisieren

  Alt 25. Jun 2014, 22:15
Schau mal unter
Code:
Tools/Optionen/Umgebungsoptionen/Delphi-Optionen/Bibliothek - Übersetzt
und dann noch unter
Code:
Tools/Optionen/Umgebungsoptionen/Umgebungsvariablen -> LANGDIR
Stell dort einfach mal von DE auf EN um, dann hast du garantiert alles in Englisch

Deine eigenen Quellen kannst du auch in solchen Lang-Ordnern unterbringen
Code:
ressources
  DE
  EN
und auf die Verzeichnisse über .\ressources\$(LANGDIR) verweisen (Suchpfad in den Projekt-Einstellungen).

Doof ist, dass man diese LANGDIR Einstellungen nicht auf Projektebene einstellen kann ... wäre ja auch zu schön gewesen ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Standard-Exceptions lokalisieren

  Alt 26. Jun 2014, 08:13
Alle drei fühlen sich bitte herzlich gedrückt

Die BDS-Umgebungsvariable $LANGDIR führt ebenso zu dem was ich wollte wie Benutzung der BDSSetLang.exe. Komischerweise ändert letztere die Umgebungsvariable nicht sondern wohl wieder etwas anderes, aber was solls.

Sorge doch einfach dafür, das keine Exception bis an die Oberfläche kommt.
Das ist natürlich vollkommen richtig, ich hätte nicht nur Exceptions ansprechen sollen. Weiteres Beispiel: Bei Dialogen wie "Ja/Nein" oder "Abbrechen/Wiederholen" bleiben die Schaltflächen weiterhin in Deutsch. Ein Text in Kyrillisch und dann "Abbrechen/Wiederholen?" darunter sieht schon schräg aus
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#6

AW: Standard-Exceptions lokalisieren

  Alt 26. Jun 2014, 09:09
Weiteres Beispiel: Bei Dialogen wie "Ja/Nein" oder "Abbrechen/Wiederholen" bleiben die Schaltflächen weiterhin in Deutsch. Ein Text in Kyrillisch und dann "Abbrechen/Wiederholen?" darunter sieht schon schräg aus
Wenn es sich um reine Windows-Dialoge handelt, kommt dort wohl eher die Spracheinstellung des aktuellen Windows-Users zum tragen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Standard-Exceptions lokalisieren

  Alt 26. Jun 2014, 09:15
Ja, direkt über die WinAPI gehen hätte man das wohl nicht gehabt. Ich war so frei Vcl.Dialogs.MessageDlg(..) zu nehmen, ich kannte nichts anderes. Und scheint das alles immer selbst über die VCL zusammenzubauen und fest aus Vcl.Consts eingebackene Strings zu nehmen.

Und wer weiß wo noch mehr solche Fälle sind. Einfach auf Mondsprech umstellen und ich kann wieder ruhig schlafen.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#8

AW: Standard-Exceptions lokalisieren

  Alt 26. Jun 2014, 11:45
Ich war so frei Vcl.Dialogs.MessageDlg(..) zu nehmen, ich kannte nichts anderes. Und scheint das alles immer selbst über die VCL zusammenzubauen und fest aus Vcl.Consts eingebackene Strings zu nehmen.
Wenn die Strings aus Vcl.Consts genommen werden, sollte die Delphi-Sprachumschaltung aber wirken. Die Vcl.Consts.dcu gibt es gerade deswegen in unterschiedlichen Versionen in den Sprach-Unterverzeichnissen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz