Come localizzare l'applicazione ASP.NET MVC?


121

Quale sarebbe la best practice per localizzare la tua applicazione ASP.NET MVC?

Vorrei coprire due situazioni:

  • una distribuzione dell'applicazione in IIS che gestirà più lingue
  • una lingua / distribuzione dell'applicazione.

Nella prima situazione dovresti andare con una sorta di cosa basata sulla visualizzazione come ~ / View / EN, ~ / View / FI, ~ / View / SWE o qualcosa di diverso?

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


In alternativa alle viste duplicate, è possibile utilizzare file ResX standard per memorizzare stringhe specifiche della cultura. Sfortunatamente, la gestione e la modifica di questi file, soprattutto da parte dei traduttori, è un po 'scomoda e difficile. Può essere semplificato archiviando le risorse nel database e utilizzando alcuni strumenti di localizzazione esterni. Puoi guardare questa libreria gratuita che fornisce il fornitore di risorse di database: globsite.net/GlobsiteGlobalizationLibrary
Kryszal

Risposte:


72

Si può anche dare uno sguardo qui ASP.NET MVC 2 Localizzazione guida completa e ASP.NET MVC 2 Model Validation con la localizzazione di questi entires vi aiuterà se si lavora con ASP.NET MVC 2.


Grazie per questa risposta aggiornata! Un anno fa ho utilizzato l'approccio di Matt Hawley ma ho avuto seri problemi con i test unitari. Ho provato a deridere il contesto del controller, ma mancava ancora qualcos'altro e ho rinunciato. Seguirò questo modo MVC2 e spero che l'abbiano capito.
Lauri Larjo

Ho usato questo approccio nei miei progetti, dovrei dire che questo approccio è migliore.
fyasar

@fyasar ciao, abbiamo un sito web per lo shopping in asp mvc, quindi quando l'utente seleziona la lingua araba, vogliamo rendere l'intero sito arabo, possiamo usare microsoft bing traduttore o microsoft traduttore API o dovrei acquistare localize.js per ottenere questo veloce ?
Shaijut

22

Localizzereste la vostra applicazione ASP.NET MVC in modo molto simile a una classica applicazione Web Form ASP.NET.

Non useresti pagine / visualizzazioni diverse per ogni lingua, ma ogni pagina supporterebbe più lingue utilizzando assembly satellite.

Puoi guardare il post del blog di Matt Hawley per ulteriori spiegazioni ed esempi.




2

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 forme molto complesse o dall'aspetto sfocato.

Sto solo iniziando con MVC, ma adottando il metodo di disaccoppiamento che vorresti utilizzare lo stesso controller indipendentemente dalla lingua (trattando la lingua solo come una visualizzazione) - questo ti darebbe / Controller / Azione / lingua / modulo



1

In realtà siamo andati completamente diversi con l'override di DataAnnotationsMetadaDataProvider . Qui puoi assicurarti che i valori DisplayNameAttribute siano risolti nella lingua corretta. In realtà potresti persino sbarazzarti di quell'attributo e risolverlo per nomi di campo solo se questo fosse d'aiuto.


0

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


1
Sebbene il tuo articolo possa in effetti rispondere alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento come riferimento. Stack Overflow è utile quanto le sue domande e risposte e se l'host del tuo blog non funziona o i tuoi URL vengono spostati, questa risposta diventa inutile. Grazie!
sarnold

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.