ASP.NET翻译和本地化WebForms应用程序

时间:2017-10-09 17:31:47

标签: c# asp.net vb.net webforms translation

我的任务是翻译一个大型WebForms应用程序(大约300个aspx页面)。我将使用传统方法翻译ASP.NET应用程序(使用资源文件),我将使用ZetaResource让我的生活变得轻松。 但是,我有一个小问题: 我可以用aspx代码中存在的自由文本做什么?以此代码为例,如何将文本这是数据库中可用的记录列表转换为ASP:Label服务器控件以便使用嵌入式翻译机制?

<form id="form1" runat="server">
<div>
    <br />
  This is a List of records available in the Database<br />    
    <br />
    <asp:Button ID="cmdButton" runat="server" Text="Button" meta:resourcekey="cmdButtonResource1" />
</div>
</form>

2 个答案:

答案 0 :(得分:1)

您有两种本地化选择:显式和隐式。

对于显式本地化,您可以将文本放入资源文件中,并使用以下代码将其显示在网页上:

<asp:Localize ID="Localize1" Runat="server" Text="<%$ Resources:LocalizedText, ListOfRecordsInDatabase%>" />

对于隐式本地化,代码看起来更像是这样:

<asp:Localize ID="Localize1" Runat="server" meta:resourcekey="LocalizeResource1" Text="This is a List of records available in the Database" />

对于仅存在于单个页面中的这些一次性文本,我通常使用隐式本地化。对于可以存在于许多页面上的文本(常用标签,按钮等),我使用显式。

一旦您将隐式本地化资源文件放入服务器控件(例如<asp:Localize><asp:Label>),就可以为您自动生成隐式本地化资源文件。

在MSDN网站上有一个很棒的演练,名为&#34; Walkthrough: Using Resources for Localization with ASP.NET&#34;。它将告诉您如何自动生成资源文件。

答案 1 :(得分:0)

想象一下,您有一个名为 YourResource 的资源文件,而您想要的项目是 String1 ,您只需为自由文本执行此操作:

<%= (YourResource.String1) %>