Localization Winform controls dynamique
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:
Citation:
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:
Code:
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 gras c'est l'endroit de l'erreur.
En gros je n'arrive pas à utiliser le ResourceManager.
Voici la structure de mon appli:
Admin-RaceConnection
Admin
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/