J'ai choisi de placer mes chaines de traduction dans une ressource. Avec le code suivant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var
  Language: integer;
 
implementation
 
function GetText(Index: integer): string;
begin
  result:= LoadStr(Index + Language);
end;
 
procedure ReLoadText();
begin
  with Fenetre do
  begin
    ActionDocumentNouveau.Caption:= GetText(1);
    ActionDocumentNouveau.ShortCut:= TextToShortCut(GetText(2));
    ActionDocumentSave.Caption:= GetText(3);
    ActionDocumentSave.ShortCut:= TextToShortCut(GetText(4));
    ActionEditeur.Caption:= GetText(5);
    ActionEditeur.ShortCut:= TextToShortCut(GetText(6));
    ActionDocuments.Caption:= GetText(7);
    ActionDocuments.ShortCut:= TextToShortCut(GetText(8));
    ActionExploreur.Caption:= GetText(9);
    ActionExploreur.ShortCut:= TextToShortCut(GetText(10));
    ActionDocumentOpen.Caption:= GetText(11);
    ActionDocumentOpen.ShortCut:= TextToShortCut(GetText(12));
    ActionDocumentsSave.Caption:= GetText(13);
    ActionDocumentsSave.ShortCut:= TextToShortCut(GetText(14));
    ActionAstuceOpen.Caption:= GetText(15);
    ActionAstuceOpen.Hint:= GetText(16);
  end;
end;
 
procedure TFenetre.FormCreate(Sender: TObject);
begin
  Language:= 1000;
  ReLoadText();
end;
Imaginez quand j'aurais 400 chaines de traductions. C'est ni classe, ni propore.

Comme je ne suis pas très à l'aise avec les TClassList, je sollicite votre aide et vos idées.