вопрос локализации asp.net - PullRequest
1 голос
/ 17 мая 2011

У меня есть два файла ресурсов: Resource1.resx и Resource1.es-mx.resx Системная культура по умолчанию: en-US.

  1. <%@ Page UICulture="es" Culture="es-MX" %> -> по-прежнему получить английскую версию (настройка языка в браузере не помогает).
  2. Переименуйте Resource1.es-mx.resx в Resource1.es.resx -> работает, испанский.
  3. <%@ Page UICulture="auto" Culture="auto" %>, установите в браузере испанский язык, ресурс Resource1.es-mx.resx -> испанский.

Не могли бы вы объяснить мне, что происходит в первом случае? Почему английский?

Ответы [ 2 ]

1 голос
/ 18 мая 2011

Почему английский?В испанской стране нет нейтральных ресурсов, и вы спрашиваете их специально.Таким образом, он возвращается к нейтральным ресурсам (в вашем случае это английский).

Вы должны сделать это наоборот: имя файла ресурсов Resource1.es.resx и запросить конкретную UICulture: UICulture="es-MX" если выдолжен.В таком случае, если ресурсы, специфичные для страны, не будут найдены, они обратятся к нейтральным (и) испанским ресурсам (ам).
Мне неизвестен ваш вариант использования, но использование жестко заданных культур не очень хорошая идея... Вы действительно должны подумать об использовании auto здесь.

1 голос
/ 17 мая 2011

Вы пробовали UICulture="es-mx"?Я верю, но я не уверен на 100%, что если вторая часть локали указана в файле ресурсов, она используется только там, где указаны обе части.

...