Avere una posizione centrale per tutte le tue localizzazioni, sia in vista che in data, è l'approccio migliore a cui riesco a pensare, e questo come ho avuto modo di lavorare. In Startup.cs file dopo l'installazione di pacchetti Nuget per la localizzazione aggiungere il seguente codice
services.AddMvc().AddViewLocalization().AddDataAnnotationsLocalization(options =>
options.DataAnnotationLocalizerProvider = (type, factory) => new StringLocalizer<Resources>(factory));
services.Configure<RequestLocalizationOptions>(options => {
var cultures = new[]
{
new CultureInfo("en"),
new CultureInfo("ar")
};
options.DefaultRequestCulture = new RequestCulture("en", "en");
options.SupportedCultures = cultures;
options.SupportedUICultures = cultures;
});
In questo modo il DataAnnotationLocalizerProvider sarà dalle Risorse. {} Cultura.rex - (Il file di risorse deve avere un modificatore di accesso di codice gen) - presupponendo che nessuna risorsa sarà necessaria per la lingua predefinita e per poter accedere al file di risorse poiché non verrà generato codice e classe vuota con lo stesso nome deve essere creato.
e in _ViewImports.cshtml file di iniettare il seguente
@inject IHtmlLocalizer<Resources> Localizer
facendo questo adesso avete una variabile globale Localizer da utilizzare in una qualsiasi delle viste per scopi di localizzazione.
si possono trovare ulteriori informazioni sul Globalization and localization in ASP.NET Core
fonte
2017-09-11 16:11:33
Sembra strano che gli attributi non convalida non sono localizzati in base a questo nuovo meccanismo di localizzazione nucleo asp.net. Pensi che sia possibile implementarlo anche per gli attributi di non convalida, o c'è una ragione per cui i ragazzi di mvc hanno saltato gli attributi di non validazione? – David
Sono d'accordo, è un po 'strano! Presumo che ci debba essere una ragione per cui hanno deciso di non farlo, ma non ne sono sicuro. Puoi sempre chiedere a GitHub e vedere cosa dicono. – Sock
Ricevo 'Il tipo o lo spazio dei nomi 'MyResources' non è stato trovato '. Cosa mi manca? – Lucius