Question

Le projet est une application GNOME et non ASP.NET. Je dois charger un fichier welcome.html dans la page principale de l'interface utilisateur. Tout comme le fait MonoDevelop. Mais je ne sais pas comment créer des versions internationales qui se chargeront par localité. Et je ne sais pas comment le regrouper dans le binaire en utilisant une sorte de gestion des ressources.

Était-ce utile?

La solution

MonoDevelop utilisait HTML pour la page d'accueil, mais à l'époque (il y a environ 18 mois), nous avons découvert qu'un navigateur Web GTK + constituait une dépendance délicate pour une utilisation multiplate-forme. Nous sommes donc passés à GTK # avec un arrière-plan personnalisé. rendu.

Cela dit, il est assez facile d'utiliser HTML avec Webkit-GTK & amp; le Webkit # wrapper. Créez un widget WebKit.WebView, puis utilisez la méthode LoadHtml pour charger le code HTML à partir d'une chaîne.

La lecture d'une ressource texte incorporée à partir d'un assemblage est assez facile:

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

Ceci lira une ressource incorporée avec l'argument / res: FILE [, ID] du compilateur C # ou en utilisant la "ressource incorporée". construire des actions dans MonoDevelop. Vous pouvez définir l'ID de la ressource dans MD à l'aide du pavé numérique si vous n'aimez pas les valeurs par défaut.

La localisation est plus délicate. La " manière .NET " consisterait à utiliser des assemblages satellites localisés contenant des ressources localisées. Cependant, dans MD, nous avons utilisé un fichier XSLT pour convertir un fichier XML en HTML. Nous pourrions ensuite localiser le fichier XML assez facilement, en utilisant Gettext et les classes XML DOM.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top