misc.log

日常茶飯事とお仕事と

初期状態のSandCastleで日本語が…

初期状態のSandCastleでドキュメントを作ると、こんな警告が…。

[exec] SHFB : warning BE0003: Sandcastle shared content for the 'ja-JP, 
   日本語 (日本)' language could not be found.  Using 'en-US, English (US)' defaults. 
   [C:\Documents and Settings\Administrator\My Documents\Visual Studio 2010
                  \Projects\Sample\DocBuild.shfbproj]


どうやらドキュメント中の、本分ではない見出しその他などの表現が英語のままなのは、日本語のローカライズ設定が無いためらしい……。この辺が役立つのだろうか。

TimberLandChapel's Tech Blog / 【SandcastleSandcastle January 2008 のローカライズ
http://blogs.timberlandchapel.com/blogs/timberlandchapel/archive/2008/03/22/sandcastlelocalize.aspx


で、ここから持ってきたと思われる同僚さんのファイルを使ってローカライズ設定やってみたんだが……ドキュメント生成を行おうとすると……

[exec]   ValidatingDocumentationSources
[exec]   GenerateSharedContent
[exec] SHFB : error BE0020: Unknown field tag: 'FeedbackVisibility' 
                [C:\Documents and Settings\Administrator\My Documents\Visual Studio 2010\Projects\Sample\DocBuild.shfbproj]
[exec]   Failed
[exec]   Build details can be found in C:\Documents and Settings\Administrator\
               My Documents\Visual Studio 2010\Projects\Sample\Help\LastBuild.log
[exec] プロジェクト "C:\Documents and Settings\Administrator\
               My Documents\Visual Studio 2010\Projects\Sample\DocBuild.shfbproj" (既定のターゲット) のビルドが終了しました -- 失敗。


えぇっ……。そりゃそうか。使ったローカライズパッチファイルはバージョン1.6.4.0用。一方、今使っているSandCastleはバージョン 1.9.3.0。使えるタグなどが変わっていても仕方ないだろう。これはやっかいかも。Webで検索してみたが、1.9.3用のこういう便利なものを公開してくれている人は居ないようだ。

FeedbackVisibilityタグがUnkownというエラー

さて、しらべてみると……FeedBackVisibilityという単語が登場しているのは、C:\Program Files\EWSoftware\Sandcastle Help File Builder\SharedContent にある 「VS2005BuilderContent_ja-JP.xml」というファイルの中。これ、今回のローカライズファイルセットに含まれていたファイル。一方、末尾が「-US」の英語版ファイルなどは前からあったことから、これと中身を比較してみると……。


英語版は

<!-- NOTE: The feedback area MUST appear first or it won't show up! -->
<item id="footer"><A NAME="feedback"></A><span id="fb" class="feedbackcss"> </span>
{@FooterText}{@Comments} {@Copyright}</item>


日本語版は

<!-- NOTE: The feedback area MUST appear first or it won't show up! -->
<item id="footer"><A NAME="feedback"></A><span id="fb" class="feedbackcss" {@FeedbackVisibility}> </span>
{@FooterText}{@Comments} {@Copyright}</item>


このspanタグで囲まれた中にある「{@FeedbackVisibility}」が、最新版のSandCastleでは解釈できないのだろう。これを消して-USと同じような記述に変えたところ、次は「ShowFeedbackControl」タグに関しても同じエラーが…。

ShowFeedbackControlタグがUnknownというエラー

これもVS2005BuilderContent_ja-JP.xmlに記述があるので、US版と比較して消してみよう。US版ではここは「false」となっている。この部分、どうやらこのアットマークで始まるのは変数で、動的に指定が可能だったのが固定に変えられた、そんな感じみたい。ここをfalseに変えて再度試してみる。


……できた。

参考

vjedogonia/Sandcastleでヘルプを作ろう 〜Sandcastle Help File Builderで日本語のヘルプを作る
http://vjedogonia.blogspot.com/2010/05/sandcastlesandcastle-help-file-builder.html
SandCastle/Localizing Language Resource Files
http://www.ewoodruff.us/shfbdocs/Index.aspx?topic=html/e2ed6222-c3ee-4c6e-b0f9-fa3c86bc3e2c.htm