読者です 読者をやめる 読者になる 読者になる

XMLドキュメントコメントを多言語で書きたい

C#

のですが、いい方法はないものか・・・・。
<summary>とかのタグにlang="ja"とかあったらなあと思いましたが、あるわけもなく。


思いついたのはこんな方法です。

#if LANG_JP
/// <summary>
/// 日本語
/// </summary>
/// <param name="n">正の数</param>
#elif LANG_DE
/// <summary>
/// Deutsch
/// </summary>
/// <param name="n">eine positive Zahl</param>
#elif LANG_FR
.....
#else
/// <summary>
/// English
/// </summary>
/// <param name="n">a positive number</param>
#endif
double mysqrt(int n)
{
   return Math.Sqrt(n);
}

日本向けにコンパイルするときは #define LANG_JP をしておきます。特に無ければデフォルトでは英語になります。

この#defineのやり方には、ソースコード中で記述する方法と、csc.exeの引数で /define:LANG_JP を与えるという2つの方法があります。後者の方法をVisual Studioで行う場合は、プロジェクトのプロパティを開き、ビルドのタブを開くとそれらしいのが見つかると思います。

但し、ビルドの際にそこを書き換えて切り替えるのでは面倒なので、構成マネージャから新しく「Release JP」のような名前で新しい構成を作っておき、その構成でコンパイルした時のみLANG_JPが定義されるようにしておくとよいでしょう。


かなり見づらいのですが、致し方ないのかなあと思います。Visual Studioなら普段は関係ない言語は畳んでおけば、あまり気にならないかもしれません。