Domanda

Esistono diverse domande su questo sito relative a come accedere ai file RESX in un'applicazione ASP.NET MVC e alle best practice di usarli.

Tuttavia dopo aver letto (per la prima volta potrei aggiungere) il MSDN articolo sulle risorse Mi chiedo se ci siano dei vantaggi nell'usare i file RESX dato che non userò i controlli del server. C'è tutto questo parlare di localizzazione "implicita" ed "esplicita", ma non ne trarrò beneficio con MVC.

Alla fine la mia applicazione avrà bisogno di risorse di stringa per pulsanti e voci di menu e anche di elementi HTML molto più lunghi per contenuti più lunghi. Vorrei usare un CMS per gli elementi più lunghi, perché sono abbastanza sicuro di non voler andare incollandoli in un file RESX.

Esistono motivi validi per utilizzare o meno le risorse ASP.NET in una nuova applicazione. Presumo che eventuali futuri miglioramenti di MVC o RESX funzioneranno in armonia insieme, ma per ora sto solo ottenendo un glorificato IDictionary per quanto posso vedere.

Devo procedere con RESX o cercare altrove? Dovrei anche prendere in considerazione un CMS per i tipi di risorse per cui RESX è progettato?

Eventuali lezioni apprese sarebbero apprezzate.

È stato utile?

Soluzione

Ci sono un paio di vantaggi nell'infrastruttura RESX:

  • non è necessario caricare le risorse per lingua appropriate. Una volta stabilita la localizzazione del thread, CLr si occupa di trovare l'assembly appropriato e caricare le risorse.
  • è facile distribuire le risorse specifiche della locale per localizzazioni a terzi.
  • esiste un meccanismo di fallback predefinito per risorse non localizzate.

C'è anche uno svantaggio particolare nell'approccio RESX:

  • è difficile supportare il modello di traduzione in cui gli utenti traducono le tue risorse per te.

Vorrei approfondire un po 'questo ultimo punto. Prendiamo ad esempio il modello di traduzione di Facebook. Facebook ha un modo abbastanza semplice per le persone di fornire e votare traduzioni di varie risorse. Se questi sono memorizzati in un database, sarebbe possibile usarli dopo il corretto processo editoriale senza ricostruire e ridistribuire l'applicazione. Con il modello RESX, gli assiemi di risorse dovranno essere ricostruiti e ridistribuiti, il che potrebbe avere costi abbastanza elevati a seconda del processo di distribuzione.

Pertanto, prima di decidere quale processo di localizzazione utilizzare, esaminerei la decisione di chi eseguirà la localizzazione e quale sarebbe il processo di distribuzione per le risorse localizzate dopo che l'applicazione principale è già stata distribuita.

EDIT: Ho dimenticato di menzionare che queste considerazioni sono ortogonali alla scelta del framework ASP.NET (MVC o WebForms).

Altri suggerimenti

Direi " yes " ;, i file resx sono ancora una buona opzione per le nuove applicazioni. In particolare, non credo che ASP.NET MVC cambi nulla nell'archiviazione delle stringhe.

La cosa fantastica dell'utilizzo delle risorse è

  • sono abbastanza facili da gestire
  • localizzare il tuo sito è un compito molto più semplice che senza risorse (e sottolineo molto più facile)
  • è possibile sostituire l'archivio risorse in qualsiasi momento poiché le risorse utilizzano il modello del provider. Puoi cambiare i file resx per le voci db senza cambiare l'implementazione del tuo sito.

Raccomando file di risorse per " stringhe di sito " che sono diversi dai grandi blocchi di dati che è possibile modificare su base frequente. Quindi per una raccomandazione completa, direi di utilizzare i file di risorse (resx per iniziare) per pulsanti, etichette, ecc. E un CMS per i contenuti carnosi.

Se si intende utilizzare Resx e non utilizzare i controlli server come in MVC, perché non estendere i metodi Helper MVC in modo da poter creare etichette e testo localizzati? Quindi chiama semplicemente il testo dalla risorsa nel metodo helper.

es. '<% = Html.CultureLabel (" ResouceId ")% >'

o '<% = Html.CultureButton (" Nome ", " ResouceId " ;, HtmlButtonType.Button)% >'

Solo un pensiero.

Anche gestire la globalizzazione di un sito è MOLTO più semplice con resx per il testo.

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