我正在尝试实现现有Web应用程序的语言翻译。 该应用程序是用C#,Javascript和Angular JS编写的。
我已成功添加(resx文件)并测试了以下语言:
- 德语 - 西班牙语 -芬兰 - 法国 - 意大利 -荷兰人 语 - 瑞典语
同样,我也为丹麦语和挪威语添加了资源,但这些都失败了。
完全相同的事情,在完全相同的时间实现所有这些;我检查了所有属性和其他所有匹配项。
这两种文化有什么特别之处可能阻碍这一点吗?
我称他们为Transwegian.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 }
);
正如我所说,它适用于除挪威语和丹麦语之外的所有语言。或者更确切地说,路线按照应有的方式出现,而不是&#34; no&#34;或&#34; dk&#34;引用,但翻译不是映射,而是出现默认的英语。
我能提供的其他内容可能会有所帮助吗?
答案 0 :(得分:0)
答案是由@PalleDue和@LocEngineer提供的,我使用了错误的双字母ISO代码:
丹麦语的DA 挪威语的NN或NB,但更好地使用NB,因为它被约85%的人口使用。
谢谢大家!!!