Come localizzare l’applicazione ASP.NET MVC?

Quale sarebbe la migliore pratica per localizzare la tua applicazione ASP.NET MVC?

Vorrei coprire due situazioni:

  • una distribuzione di applicazioni in IIS che gestirà più lingue
  • una distribuzione di lingue / applicazioni.

Nella prima situazione dovresti andare con qualche tipo di visualizzazione basata su cose come ~ / Visualizza / EN, ~ / Visualizza / FI, ~ / Visualizza / SWE o qualcosa di diverso?

Che dire del secondo caso, solo la configurazione basata sull’applicazione tramite Web.config e indirizzare queste lingue diverse verso URL diversi?

Puoi anche dare un’occhiata qui ASP.NET MVC 2 Guida completa alla localizzazione e ASP.NET MVC 2 Convalida del modello Con la localizzazione queste entrate ti aiuteranno se lavori con ASP.NET MVC 2.

Dovresti localizzare la tua applicazione ASP.NET MVC molto nello stesso modo in cui faresti una classica applicazione Web Form ASP.NET.

Non utilizzeresti pagine / viste diverse per ogni lingua, ma ogni pagina supporterebbe più lingue utilizzando gli assembly satellite.

Puoi dare un’occhiata al blog di Matt Hawley per ulteriori spiegazioni ed esempi.

Sfortunatamente, il codice originale di Matt Hawley non funziona nella versione di ASP.NET MVC. Controlla un post aggiornato: http://blog.eworldui.net/post/2008/10/ASPNET-MVC-Localization-via-View-Engines.aspx

In generale, il processo di localizzazione non è così fluido nel mondo VS 2008 / ASP.NET MVC come nei moduli Web tradizionali. http://www.guysmithferrier.com/post/2009/05/Localizing-ASPNET-MVC.aspx

Dai un’occhiata al progetto MvcStore di Rob Connery. Fa uno screencast che mostra un modo per risolvere il problema della globalizzazione.

http://wekeroad.com/2008/04/24/mvcstore-part-5

Non sono mai stato convinto di gestire la localizzazione all’interno di una forma come suggerisce Elijah: le diverse lunghezze e direzioni possono portare a forms molto complesse o di aspetto diverso.

Sto solo iniziando con MVC, ma adottando il metodo di disaccoppiamento dovresti usare lo stesso controller indipendentemente dalla lingua (trattare la lingua solo come una vista) – questo ti darebbe quindi / Controller / Azione / lingua / modulo

C’è un buon tutorial con l’aggiornamento recente su Come localizzare l’applicazione asp.net mvc che copre tutti gli aspetti inclusa la localizzazione DisplayName, la convalida, l’uso del routing (memorizzazione del nome della cultura nell’URL), problemi con la cache di output e così via … Alex Adamyan Blog – While la mia tastiera piange dolcemente

In realtà siamo andati in un modo completamente diverso con l’override di DataAnnotationsMetadaDataProvider . Qui puoi assicurarti che i valori DisplayNameAttribute siano risolti nella lingua corretta. In realtà si potrebbe anche sbarazzarsi di quell’attributo e risolvere i nomi dei campi solo se questo sarebbe di aiuto.

Ho scritto questo articolo qualche tempo fa. Utilizza un motore di visualizzazione personalizzato. http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/

E un altro tutorial per una soluzione diversa

Esercitazione: creazione della localizzazione ASP.NET MVC con rilevamento della lingua