我正在尝试构建一个应该以英语和德语提供的ASP.NET核心应用程序.我的问题IViewLocalizer总是返回德语文本,即使文化设置为英语.如何获得当前文化的正确文本?
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddLocalization(opt => opt.ResourcesPath = "Resources");
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
var cultures = new[] { new CultureInfo("en"), new CultureInfo("de") };
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en"),
SupportedCultures = cultures,
SupportedUICultures = cultures
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
Run Code Online (Sandbox Code Playgroud)
HomeController.cs
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
Index.cshtml
<!DOCTYPE html>
@using Microsoft.AspNetCore.Mvc.Localization; …Run Code Online (Sandbox Code Playgroud) 我的构建脚本使用SYSTEM_ACCESSTOKEN环境变量。
在设计器内部定义中,我选中了“ 允许脚本访问OAuth令牌”,一切正常。
复制设计器生成的YAML定义后,我无法访问SYSTEM_ACCESSTOKEN环境变量。
如何允许我的YAML版本访问OAuth令牌?
这是我的azure-pipelines.yaml:
queue:
name: Hosted VS2017
steps:
- checkout: self
lfs: true
persistCredentials: true
- powershell: ./build.ps1
Run Code Online (Sandbox Code Playgroud)