J'ai deux fichiers de ressources pour ceux qui ne savent pas sous App_GlobalResources
Nightmare avec localisation sous Global Resources
MyApp.resx
MyApp.sv.resx
: Toutes les langues vont passer en mode MyApp.resx
sauf la UICulture suédoise utilisera le MyApp.sv.resx
et j'ai une page simple qui montre 3 <asp:Label>
dans lequel la propriété Text
est appelée différemment comme:
<i>using Resource.Write:</i><br />
<asp:Label ID="Label1" runat="server" />
<hr />
<i>using HttpContext.GetGlobalResourceObject:</i><br />
<asp:Label ID="Label2" runat="server" />
<hr />
<i>using Text Resources:</i><br />
<asp:Label ID="Label3" runat="server"
Text="<%$ Resources:MyApp, btnRemoveMonitoring %>" />
<p style="margin-top:50px;">
<i>Current UI Culture:</i><br />
<asp:Literal ID="litCulture" runat="server" />
</p>
Label3
est le seul appelé à la page, les 2 premiers sont définis comme:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Label1.Text = Resources.AdwizaPAR.btnRemoveMonitoring;
Label2.Text = HttpContext.GetGlobalResourceObject("MyApp", "btnRemoveMonitoring").ToString();
litCulture.Text = System.Threading.Thread.CurrentThread.CurrentUICulture.Name;
}
}
si j'utilise la langue du navigateur tout fonctionne très bien, mais je veux passer outre ce paramètre et la charge la traduction correcte basée sur une autre entrée, donc je dois remplacer le UICulture
et que j'utiliser:
protected void Page_Init(object sender, EventArgs e)
{
Page.Culture = "en-US";
Page.UICulture = "en-US";
}
sorcière est le même que:
protected void Page_Init(object sender, EventArgs e)
{
System.Globalization.CultureInfo cinfo = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
System.Threading.Thread.CurrentThread.CurrentCulture = cinfo;
System.Threading.Thread.CurrentThread.CurrentUICulture = cinfo;
}
avec tout cela, ce que je veux est la suivante:
En d'autres termes Je reçois la localisation correcte que si j'utilise code-behind
pour définir le texte correct , toute la localisation inline
utilise simplement la langue du navigateur.
Qu'est-ce qui me manque?
Je hérite de mes pages d'une seule classe ... ajouté là, mais merci pour les heads up. – balexandre