Lea*_*des 5 c# asp.net resources localization webforms
我正在尝试翻译我的aspx页面中的按钮文本.我正在使用asp.net webforms,但我还没有实现它.在MVC中,我可以完全按照自己的意愿行事,但在webforms中,这对我来说是一种痛苦.
这是我的资源
我试图在aspx中使用它,但没有成功.我可以使用此代码在代码后面执行此操作
protected void Page_Load(object sender, EventArgs e)
{
Button1.Text = Properties.Resources.BUTTON_SEND;
}
Run Code Online (Sandbox Code Playgroud)
但我真的想直接在页面上做
<asp:Button ID="Button1" runat="server" Text="HERE_COMES_THE_LOCALIZABLE_TEXT" />
Run Code Online (Sandbox Code Playgroud)
有谁可以帮助我吗?
这就是我在Visual Studio 2013,2015和2017上的表现:
Add > Add ASP.NET Folder > App_GlobalResources.对于本地资源,请右键单击要在其中使用资源的文件所在的文件夹,然后选择Add > Add ASP.NET Folder > App_LocalResources.
对于标签和错误消息,我更喜欢使用LocalResources.这种做法使项目更有条理,更容易修改.这是一个更多细节的链接.
创建资源文件并将其命名如下:

它可以创建多达App_LocalResources文件夹,因为你需要,但同样,App_LocalResources文件夹,将放置资源文件(
.resx),必须在相同的文件夹.aspx,.Master或.ascx文件.
Frontend.Master.resx用于标签和消息,默认语言为
Frontend.Master.pt-br .resx用于巴西葡萄牙语标签和消息.
如果用户将浏览器的语言更改为pt-BR,则页面使用
pt-br.resx.
创建资源项.Name = Key,Value =显示文本

使用本地或全局资源文件:
<head>
<title><%= GetGlobalResourceObject("Labels", "HelloWorld") %></title>
</head>
<body>
<button type="button">
<span><%= GetLocalResourceObject("Header_NavButton_Sr") %></span>
<asp:Literal runat="server" Text="<%$ resources:Header_NavButton_Sr %>"></asp:Literal>
</button>
<a href="index.html"><%= GetLocalResourceObject("Header_TextLogo") %></a>
<asp:TextBox ID="tb1" runat="server" Text="<%$ resources:Navbar_Home %>"></asp:TextBox>
</body>
Run Code Online (Sandbox Code Playgroud)GlobalResources文件生成一个
.designer.cs文件.如果资源文件的名称为'Labels.pt-br.resx',则此文件在全局namespace调用中生成名为"Labels"的静态类Resources.对此负责的是GlobalResourceProxyGenerator在资源文件属性中定义的"自定义工具" ,您可以访问全局资源编写Resources.Labels.ResourceKey.
要使LocalResources文件像GlobalResources一样进行静态访问,您可以执行以下操作:
Custom Tool类型'PublicResXFileCodeGenerator'上Build Action选择Embedded Resource.designer.cs嵌套了资源文件的文件.如何使用它?
按照我在本回答中创建的结构,我们在MasterPages文件夹中有一个LocalResource,生成名称空间WebFormsProject2.MasterPages.App_LocalResources.如果打开'.designer.cs',在本例中Frontend.Master.designer.cs,在另一个文本编辑器上,您将看到它生成一个Frontend_Master在命名空间上命名的类,WebFormsProject2.MasterPages.App_LocalResources以及一些与您在资源文件中创建的资源键同名的静态属性.现在您只需要创建对此命名空间的引用并访问属性,例如Frontend_Master.Header_TextLogo.
例:
<%@ Import Namespace="WebFormsProject2.MasterPages.App_LocalResources" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title><%= Frontend_Master.Header_TextLogo %></title>
</head>
<body>...</body>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10251 次 |
| 最近记录: |