Petit exemple de localisation

Soyez le premier à donner votre avis sur cette source.

Vue 15 349 fois - Téléchargée 1 409 fois

Description

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

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

peug
Messages postés
234
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
5 octobre 2012

Merci je suis débutant en C# (vient de VB6) et je cherchais un similaire !
cs_jimmy69
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008

salut salut,

Merci pour l'info !

Christophe
Un bouillonnais
taupe4
Messages postés
94
Date d'inscription
dimanche 16 avril 2006
Statut
Membre
Dernière intervention
17 avril 2008
1
Si quelqu'un tente de faire des modifications hazardeuses sur les fichiers, un utilitaire intégré à presque tous mes programmes appellé fstrestore.exe effectue une récupération (soit par internet, soit par une copie de sauvegarde) sur le fichier.

Mais bien vu pour la DLL;) Personnellement, j'essaie de modifier les resources intégrées dans l'éxécutable, mais ça fournit des résultats trop mauvais et une récupération du programme est indispensable.
sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
L'avantage des DLL par rapport aux resx, c'est qu'elles sont compilées et donc plus rapide d'acces, protégées des modifications hazardeuses des utilisateurs...
taupe4
Messages postés
94
Date d'inscription
dimanche 16 avril 2006
Statut
Membre
Dernière intervention
17 avril 2008
1
Je préfère tout de même mettre à disposion les .resx directement et les incorporer à l'application sans effort (le constructeur permet de charger des fichiers externes).

Sinon, ça aidera les débutants à utiliser la localisation fournie avec .NET :)

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.