【问题标题】:How To translate text on a button in multilingual website in asp.net如何在asp.net的多语言网站中翻译按钮上的文本
【发布时间】:2016-06-12 05:53:42
【问题描述】:
我正在开发一个 asp.net 网站。我有 Resource.resx 文件来翻译网站的术语。一切都很好,当我使用 Text='' 文本时,我想将按钮的文本翻译成英语和波斯语,它不起作用并且不显示文本。
<asp:Button ID="Button1" runat="server" Text='<%#Resources.Resource.ارسال %>' Width="94px" CssClass="btn btn-primary" OnClick="Button1_Click" />
【问题讨论】:
标签:
asp.net
translate
resx
【解决方案1】:
- 右键项目->添加->添加ASP.NET文件夹->App_GlobalResources
- 在此文件夹中添加两个资源文件,一个用于英语,另一个用于波斯语。我使用的是英语和法语。默认为英语,法语资源文件名为 Resource.fr.resx。名称很重要,因此请确保使用波斯文化命名。
- 更改按钮标记以从资源文件中获取文本:
像这样:
<asp:Button ID="Button1" runat="server" Text="<%$ Resources:Resource, Button1 %>" />
- 覆盖后面代码中的
InitializeCulture() 方法,并根据查看 Web 应用程序的用户类型设置文化。
像这样:
public partial class GlobalizationExample : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void InitializeCulture()
{
//Get the language that the client prefers from the browser
string preferredLanguage = Request.UserLanguages[0];
//Set the language for the page
System.Threading.Thread.CurrentThread.CurrentUICulture =
new System.Globalization.CultureInfo(preferredLanguage);
System.Threading.Thread.CurrentThread.CurrentCulture =
System.Globalization.CultureInfo.CreateSpecificCulture(preferredLanguage);
}
}
如果以上内容对您没有帮助,here 是一个很棒的视频,介绍了在 ASP.NET 中应用全球化的不同方式。