Bonjour,
Petit exemple d'application qui vous montrera comment realiser un programme multi langue.
L'interet est donc d'affiche le texte de l'application (label, menu, bouton, ..) dans des langues differentes.
Comme vous pourrez le voir des fichier resx ont ete ajoutes au projet.
Ces fichiers ressources (resx) servent a stocker les differents string identifier par un id.
On a donc un fichier par langue.
Le contenu du fichier est divise en deux colonnes, l'id a gauche et la chaine de caracteres correspondante à droite.
Il y'a un bon exemple de localisation d'application sous Asp Net ici :
http://www.dotnet-tech.com/tutoriels/localisation/
Source / Exemple :
/*********************************************************************/
//Charge les string et les place dans la propriete text des controles
/*********************************************************************/
private void UpdateUI()
{
//Label
label1.Text = m_ResourceManager.GetString("label1");
//radio button et label choix
radioButton1.Text = m_ResourceManager.GetString("radioEn");
radioButton2.Text = m_ResourceManager.GetString("radioFr");
radioButton3.Text = m_ResourceManager.GetString("radioEs");
label2.Text = m_ResourceManager.GetString("label2");
//Bouton
button1.Text = m_ResourceManager.GetString("button1");
//Menu
menuItem.Text = m_ResourceManager.GetString("menuItem");
//Form
this.Text = m_ResourceManager.GetString("Form1");
//Message error
erro = m_ResourceManager.GetString("error");
}
//Click sur le botton
private void button1_Click(object sender, System.EventArgs e)
{
if(textBox1.Text == "")
MessageBox.Show(erro);
else
{
string message = String.Format(m_ResourceManager.GetString("message"), textBox1.Text);
MessageBox.Show(message);
}
}
//Selection de l'anglais
private void radioButton1_CheckedChanged(object sender, System.EventArgs e)
{
if(radioButton1.Checked)
{
Thread.CurrentThread.CurrentUICulture = m_EnglishCulture;
UpdateUI();
}
}
Conclusion :
Ahhh oui ..mes traductions sont assez breves surtout en espagnole!
Pas de copine espagnole sous la main en ce moment ..:-)
Bonne semaine
Christophe
Un bouillonnais
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.