MVC Аннотации данных на разных языках? - PullRequest
4 голосов
/ 02 августа 2011

Я использую такой код:

   @Html.LabelFor(m => m.Login.Password, new { @class = "adm" })
   @Html.PasswordFor(m => m.Login.Password, new { @class = "adm", size = 30 })
   @Html.ValidationMessageFor(m => m.Login.Password)

Работает нормально, так как мои аннотации / сообщения / метки данных на английском языке. Однако есть ли способ, которым я могу иметь более одного языка и переключаться между ними?

Что если на моем сайте есть язык, который выбирает между японским и английским языками? Могу ли я иметь разные аннотации данных для каждого языка?

Ответы [ 2 ]

5 голосов
/ 02 августа 2011

1> Вам необходимо создать файл ресурсов для каждого языка

2> затем создайте модели типа

public class User
{
    [Required(ErrorMessageResourceType=typeof(Languages.Resource),ErrorMessageResourceName="required")]
    [Display(ResourceType=typeof(Languages.Resource),Name="name")]
    public string Name { get; set; }

}

3> Ваши взгляды в порядке

4> Чтобы выбрать и установить разные языки: вы можете создать тонущее меню (или что угодно), а затем на сервере сохранить выбранный язык в куки. И для каждого запроса установите current_culture_info как показано ниже

    string currentChoosenLanguage= readFromCookie(); //or may be from Database, whatever suits you
    CultureInfo ci = new CultureInfo(currentChoosenLanguage); //i think jp: for japanese
    System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);

пожалуйста, проверьте ниже ссылку

http://haacked.com/archive/2011/07/14/model-metadata-and-validation-localization-using-conventions.aspx/

1 голос
/ 02 августа 2011

Вам придется использовать глобализацию / локализацию,

Вы можете добавить имена ресурсов к своим сообщениям об ошибках.

Например:

[Required(ErrorMessageResourceName= "PasswordRequired", ErrorMessageResourceType = typeof(MyResource)]

Предлагаю вам поискать дополнительную информацию о файлах ресурсов для глобализации / локализации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...