ASP.NET Создание определенной культуры с помощью кода языка nb (букмол)

StackOverflow https://stackoverflow.com/questions/8881554

  •  29-10-2019
  •  | 
  •  

Вопрос

У меня есть веб-сайт ASP.NET 3.5

Почему я не могу создать особую культуру для языка букмал следующим образом:

родовое слово

Язык "en" работает нормально, в результате получается "en-US".Я думал, что с «nb» я могу сделать то же самое и получить культуру «nb-NO».Но с "nb" я получаю ошибку:

<цитата>

Культура nb не поддерживается.

Я объясню, зачем мне это было нужно.

Я получил список культур: "nl-NL", "nl-BE", "nb-NO", "fr-CH", "fr-FR" «Хочу, чтобы я хотел» был уникальный список языков с культурами по умолчанию.Поэтому я создаю список с уникальными языками, в результате которого получаются «nl», «nb», «fr».Далее мне нужны конкретные культуры, но nb не работает.Я хотел этого, потому что в уникальном списке выбрано nl-BE вместо nl-NL по умолчанию.

Но тогда я просто буду использовать "nl-BE", когда выбран голландский язык, и помещу культуры в список уникальных культур.Результатом этого списка станет «nl-BE», «nb-NO», «fr-CH».

Это было полезно?

Решение

Вы не можете предполагать, что существует соответствие между названиями языков и отношениями родитель-потомок между объектами CultureInfo.Иерархия также зависит от версии Windows.

Согласно документации для NLS API , "nb"культура существует в Windows 7, но не в Windows Vista.

На моем компьютере с Windows 7 иерархия культуры для букмола находится в порядке от дочерних к родительским

  • nb-NO
  • nb
  • нет
  • Инвариантная культура

Короче говоря, вы должны использовать свойство Parent объекта CultureInfo вместо того, чтобы выполнять строковые манипуляции.

Другие советы

Я не понимаю, почему это не работает.Эти три имени ниже дают мне правильную культуру

Попробуйте:

родовое слово

UnitTest:

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top