Avatar billede janw Nybegynder
11. marts 2002 - 01:15 Der er 8 kommentarer og
1 løsning

Tysk, dansk og evt. engelsk tekst på knapper, osv

Hej venner (for det I vel)

Jeg kunne godt tænke mig at vide,
hvorledes man koder, at man i et
splash-vindue vælger et sprog:

tysk, engelsk eller andet og så 
programmet har alle tekster i det
valgte sprog.

Er klar over, at man laver filer
i de pågældende sprog med de tekster,
som skal være på knapper, osv.

Men den klare kode kan jeg ikke lige
selv finde ud af, så HJÆLP hvis I vil.

Mange tak på forhånd
Avatar billede ziron Nybegynder
11. marts 2002 - 01:20 #1
lav det i fx en inifil og lav så noget der hedder knapper og så under den knap1 og der står der så hvad der står på knap1. det tror jeg ville være det bedste. såg i hjælpen efter inifiles...

/ZIRON
Avatar billede janw Nybegynder
11. marts 2002 - 03:04 #2
Hej ziron,

kan du ikke give mig et eksempel?
Har du selv lavet noget lignende?
send evt. eksempel til:

janwerner@sol.dk 


på forhånd tak!
Avatar billede stone Forsker
11. marts 2002 - 08:41 #3
kig i delphi5 demos under richedit,her er et eksempel hvordan på hvordan man vælger om teksteditor skal være på fransk/engelsk/tysk.
Avatar billede borrisholt Novice
11. marts 2002 - 08:46 #4
hvor stort er dit projekt ?

Jens B
Avatar billede jhc Nybegynder
11. marts 2002 - 09:53 #5
Jeg har flere gange gjort brug af en Access database med alle ordene i og så lavet en funktion som hedder GetText(Index : integer)  - eksempel

Eksempelvis kan man så skrive

Button1.Caption := GetText(211);

Dette gøres hver gang en form den loades

Hvis du vil have yderligere kodeeksempel så bare sig til.
Avatar billede kayb Nybegynder
20. marts 2002 - 11:04 #6
Jeg har lavet et program engang hvor jeg netop skulle bruge flere sprog.Jeg løste det ved at lave en DLL fil hvor al tekst kunne hentes fra og det bevirker at du kan skifte sprog "on the fly" her kommer kode.Først
koden til DLL som hedder Language.dll:
library Language;

uses
  SysUtils;

function GetLang(LangID : Byte; TextID : Integer) : PChar; stdcall;
Var
  Tekst : String;
  Buffer : Array[0..355] of Char;
begin
Tekst:='';
Buffer:='';
Case LangID of
  1 : Begin {DANISH}
        Case TextID of
          1 : Tekst:=' Firmasøgning ';
          2 : Tekst:='Udfyld ét eller flere felter';
          3 : Tekst:='Dobbeltklik for detaljer';
          4 : Tekst:='Firmanavn';
          5 : Tekst:='Adresse';
          6 : Tekst:='Postnr./By';
          7 : Tekst:='Land';
          8 : Tekst:='Tlf.';
        end;{END CASE}
      End;
  2 : Begin {ENGLISH}
        Case TextID of
          1 : Tekst:=' Company Search ';
          2 : Tekst:='Fill in one or more fields';
          3 : Tekst:='Doubleclick for details';
          4 : Tekst:='Company';
          5 : Tekst:='Address';
          6 : Tekst:='Postal Code/City';
          7 : Tekst:='Country';
          8 : Tekst:='Phone';
        end;{END CASE}
      End;
  3 : Begin {GERMAN}
        Case TextID of
          1 : Tekst:=' Firmensuche ';
          2 : Tekst:='Ein oder mehrere Felder ausfüllen';
          3 : Tekst:='Doppeltklick für Details';
          4 : Tekst:='Name';
          5 : Tekst:='Anschrift';
          6 : Tekst:='Ort';
          7 : Tekst:='Land';
          8 : Tekst:='Tel.';
        end;{END CASE}
      End;
  4 : Begin {FRENCH}
        Case TextID of
          1 : Tekst:=' Recherche d´entreprises ';
          2 : Tekst:='Remplissez un ou plusieurs champs';
          3 : Tekst:='géminéclaquer pour détail';
          4 : Tekst:='Nom';
          5 : Tekst:='Adresse';
          6 : Tekst:='Ville';
          7 : Tekst:='Pays';
          8 : Tekst:='Tél.';
        end;{END CASE}
      End;

  5 : Begin {SPANISH}
        Case TextID of
          1 : Tekst:=' Buscar empresas ';
          2 : Tekst:='Completar uno o más campos';
          3 : Tekst:='Reduplicar apresurar pues menudencias';
          4 : Tekst:='Nombre';
          5 : Tekst:='Dirección';
          6 : Tekst:='Ciudad';
          7 : Tekst:='País';
          8 : Tekst:='Tel.';
        end;{END CASE}
      End;
  6 : Begin {ITALIAN}
        Case TextID of
          1 : Tekst:=' Ricerca ditte ';
          2 : Tekst:='Compilare uno o più campi';
          3 : Tekst:='Doppio per dettaglio';
          4 : Tekst:='Nome';
          5 : Tekst:='Indirizzo';
          6 : Tekst:='Città';
          7 : Tekst:='Nazione';
          8 : Tekst:='Tel.';
        end;{END CASE}
      End;
end;{END CASE}
GetLang:=StrCopy(Buffer,PChar(Tekst));
end;

exports
GetLang;

begin
end.

Her er så program kode der bruger DLL:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Program1: TMenuItem;
    Afslut1: TMenuItem;
    Sprog1: TMenuItem;
    Dansk1: TMenuItem;
    Engelsk1: TMenuItem;
    Tysk1: TMenuItem;
    Spansk1: TMenuItem;
    Fransk1: TMenuItem;
    Italiensk1: TMenuItem;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    procedure Afslut1Click(Sender: TObject);
    procedure Dansk1Click(Sender: TObject);
    procedure Engelsk1Click(Sender: TObject);
    procedure ChangeLang(LangID : Integer);
    procedure Tysk1Click(Sender: TObject);
    procedure Fransk1Click(Sender: TObject);
    procedure Spansk1Click(Sender: TObject);
    procedure Italiensk1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  LanguageID : Integer;

function GetLang(LangID : Byte; TextID : Integer) : PChar; stdcall; external 'Language.dll';

implementation

{$R *.dfm}

procedure TForm1.Afslut1Click(Sender: TObject);
begin
Application.Terminate;
end;

procedure TForm1.Dansk1Click(Sender: TObject);
begin
Dansk1.Checked:=True;
Fransk1.Checked:=False;
Engelsk1.Checked:=False;
Tysk1.Checked:=False;
Italiensk1.Checked:=False;
Spansk1.Checked:=False;
ChangeLang(1);
end;

procedure TForm1.Engelsk1Click(Sender: TObject);
begin
Dansk1.Checked:=False;
Fransk1.Checked:=False;
Engelsk1.Checked:=True;
Tysk1.Checked:=False;
Italiensk1.Checked:=False;
Spansk1.Checked:=False;
ChangeLang(2);
end;

procedure TForm1.ChangeLang(LangID : Integer);
begin
  LanguageID:=LangID;
  GroupBox1.Caption:=' ' + GetLang(LanguageID,17) + ' ';
  Label1.Caption:=GetLang(LanguageID,2);
  Label2.Caption:=GetLang(LanguageID,4);
  Label3.Caption:=GetLang(LanguageID,5);
  Button1.Caption:=GetLang(LanguageID,1);
  Dansk1.Caption:=GetLang(LanguageID,23);
  Engelsk1.Caption:=GetLang(LanguageID,24);
  Fransk1.Caption:=GetLang(LanguageID,25);
  Tysk1.Caption:=GetLang(LanguageID,26);
  Italiensk1.Caption:=GetLang(LanguageID,27);
  Spansk1.Caption:=GetLang(LanguageID,28);
  Program1.Caption:=GetLang(LanguageID,12);
  Afslut1.Caption:=GetLang(LanguageID,13);
  Sprog1.Caption:=GetLang(LanguageID,18);
end;

procedure TForm1.Tysk1Click(Sender: TObject);
begin
Dansk1.Checked:=False;
Engelsk1.Checked:=False;
Fransk1.Checked:=False;
Tysk1.Checked:=True;
Italiensk1.Checked:=False;
Spansk1.Checked:=False;
ChangeLang(3);
end;

procedure TForm1.Fransk1Click(Sender: TObject);
begin
Dansk1.Checked:=False;
Engelsk1.Checked:=False;
Fransk1.Checked:=True;
Tysk1.Checked:=False;
Spansk1.Checked:=False;
Italiensk1.Checked:=False;
ChangeLang(4);
end;

procedure TForm1.Spansk1Click(Sender: TObject);
begin
Dansk1.Checked:=False;
Engelsk1.Checked:=False;
Fransk1.Checked:=False;
Tysk1.Checked:=False;
Italiensk1.Checked:=False;
Spansk1.Checked:=True;
ChangeLang(5);
end;

procedure TForm1.Italiensk1Click(Sender: TObject);
begin
Dansk1.Checked:=False;
Engelsk1.Checked:=False;
Fransk1.Checked:=False;
Tysk1.Checked:=False;
Italiensk1.Checked:=True;
Spansk1.Checked:=False;
ChangeLang(6);
end;

procedure TForm1.FormShow(Sender: TObject);
begin
ChangeLang(1);
Dansk1.Checked:=True;
end;

end.

Håber du kan bruge det.
Avatar billede kayb Nybegynder
07. maj 2002 - 11:59 #7
Hva' så var det ikke på tide at lukke spørgsmålet?
Avatar billede janw Nybegynder
14. maj 2002 - 11:38 #8
Hej kayb,

du får de 200 points for dit svar.

Mvh. janw
Avatar billede kayb Nybegynder
14. maj 2002 - 12:03 #9
Mange Tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester