Petit exemple de localisation

Soyez le premier à donner votre avis sur cette source.

Vue 15 204 fois - Téléchargée 1 392 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

JulioDelphi
Messages postés
2349
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
12 -
salut, je ne connais pas (encore) le C#, il faut vraiment tout ça pour juste ... ça ??
je parle des 4 DLL, etc etc :o c'est enorme :p
cs_jimmy69
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
-
salut salut JulioDelphi,

Euh pour repondre a ta question en fait j'ai zippe tout le projet y compris le repertoire debug ou se trouve le resultat de la compilation !J'aurais tres bien pu ne mettre que les fichiers necessaires pour faire tourner l'application.

Quant au 4 dll, en fait il genere une dll par language ..
Quand tu build ton projet, il te genere aussi un repertoire portant le nom de la langue.

Maintenant est ce enorme ...je pense pas !

Les pros nous en diront surement plus a ce sujet !

Christophe
Un bouillonnais
JulioDelphi
Messages postés
2349
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
12 -
j'ai trouvé ça enorme comparé à un projet Delphi où j'aurais besoin de 3/4 fichiers maxi.
"une dll par langage" c'est a dire ? ya + que du C# la dedans ?
cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
42 -
Il s'agit en fait de "satellite resource assemblies" qui ne sont rien d'autres que les fichiers resx que l'ont définit (fichiers de ressources). Il y en a un par language, pour des questions de simplicité.
cs_Elektordi
Messages postés
187
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
21 janvier 2008
-
Un fichier par language ca simplifie la disribution de l'appli et la mise à jour de nouveaux fichiers de langues facilement (pas besoin de toucher à l'exe) !

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.