Tôi muốn bản địa hóa/toàn cầu hóa các trường trên trang Đăng nhập của tôi. Tôi đang sử dụng ASP.NET MVC 3 Preview 1 với công cụ xem dao cạo.Bản địa hóa các trường/thuộc tính trên AccountModel cho ASP.NET MVC
Một số nền
Trước hết, tôi đã thiết định tuyến của tôi và thêm thuộc tính một địa hóa xử lý vì vậy mà tôi có thể viết http://mysite.com/{lang}/{controller}/{action}/{id}
. Bây giờ điều này hoạt động tốt. Trong thư mục Views
của tôi, tôi đã thêm một thư mục Trang chủ với App_LocalResources
tương ứng cho đến nay rất tốt. Tôi thậm chí có thể thêm các tệp ngôn ngữ cho các ngôn ngữ khác nhau như Index.resx
và Index.sv.resx`.
Vấn đề
Có một tập tin gọi Account.resx
vào những gốc App_GlobalResources
Tôi dĩ nhiên tưởng tượng tôi sẽ có thể truy cập vào đó từ các trang của tôi. Trong tôi AccountModel.cs
(mà đi kèm với quá trình cài đặt/mẫu dự án) Tôi đã thêm sau vào LogOnModel
public class LogOnModel
{
[Required]
[Display(Name = "UserName", ResourceType = typeof(Account))]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password", ResourceType = typeof(Account))]
public string Password { get; set; }
[Display(Name = "RememberMe", ResourceType = typeof(Account))]
public bool RememberMe { get; set; }
}
Tôi có hai tập tin trong tôi App_GlobalResource
- Account.resx
- Account.sv .resx
Và thực tế là lấy văn bản từ tệp tiếng Anh/mặc định. Nhưng khi tôi thêm/sv/vào URL của tôi hoặc thậm chí đảm bảo rằng văn hóa là thụy điển, nó không thay đổi ngôn ngữ thành những gì có trong `` Account.sv.resx` của tôi.
Một ví dụ về những gì có thể trong LogOn.cshtml
<div class="editor-label">
@Html.LabelFor(m => m.UserName)
</div>
ý tưởng Bất kỳ?
Tôi đã nhìn thấy điều này nhưng điều đó không giúp tôi nhiều kể từ khi 'DisplayAttribute' không hoạt động đúng trong MVC 3. –
Đừng bận tâm , hành động xây dựng cho một tệp tài nguyên là sai. Cảm ơn. –