Skip to main content

Impostare un sito web multi-language con ASP.NET MVC

Premessa

Fin dal giorno della sua prima release il .NET Framework dà la possibilità agli sviluppatori di impostare un qualsiasi progetto – sia esso un Website, una Web Application, un client realizzato con Windows Forms o con il più recente approccio WPF/XAML o altro – in modalità multi-language, ovvero con supporto di localization multiple, mediante l’utilizzo dei cosiddetti Resource Files, contraddistinti dall’estensione .resx. Non è intenzione di questo articolo spiegare l’utilizzo dei Resource Files, per i quali rimandiamo all’ottimo walkthrough ufficiale presente sul sito Microsoft: ci limiteremo a ricordare che, come probabilmente già saprete, lo scopo dei Resource Files è quello di immagazzinare in un array di chiavi/valori una serie di elementi di testo e/o immagini per ciascuna lingua supportata dall’applicazione: per ottenere questo risultato lo sviluppatore non deve far altro che creare un Resource File per la lingua predefinita (ad es. l’inglese) e poi un Resource File per ciascuna lingua, utilizzando lo stesso nome del file originario con l’aggiunta del codice ISO 639-1 (two-letters language code) e, se necessario, il codice ISO 3166-1 (two-letters country code) ad essa relativi. Sarà quindi possibile, ad esempio, creare:

  • un Global.resx per immagazzinare i testi nella lingua predefinita
  • un Global.it.resx contenente le medesime chiavi con i testi tradotti in lingua italiana
  • un Global.de.resx contenente le medesime chiavi con i testi tradotti in lingua tedesca

e così via. Una volta fatto questo, sarà sufficiente utilizzare le chiavi impostate in questi file in luogo dei testi veri e propri (per sapere come, leggete il walkthrough di cui sopra): il Framework .NET penserà automaticamente a cercare la chiave nei vari Resource File, partendo da quello con l’estensione più vicina alla Localization impostata sul thread corrente e procedendo a ritroso fino a quello relativo alla lingua predefinita.

A conti fatti, si tratta di una funzionalità davvero niente male. Vediamo come utilizzarla per rendere multi-language una Web Application basata su ASP.NET MVC.

Approfondisci

Close