[C#] Multi langue - fichier resource.resx
Bonjour à tous les developpeurs !
Je suis en train de créer un nouveau projet qui doit être multilangue.
Je me suis inspiré de ce que j'ai pu trouvé sur différents sites mais je ne trouve pas que ce soit très claire (je suis peut etre un peu mauvais aussi :oops: )
Pour l'instant j'ai crée 4 choses :
1 - dans le global.asax
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
protected void Application_BeginRequest(Object sender, EventArgs e)
{
//gestion du multi language
System.Globalization.CultureInfo cultureInfo;
if (HttpContext.Current.Request != null
&& HttpContext.Current.Request.UserLanguages != null
&& HttpContext.Current.Request.UserLanguages.Length > 0 )
{
cultureInfo = CultureInfo.CreateSpecificCulture(HttpContext.Current.Request.UserLanguages[0]);
}
else
{
cultureInfo = new CultureInfo("en-EN"); // par défaut en anglais. }
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
} |
2 - Création de 2 fichiers : resources.resx et resources.fr.resx
3 - appel dans ma page comme suit :
Code:
1 2
|
<% =TDBGCE.Languages.EasyResourceManager.GetString("Login.Password") %> |
4 - Création d'une classe de gestion de resource manager
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
|
using System;
using System.Resources;
namespace TDBGCE.Languages
{
public class EasyResourceManager
{
private static ResourceManager _RM = null;
static EasyResourceManager() {}
private static void LoadResources()
{
if (_RM == null)
{
try
{
_RM = new ResourceManager("Resources",
typeof(EasyResourceManager).Assembly);
}
catch {}
}
}
public static string GetString(string name)
{
LoadResources();
return _RM.GetString(name);
}
}
} |
Or j'ai un message d'erreur et surtout je ne comprend pas bien le coup des dossiers "fr" et "en" dans le bin dynamiquement ...
:zekill:
Si vous avez 5 minutes pour me pondre un petit pavé bien claire ce serait bien bien cool.
Merci d'avance.
damien