挪威语本地化版本在Net Core 2.1的AWS(Linux)中不起作用

我在尝试在Amazon Web服务上运行测试时遇到问题。

首先,要提到该测试可以像Teamcity(Windows)一样在我的本地计算机中通过,但是一旦我将其构建到Amazon Codebuild(Linux)上就不能通过。

此外,该测试仅对挪威语失败,我尝试添加西班牙语("es"),英语和法语,并且它们可以正常工作。

我有一个Resources文件夹,其中包含文件*.es.resx*.resx*.en.resx*.no.resx等。

要获得本地化,我创建了一个辅助方法

public class TestLanguageBase<T>
{
    protected StringLocalizer<T> GetLocalizer()
    {
        IOptions<LocalizationOptions> options = Options.Create(new LocalizationOptions());
        ResourceManagerStringLocalizerFactory factory = new ResourceManagerStringLocalizerFactory(options,NullLoggerFactory.Instance);
        return new StringLocalizer<T>(factory);
    }
}

然后在扩展TestLanguageBase的测试中,我执行下一个

[Fact]
public void Test_NorwegianLanguage()
{
    CultureInfo NorweiganCulture = new CultureInfo("no");
    using (new CultureScope(NorweiganCulture))
    {
        var localizer = GetLocalizer();
        var result = localizer["LanguageChecker"];
        Assert.Equal("NorwegianLanguage",result);
    }
}

编辑:我尝试使用nb,并且似乎可以正常工作。但是为什么呢? 我需要为同一语言创建两个不同的.resx文件吗?

西班牙语测试没有问题。

[Fact]
public void Test_Spanish()
{
    CultureInfo spanishCulture = new CultureInfo("es");
    using (new CultureScope(spanishCulture))
    {
        var localizer = GetLocalizer();
        var result = localizer["LanguageChecker"];
        Assert.Equal("SpanishLanguage",result);
    }
}

有人知道Windows和Linux在这种方面是否有区别吗?

谢谢。

dciyy 回答:挪威语本地化版本在Net Core 2.1的AWS(Linux)中不起作用

Linux偏爱挪威语的“ nn”语言代码,而不是“ no”代码

本文链接:https://www.f2er.com/3066635.html

大家都在问