Bonjour à tous,
j'ai un petit soucis qui à priori n'est rien, mais qui me bloque depuis deux jours.
J'essaie d'internationalisé mon application winform.
Mon appli se présenta ainsi:
* une form appelé Admin contenant plein de control dont une datagridview, et une tablelayoutpanel.
* 2 autres form
Ma form admin, via un menu appèle une des deux form.
Dans ma tablelayoutpanel plein d'information qui n'ont pas besoin d'être localizer mais j'ai aussi par ligne 1 controls bouton
Dans mon appli, j'arrive parfaitement à modifier la langue des controls statique ainsi que les header de ma datagridview.
Mon problème ce situe dans la localization des text insérés dynamiquement.
Suite à pas mal de lecture sur ce même forum et bien d'autre, j'ai essayé de mettre en oeuvre le ResourceManager mais en vain. Je tombe sur cette erreur:
Could not find any resources appropriate for the specified culture or the neutral culture.
Make sure "Admin-RaceConnection.Admin.resources" was correctly embedded or linked into assembly "Admin-RaceConnection" at compile time, or that all the satellite assemblies required are loadable and fully signed.
voici ce que je fais dans mon code:
En gras c'est l'endroit de l'erreur.
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 private System.Resources.ResourceManager RM = null; private CultureInfo EnglishCulture = new CultureInfo("en-GB"); private CultureInfo FrenchCulture = new CultureInfo("fr-FR"); private CultureInfo GermanCulture = new CultureInfo("de-DE"); public Admin() { System.Threading.Thread.CurrentThread.CurrentUICulture = FrenchCulture; InitializeComponent(); frenchToolStripMenuItem.Checked = true; } private void Admin_Load(object sender, EventArgs e) { RM = new System.Resources.ResourceManager("Admin-RaceConnection.Admin", typeof(Admin).Assembly); //RM = new System.Resources.ResourceManager("Admin-RaceConnection.Admin", System.Reflection.Assembly.GetExecutingAssembly()); // initialisation des controls try { StreamReader fichierIni = new StreamReader("raceConAdmin.ini"); string ligne; while (!fichierIni.EndOfStream) [...] } } private void frenchToolStripMenuItem_Click(object sender, EventArgs e) { this.Controls.Clear(); InitializeComponent(); frenchToolStripMenuItem.Checked = true; System.Threading.Thread.CurrentThread.CurrentUICulture = FrenchCulture; } private void englishToolStripMenuItem_Click(object sender, EventArgs e) { this.Controls.Clear(); InitializeComponent(); englishToolStripMenuItem.Checked = true; System.Threading.Thread.CurrentThread.CurrentUICulture = EnglishCulture; } private void deutchToolStripMenuItem_Click(object sender, EventArgs e) { this.Controls.Clear(); InitializeComponent(); deutchToolStripMenuItem.Checked = true; System.Threading.Thread.CurrentThread.CurrentUICulture = GermanCulture; } private void InsertLigneClassement(administrationClassement ligneVoiture) { Label rowpos = new Label(); Label rowvoit = new Label(); Label rowclasse = new Label(); Label rowpilote = new Label(); Label rownbTours = new Label(); Label rowstatus = new Label(); Button rowModif = new Button(); [...] // // Modif // rowModif.AutoSize = false; rowModif.Dock = DockStyle.Top; rowModif.Text = RM.GetString("penalite"); rowModif.Click += new EventHandler(rowModif_Click); [...] rowModif.Name = ligneVoiture.mDriverName + "/" + ligneVoiture.mVehicleName + "/" + ligneVoiture.mVehicleClass + "/" + ligneVoiture.mTotalLaps; [...] ListeClassement.Controls.Add(rowModif, 5, -1);[...] }
En gros je n'arrive pas à utiliser le ResourceManager.
Voici la structure de mon appli:
Admin-RaceConnection
AdminAdmin.csAdmin.de.resxAdmin.DesignerAdmin.en.resxAdmin.fr.resxAdmin.resx
Merci pour votre aide
edit:voici les liens qui m'ont aidé:
http://www.developpez.net/forums/d10...isation-forms/
http://www.developpez.net/forums/d82...x-multilingue/
http://morpheus.developpez.com/localisationdotnet/
Partager