Domanda

Qual è il modo migliore per supportare più lingue per l'interfaccia in un ASP.NET applicazione MVC?Ho visto gente usare i file di risorse per altre applicazioni.Questo è ancora il modo migliore?

È stato utile?

Soluzione

Se si utilizza la visualizzazione predefinita di motori, quindi le risorse locali di lavoro in vista.Tuttavia, se avete bisogno di afferrare risorsa stringhe all'interno di un controller di azione, non è possibile ottenere le risorse locali, e devono utilizzare le risorse globali.

Questo ha un senso, se ci pensate, perché le risorse locali sono locali di una pagina aspx e il controller, non hai ancora scelto il tuo vista.

Altri suggerimenti

Ho trovato questa risorsa per essere molto utile

Il suo involucro rotondo il HttpContext.Corrente.GetGlobalResourceString e HttpContext.Corrente.GetLocalResourceString che ti permette di chiamare le risorse, come questo...

// default global resource
Html.Resource("GlobalResource, ResourceName")

// global resource with optional arguments for formatting
Html.Resource("GlobalResource, ResourceName", "foo", "bar")

// default local resource
Html.Resource("ResourceName")

// local resource with optional arguments for formatting
Html.Resource("ResourceName", "foo", "bar")

L'unico problema che ho trovato è che i controllori non hanno accesso a locali tecnici stringhe.

Sì le risorse sono ancora il modo migliore per supportare più lingue .Ambiente di rete.Perché sono facili da riferimento e anche più facile aggiungere nuove lingue.

Site.resx
Site.en.resx
Site.en-US.resx
Site.fr.resx
etc...

Quindi hai ragione comunque utilizzare i file di risorse.

Il Frutteto progetto utilizza un metodo di collegamento denominato "T" per fare tutto ad una pagina di traduzioni della stringa.Così potrai vedere i tag con un @T("Una Stringa da Tradurre").

Ho intenzione di guardare a come questo viene implementato dietro le quinte e magari utilizzarlo in progetti futuri.Il nome breve mantiene il codice di pulitura in quanto verrà utilizzato un sacco.

Quello che mi piace di questo approccio è la stringa originale (in inglese, in questo caso) è ancora facilmente visibile nel codice, e non richiede una ricerca in una risorsa di strumento o da qualche altra parte a decodificare ciò che la stringa effettiva dovrebbe essere qui.

Vedere http://orchardproject.net per ulteriori info.

Alcune delle altre soluzioni di cui si parla, e come risposta non lavoro per la versione rilasciata di MVC (hanno lavorato con le precedenti versioni di alfa/beta).

Ecco un buon articolo che descrive un modo per implementare la localizzazione che sarà fortemente tipizzato e non rompere l'unità di test del controller e viste: guida alla localizzazione per MVC v1

Questa è un'altra opzione, e avrete accesso a CurrentUICulture nel controller:

Controllare MVC3-multi-lingua

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top