Pregunta

El proyecto es una aplicación de GNOME, no un ASP.NET. Necesito cargar un archivo welcome.html en la página principal de la interfaz de usuario. Justo como lo hace MonoDevelop. Pero no sé cómo hacer versiones internacionales que se cargarán según la localidad. Y no sé cómo agruparlo en el binario utilizando algún tipo de gestión de recursos.

¿Fue útil?

Solución

MonoDevelop solía usar HTML para la página de bienvenida, pero en ese momento (hace unos 18 meses) descubrimos que un navegador web GTK + era una dependencia incómoda para el uso multiplataforma, así que cambiamos a GTK # simple con algunos antecedentes personalizados renderizado.

Dicho esto, es bastante fácil usar HTML usando Webkit-GTK & amp; el contenedor Webkit #. Cree un widget WebKit.WebView, luego use el método LoadHtml para cargar HTML desde una cadena.

Leer un recurso de texto incrustado de un ensamblaje es bastante fácil:

string text;
using (var stream = typeof(SomeTypeInYourAssembly).Assembly.GetManifestResourceStream (resourceId))
    using (var sr = new StreamReader (stream))
        text = sr.ReadToEnd ();

Esto leerá un recurso incrustado con el argumento / res del compilador de C #: FILE [, ID] o usando el " Recurso incrustado " construir acción en MonoDevelop. Puede configurar la ID del recurso en MD usando el teclado de propiedad si no le gusta el valor predeterminado.

La localización es más complicada. La forma ".NET" sería utilizar conjuntos de satélites localizados que contengan recursos localizados. Sin embargo, lo que hicimos en MD fue utilizar un archivo XSLT para convertir un archivo XML a HTML. Entonces podríamos localizar el archivo XML con bastante facilidad, usando Gettext y las clases XML DOM.

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