Tôi muốn tạo một tệp tài nguyên cho tiếng Anh Singapore (en-sg) có tên là "shopping.en-sg.resx" trong thư mục App_GlobalResources.Tạo văn hóa tùy chỉnh trong ASP.NET
Tôi gặp lỗi trong khi biên dịch.
Lỗi 1 Không gian tên 'Resources' đã có chứa một định nghĩa cho 'mua sắm' c: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ web \ 2cd6afe9 \ 737b0a13 \ App_GlobalResources.vomuzavz.1.cs 26
Sau khi tìm kiếm trên Google, tôi phát hiện ra rằng "en-sg" không phải là văn hóa mặc định và tôi phải tạo văn hóa tùy chỉnh cho nó. Tôi không biết các bước chi tiết này.
Tôi nên làm gì để tạo văn hóa và xóa lỗi biên dịch?
tôi theo ví dụ trong MSDN, tạo ra một tập tin gọi là "shopping.x-en-US-sample.resx" và đặt đoạn mã sau vào chức năng BasePage của (protected override trống InitializeCulture()):
CultureAndRegionInfoBuilder cib = null;
cib = new CultureAndRegionInfoBuilder(
"x-en-US-sample", CultureAndRegionModifiers.None);
CultureInfo ci = new CultureInfo("en-US");
cib.LoadDataFromCultureInfo(ci);
RegionInfo ri = new RegionInfo("US");
cib.LoadDataFromRegionInfo(ri);
cib.Register();
ci = new CultureInfo("x-en-US-sample");
Tuy nhiên, lỗi biên dịch vẫn tồn tại.
CẬP NHẬT:
Bạn có thể dễ dàng tạo lại vấn đề bằng cách tạo ra một trang web trống rỗng và hai tập tin "shopping.en-sg.resx" và "shopping.resx" trong thư mục app_globalresources.
Tôi nên đặt mã này ở đâu để tránh lỗi? – Billy
Mã này chỉ cần chạy một lần trên máy mà bạn cần thêm văn hóa. Có lẽ bạn đang nhận được lỗi bởi vì nó đã tồn tại? –
Đặt mã trong global.asax? Nếu tôi thay đổi "en-sg" thành "en-us", thì tốt thôi. Tôi chỉ muốn một đoạn mã mà tôi có thể đặt nó vào một nơi nào đó và sau đó tôi có thể sử dụng shopping.en-sg.resx – Billy