最近の記事
- 4/22 - 思い出の紙時計
- 3/29 - さくらインターネットの VPS リニューアル
- 3/19 - SSHD への攻撃を分析してみた
- 3/9 - キーボードの過酷さ
- 3/8 - .NET のパフォーマンスについて
- 3/7 - phpMyAdmin への攻撃
- 3/1 - ミイラ取りがミイラになりかけた
- 2/22 - URL を知らなければ安全だと?
- 2/16 - 決意
- 1/30 - ルーターの UPnP 対応状況
Entering Passive Mode
サテライトアセンブリを使う場合、
ResourceManager は「カルチャ」に従って、
各サテライトアセンブリを検索する。
例えば、スレッドのカルチャが「ja-JP」の場合、
まずは「ja-JP」のサテライトアセンブリを探す。
見つかればそのサテライトアセンブリを読み込む。
もし見つからない場合、フォールバックが行われ、
「ja」のサテライトアセンブリが検索される。
それも見つからなかった場合は、
メインのアセンブリに含まれるリソースが読み込まれる。
つまり、メインのアセンブリは「既定のリソース」となる。
サテライトアセンブリは、独立したアセンブリなので、
メインのアセンブリと別に保守・開発を行うことができる。
これは、大規模プロジェクト等では便利な機能だが、
サテライトアセンブリを作るために、幾つかの手順が必要で、
コマンドラインツールを利用する必要もあり、少し面倒だ。
今日はコードやリソースがそれほど大きくないので、
1 つのプロジェクトの中で全て管理し、
メインとサテライトアセンブリを同時に生成する方法を使う。
ではやってみよう。
まず、日本語のリソースを用意する。
一昨日作ったリソースファイルは日本語なので、
これをサテライトアセンブリ用に名前を変更しよう。
本来の拡張子の前にカルチャの拡張子を追加する。
これは、「ja-JP」用のリソースなので、
「ByteSizeColumn.ja-JP.resx」という名前に変更する。
日本語の場合、言語「ja」に対応する国が「JP」のみなので、
「ByteSizeColumn.ja.resx」としても良い。
この場合、将来「ja-XX」などのカルチャができた場合でも、このリソースは読み込まれることになる。
そして、改めて「ByteSizeColumn.resx」を作る。
これには「既定のリソース」を格納しておく。
まあ、文字列なら英語等を入れておくと良いか。
では、「ByteSizeColumn.resx」には、
以下のように登録することにしよう。
title: 「Byte Size」
description: 「File size in bytes.」
size: 「10」(System.UInt32)
また、次の作業は特に不要だが、参考までに書いておくと、
「ByteSizeColumn.ja-JP.resx」から、
同じ値である size のエントリを削除しても構わない。
リソースのフォールバックは、エントリ毎に行われるので、
ja-JP のサテライトアセンブリが見つかっても、
指定のエントリが見つからなかった場合は、
フォールバックが発生して引き続き検索してくれるからだ。
さて、ビルドしてみよう。
ビルドすると、LoaferShellEx.dll ができる以外に、
ja-JP/LoaferShellEx.resources.dll ができている。
後者がサテライトアセンブリと呼ばれ、
ja-JP のリソースはこちらに格納されている。
サテライトアセンブリは、カルチャ名のフォルダに保存され、
ファイル名は、メインのアセンブリの名前に
resources.dll を追加したものと決められている。
ファイル名が示すとおり、こちらにはロジックは含まれない。
IDE からビルドした場合、リソースとなるファイルの、
後ろから 2 つ目にある拡張子がカルチャを表す場合、
そのカルチャ用のサテライトアセンブリを作成し、
そちらの方に追加してくれるのだ。
ではエクスプローラの詳細表示をしてみよう。
うん、日本語になっている。
次に、エクスプローラを殺し、
日本語のサテライトアセンブリをリネームして、
再度エクスプローラを表示する。
よし、英語で表示された。
このように、サテライトアセンブリを分けることで、
各国版に依存するファイルを別に配布することができるのだ。
.NET のフレームワーク自身もこの方法で多言語化している。
Windows フォルダの下にある、
Microsoft.NET\Framework\v1.1.4322 には、
「JA」フォルダが入っているが、
これは、日本語用のサテライトアセンブリなのだ。
コメント (1 件)
Hey fireball.loafer.jp admin
I wanted to tell you about this website I used with great results, that drives thousands of targeted visitors to your site who are dying to spend money!
You’ve probably already know that creating great content is only half the battle when it comes to running a successful website. The second half of the equation is DRIVING TRAFFIC!
With this service, you can forget about the tedious process of posting backlinks because they do everything for you so you can focus on more important things, like dealing with the flood of traffic to your site!
And that’s not all! this service is SUPER AFFORDABLE and will direct thousands of new visitors to your site in just hours, GUARANTEED!
This is the only service that can skyrocket your page to the top of the search engines!
You can check it out here:
<a href=http://xrumerservice.org>backlink service</a>
Best,
Jason