我在我的 ASP.NET MVC 应用程序中遇到了同样的困境(如何实现本地化)。
我按照发布的说明进行操作here http://odetocode.com/blogs/scott/archive/2009/07/15/13211.aspx它就像一个魅力。
因此,我在内容下创建了一个名为 Localization 的文件夹,然后为我要翻译的每种语言创建资源 resx 文件。请记住,resx 文件名有一个约定。 IE
Resources.resx 是所有内容的默认回退。
Resources.en-GB.resx 适用于英语 GB
Resources.en-US.resx 适用于美国英语
etc.
只需确保按照链接中发布的说明进行嵌入并使资源在应用程序中的所有位置(视图、控制器等)可用
Edit:
我想补充一点,我从 web.config 中省略了这一行,因为我想从我的应用程序中手动设置本地。
<globalization uiCulture="auto" culture="auto"/>
相反,我创建了以下类:
public class SmartController : Controller
{
public SmartController()
{
System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-US");
}
}
所有控制器都继承自该类。
由于这是区域设置的管理集,我必须从我的应用程序设置中进行设置。您可以从 Cookie 中读取并设置它,或者以其他方式。在我看来,这是我迄今为止遇到的最简单的本地化解决方案。
实现后,您可以通过以下简单的代码行引用您添加的任何字符串,无需额外的代码。
<%= Resources.Strings.TranslatedTerm %>