たこぜりー研究室

大腸菌DNAは4.64Mbp。酵母は13Mbpで、ヒトは3Gbp

スポンサーサイト

#
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Silverlight 2 のローカライゼーション #4

#503
前回 : Silverlight 2 のローカライゼーション #3

えらく放置していたがこれで手を打った。

まず、新しい Silverlight アプリケーションのプロジェクトを作成。
ホストするサイトに追加する。

Resources.ja.resx をそのプロジェクトに移動。
App.xaml とか既定のアイテムはほとんど削除。
参照設定も mscorlib のみ。
当然 [assembly: AssemblyCulture("ja")] 。

配置の方法は 2 つあって、

1. サイト側で「構成固有のフォルダへのコピー」を有効にする。そして、xap を置いておきたいフォルダ名を構成名にする。
2. Silverlight ビルドオプションで xap ファイル名を変える。

で自動化。

読み込みは Startup イベント時に
private void OnStartup(object sender, StartupEventArgs e)
{
  WebClient wc = new WebClient();
  wc.OpenReadCompleted += OnStartupAfter;
  wc.OpenReadAsync(
    new Uri("ja/App.xap", UriKind.Relative));
}

private void OnStartupAfter(object sender,
  OpenReadCompletedEventArgs e)
{
  if (e.Error == null && !e.Cancelled)
  {
    StreamResourceInfo xap = new StreamResourceInfo(
      e.Result, "application/x-silverlight-app");
    StreamResourceInfo dll =
      Application.GetResourceStream(xap,
      new Uri("ja/App.resources.dll", UriKind.Relative));

    AssemblyPart part = new AssemblyPart();
    part.Load(dll.Stream);
  }
  this.RootVisual = new Page();
}

これで東アジア言語をサポートしていない環境でも動いてくれる。

コメント


コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURL:  http://takojelly.blog2.fc2.com/tb.php/503-58ba6d5a
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。