Source file: /~heha/hsn/WdxInfoPacker64.zip/Langage.pas

{$D-,O+,Q-,R-,S-}
Unit Langage;
interface
uses Inifiles,Windows,Classes,SysUtils,Controls;

type languageString=record
     TabSheet1,TabSheet2,TabSheet3:array[0..50] of char;
     Button1,Button2,Button3,Button4,Button5,Button6,Button7,Button8,
     Button9,Button10,Button14:array[0..50] of char;
     CheckBox1,CheckBox2,CheckBox3,CheckBox4,CheckBox5,CheckBox6,CheckBox7,
     CheckBox8,CheckBox9,CheckBox10,CheckBox11,CheckBox12,CheckBox13,
     CheckBox14,CheckBox15,CheckBox16,CheckBox17,CheckBox18,CheckBox19,CheckBox20,CheckBox21:array[0..100] of char;
     Label1,Label2,label3,label4,label5,label6,label7,label8,label9,label10,
     label11,label12,label13,label14,label21,label27,label28,label29,label30,
     label31,label33:array[0..100] of char;
     ComboBox1:array[0..100] of char;
     Radio1,Radio2:array[0..100] of char;
     Edit1Hint,LabelCommentHint:array[0..260] of char;
     formTitle:array[0..50] of char;
     GroupBox1,GroupBox2,GroupBox3:array[0..100] of char;
     Language,EmptyScheme,Author,Email,HomePage:array[0..100] of char;
     end;
    pLanguageString=^LanguageString;

Type TMonLangage=Class
public
  Langue:languageString;
procedure loadLanguage(LngToLoad:pchar);
procedure ListAvailableLanguage(MyIni:pchar;List:Tstringlist);
procedure SetLanguage(MyIni,NewValue:pchar);
end;
implementation

{==============================================================}
procedure TMonLangage.loadLanguage(LngToLoad:pchar);
var LNG:TInifile;
    s1:string;
    path:string;
    ModName:array[0..260] of char;
begin
    SetString(path, ModName,Windows.GetModuleFileName(HInstance, ModName, SizeOf(ModName)));
    path:=ExtractFilePath(path)+'Lng\';
    LNG:=TIniFile.create(path+LngToLoad);

    fillchar(Langue.Button1,sizeof(Langue.Button1),#0);
    s1:=LNG.readString('Button','Button1','');
    strlcat(Langue.Button1,pchar(s1),sizeof(Langue.Button1)-1);

    fillchar(Langue.Button2,sizeof(Langue.Button2),#0);
    s1:=LNG.readString('Button','Button2','');
    strlcat(Langue.Button2,pchar(s1),sizeof(Langue.Button2)-1);

    fillchar(Langue.Button3,sizeof(Langue.Button3),#0);
    s1:=LNG.readString('Button','Button3','');
    strlcat(Langue.Button3,pchar(s1),sizeof(Langue.Button3)-1);

    fillchar(Langue.Button4,sizeof(Langue.Button4),#0);
    s1:=LNG.readString('Button','Button4','');
    strlcat(Langue.Button4,pchar(s1),sizeof(Langue.Button4)-1);

    fillchar(Langue.Button5,sizeof(Langue.Button5),#0);
    s1:=LNG.readString('Button','Button5','');
    strlcat(Langue.Button5,pchar(s1),sizeof(Langue.Button5)-1);

    fillchar(Langue.Button6,sizeof(Langue.Button6),#0);
    s1:=LNG.readString('Button','Button6','');
    strlcat(Langue.Button6,pchar(s1),sizeof(Langue.Button6)-1);

    fillchar(Langue.Button7,sizeof(Langue.Button7),#0);
    s1:=LNG.readString('Button','Button7','');
    strlcat(Langue.Button7,pchar(s1),sizeof(Langue.Button7)-1);

    fillchar(Langue.Button8,sizeof(Langue.Button8),#0);
    s1:=LNG.readString('Button','Button8','');
    strlcat(Langue.Button8,pchar(s1),sizeof(Langue.Button8)-1);

    fillchar(Langue.Button9,sizeof(Langue.Button9),#0);
    s1:=LNG.readString('Button','Button9','');
    strlcat(Langue.Button9,pchar(s1),sizeof(Langue.Button9)-1);

    fillchar(Langue.Button10,sizeof(Langue.Button10),#0);
    s1:=LNG.readString('Button','Button10','');
    strlcat(Langue.Button10,pchar(s1),sizeof(Langue.Button10)-1);

    fillchar(Langue.Button14,sizeof(Langue.Button14),#0);
    s1:=LNG.readString('Button','Button14','');
    strlcat(Langue.Button14,pchar(s1),sizeof(Langue.Button14)-1);

    fillchar(Langue.CheckBox1,sizeof(Langue.CheckBox1),#0);
    s1:=LNG.readString('CheckBox','CheckBox1','');
    strlcat(    Langue.CheckBox1,pchar(s1),sizeof(Langue.CheckBox1)-1);

    fillchar(Langue.CheckBox2,sizeof(Langue.CheckBox2),#0);
    s1:=LNG.readString('CheckBox','CheckBox2','');
    strlcat(    Langue.CheckBox2,pchar(s1),sizeof(Langue.CheckBox2)-1);

    fillchar(Langue.CheckBox3,sizeof(Langue.CheckBox3),#0);
    s1:=LNG.readString('CheckBox','CheckBox3','');
    strlcat(    Langue.CheckBox3,pchar(s1),sizeof(Langue.CheckBox3)-1);

    fillchar(Langue.CheckBox4,sizeof(Langue.CheckBox4),#0);
    s1:=LNG.readString('CheckBox','CheckBox4','');
    strlcat(    Langue.CheckBox4,pchar(s1),sizeof(Langue.CheckBox4)-1);

    fillchar(Langue.CheckBox5,sizeof(Langue.CheckBox5),#0);
    s1:=LNG.readString('CheckBox','CheckBox5','');
    strlcat(    Langue.CheckBox5,pchar(s1),sizeof(Langue.CheckBox5)-1);

    fillchar(Langue.CheckBox6,sizeof(Langue.CheckBox6),#0);
    s1:=LNG.readString('CheckBox','CheckBox6','');
    strlcat(    Langue.CheckBox6,pchar(s1),sizeof(Langue.CheckBox6)-1);

    fillchar(Langue.CheckBox7,sizeof(Langue.CheckBox7),#0);
    s1:=LNG.readString('CheckBox','CheckBox7','');
    strlcat(    Langue.CheckBox7,pchar(s1),sizeof(Langue.CheckBox7)-1);

    fillchar(Langue.CheckBox8,sizeof(Langue.CheckBox8),#0);
    s1:=LNG.readString('CheckBox','CheckBox8','');
    strlcat(    Langue.CheckBox8,pchar(s1),sizeof(Langue.CheckBox8)-1);

    fillchar(Langue.CheckBox9,sizeof(Langue.CheckBox9),#0);
    s1:=LNG.readString('CheckBox','CheckBox9','');
    strlcat(    Langue.CheckBox9,pchar(s1),sizeof(Langue.CheckBox9)-1);

    fillchar(Langue.CheckBox10 ,sizeof(Langue.CheckBox10),#0);
    s1:=LNG.readString('CheckBox','CheckBox10','');
    strlcat(    Langue.CheckBox10,pchar(s1),sizeof(Langue.CheckBox10)-1);

    fillchar(Langue.CheckBox11 ,sizeof(Langue.CheckBox11),#0);
    s1:=LNG.readString('CheckBox','CheckBox11','');
    strlcat(    Langue.CheckBox11,pchar(s1),sizeof(Langue.CheckBox11)-1);

    fillchar(Langue.CheckBox12 ,sizeof(Langue.CheckBox12),#0);
    s1:=LNG.readString('CheckBox','CheckBox12','');
    strlcat(    Langue.CheckBox12,pchar(s1),sizeof(Langue.CheckBox12)-1);

    fillchar(Langue.CheckBox13 ,sizeof(Langue.CheckBox13),#0);
    s1:=LNG.readString('CheckBox','CheckBox13','');
    strlcat(    Langue.CheckBox13,pchar(s1),sizeof(Langue.CheckBox13)-1);

    fillchar(Langue.CheckBox14 ,sizeof(Langue.CheckBox14),#0);
    s1:=LNG.readString('CheckBox','CheckBox14','');
    strlcat(    Langue.CheckBox14,pchar(s1),sizeof(Langue.CheckBox14)-1);

    fillchar(Langue.CheckBox15 ,sizeof(Langue.CheckBox15),#0);
    s1:=LNG.readString('CheckBox','CheckBox15','');
    strlcat(    Langue.CheckBox15,pchar(s1),sizeof(Langue.CheckBox15)-1);

    fillchar(Langue.CheckBox16 ,sizeof(Langue.CheckBox16),#0);
    s1:=LNG.readString('CheckBox','CheckBox16','');
    strlcat(    Langue.CheckBox16,pchar(s1),sizeof(Langue.CheckBox16)-1);

    fillchar(Langue.CheckBox17 ,sizeof(Langue.CheckBox17),#0);
    s1:=LNG.readString('CheckBox','CheckBox17','');
    strlcat(    Langue.CheckBox17,pchar(s1),sizeof(Langue.CheckBox17)-1);

    fillchar(Langue.CheckBox18 ,sizeof(Langue.CheckBox18),#0);
    s1:=LNG.readString('CheckBox','CheckBox18','');
    strlcat(    Langue.CheckBox18,pchar(s1),sizeof(Langue.CheckBox18)-1);

    fillchar(Langue.CheckBox19 ,sizeof(Langue.CheckBox19),#0);
    s1:=LNG.readString('CheckBox','CheckBox19','');
    strlcat(    Langue.CheckBox19,pchar(s1),sizeof(Langue.CheckBox19)-1);

    fillchar(Langue.CheckBox20 ,sizeof(Langue.CheckBox20),#0);
    s1:=LNG.readString('CheckBox','CheckBox20','');
    strlcat(    Langue.CheckBox20,pchar(s1),sizeof(Langue.CheckBox20)-1);

        fillchar(Langue.CheckBox21 ,sizeof(Langue.CheckBox21),#0);
    s1:=LNG.readString('CheckBox','CheckBox21','');
    strlcat(    Langue.CheckBox21,pchar(s1),sizeof(Langue.CheckBox21)-1);


    fillchar(Langue.Label1,sizeof(Langue.label1),#0);
    s1:=LNG.readString('Label','Label1','');
    strlcat(    Langue.Label1,pchar(s1),sizeof(Langue.Label1)-1);

    fillchar(Langue.Label2,sizeof(Langue.label2),#0);
    s1:=LNG.readString('Label','Label2','');
    strlcat(    Langue.Label2,pchar(s1),sizeof(Langue.Label2)-1);

    fillchar(Langue.Label3,sizeof(Langue.label3),#0);
    s1:=LNG.readString('Label','Label3','');
    strlcat(    Langue.Label3,pchar(s1),sizeof(Langue.Label3)-1);

    fillchar(Langue.Label4,sizeof(Langue.label4),#0);
    s1:=LNG.readString('Translation','Language','');
    strlcat(    Langue.Label4,pchar(s1),sizeof(Langue.Label4)-1);

    fillchar(Langue.Label5,sizeof(Langue.label5),#0);
    s1:=LNG.readString('Label','Label5','');
    strlcat(    Langue.Label5,pchar(s1),sizeof(Langue.Label5)-1);

    fillchar(Langue.Label6,sizeof(Langue.label6),#0);
    s1:=LNG.readString('Translation','Author','');
    strlcat(    Langue.Label6,pchar(s1),sizeof(Langue.Label6)-1);

    fillchar(Langue.EmptyScheme,sizeof(Langue.EmptyScheme),#0);
    s1:=LNG.readString('Other','EmptyScheme','');
    strlcat(    Langue.EmptyScheme,pchar(s1),sizeof(Langue.EmptyScheme)-1);


    fillchar(Langue.Label7,sizeof(Langue.label7),#0);
    s1:=LNG.readString('Label','Label7','');
    strlcat(    Langue.Label7,pchar(s1),sizeof(Langue.Label7)-1);

    fillchar(Langue.Label8,sizeof(Langue.label8),#0);
    s1:=LNG.readString('Translation','Email','');
    strlcat(    Langue.Label8,pchar(s1),sizeof(Langue.Label8)-1);

    fillchar(Langue.Label9,sizeof(Langue.label9),#0);
    s1:=LNG.readString('Label','Label9','');
    strlcat(    Langue.Label9,pchar(s1),sizeof(Langue.Label9)-1);

    fillchar(Langue.Label10,sizeof(Langue.label10),#0);
    s1:=LNG.readString('Translation','HomePage','');
    strlcat(    Langue.Label10,pchar(s1),sizeof(Langue.Label10)-1);

    fillchar(Langue.Label11,sizeof(Langue.label11),#0);
    s1:=LNG.readString('Label','Label11','');
    strlcat(    Langue.Label11,pchar(s1),sizeof(Langue.Label11)-1);

    fillchar(Langue.Label12,sizeof(Langue.label12),#0);
    s1:=LNG.readString('Label','Label12','');
    strlcat(    Langue.Label12,pchar(s1),sizeof(Langue.Label12)-1);

    fillchar(Langue.Label13,sizeof(Langue.label13),#0);
    s1:=LNG.readString('Label','Label13','');
    strlcat(    Langue.Label13,pchar(s1),sizeof(Langue.Label13)-1);

    fillchar(Langue.Label14,sizeof(Langue.label14),#0);
    s1:=LNG.readString('Label','Label14','');
    strlcat(    Langue.Label14,pchar(s1),sizeof(Langue.Label14)-1);

    fillchar(Langue.Label21,sizeof(Langue.label21),#0);
    s1:=LNG.readString('Label','Label21','');
    strlcat(    Langue.Label21,pchar(s1),sizeof(Langue.Label21)-1);

    fillchar(Langue.Label27,sizeof(Langue.label27),#0);
    s1:=LNG.readString('Label','Label27','');
    strlcat(    Langue.Label27,pchar(s1),sizeof(Langue.Label27)-1);

    fillchar(Langue.Label28,sizeof(Langue.label28),#0);
    s1:=LNG.readString('Label','Label28','');
    strlcat(    Langue.Label28,pchar(s1),sizeof(Langue.Label28)-1);

    fillchar(Langue.Label29,sizeof(Langue.label29),#0);
    s1:=LNG.readString('Label','Label29','');
    strlcat(    Langue.Label29,pchar(s1),sizeof(Langue.Label29)-1);

    fillchar(Langue.Label30,sizeof(Langue.label30),#0);
    s1:=LNG.readString('Label','Label30','');
    strlcat(    Langue.Label30,pchar(s1),sizeof(Langue.Label30)-1);

    fillchar(Langue.Label31,sizeof(Langue.label31),#0);
    s1:=LNG.readString('Label','Label31','');
    strlcat(    Langue.Label31,pchar(s1),sizeof(Langue.Label31)-1);


        fillchar(Langue.Label33,sizeof(Langue.Label33),#0);
    s1:=LNG.readString('Label','Label33','');
    strlcat(    Langue.Label33,pchar(s1),sizeof(Langue.Label33)-1);



    fillchar(Langue.TabSheet1,sizeof(Langue.TabSheet1),#0);
    s1:=LNG.readString('TabSheet','TabSheet1','');
    strlcat( Langue.TabSheet1,pchar(s1),sizeof(Langue.TabSheet2)-1);

    fillchar(Langue.TabSheet2,sizeof(Langue.TabSheet2),#0);
    s1:=LNG.readString('TabSheet','TabSheet2','');
    strlcat(Langue.TabSheet2,pchar(s1),sizeof(Langue.TabSheet2)-1);

    fillchar(Langue.TabSheet3,sizeof(Langue.TabSheet3),#0);
    s1:=LNG.readString('TabSheet','TabSheet3','');
    strlcat(Langue.TabSheet3,pchar(s1),sizeof(Langue.TabSheet3)-1);


    fillchar(Langue.ComboBox1,sizeof(Langue.ComboBox1),#0);
    s1:=LNG.readString('ComboBox','ComboBox1','');
    strlcat( Langue.ComboBox1,pchar(s1),sizeof(Langue.ComboBox1)-1);

    fillchar(Langue.Radio1,sizeof(Langue.Radio1),#0);
    s1:=LNG.readString('RadioButton','Radio1','');
    strlcat( Langue.Radio1,pchar(s1),sizeof(Langue.Radio1)-1);

    fillchar(Langue.Radio2,sizeof(Langue.Radio2),#0);
    s1:=LNG.readString('RadioButton','Radio2','');
    strlcat( Langue.Radio2,pchar(s1),sizeof(Langue.Radio2)-1);

    fillchar(Langue.GroupBox1,sizeof(Langue.GroupBox1),#0);
    s1:=LNG.readString('GroupBox','GroupBox1','');
    strlcat( Langue.GroupBox1,pchar(s1),sizeof(Langue.GroupBox1)-1);

    fillchar(Langue.GroupBox2,sizeof(Langue.GroupBox2),#0);
    s1:=LNG.readString('GroupBox','GroupBox2','');
    strlcat( Langue.GroupBox2,pchar(s1),sizeof(Langue.GroupBox2)-1);

    fillchar(Langue.GroupBox3,sizeof(Langue.GroupBox3),#0);
    s1:=LNG.readString('GroupBox','GroupBox3','');
    strlcat( Langue.GroupBox3,pchar(s1),sizeof(Langue.GroupBox3)-1);

    fillchar(Langue.Edit1Hint,sizeof(Langue.Edit1Hint),#0);
    s1:=LNG.readString('Other','Edit1Hint','');
    strlcat( Langue.Edit1Hint,pchar(s1),sizeof(Langue.Edit1Hint)-1);

    fillchar(Langue.formTitle,sizeof(Langue.formTitle),#0);
    s1:=LNG.readString('Other','CommentFrameTitle','');
    strlcat( Langue.formTitle,pchar(s1),sizeof(Langue.formTitle)-1);

    fillchar(Langue.LabelCommentHint,sizeof(Langue.LabelCommentHint),#0);
    s1:=LNG.readString('Other','LabelCommentHint','');
    strlcat( Langue.LabelCommentHint,pchar(s1),sizeof(Langue.LabelCommentHint)-1);

    LNG.Free;
end;



procedure TMonLangage.ListAvailableLanguage(MyIni:pchar;List:Tstringlist);
var Val: TSearchRec;
    path:string;
ModName: array[0..MAX_PATH] of Char;
begin
    SetString(path, ModName,Windows.GetModuleFileName(HInstance, ModName, SizeOf(ModName)));
    path:=ExtractFilePath(path)+'Lng\';
  If FindFirst(path+'*.*',faAnyFile,Val)=0 Then Begin
    Repeat
      If ((Val.Attr And faDirectory)=0) Then List.Add(Val.FindData.cFileName)
    Until FindNext(Val)<>0;
    FindClose(Val);
  End;
end;

procedure TMonLangage.SetLanguage(MyIni,NewValue:pchar);
var Temp:TIniFile;
begin
    Temp:=TIniFile.create(MyIni);
    Temp.WriteString('Main','Language',NewValue);
    Temp.Free;
end;


end.
Detected encoding: ASCII (7 bit)2