如何让.NET 4.5中包含每种语言的消息,字符串的资源文件?

时间:2014-02-20 12:19:15

标签: c# asp.net .net-4.0 localization globalization

我需要一个阿拉伯语和西班牙语语言的资源文件,其中包含错误消息,对话框消息和一些将在后面的代码中使用的字符串。现在我想访问相关的语言资源文件,以便根据用户读取字符串选定的文化。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

web.config

<system.web>
<globalization uiCulture="en" />
</system.web>

首先,uiCulture是en

ASPX文件中,您可以使用以下ddl:

<asp:DropDownList ID="cboLanguage" runat="server" CssClass="combobox"
Width="150px" meta:resourcekey="cboLanguageResource1">
<asp:ListItem meta:resourceKey="ListItemLanguageResource1" Text="English" Value="en"></asp:ListItem>
<asp:ListItem meta:resourceKey="ListItemLanguageResource5" Text="French" Value="fr"></asp:ListItem>
<asp:ListItem meta:resourceKey="ListItemLanguageResource4" Text="German" Value="de"></asp:ListItem>    
<asp:ListItem meta:resourceKey="ListItemLanguageResource3" Text="Italian" Value="it"></asp:ListItem>                                                    
<asp:ListItem meta:resourceKey="ListItemLanguageResource2" Text="Portuguese" Value="pt"></asp:ListItem>                                                                                                                                                                        
<asp:ListItem meta:resourceKey="ListItemLanguageResource6" Text="Spanish" Value="es"></asp:ListItem>
</asp:DropDownList>
<asp:Button ID="btnLanguage" runat="server" Text="Update" CssClass="button"
                                                        meta:resourcekey="btnLanguageResource1" OnClick="btnLanguage_Click" />

Code Behind中将uiCulture设置为btnLanguage_Click

protected void btnLanguage_Click(object sender, EventArgs e)
    {
        Configuration Config = WebConfigurationManager.OpenWebConfiguration("~");
        GlobalizationSection section = (GlobalizationSection)Config.GetSection("system.web/globalization");
        section.UICulture = cboLanguage.SelectedValue.ToString();
        Config.Save();
        Response.Redirect("Defaults.aspx", false);
    } 

在显示错误消息的代码后面执行此操作: -

Label1.Text = GetLocalResourceObject("Key").ToString();

在资源文件

String | Value
Key | Record has been Saved.