asp.net Resursfiler som inte fungerar.
Hej där,
jag har skapat två stycken lokala resursfiler för en sida som heter Register.aspx.
De heter:
Register.aspx.en-US.resx
Register.aspx.sv-SE.resx
När jag exekverar programmet så får jag inga exceptions.
Men det går inte att välja språk.
Testar jag att sätta breakpoint i Language klassen när den kör första thread, så ser jag att den har värdet "sv",
detta trots att jag inte har valt något i listan utan bara låtit sidan Register.aspx laddas.
Sätter jag en breakpoint på if satsen i Language så ser det ut som att villkoret blir false,
men trots detta så innehåller cultureName "sv" som värde. Och jag ser även att base.InitializeCulture(); körs.
Men texten ändras inte.
Någon av er som har erfarenhet av detta och kan hjälpa mig :).
Trevlig helg
/Rickard
Nedan är koden
Markup Register.aspx:
<asp:DropDownList ID="languageList" runat="server">
<asp:ListItem Text="English" Value="en-US"></asp:ListItem>
<asp:ListItem Text="Svenska" Value="sv"></asp:ListItem>
</asp:DropDownList>
<asp:Button ID="ChooseLanguage" runat="server" Text="Choose Language" OnClick="ChooseLanguage_Click" PostBackUrl="~/Account/Register.aspx"/>
Code behind register.aspx.cs:
public partial class Register : Language
{
protected void ChooseLanguage_Click(object sender, EventArgs e)
{
DropDownList list = (DropDownList)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("languageList");
Language.CultureName = list.SelectedItem.Value.ToString();
}
}
Egenskapade klassen Language
public class Language : System.Web.UI.Page
{
static string cultureName;
public static string CultureName
{
get { return cultureName; }
set { cultureName = value;
}
}
protected override void InitializeCulture()
{
if (cultureName == null)
{
cultureName = "sv-SE";
}
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture(cultureName);
Thread.CurrentThread.CurrentUICulture = new
CultureInfo(cultureName);
base.InitializeCulture();
}
}