2016-02-16 26 views
8

Ho impiegato circa una settimana per capire come funzionerà la localizzazione in ASP.NET Core 1.0. Ho provato molte opzioni, ma non riesco a farlo funzionare.ASP.NET 5 (MVC 6) - Localizzazione risorse

Ho letto circa il bug in Visual Studio, ho letto tutti gli articoli su come sta funzionando in questo momento (Article1, Article2, Article3) e ho controllare e testato tutto sulla example nella Gazzetta GitHub Repository.

mio obiettivo:

Voglio solo fare che funziona come ho fatto in ASP.NET MVC 5.

Ho configurato il mio Startup.cs come questo:

Configura Sezione:

var requestLocalizationOptions = new RequestLocalizationOptions 
      { 
       // Set options here to change middleware behavior 
       SupportedCultures = new List<CultureInfo> 
       { 
        new CultureInfo("en-US"), 
        new CultureInfo("es-ES") 
       }, 
       SupportedUICultures = new List<CultureInfo> 
       { 
        new CultureInfo("en-US"), 
        new CultureInfo("es-ES") 

       } 
      }; 

      app.UseRequestLocalization(requestLocalizationOptions, defaultRequestCulture: new RequestCulture("en-US")); 

Configurare Servizi Sezione:

// Add MVC services to the services container. 
      services 
       .AddMvc() 
       .AddViewLocalization(options => options.ResourcesPath = "Resources") 
       .AddDataAnnotationsLocalization(); 

Nelle mie risorse di cartelle, ho i miei file resx. L'ho copiato dall'esempio ufficiale, ma in nessun modo ... Nessun errore, semplicemente non funziona.

Se provo l'esempio di localizzazione del Repo ufficiale, funziona. Ma non posso modificare per adattarmi a MVC 6.

Ho creato un repository su GitHub per il mio codice e lo testò. (https://github.com/chemitaxis/Localization.StackOverflow)

Qualcuno può aiutarmi per favore? Penso che molte persone stiano avendo questi problemi.

Grazie !!

risposta

5

Ok, l'ho risolto ... aggiornerò il mio esempio su GitHub domani.

Ho creato un _ViewImports, e aggiungerlo:

@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers" 
@using System.Threading.Tasks 
@using AspNet5Localization 
@using AspNet5Localization.Resources 
@using Microsoft.AspNet.Mvc.Localization 
@using Microsoft.Extensions.Localization 
@inject IStringLocalizer<AmazingResource> SR 

Dopo, ho creato un HomeController e Vista/Home/Index.cshtml file.

Come ho iniettato nelle mie Visualizzazioni in _ViewImports il IStringLocalizer SR posso usarlo nel mio rasoio Visualizzazioni utilizzando solo:

@SR["Name"] 

Non so se è il modo migliore per farlo, ma funziona. Se qualcuno può spiegare il modo migliore per farlo, per favore rispondi a questa domanda.

completa soluzione di lavoro: https://github.com/chemitaxis/Localization.StackOverflow

Grazie.

+0

Questo era esattamente quello che stavo cercando. Ho provato a eseguire l'esempio per RC2 https: // github.com/damienbod/AspNet5Localization/tree/rc2 dove comunque non ho potuto gestire. Ho avuto problemi relativi alla versione rc2 di dnx. Sei riuscito a eseguire questa versione? – feradz

+0

Non ancora ... lo farò dopo. Aggiornerò il nuovo ramo – chemitaxis

+0

Puoi aggiungere la localizzazione di esempio con annotazioni di dati. Ho provato '[Required (ErrorMessageResourceName =" Name_is_required ", ErrorMessageResourceType = typeof (PersonalInfo))] [MaxLength (Constants.MaxNameLength)] public string Nome {get; impostato; } 'ma non funziona. – feradz

Problemi correlati