我花了大约一个星期试图理解本地化如何在ASP.NET Core 1.0中运行.我已经测试了很多选项,但我无法使其正常工作.
我已经阅读了Visual Studio中的错误,我已经阅读了所有关于它现在如何工作的文章(Article1,Article2,Article3),并且我已经检查并测试了官方GitHub存储库中的所有示例.
我的目标:
我只想让它像我在ASP.NET MVC 5中那样工作.
我已经像我这样配置了我的Startup.cs:
配置部分:
var requestLocalizationOptions = new RequestLocalizationOptions
{
// Set options here to change middleware behavior
SupportedCultures = new List<CultureInfo>
{
new CultureInfo("en-US"),
new CultureInfo("es-ES")
},
SupportedUICultures = new List<CultureInfo>
{
new CultureInfo("en-US"),
new CultureInfo("es-ES")
}
};
app.UseRequestLocalization(requestLocalizationOptions, defaultRequestCulture: new RequestCulture("en-US"));
Run Code Online (Sandbox Code Playgroud)
配置服务部分:
// Add MVC services to the services container.
services
.AddMvc()
.AddViewLocalization(options => options.ResourcesPath = "Resources")
.AddDataAnnotationsLocalization();
Run Code Online (Sandbox Code Playgroud)
在我的文件夹资源中,我有我的.resx文件.我从官方的例子中复制了它,但没有办法......没有错误,只是没有工作.
如果我测试官方回购的本地化示例,它可以工作.但我无法修改以适应MVC 6.
我在GitHub上为我的代码创建了一个存储库并对其进行测试.(https://github.com/chemitaxis/Localization.StackOverflow)
有人可以帮帮我吗?我想很多人都有这些问题.
谢谢!!
好的,我解决了......明天我将在GitHub上更新我的例子.
我创建了一个_ViewImports,并添加它:
@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"
@using System.Threading.Tasks
@using AspNet5Localization
@using AspNet5Localization.Resources
@using Microsoft.AspNet.Mvc.Localization
@using Microsoft.Extensions.Localization
@inject IStringLocalizer<AmazingResource> SR
Run Code Online (Sandbox Code Playgroud)
之后,我创建了一个HomeController和Views/Home/Index.cshtml文件.
就像我在_ViewImports中注入了我的视图中的IStringLocalizer SR我可以在我的Razor Views中使用它只使用:
@SR["Name"]
Run Code Online (Sandbox Code Playgroud)
我不知道这是否是最佳方式,但它确实有效.如果有人能够解释最佳方法,请回答这个问题.
完整的解决方案:https://github.com/chemitaxis/Localization.StackOverflow
谢谢.
| 归档时间: |
|
| 查看次数: |
3330 次 |
| 最近记录: |