アプリケーションをさまざまな国に配布したいので、そのリソースに多言語文字列を埋め込む必要があります。
Visual Studioは、日本語、英語、中国語など、世界の主流言語のリストを提供します。ただし、これらの他に、次の3つのオプションもあります。
"中性";
"ニュートラル(デフォルト)";
「ニュートラル(システムデフォルト)」。
それらの違いは何ですか?
アプリケーションをさまざまな国に配布したいので、そのリソースに多言語文字列を埋め込む必要があります。
Visual Studioは、日本語、英語、中国語など、世界の主流言語のリストを提供します。ただし、これらの他に、次の3つのオプションもあります。
"中性";
"ニュートラル(デフォルト)";
「ニュートラル(システムデフォルト)」。
それらの違いは何ですか?
ここでネイティブリソースについて話していると仮定します(管理対象リソースは別の獣です)
これらの言語IDは、ユーザーがMUIパックを備えた英語バージョンのWindowsを実行していて、簡体字中国語のデフォルト言語を使用していて、 istreamを介してローカルの日本語スレッドを期待するファイルを開く場合に便利です。
リソースローダーに優先言語(CString :: LoadString / LoadStringWなど)がない場合が多くあります。呼び出し元はニュートラルフラグの1つを指定し、FindResourceExが十分に近いものを見つけることを期待します。リソースファイルに(ニュートラル言語でも)完全に一致するものがある場合、リソースが返されます(ええと、LoadStringWはニュートラル言語の悪い例だと思いますが、LoadIconの方がおそらく良いでしょう)、完全に一致するものが見つからない場合、言語が指定されていない場合、複雑なフォールバックプロセスが開始されます。こちらがXP版、こちらがVista版です。
あなたのリソースが攻撃的ではなく、世界中のローカルエンティティの1つに属するもの(特にローカルパーティの旗、ナチスが使用する卍のシンボルを参照)にあまり類似していないとグローバルにレビューされている場合は、中立であることが有益な場合があります。すべての言語でリソースを共有し、スペースを節約できます。ただし、チームがデフォルトのリソースソースとしてローカライズされたサテライトdllに切り替えると、ニュートラルリソースに固執することが難しくなります(AfxSetResourceHandleを参照)。ああ、そしてグローバルレビューは高価です。