| 1 | unit ULanguages;
|
|---|
| 2 |
|
|---|
| 3 | {$mode delphi}
|
|---|
| 4 |
|
|---|
| 5 | interface
|
|---|
| 6 |
|
|---|
| 7 | uses
|
|---|
| 8 | Classes, SysUtils, fgl;
|
|---|
| 9 |
|
|---|
| 10 | type
|
|---|
| 11 | TLanguage = class
|
|---|
| 12 | ShortName: string;
|
|---|
| 13 | FullName: string;
|
|---|
| 14 | Author: string;
|
|---|
| 15 | end;
|
|---|
| 16 |
|
|---|
| 17 | { TLanguages }
|
|---|
| 18 |
|
|---|
| 19 | TLanguages = class(TFPGObjectList<TLanguage>)
|
|---|
| 20 | procedure AddItem(const ShortName, FullName: string);
|
|---|
| 21 | procedure LoadToStrings(Strings: TStrings);
|
|---|
| 22 | function Search(ShortName: string): Integer;
|
|---|
| 23 | end;
|
|---|
| 24 |
|
|---|
| 25 | var
|
|---|
| 26 | Languages: TLanguages;
|
|---|
| 27 |
|
|---|
| 28 |
|
|---|
| 29 | implementation
|
|---|
| 30 |
|
|---|
| 31 | { TLanguages }
|
|---|
| 32 |
|
|---|
| 33 | procedure TLanguages.AddItem(const ShortName, FullName: string);
|
|---|
| 34 | var
|
|---|
| 35 | Language: TLanguage;
|
|---|
| 36 | begin
|
|---|
| 37 | Language := TLanguage.Create;
|
|---|
| 38 | Language.ShortName := ShortName;
|
|---|
| 39 | Language.FullName := FullName;
|
|---|
| 40 | Add(Language);
|
|---|
| 41 | end;
|
|---|
| 42 |
|
|---|
| 43 | procedure TLanguages.LoadToStrings(Strings: TStrings);
|
|---|
| 44 | var
|
|---|
| 45 | I: Integer;
|
|---|
| 46 | begin
|
|---|
| 47 | Strings.Clear;
|
|---|
| 48 | for I := 0 to Count - 1 do
|
|---|
| 49 | Strings.Add(Items[I].FullName);
|
|---|
| 50 | end;
|
|---|
| 51 |
|
|---|
| 52 | function TLanguages.Search(ShortName: string): Integer;
|
|---|
| 53 | var
|
|---|
| 54 | I: Integer;
|
|---|
| 55 | begin
|
|---|
| 56 | I := 0;
|
|---|
| 57 | while (I < Count) and (Items[I].ShortName <> ShortName) do Inc(I);
|
|---|
| 58 | if I < Count then Result := I
|
|---|
| 59 | else Result := -1;
|
|---|
| 60 | end;
|
|---|
| 61 |
|
|---|
| 62 | initialization
|
|---|
| 63 |
|
|---|
| 64 | Languages := TLanguages.Create;
|
|---|
| 65 | Languages.AddItem('', 'System');
|
|---|
| 66 | Languages.AddItem('cs', 'Czech');
|
|---|
| 67 | Languages.AddItem('de', 'German');
|
|---|
| 68 | Languages.AddItem('en', 'English');
|
|---|
| 69 | Languages.AddItem('it', 'Italian');
|
|---|
| 70 | Languages.AddItem('ru', 'Russian');
|
|---|
| 71 | Languages.AddItem('zh-Hant', 'Traditional Chinese');
|
|---|
| 72 | Languages.AddItem('zh-Hans', 'Simplified Chinese');
|
|---|
| 73 |
|
|---|
| 74 | finalization
|
|---|
| 75 |
|
|---|
| 76 | FreeAndNil(Languages);
|
|---|
| 77 |
|
|---|
| 78 | end.
|
|---|
| 79 |
|
|---|