Pregunta

Background

Un proyecto instala algunos archivos que contienen todos los elementos para definir un UserControl: algún origen de usuario, una CodeCompileUnit para el código del diseñador y un archivo resx. En tiempo de ejecución, estos archivos se compilan en un ensamblaje y las clases son consumidas por nuestra aplicación principal (el ensamblaje solo se actualiza cuando es necesario).

Question

El proyecto debe estar globalizado y, como parte de ese proceso, es necesario proporcionar las localizaciones de estos archivos. Hay dos opciones para permitir la inclusión de archivos resx adicionales para diferentes configuraciones regionales (ya sea dentro de los mismos archivos o como archivos adicionales en paralelo) que se pueden compilar en un ensamblaje satélite para el ensamblaje principal, o para proporcionar una copia de cada archivo completo para cada idioma compatible, compilando el conjunto adecuado para el idioma que se admite.

  • ¿Alguien tiene alguna otra opción que valga la pena considerar?
  • ¿Qué problemas podrían ser inherentes a cualquiera de las soluciones que he propuesto?

Constraints/Disclaimer
Soy consciente de que el escenario no es ideal y que se podrían haber tomado mejores decisiones en algunas áreas (como la globalización desde el principio), pero no se pueden cambiar en este punto del proyecto. Aprecio cualquier consejo, soluciones o pistas que pueda proporcionar. Gracias.

¿Fue útil?

Solución

Crea un conjunto satélite separado para cada cultura. Esto tiene dos beneficios:

  • Puede compilar todos los ensamblajes de una sola vez y tener un archivo definitivo para cada combinación de número de versión y nombre de archivo, en lugar de también según la cultura.
  • Puede tener varios ensamblajes en la misma instalación, y basar el idioma para usarlo en el idioma del sistema, o en la preferencia del usuario, etc. Esto hará que el desarrollo y las pruebas sean mucho más fáciles, ya que no necesitará seguir reconstruyendo y copiando. archivos alrededor solo por cambiar los idiomas.
  • Es cómo .NET i18n está diseñado para funcionar. Si bien no soy un experto en .NET i18n (< lea el libro de Guy Smith-Ferrier, ¡es mi mejor consejo!) En general, encuentro que los marcos funcionan mejor cuando sigue su modelo esperado.

Incluso si la parte final de " compilación del conjunto de satélites " se realiza en tiempo de ejecución (¿puede hacerlo en el momento instalar en su lugar?) al menos aún obtiene las ventajas de la segunda y tercera viñetas. También significa que si alguna vez hace hacer la ruta más normal de suministro de los ensamblajes satélites para comenzar (en lugar de construirlos en la caja del usuario) tendrá menos que cambiar.

Disculpas si he entendido mal la pregunta ...

Otros consejos

Si no planea agregar idiomas adicionales después de la implementación (al menos no sin una actualización de software), entonces me gustaría compilar todos los archivos RESX adicionales en un ensamblaje satelital que incluya. De esa manera, no se pueden editar por el usuario una vez que se implementan.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top