![]() |
Programm übersetzbar machen?
Hallo
Wie kann ich mein programm übersetzbar machen? Ich habe mir schon mal eine methode geschrieben die die Texte aus ner Ini läd aber ist viel zu langsam wenn es viele einträge gibt. Gibt es eine Komponente oder sonstiges? Ich habe schon von resource strings in DLL's gehört oder so aber wie geht das kennt jemmand ein Tutorial? Danke :) |
Re: Programm übersetzbar machen?
Guck dir mal "SMLPack" von sunisoft.com an. Die Komp arbeitet zwar auch mit *.ini's aber vielleicht ist es da ja etwas schneller.
|
Re: Programm übersetzbar machen?
Hallo,
wir führen unsere ganzen Textsteuerung ( Übersetzung ) mit INI's durch. Dass das Ganze langsam sei ist ein Gerücht! Du lädtst die Texte während die Forms erstellt werden. Die Ini Datei nur einmal öffen, alle Texte lesen ..., Ini Datei zu. Um die Performance zu erhöhen, werden die Forms erst erzeugt, wenn sie gebraucht werden. ( Keine dynamische Forms ). Die Texte sind für die verschieden Sprachen durch senkrechte Striche geteilt. Andere Methoden ( registry oder Datenbanken ) haben wir hier alle schon probiert und sind durchgefallen. Wir verwalten so ungef Geht prima. Hier Auszüge aus unserer source:
Delphi-Quellcode:
Nimoee
Procedure assign_ini;
Begin fini1:=tinifile.create(ini_path+'xxxxxxx.ini'); end; Procedure close_ini; Begin fini1.free; end; Function lese_sprache(gruppe,eintrag:string;sep:char;sprache:integer):string; var a:string;n:integer; Begin int_sep:=sep; int_lang:=sprache; a:=fini1.readstring(gruppe,eintrag,'??'); if a='??' then Begin lese_sprache:='??'; exit; end; n:=1; while n<sprache do Begin delete(a,1,pos(sep,a)); inc(n); end; //Zeile eingefügt am 16.01.2003 ~ markiert führendes Blank //wird hier durch blank ersetzt For n:=1 to length(a) do if a[n]='~' then a[n]:=' '; If pos(sep,a)<>0 then lese_sprache:=copy(a,1,pos(sep,a)-1) else lese_sprache:=a; end; |
Re: Programm übersetzbar machen?
Ich denk mal, DLLs mit Resourcen-Strings sind schneller. Diese werden unter anderem für das Windows-eigene Eventlog genutzt.
|
Re: Programm übersetzbar machen?
Hallo,
hier kommts letztlich garnicht darauf an ob das jetzt ein paar millisekunden früher oder später fertig ist. Ini Dateien sind leicht zu warten und übersichtlich: Beispiel: [Spannungsform] Form_name=Ausgangsspannung und Frequenz Spannungsstufe1=Spannungsstufe 1 Spannungsstufe2=Spannungsstufe 2 Spannungsstufe3=Spannungsstufe 3 Frequenz1=Frequenz 1 Frequenz2=Frequenz 2 Gruppe1=Spannungsauswahl Gruppe2=Frequenzauswahl Bn1=Übernehmen Bn2=Abbruch Das kriegst du doch mit was anderem garnicht hin! Nimoee |
Re: Programm übersetzbar machen?
INI-Files sind viel zu langsam, platz- und zeitraubend und viiiiel zu umsändlich...
Einfach alle Texte in Resourcestrings auslagern! Statt
Code:
einfach
Edit1.Text := 'Hello World';
Code:
Die Übersetzung ist unter Zuhilfenahme eines geeigneten Tools (z.B.
resourcestring
RES_EDIT1_TEXT = 'Hello World!'; {...} Edit1.Text := RES_EDIT1_TEXT; ![]() P.S. Auf der Multilizer-Seite gibt's ein ![]() |
Re: Programm übersetzbar machen?
Hallo
Danke werde DLL's benutzen. Dort muss ich nur Resourcestrings rein machen? und wie rufe ich diese ab. Ich weis zwar wie ich funktionen einer DLL aufrufe aber nicht resourcestrings. Bei mir gingen Ini Dateien nicht schnell. Es wahren über 2000 Einträge und das hat schon ne weile gedauert bis das geladen war. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:54 Uhr. |
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