Domanda

Sfondo

Un progetto installa alcuni file che contengono tutti gli elementi per definire un UserControl: alcune origini utente, CodeCompileUnit per il codice del progettista e un file resx. In fase di esecuzione, questi file vengono compilati in un assembly e le classi vengono utilizzate dalla nostra applicazione principale (l'assembly viene aggiornato solo quando necessario).

Domanda

Il progetto deve essere globalizzato e come parte di quel processo, è necessario fornire localizzazioni di questi file. Due opzioni sono o consentire l'inclusione di file resx aggiuntivi per diverse localizzazioni (all'interno degli stessi file o come file side-by-side aggiuntivi) che possono essere compilati in un assembly satellite per l'assembly principale o per fornire una copia di ogni file completo per ogni lingua supportata, compilando il set appropriato per la lingua supportata.

  • Qualcuno ha altre opzioni che potrebbero valere la pena considerare?
  • Quali problemi potrebbero essere inerenti a una delle soluzioni che ho proposto?

Vincoli / Esonero di responsabilità
Sono consapevole che lo scenario è tutt'altro che ideale e che potrebbero essere state fatte scelte migliori in alcune aree (come la globalizzazione dall'inizio), ma non possono essere cambiate a questo punto del progetto. Apprezzo qualsiasi consiglio, soluzione o guida che puoi fornire. Grazie.

È stato utile?

Soluzione

Crea un assemblaggio satellite separato per ogni cultura. Questo ha due vantaggi:

  • È possibile creare tutti gli assembly in una volta sola e disporre di un file definitivo per ciascuna combinazione di numero di versione e nome file, anziché anche a seconda della cultura.
  • È possibile avere più assembly nella stessa installazione e basare la lingua da utilizzare sulla lingua del sistema o su una preferenza dell'utente, ecc. Ciò renderà lo sviluppo e il test significativamente più semplici, poiché non sarà necessario continuare a ricostruire e copiare file solo per il gusto di cambiare lingua.
  • Ecco come .NET i18n è progettato per funzionare. Sebbene non sia un esperto di .NET i18n ("leggi il libro di Guy Smith-Ferrier" è il mio miglior consiglio!) In genere trovo che i framework funzionino meglio quando segui il loro modello previsto.

Anche se la parte finale di "costruzione dell'assieme satellitare" viene eseguito in fase di esecuzione (puoi farlo al momento della installazione ?) hai comunque almeno il secondo e il terzo vantaggio di proiettile. Significa anche che se mai fai segui il percorso più normale di fornitura degli assiemi satellitari (anziché costruirli sulla scatola dell'utente) avrai meno da cambiare.

Mi scuso se ho frainteso la domanda però ...

Altri suggerimenti

Se non hai intenzione di aggiungere altre lingue dopo la distribuzione (almeno non senza un aggiornamento software), preferirei compilare tutti i file RESX aggiuntivi in ??un assembly satellite che includi. In questo modo, non sono modificabili dall'utente una volta distribuiti.

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