c# 本地化问题,CultureInfo 挪威和丹麦,翻译不起作用

c# Problems with Localization, CultureInfo Norway and Denmark, translations don't work

我正在尝试实现现有 Web 应用程序的语言翻译。 该应用程序是用 C#、Javascript 和 Angular JS 编写的。

我已成功添加(resx 文件)并测试了以下语言:

-德语 -西班牙语 -芬兰 -法语 -意大利语 -荷兰语 -瑞典语

同理,我也添加了丹麦语和挪威语的资源,但是都失败了。

我在完全相同的时间做了完全相同的事情来实现所有这些;我检查了所有属性,其他一切都匹配。

这两种文化有什么特别之处可能会阻碍这一点吗?

我称它们为 Translations.no.resx 挪威语和 Translations.dk.resx 丹麦语,我相应地添加了路线,如下所示:

    private static readonly List<LanguageModel> AllLanguages = new List<LanguageModel>
    {
        new LanguageModel { Name = "English", TwoLetterIsoLanguageName = "en" },
        new LanguageModel { Name = "Svenska", TwoLetterIsoLanguageName = "sv" },
        // ITCR-1182 adding translations. DK and NO are not working.
        new LanguageModel { Name = "Dansk", TwoLetterIsoLanguageName = "dk" },
        new LanguageModel { Name = "Español", TwoLetterIsoLanguageName = "es" },
        new LanguageModel { Name = "Deutsch", TwoLetterIsoLanguageName = "de" },
        new LanguageModel { Name = "Nederlands", TwoLetterIsoLanguageName = "nl" },
        new LanguageModel { Name = "Française", TwoLetterIsoLanguageName = "fr" },
        new LanguageModel { Name = "Norsk", TwoLetterIsoLanguageName = "no" },
        new LanguageModel { Name = "Suomi", TwoLetterIsoLanguageName = "fi" },
        new LanguageModel { Name = "Italiano", TwoLetterIsoLanguageName = "it" }
    };

此列表当前用于语言选择器,但它将从数据库中生成...只要我能让它们工作!

相应调用所有语言资源:

Translations.{TwoLetterIsoLanguageName}.resx

除了默认的英文,Translations.resx

路线是这样构成的

    routes.MapRoute(
        name: "Default",
        url: "{culture}/{site}/{controller}/{action}/{id}",
        defaults: new { culture = LocalizationAttribute.DefaultCulture, site = LayoutController.DefaultSite, controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

正如我所说,它适用于除挪威语和丹麦语之外的所有语言。或者更确切地说,路由显示为它们应该显示的 "no" 或 "dk" 引用,但翻译不是映射,而是默认的英语。

还有什么我可以提供的,可能有帮助吗?

@PalleDue 和@LocEngineer 提供了答案,我用错了两个字母的 ISO 代码:

DA 丹麦语 NN 或 NB 表示挪威语,但最好使用 NB,因为大约 85% 的人口使用它。

谢谢大家!!!