Это комментарий, чтобы проиллюстрировать разницу между neutral cultures and specific cultures:
var language = "fr";
var c1 = new CultureInfo(language);
Console.WriteLine(c1.EnglishName); // "French"
Console.WriteLine(c1.IsNeutralCulture); // "True"
Console.WriteLine((3.14m).ToString("C", c1)); // "3,14 €"
var c2 = CultureInfo.CreateSpecificCulture(language);
Console.WriteLine(c2.EnglishName); // "French (France)"
Console.WriteLine(c2.IsNeutralCulture); // "False"
Console.WriteLine((3.14m).ToString("C", c2)); // "3,14 €"
var languageAndCountry = "fr-CA";
var c3 = new CultureInfo(languageAndCountry);
Console.WriteLine(c3.EnglishName); // "French (Canada)"
Console.WriteLine(c3.IsNeutralCulture); // "False"
Console.WriteLine((3.14m).ToString("C", c3)); // "3,14 $"
В заключение, если у вас есть только язык, вы не можете получить все. Вы можете либо получить нейтральную культуру, либо «каноническую» специфическую культуру, где выбрана какая-то «типичная» страна.
Если у вас есть язык и страна, как в "fr-CA"
, все будет лучше.
В моей системе, следующие конкретные культуры с "fr"
существуют:
FR-029, FR-BE, FR-BF, FR-BI, FR-BJ, FR-BL, FR -CA, fr-CD, fr-CF, fr-CG, fr-CH, fr-CI, fr-CM, fr-DJ, fr-DZ, fr-FR, fr-GA, fr-GF, fr-GN , fr-GP, fr-GQ, fr-HT, fr-KM, fr-LU, fr-MA, fr-MC, fr-MF, fr-MG, fr-ML, fr-MQ, fr-MR, fr -MU, fr-NC, fr-NE, fr-PF, fr-PM, fr-RE, fr-RW, fr-SC, fr-SN, fr-SY, fr-TD, fr-TG, fr-TN , fr-VU, fr-WF, fr-YT
(найдено с string.Join(", ", CultureInfo.GetCultures(CultureTypes.SpecificCultures).Where(x => x.TwoLetterISOLanguageName == "fr"))
)
Что произошло, когда вы попробовали? – Chris