Internazionalizzazione delle applicazioni in ASP.NET MVC

di Moreno Gentili, in ASP.NET MVC 5,

Quando si parla di internazionalizzazione di un'applicazione web, di solito si sottointendono due attività principali:

  • La localizzazione dei testi, che riguarda sia la traduzione che l'adeguamento delle frasi affinché risultino naturali per un utente madrelingua;
  • La globalizzazione delle form di inserimento dati, che consentiranno all'utente di digitare numeri e date nel formato che è abituato ad usare.

In questo articolo affronteremo questi due aspetti a livello prettamente tecnico ma dobbiamo esser consci che il modo in cui l'applicazione si presenta al mondo incide in maniera determinante anche sul successo del prodotto o del servizio che il nostro cliente intende presentare al mercato globale.

Coinvolgere positivamente nuovi bacini di utenti richiede un certo grado di conoscenza delle loro abitudini, spesso molto diverse dalle nostre. La Compagnia Delle Opere ci aiuta a capire l'importanza della questione nel proprio e-book Svilupparel'impresa. Si legge infatti:

Prima di investire in una qualsiasi modalità di internazionalizzazione, si devono capire la società e il mercato diriferimento. La cultura di ciascun Paese è diversa. [...] Una reale conoscenza dei mercati e dei clienti attuali o potenziali crea anche le basi per la definizione di una strategia commerciale adeguata al proprio prodotto o servizio e per la cura dell'immagine, più che mai decisiva per il riconoscimento desiderato.

Si evince che l'intera operazione non può ridursi al tradurre testi ed accettare date in altri formati, ma l'internazionalizzazione è un'attività che deve mettere in grado l'applicazione di guadagnarsi lafiducia di tutti gli utenti, che devono perciò essere al centro di questo processo.

Dopo questa doverosa introduzione, ci si presenta l'occasione per provare degli accorgimenti tecnici che ci permetteranno di internazionalizzare la nostra applicazione web. Si tratta di una buona opportunità per vederedi nuovo applicate le peculiarità di ASP.NET MVC che abbiamo già esaminato in altri script ed articoli come Global Filters, Routing constraints, Helpers personalizzati, Model binding, impostazione della Culture e così via. Andiamoad iniziare!

Creare risorse nelle varie lingue

Iniziamo con qualcosa di familiare ed andiamo a predisporre la nostra applicazione affinché possa visualizzare testi in varie lingue.

ASP.NET ci mette a disposizione un meccanismo basato su Resources File, ovvero contenitori di stringhe, immagini ed altri contenuti binari localizzati per una Culture specifica. Con Visual Studio possiamo avvalerci di un editor che, per ogni risorsa, ci permette di indicare il nome, il suo valore localizzato, ed un eventuale commento che ne chiarisca l'ambito di utilizzo.

Figura 1

Aggiungere un Resources File al nostro progetto è molto semplice: da Visual Studio, aggiungiamo la cartella App_GlobalResources e, facendo tasto destro su di essa, selezioniamo il comando Add > Resourcesfile ed indichiamo un nome arbitrario per il file (ad esempio: Strings).

Il file ha un'estensione .resx e nel nome può contenere un suffisso che ne denoti la Culture di riferimento, ovvero la lingua e il territorio in cui tale lingua viene parlata. In questo esempio supportiamo 3 diverse Culture.

Figura 2

Il runtime tenterà di selezionare il Resources File appropriato alla Culture associata alla richiesta HTTP corrente. Se non dovesse esistere una corrispondenza esatta di lingua e territorio, la selezioneverrà estesa ai Resources File che indicano solamente la lingua, e poi anche al file di default se questo ulteriore tentativo di selezione dovesse fallire.

Ci è consentito creare più Resources File per la stessa combinazione di lingua e territorio, nel caso volessimo raggruppare i nostri valori in diversi contenitori fisici. E' il caso di un Resources File creato per contenere i valori destinati alla parte pubblica del sito ed uno per la parte privata riservata agli amministatori.

Accedere ai valori contenuti nei Resources File

Ogni nome definito nel Resources File viene esposto come proprietà di una classe statica generata dal compilatore. Digitiamo quanto segue per accedere ai valori in maniera fortemente tipizzata, con il pienosupporto all'intellisense di Visual Studio.

Figura 3

Il valore verrà automaticamente tratto dalla risorsa appropriata.

6 pagine in totale: 1 2 3 4 5 6
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Top Ten Articoli

Articoli via e-mail

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

In primo piano

I più letti di oggi

In evidenza

Misc