Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure上ASP.NET核心的本地化_C#_Azure_Localization_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

C# Azure上ASP.NET核心的本地化

C# Azure上ASP.NET核心的本地化,c#,azure,localization,asp.net-core,asp.net-core-mvc,C#,Azure,Localization,Asp.net Core,Asp.net Core Mvc,我试图强迫我的本地化为瑞典语(sv SE)。一切都在本地运行,但在部署到Azure之后,验证错误总是以英语显示 这是我在Startup.cs中的配置 public void ConfigureServices(IServiceCollection services) { ... services.AddLocalization(); ... } public void Configure(IApplicationBuilder app, IHostingEnviro

我试图强迫我的本地化为瑞典语(sv SE)。一切都在本地运行,但在部署到Azure之后,验证错误总是以英语显示

这是我在Startup.cs中的配置

public void ConfigureServices(IServiceCollection services)
{
    ...

    services.AddLocalization();

    ...
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory)
    ...

    RequestLocalizationOptions localizationOptions = new RequestLocalizationOptions
    {
       SupportedCultures = new List<CultureInfo> { new CultureInfo("sv-SE") },
       SupportedUICultures = new List<CultureInfo> { new CultureInfo("sv-SE") }
    };

    app.UseRequestLocalization(localizationOptions, new RequestCulture("sv-SE"));

    ...
}
public void配置服务(IServiceCollection服务)
{
...
services.AddLocalization();
...
}
公共void配置(IApplicationBuilder应用程序、IHostingEnvironment环境、iLogger工厂)
...
RequestLocalizationOptions localizationOptions=新的RequestLocalizationOptions
{
SupportedCultures=新列表{new CultureInfo(“sv SE”)},
SupportedCultures=新列表{new CultureInfo(“sv SE”)}
};
应用程序UseRequestLocalization(localizationOptions,new RequestCulture(“sv SE”);
...
}
在呈现视图时,我可以看到UI区域性和区域性在本地和Azure上都正确设置为sv SE

发布到Azure时,我是否必须包含一些内容、本地化资源或其他内容

我正在使用最新版本的ASP.NET Core(RC1)。

基于,首先需要将其设置为RequestLocalizationMiddleware作为服务

services.Configure<RequestLocalizationOptions>(
    opts =>
    {
        var supportedCultures = new List<CultureInfo>
        {
            new CultureInfo("sv-SE")
        };

        opts.DefaultRequestCulture = new RequestCulture("sv-SE");
        // Formatting numbers, dates, etc.
        opts.SupportedCultures = supportedCultures;
        // UI strings that we have localized.
        opts.SupportedUICultures = supportedCultures;
    });
services.Configure(
选项=>
{
var supportedCultures=新列表
{
新文化信息(“sv SE”)
};
opts.DefaultRequestCulture=新的RequestCulture(“sv SE”);
//格式化数字、日期等。
opts.SupportedCultures=SupportedCultures;
//我们已经本地化的UI字符串。
opts.supporteduccultures=支持的文化;
});
这还不够,还应包括应用程序管道:

public void Configure(IApplicationBuilder app)  
{
    app.UseStaticFiles();

    var options = 
    app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
    app.UseRequestLocalization(options.Value);

    app.UseMvc(routes =>
    {
         routes.MapRoute(
             name: "default",
             template: "{controller=Home}/{action=Index}/{id?}");
    });
}
public void配置(IApplicationBuilder应用程序)
{
app.UseStaticFiles();
变量选项=
app.ApplicationServices.GetService();
app.UseRequestLocalization(options.Value);
app.UseMvc(路由=>
{
routes.MapRoute(
名称:“默认”,
模板:“{controller=Home}/{action=Index}/{id?}”);
});
}

您的浏览器发送什么作为接受语言?这是我的浏览器发送的:接受语言:en US,en;q=0.8,nb;q=0.6,ru;q=0.4,sv;q=0.2。即使我使用请求参数?culture=sv SE,它也会输出英语。代码似乎正在运行,但在Azure上它找不到瑞典本地化资源,而是输出英语。至少这是我的猜测。浏览器语言应该不重要,因为只有瑞典语是受支持的文化。你将瑞典资源文件部署到Azure了吗?我没有包括任何额外的资源。哪些文件以及应该包含在哪里?您确定获得了本地化字符串的英文版本或密钥吗?