Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Konstanten/Variablen suchen und Werte ändern (https://www.delphipraxis.net/56525-konstanten-variablen-suchen-und-werte-aendern.html)

dahead 7. Nov 2005 11:46


Konstanten/Variablen suchen und Werte ändern
 
Hallo,

wie der Titel hoffentlich schon erahnen lässst, suche ich eine Möglichkeit "const" Werte durch andere zu ersetzen.

Ich bräuchte da einen Befehl, mit dem ich nach dem Namen eines "const" Ausdruck suchen, und dann dessen Wert ersetzen kann. Ziel ist es, ein Programm für mehrere Sprachen umzurüsten.

Zum Beispiel:

Delphi-Quellcode:
const
  k_DaysLong = 'Tage';
da möchte ich dann z. B. statt 'Tage' den Wert 'Days' einsetzen. Gibt es sowas überhaupt? Wie könnte ich das bewerkstelligen? (das selbe bräuchte ich für variable Strings)

Danke schonmal im Voraus.

RavenIV 7. Nov 2005 12:24

Re: Konstanten/Variablen suchen und Werte ändern
 
Stichwort "Multilizer".
suchen kannst du dann wohl selber...

Bernhard Geyer 7. Nov 2005 13:05

Re: Konstanten/Variablen suchen und Werte ändern
 
Oder wie wäre es mit GNU GetText?

dahead 7. Nov 2005 13:14

Re: Konstanten/Variablen suchen und Werte ändern
 
danke für die tipps, aber meine frage war egtl. anders gestellt.

ich kenne diese diversen programme/tools. allerdings halte ich davon erstens weniger und zweitens denke ich, wäre das overkill für mein kleines programm.

ich wollte egtl. nur wissen, wie ich const/var Werte (egtl. nur Strings) suchen und ändern kann. Falls das nicht möglich ist, muss ich mir logischerweise was anderes überlegen. eine möglichkeit wäre ja, alle const/vars in ein array zu packen und dann zur laufzeit die entspr. lokalisierten strings zu verwenden.

@raven: arbeitest du bei diesem projekt mit? nach der suche "Multilizer" im forum gabst allein du ca. 3 mal den tipp ab, dieses teil zu verwenden. achja, und suchen kann ich selbst - danke!

Robert Marquardt 7. Nov 2005 13:18

Re: Konstanten/Variablen suchen und Werte ändern
 
Der einfachste Weg ist es alle Stringliterale in zwei Files zu konzentrieren.
Das eine enthaelt die sprachabhaengigen Strings und das andere die restlichen nicht sprachabhaengigen Strings.
Damit faellt erst mal das Handling der Uebersetzungen leichter.

RavenIV 7. Nov 2005 13:47

Re: Konstanten/Variablen suchen und Werte ändern
 
Zitat:

Zitat von dahead
@raven: arbeitest du bei diesem projekt mit? nach der suche "Multilizer" im forum gabst allein du ca. 3 mal den tipp ab, dieses teil zu verwenden. achja, und suchen kann ich selbst - danke!

nein, ich bin auch nur Anwender dieses Tools.
Bei uns in der Firma verwenden wir den Multilizer und haben durchweg nur positive Erfahrungen gemacht.

gruessle

Sidorion 7. Nov 2005 14:28

Re: Konstanten/Variablen suchen und Werte ändern
 
probier doch folgendes:
Statt:
Delphi-Quellcode:
  const
   Text1='bla';
   Text2='sülz';
   ...
Konstanten im sinne von ID deklarieren:
Delphi-Quellcode:
  const
   Text1= 1;
   Text2= 2;
dann kannst Du Dir eine Funktion schreiben, die mittels Text ID und eingestellter Sprache den eigentlichen String irgendwoher liest (inifile, Datenbank, csv, etc.) und zurückgibt.
z.b.:
Delphi-Quellcode:
function GetText(_iTextID: Integer): String;
Var
  sActualLabguage: String;
Begin
  sActualLanguage:=oIniFile.ReadString('Language','currentLanguage','Illegal Language');
  If sActualLanguage='Illegal Language'
  Then Result:=sActualLanguage
  Else Result:=oIniFile.ReaadString(sActualLanguage, IntToStr(_iTextID),'Text not defined');
End;

shmia 7. Nov 2005 15:21

Re: Konstanten/Variablen suchen und Werte ändern
 
Anstelle von Konstanten sollte man gleich resourcestring verwenden:
Delphi-Quellcode:
resourcestring
  SDaysLong = 'Tage';
  SDayLong = 'Tag';
  SMonth = 'Monat';
Damit stehen dir alle Wege offen, diese Texte nachträglich zu übersetzen.
Borland verwendet übrigens für (Resource-)String-Konstanten den Prefix "S".

DP-Maintenance 7. Nov 2005 15:21

DP-Maintenance
 
Dieses Thema wurde von "Daniel" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.

ichbins 7. Nov 2005 15:23

Re: Konstanten/Variablen suchen und Werte ändern
 
wie wärs damit:
Delphi-Quellcode:
var
  lang:byte;

const
  german:byte=0;
  english:byte=1;
 
  string1:array[0..1] of string = ('Tage','Days');


[...]
  lang:=german;
  string1[lang] = 'Tage'


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz