Một điều rất đơn giản và tôi không thể làm cho nó hoạt động. Tôi muốn toàn cầu hóa dll của tôi vì vậy tôi đang sử dụng các tập tin tài nguyên + ResourceManager.Resourcemanager đang trả về cùng một tài nguyên, mặc dù CultureInfo được chỉ định
tôi gọi là ResourceManager như thế này:
var p = new ResourceManager("Appname.Default", Assembly.GetExecutingAssembly());
Lấy chuỗi như thế này
System.Diagnostics.Debug.WriteLine(p.GetString("greeting"));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("nl")));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("nl-NL")));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("en")));
Và nó trả gấp 4 lần cùng một chuỗi. Tệp của tôi được gọi là
Default.resx
Default.en.resx
Default.nl.resx
Default.nl-NL.resx
Tất cả cài đặt tệp đều giống nhau, nhưng như đã đề cập - chỉ tài nguyên trong tệp Mặc định được sử dụng.
Tôi đang xem gì ở đây?
Are file resx thực sự nhận được biên soạn thành Satellite Assembly? Tìm trong thư mục bin \ Debug và tìm thư mục con có tên en, nl và nl-NL. –
Thử tải bản dịch qua 'Default.ResourceManager.GetString'. Nhiều khả năng trình quản lý tài nguyên bạn đang tạo sẽ nhận được một số tham số sai. –