oder Beispiel in Text < /p>
Name: "orderisclosed"
Neutraler Wert: "Kann geschlossene Bestellung nicht bearbeiten." замовлеiges. " Stattdessen erhalte ich jedoch nur den Fehlerschlüssel in der Antwort, wie unten gezeigt: < /p>
Code: Select all
{
"Errors": [
"OrderIsClosed"
]
}
< /code>
Ich verwende ResourceManager, um lokalisierte Zeichenfolgen abzurufen und habe die Lokalisierung für die gewünschte Sprache konfiguriert. Beim Versuch, auf die lokalisierte Zeichenfolge zuzugreifen, enthält die Antwort jedoch nur die Fehlerschlüssel und nicht die tatsächliche Nachricht. /> Struktur meines Projekts < /p>
Solution
├── Application
│ └── ErrorMessages
│ | ├── ErrorMessages.resx
│ | └── ErrorMessages.uk-UA.resx
| └── OrderService
|
|
└── API
└── Program.cs
< /code>
Program.cs
builder.Services.AddLocalization(options => options.ResourcesPath = "ErrorMessages");
builder.Services.AddSingleton(new ResourceManager("Application.ErrorMessages.ErrorMessages",
typeof(Program).GetTypeInfo().Assembly));
var supportedCultures = new[] { "en-US", "uk-UA" };
var localizationOptions = new RequestLocalizationOptions()
.SetDefaultCulture("en-US")
.AddSupportedCultures(supportedCultures)
.AddSupportedUICultures(supportedCultures);
app.UseRequestLocalization(localizationOptions);
< /code>
orderService < /p>
if (order.IsClosed())
return ServiceResults.Failed(_localizer["OrderIsClosed"].Value);
< /code>
versucht, es mit diesem Code zu testen < /p>
var resourceManager = new ResourceManager("Application.ErrorMessages.ErrorMessages", Assembly.GetExecutingAssembly());
string localizedValue = resourceManager.GetString("OrderIsClosed", new CultureInfo("uk-UA"));
Console.WriteLine($"Direct ResourceManager lookup: {localizedValue}");