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



我正在尝试实现现有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% 的人口使用。

谢谢你们!!

相关内容

  • 没有找到相关文章

最新更新