我开发了我的第一个具有以下特征的ASP.NET 5 Web应用程序:
我试图将其翻译为多语言,并且用户可以使用选择器更改语言,但我无法实现。
之前我开发过ASP.NET 2.0 / 3.5项目,我记得文本是资源(.resx)文件或XML文件。但是现在,由于最近在新ASP中发生了很多变化,我认为本地化也发生了变化。
我发现很少有关于它的信息,而且我发现,并没有给我足够的帮助。
在官方支持网站上还没有解释这个主题(docs.asp.net)。
我在GitHub code sample找到了一个this website和有趣的解释。
但我无法将概念联系起来。我将解释我已经完成的步骤。
我创建了一个"资源"文件夹,进入我的ASP.NET项目。在这个文件夹中,我创建了一些(.resx)文件。这些文件的名称遵循以下结构:
在我的Startup.cs文件中,我定义了以下代码来设置哪个文件夹是文本资源:
public void ConfigureServices(IServiceCollection services)
{
...
services
.AddMvc()
.AddViewLocalization(options => options.ResourcesPath = "Resources")
.AddDataAnnotationsLocalization();
...
}
在同一个文件中,在Configure方法中,我定义了:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
//template: "{culture?}/{controller}/{action}/{id?}", //we define the structure of the routes
//defaults: new { culture = "ca", controller = "Home", action = "Index" }); //we define the default values
});
同样的功能,支持的文化:
//To set the localization configuration
List<CultureInfo> supportedCultures = new List<CultureInfo>();
supportedCultures.Add(new CultureInfo("ca-ES"));
supportedCultures.Add(new CultureInfo("es-ES"));
List<CultureInfo> supportedUICultures = new List<CultureInfo>();
supportedUICultures.Add(new CultureInfo("ca-ES"));
supportedUICultures.Add(new CultureInfo("es-ES"));
RequestLocalizationOptions requestLocalizationOptions = new RequestLocalizationOptions();
requestLocalizationOptions.SupportedCultures = supportedCultures;
requestLocalizationOptions.SupportedUICultures = supportedUICultures;
RequestCulture defaultRequestCulture = new RequestCulture("ca-ES");
app.UseRequestLocalization(requestLocalizationOptions, defaultRequestCulture);
现在是我失去了这一点。
修改
我再次检查了documentation,我在评论中看到Rick Anderson一直在写entry。我还没有平静地阅读它,但如果有人对此话题感兴趣,我会与你分享。
答案 0 :(得分:1)
我已经重新做了一个示例,演示了ASP.NET 5(ASP.NET Core 1.0)中本地化的所有方面。您可以下载它并查看https://github.com/feradz/ASPNetCoreLocalization/wiki。下载并试用。
回答你的问题:
该示例演示了以下功能:
IStringLocalizer
IHtmlLocalizer
IViewLocalizer
Display
属性EnumHelper
View.cshtml
View.es-ES.cshtml
CookieRequestCultureProvider