.NET 对不支持的 ISO 639-2 文化的多语言支持

Mad*_*bot 5 c# asp.net-mvc multilingual cultureinfo .net-4.8

我目前正在开发一个 ASP.NET 4.8 MVC 单页应用程序,预计支持多种语言。从各种资源中,我发现实现此目的的一种方法是使用App_GlobalResources每种受支持语言的资源文件。

我在页面中添加了一些导航链接,用于更新线程的当前文化信息,从而将这些语言资源拉入我的应用程序中。

var cultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures)
                             .FirstOrDefault(x => x.ThreeLetterISOLanguageName == language);

if (cultureInfo == null)
     cultureInfo = CultureInfo.GetCultureInfo("en-US");

Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
Run Code Online (Sandbox Code Playgroud)

这对于有文化支持的语言来说似乎效果很好。(IE:“eng”拉回en-us并找到Content.en.resx文件,“spa”检索Content.es.resx等)但是我遇到了困难,语言出现在 ISO639-2 列表中(苗族、凯伦族)但没有关联的 CultureInfo跟他们。

我尝试过使用这些来分离文化CultureAndRegionInfoBuilder,但根据我的理解,这只能在我的计算机上运行,​​而不能在网络上运行。我也无法“破解”现有文化 - 即采用越南语并替换其ThreeLetterISOLanguageName和其他属性 - 因为这些属性是只读的。

当 CultureInfo 不可用时,是否有明确的方法告诉我的代码引用特定的内容文件?还是我以完全错误的方式处理这个问题?