65.9K
CodeProject 正在变化。 阅读更多。
Home

为 ASP.NET 网站创建资源文件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.42/5 (4投票s)

2009 年 5 月 13 日

CPOL

2分钟阅读

viewsIcon

61624

downloadIcon

2408

基于 .NET Framework 的多语言应用程序介绍

屏幕截图

1.JPG

2.JPG

3.JPG

4.JPG

引言

在 ASP.NET 网页中,您可以设置两个区域性值,即 CultureUICulture 属性。Culture 值决定与区域性相关的函数的结果,例如日期、数字和货币格式等等。UICulture 值决定为页面加载哪些资源。

背景

这是一篇非常简单的文章,适合了解面向对象编程的人。

使用代码 

代码排列在

  • App_Code mybasePage
  • App_LocalResources
  • aspx 页面

App_Code mybasePage 类

mybasepage 派生自System.Web.UI.PagePublic 属性CultureName 设置cultureName。将当前线程的CurrentUICultureCurrentCulture 属性分别设置为 UI 区域性和区域性。CurrentUICulture 属性采用语言和区域性信息string。要设置CurrentCulture 属性,您可以创建CultureInfo 类的实例并调用其CreateSpecificCulture 方法。

public class mybasePage : System.Web.UI.Page 
{
    public mybasePage()
    {
        //
        // TODO: Add constructor logic here
        //
    }
    static string cultureName;

    public static string CultureName
    {
        get { return cultureName; }
        set { cultureName = value; }
    }

    protected override void InitializeCulture()
    {   
            Thread.CurrentThread.CurrentCulture =
                CultureInfo.CreateSpecificCulture(cultureName);
            Thread.CurrentThread.CurrentUICulture = new
                CultureInfo(cultureName);
       
        base.InitializeCulture();
    }
}        
  <table>
        <tr>
            <td >
                <asp:Label ID="Label1" runat="server" Text="Select Language"></asp:Label>
            </td>
            <td>:</td>
            <td>
            <asp:DropDownList ID="DropDownList1" runat="server">
        <asp:ListItem Text="English" Value="en-US"></asp:ListItem>
        <asp:ListItem Text="Marathi" Value="mr-IN"></asp:ListItem>
        <asp:ListItem Text="Gujarathi" Value="gu-IN"></asp:ListItem>
        </asp:DropDownList>    
            </td>
        </tr>
        <tr>           
            <td colspan="3">
                </td>
        </tr>        
        <tr>           
            <td colspan="3" align="center">
            <asp:Button ID="Button1" runat="server" 
			Text="set Language" onclick="Button1_Click" 
                     style="height: 26px" />
                    </td>
        </tr>        
        <tr>            
            <td></td>
        </tr>        
        <tr>            
            <td>
             <asp:LinkButton ID="LinkButton1" runat="server" 
		PostBackUrl="~/Sample.aspx">Go to Sample Page</asp:LinkButton>
            </td>
        </tr>        
    </table>
 protected void Button1_Click(object sender, EventArgs e)
    {       
        mybasePage.CultureName = DropDownList1.SelectedItem.Value.ToString();
    }

转到示例页面。有一个链接按钮可以导航到另一个页面。

示例页面显示语言设置文字。

App_LocalResources

从网页创建资源

资源文件是一个 XML 文件,可以包含string和其他资源,例如图像文件路径。资源文件通常用于存储必须翻译成其他语言的用户界面string。这是因为您可以为要将网页翻译成的每种语言创建一个单独的资源文件。

全局资源文件可供网站中的任何页面或组件使用。局部资源文件与单个网页、用户控件或母版页关联,并且只包含该页面的资源。

要从 ASP.NET 网页生成局部资源文件:

  1. 打开要为其创建资源文件的页面。
  2. 切换到设计视图。
  3. 工具菜单中,单击生成局部资源。如果 Visual Web Developer 不存在App_LocalResources 文件夹,它将创建该文件夹。然后,Visual Web Developer 将为当前页面创建与区域性无关的基本资源文件,其中包括每个需要本地化的控件属性或页面属性的键/名称对。最后,Visual Web Developer 将一个meta属性添加到每个 ASP.NET Web 服务器控件,以配置控件以使用隐式本地化。有关隐式和显式本地化的更多信息,请参见此处。
  4. 键入应用程序中需要的每个资源的值,然后保存文件。
  5. 如果未显示最新的资源更改,请通过切换到源视图然后切换回设计视图来刷新设计视图。
  6. 要为其他语言创建资源文件,请在解决方案资源管理器或 Windows 资源管理器中复制该文件,然后重命名为:
    • Sample.aspx.gu-IN.resx 
    • Sample.aspx.mr-IN.resx

    Sample.aspx 页面包含一个标签。如果您在default.aspx 页面中进行更改,此标签文本也会更改。

值得关注的点  

  • 设计适用于国家/国际语言的相同网站。

历史

  • 2009 年 5 月 12 日:初始发布
© . All rights reserved.