Domanda

Sto sviluppando il mio primo sito multilingue C # e tutto sta andando ok tranne per un aspetto cruciale. Io non sono sicuro al 100% ciò che l'opzione migliore è per la memorizzazione di stringhe (tipicamente singole parole) che verrà tradotto da codice dal mio codice dietro le pagine.

Sulla parte anteriore del sito che sto per utilizzare i file di risorse ASP.NET per la formulazione sulle pagine. Questa parte va bene. Tuttavia, questo sito vi effettuare chiamate XML e le risposte XML sono sempre e solo in inglese. Mi è stato dato un foglio Excel con tutte le parole che verranno restituiti dal XML rotto in diverse lingue, ma non sono sicuro il modo migliore per conservare / accesso queste informazioni. Ci sono circa 80 parole x 7 lingue.

Sto pensando di creare un oggetto dizionario per ogni lingua che viene creato dal mio file Global.asax in fase di esecuzione dell'applicazione e solo tenerlo memorizzato. Il lato positivo per fare questo è che l'oggetto dizionario dovrà solo essere creati una sola volta (fino a IIS riavvia) ed è possibile accedervi da qualsiasi utente, senza bisogno di essere ricostruita, ma il lato negativo è che ho 7 oggetti dizionario costantemente memorizzati nella memoria. Il server è un 64bit Win 2008 con 4 GB di RAM in modo dovrei anche essere interessato a memoria occupata utilizzando questo metodo?

Che ne pensate voi ragazzi sarebbe il modo migliore per conservare / recuperare diverse parole della lingua che sarebbero stati utilizzati da tutti gli utenti?

Grazie per il vostro input.

Rich

È stato utile?

Soluzione

Da quello che dici, siete alla ricerca di 560 parole che devono differire in base locale. Si tratta di una goccia nel mare. Il metodo di file di risorse che avete contemplato è adatto allo scopo e consiglio li utilizzano. Si integrano con i controlli in modo da essere sfruttando al massimo da loro.

Se così fosse vi turbano, si potrebbe avere loro su una cache di scorrimento, vale a dire la cache di 20 minuti, ad esempio scorrimento, ma io non vedo niente di sbagliato con la vostra scelta in questa soluzione.

OMO

Saluti,

Andrew

P.S. hanno una lettura di questo, per vedere come è possibile trovare e associare valori in diversi file di risorse ai controlli e letterali e utilizzare programatically.

http://msdn.microsoft.com/en-us/magazine /cc163566.aspx

Altri suggerimenti

Fino a quando si è a conoscenza degli effetti di farlo allora sì, la memorizzazione di questi dati in memoria sarebbe bene (fino a quando si hanno abbastanza per farlo). Una volta che sapete che cosa è appropriato per l'utente corrente poi lanciandolo in memoria andrebbe bene. Si potrebbe guardare a qualcosa come memcached Win32 o Velocity però di scaricare la memorizzazione a un altro server app. Utilizzare questo anche sulla vostra applicazione locale per il momento in questo modo, quando è il momento di spingere questo a un altro server o crescere la vostra applicazione si ha una chiara separazione degli interessi definiti al vostro livello di cache. E tenere a mente che più lingue che sostengono la roba più si memorizzano nella memoria. Tenete d'occhio la quantità di dati che vengono memorizzati nella memoria sul server app solitario come questo potrebbe diventare schiacciante nel tempo. Inoltre, assicurarsi che i tasti utilizzati siano specifici per la lingua. In caso contrario, si potrebbe scoprire che si archiviano un menu in tedesco di un utente inglese.

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