c# - 挪威语本地化在带有 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在这种方面有什么区别吗?
谢谢。
解决方案
Linux 更喜欢挪威语的“nn”语言代码,而不是“no”代码
推荐阅读
- mongodb - ConfigurableMongoDbMessageStore 无法实例化 [org.springframework.messaging.support.GenericMessage]
- python - 使用if语句在python中替换字符串
- javascript - 向上滚动时不显示导航栏
- mysql - 如何为 Percona 监控和管理配置 MySQL
- oracle - 将稀疏数据插入 Oracle 表
- html - 如何折叠移动设备的导航栏?
- reactjs - React 的 Ant 设计 - 在 Dropdown 组件中使用 List 组件
- node.js - 获取在 mongoDB 中添加到给定字符串中的字段中存在的所有单词的集合列表
- jenkins - Jenkins Pipeline 在 Plaintex 中显示密码
- angular - (Angular 7)无法分配给 ng-block-ui 上的只读属性“isActive”