我试图翻译我的aspx页面中的按钮文本。我使用的是asp.net webforms,但我还没有实现。在MVC中,我可以完全按照自己的意愿行事,但在网络形式中,这对我来说是一种痛苦。
这是我的资源
我试图在aspx中使用它但没有成功。我可以使用此代码在代码中执行此操作
protected void Page_Load(object sender, EventArgs e)
{
Button1.Text = Properties.Resources.BUTTON_SEND;
}
但我真的想直接在页面
中进行 <asp:Button ID="Button1" runat="server" Text="HERE_COMES_THE_LOCALIZABLE_TEXT" />
有人能帮助我吗?
答案 0 :(得分:6)
这就是我在Visual Studio 2013,2015和2017上的表现:
Add > Add ASP.NET Folder > App_GlobalResources
。对于本地资源,右键单击要使用资源的文件所在的文件夹,然后选择Add > Add ASP.NET Folder > App_LocalResources
。
对于标签和错误消息,我更喜欢使用LocalResources。这种做法使项目更有条理,更容易修改。这是一个link以获取更多详细信息。
创建资源文件并将其命名如下:
可以根据需要创建任意数量的 App_LocalResources 文件夹,但同样可以创建 App_LocalResources 文件夹,您可以在其中放置资源文件(
.resx
) ,必须与.aspx
,.Master
或.ascx
文件位于同一文件夹中。
Frontend.Master.resx用于标签和消息的默认语言
巴西葡萄牙语标签和消息的前端.Master。 pt-br .resx。
如果用户将其浏览器的语言更改为pt-BR,则该页面将使用
pt-br.resx
。
创建资源项。 名称 =键,值 =显示文字
使用本地或全局资源文件:
<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>
GlobalResources文件生成
.designer.cs
文件。这个文件生成 一个名为'Labels'的静态类,如果资源文件的名称是 'Labels.pt-br.resx',位于名为namespace
的全球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>
答案 1 :(得分:2)
在&#34; App_GlobalResources &#34;中创建资源文件文件夹如下:
为要将按钮文本传输到
的每种语言创建资源文件希望这有帮助
答案 2 :(得分:1)
你应该做更多的研究......
看看this
1)创建一个文件夹&#34; App_GlobalResources&#34;
2)在上面的文件夹中创建一个资源文件&#34; ResourceStrings&#34;以及名称为&#34; Key1&#34;
然后:
<asp:Button ID="Button1" runat="server" Text="<%$ Resources:ResourceStrings, Key1 %>" />