AGB  ·  Datenschutz  ·  Impressum  







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

Programm übersetzbar machen?

Ein Thema von DSeven · begonnen am 22. Sep 2003 · letzter Beitrag vom 25. Sep 2003
Antwort Antwort
DSeven

Registriert seit: 13. Aug 2003
114 Beiträge
 
#1

Programm übersetzbar machen?

  Alt 22. Sep 2003, 15:43
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
Die Freie Entwicklungsumgebung für PHP
Symtec Development Studio
auf http://www.nostalb.de
  Mit Zitat antworten Zitat
Tim.exe

Registriert seit: 29. Apr 2003
186 Beiträge
 
#2

Re: Programm übersetzbar machen?

  Alt 23. Sep 2003, 07:14
Guck dir mal "SMLPack" von sunisoft.com an. Die Komp arbeitet zwar auch mit *.ini's aber vielleicht ist es da ja etwas schneller.
!!! Sigs stinken !!!
  Mit Zitat antworten Zitat
Nimoee

Registriert seit: 20. Aug 2003
Ort: Darmstadt
131 Beiträge
 
Delphi 5 Professional
 
#3

Re: Programm übersetzbar machen?

  Alt 23. Sep 2003, 07:26
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:
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;
Nimoee
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Programm übersetzbar machen?

  Alt 23. Sep 2003, 15:16
Ich denk mal, DLLs mit Resourcen-Strings sind schneller. Diese werden unter anderem für das Windows-eigene Eventlog genutzt.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Nimoee

Registriert seit: 20. Aug 2003
Ort: Darmstadt
131 Beiträge
 
Delphi 5 Professional
 
#5

Re: Programm übersetzbar machen?

  Alt 23. Sep 2003, 17:51
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
  Mit Zitat antworten Zitat
Ganymed

Registriert seit: 11. Jun 2003
Ort: Hameln
56 Beiträge
 
Delphi 7 Architect
 
#6

Re: Programm übersetzbar machen?

  Alt 25. Sep 2003, 10:04
INI-Files sind viel zu langsam, platz- und zeitraubend und viiiiel zu umsändlich...

Einfach alle Texte in Resourcestrings auslagern!
Statt
Code:
Edit1.Text := 'Hello World';
einfach
Code:
resourcestring
  RES_EDIT1_TEXT = 'Hello World!';

{...}

  Edit1.Text := RES_EDIT1_TEXT;
Die Übersetzung ist unter Zuhilfenahme eines geeigneten Tools (z.B. Multilizer) ein Klacks. Wer sich so ein teures Tool nicht leisten will, holt sich nen kostenlosen Resource-hacker und ändert dort die String-Tables der fertigen EXE-Datei... (Ist genau so sicher, aber nicht so bequem).

P.S. Auf der Multilizer-Seite gibt's ein Tut., wie man Anwendungen Multi-Sprachfähig hinbekommt...
  Mit Zitat antworten Zitat
DSeven

Registriert seit: 13. Aug 2003
114 Beiträge
 
#7

Re: Programm übersetzbar machen?

  Alt 25. Sep 2003, 20:02
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.
Die Freie Entwicklungsumgebung für PHP
Symtec Development Studio
auf http://www.nostalb.de
  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 00:31 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