「VC PlusPlus:MUI(Multilingual User Interface)のリソースファイルの作り方 言語別リソース」の版間の差分
(ページの作成:「VC Cpp記事に戻る。 == '''概要''' == MUIに関する情報は[https://learn.microsoft.com/ja-jp/windows/win32/intl/multilingual-user-interface?redirectedfrom=MSDN Microsoft公式の情報]が詳しいです。このSiteでもわかりやすく記事にしようと思っていますが、記事の作成には時間がかかるだろうなと思います。 まず、日本語と英語だけのMUIを作ってみたいと思いま…」) |
(→概要) |
||
25行目: | 25行目: | ||
変更後のMultilingualApp.vcxprojのリソース定義部分の例 | 変更後のMultilingualApp.vcxprojのリソース定義部分の例 | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml" line start="1" highlight="1"> | ||
<ItemGroup> | <ItemGroup> | ||
<MuiResourceCompile Include="Resource\MultilingualApp.en-US.rc"> | <MuiResourceCompile Include="Resource\MultilingualApp.en-US.rc"> |
2024年2月2日 (金) 18:22時点における版
VC Cpp記事に戻る。
概要
MUIに関する情報はMicrosoft公式の情報が詳しいです。このSiteでもわかりやすく記事にしようと思っていますが、記事の作成には時間がかかるだろうなと思います。
まず、日本語と英語だけのMUIを作ってみたいと思います。以下のような形式になります。
プロジェクトの中で言語別にリソースファイル・リソーススクリプトを所持します。ここではMultilingualApp(MultilingualApp.vcxproj)というプロジェクトにMultilingualApp.exeというアプリを作成するものに対して、日本語のリソーススクリプトMultilingualApp.ja-JP.rcと英語のリソーススクリプトMultilingualApp.en-US.rcが用意されているとして説明します。
通常VisualStudioでプロジェクトにリソースを参加させた場合、プロジェクト名と同じリソースが生成されるので手動でリソースファイルの名前を変更したり、コピーを作って、言語に関する部分の変更を加えたリソースファイルを作ったりして、MultilingualApp.ja-JP.rcとMultilingualApp.en-US.rcのようなものを作成する必要があります。
そうして、MultilingualApp.vcxprojの中身を手動で以下のように書き換えます。リソースが複数できるので、リソースはMultilingualApp.vcxprojの階層にResourceっていうフォルダを作り、その中にいれて管理します。
元のMultilingualApp.vcxprojのリソース定義部分の例
<ItemGroup>
<ResourceCompile Include="MultilingualApp.rc" />
</ItemGroup>
変更後のMultilingualApp.vcxprojのリソース定義部分の例
<ItemGroup>
<MuiResourceCompile Include="Resource\MultilingualApp.en-US.rc">
<FileType>Document</FileType>
<MuiCulture Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">en-US</MuiCulture>
<GenerateLanguageNeutralResource Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateLanguageNeutralResource>
<MuiCulture Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">en-US</MuiCulture>
<GenerateLanguageNeutralResource Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateLanguageNeutralResource>
<MuiCulture Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">en-US</MuiCulture>
<GenerateLanguageNeutralResource Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateLanguageNeutralResource>
<MuiCulture Condition="'$(Configuration)|$(Platform)'=='Release|x64'">en-US</MuiCulture>
<GenerateLanguageNeutralResource Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateLanguageNeutralResource>
</MuiResourceCompile>
<MuiResourceCompile Include="Resource\MultilingualApp.ja-JP.rc">
<FileType>Document</FileType>
<MuiCulture Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">ja-JP</MuiCulture>
<MuiCulture Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">ja-JP</MuiCulture>
<MuiCulture Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ja-JP</MuiCulture>
<MuiCulture Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ja-JP</MuiCulture>
</MuiResourceCompile>
</ItemGroup>
と、このようにします。一気に定義が増えましたがResourceCompileタグがMuiResourceCompileタグに変わって、二つのリソースファイル用に
- <MuiResourceCompile Include="Resource\MultilingualApp.en-US.rc">
- <MuiResourceCompile Include="Resource\MultilingualApp.ja-JP.rc">
という二つを定義して、その中に子タグがぶら下がっている感じになっています。
VC Cpp記事に戻る。