HTMLファイルをMonoDevelopプロジェクトの一部にするにはどうすればよいですか?
質問
このプロジェクトは、ASP.NETではなくGNOMEアプリケーションです。 welcome.htmlファイルをUIのメインページに読み込む必要があります。 MonoDevelopと同じように。しかし、ローカリティに基づいてロードされる国際版を作成する方法を知りません。そして、何らかのリソース管理を使用してバイナリにバンドルする方法を知りません。
解決
MonoDevelopはウェルカムページにHTMLを使用していましたが、当時(約18か月前)に、GTK + Webブラウザーがクロスプラットフォームでの使用に厄介な依存関係であることがわかりました。レンダリング。
とは言っても、Webkit-GTK&を使用してHTMLを使用するのは非常に簡単です。 Webkit#ラッパー。 WebKit.WebViewウィジェットを作成し、LoadHtmlメソッドを使用して文字列からHTMLをロードします。
アセンブリから埋め込みテキストリソースを読むのはとても簡単です:
string text;
using (var stream = typeof(SomeTypeInYourAssembly).Assembly.GetManifestResourceStream (resourceId))
using (var sr = new StreamReader (stream))
text = sr.ReadToEnd ();
これは、C#コンパイラー引数/ res:FILE [、ID]で埋め込まれたリソース、または" Embedded Resource"を使用したリソースを読み取ります。 MonoDevelopでアクションをビルドします。デフォルトが気に入らない場合は、プロパティパッドを使用してMDでリソースIDを設定できます。
ローカリゼーションはより複雑です。 「.NETの方法」ローカライズされたリソースを含むローカライズされたサテライトアセンブリを使用します。ただし、MDで行ったことは、XSLTファイルを使用してXMLファイルをHTMLに変換することでした。 GettextおよびXML DOMクラスを使用して、XMLファイルを非常に簡単にローカライズできます。