もくじ
https://tera1707.com/entry/2022/02/06/144447#WinUI3
やりたいこと
下記のページのやり方で、WinUI3でローカライズできることが分かった。
https://tera1707.com/entry/2022/03/24/224855
分かったのだが、ローカライズのためにResource.reswに書いた文言は、どこに出力されているのか?知りたい。
結論
色々調べた限り、下記だった。
パッケージPJでパッケージ&インストールしたアプリの場合
パッケージの中のresources.priに入る。
中身は、ただダブルクリックするだけでは開けない(中身が見れない)が、makepri.exeというツールを使えば見れる。
VisualStudioInstallerで、UWP開発ツール一式を入れると入るらしい。
下記のファイルに対して、

こういうコマンドを、開発者コマンドプロンプトで実行する。
makepri.exe dump /if resources.pri /of aaa.xml

/ifは、見たいpriファイル。
![]()
/ofは、出力ファイル。priの中身をxmlとして出すファイル。
![]()
上記だと、aaa.xmlに、下記のような感じでソースの値が含まれる。
<ResourceMapSubtree name="Resources">
<NamedResource name="SimpleText" uri="ms-resource://40a02821-ea29-4b39-90c3-aec0996185b4/Resources/SimpleText">
<Candidate qualifiers="Language-JA-JP" type="String">
<Value>単純な文字列リソース</Value>
</Candidate>
<Candidate qualifiers="Language-EN-US" isDefault="true" type="String">
<Value>c</Value>
</Candidate>
</NamedResource>
<ResourceMapSubtree name="MyButton">
<NamedResource name="Content" uri="ms-resource://40a02821-ea29-4b39-90c3-aec0996185b4/Resources/MyButton/Content">
<Candidate qualifiers="Language-JA-JP" type="String">
<Value>ボタン名称</Value>
</Candidate>
<Candidate qualifiers="Language-EN-US" isDefault="true" type="String">
<Value>b</Value>
</Candidate>
</NamedResource>
<NamedResource name="Height" uri="ms-resource://40a02821-ea29-4b39-90c3-aec0996185b4/Resources/MyButton/Height">
<Candidate qualifiers="Language-JA-JP" type="String">
<Value>50</Value>
</Candidate>
<Candidate qualifiers="Language-EN-US" isDefault="true" type="String">
<Value>150</Value>
</Candidate>
</NamedResource>
<ResourceMapSubtree name="[using:Microsoft.UI.Xaml.Automation]AutomationProperties">
<NamedResource name="Name" uri="ms-resource://40a02821-ea29-4b39-90c3-aec0996185b4/Resources/MyButton/[using:Microsoft.UI.Xaml.Automation]AutomationProperties/Name">
<Candidate qualifiers="Language-JA-JP" type="String">
<Value>添付プロパティ文言</Value>
</Candidate>
<Candidate qualifiers="Language-EN-US" isDefault="true" type="String">
<Value>tenpu</Value>
</Candidate>
</NamedResource>
</ResourceMapSubtree>
</ResourceMapSubtree>
<ResourceMapSubtree name="MyStackPanel">
<NamedResource name="Background" uri="ms-resource://40a02821-ea29-4b39-90c3-aec0996185b4/Resources/MyStackPanel/Background">
<Candidate qualifiers="Language-JA-JP" type="String">
<Value>Black</Value>
</Candidate>
<Candidate qualifiers="Language-EN-US" isDefault="true" type="String">
<Value>red</Value>
</Candidate>
</NamedResource>
</ResourceMapSubtree>
<ResourceMapSubtree name="MyTextBlock">
<NamedResource name="Text" uri="ms-resource://40a02821-ea29-4b39-90c3-aec0996185b4/Resources/MyTextBlock/Text">
<Candidate qualifiers="Language-JA-JP" type="String">
<Value>テキストブロック文言</Value>
</Candidate>
<Candidate qualifiers="Language-EN-US" isDefault="true" type="String">
<Value>a</Value>
</Candidate>
</NamedResource>
</ResourceMapSubtree>
<ResourceMapSubtree name="PackResource">
<NamedResource name="Text" uri="ms-resource://40a02821-ea29-4b39-90c3-aec0996185b4/Resources/PackResource/Text">
<Candidate qualifiers="Language-JA-JP" type="String">
<Value>パックリソース1</Value>
</Candidate>
<Candidate qualifiers="Language-EN-US" isDefault="true" type="String">
<Value>PackResource1</Value>
</Candidate>
</NamedResource>
</ResourceMapSubtree>
下記のように、WinUI3のexeのプロジェクトと、パッケージのプロジェクトそれぞれにリソースを持たせて、パッケージをビルドすると、上のファイルのように、パッケージのプロジェクトの中のresources.priの中に、全部のPJのリソースが入る。

WinUI3単品で起動できるようにしたアプリの場合
下記の記事で試した、WinUI3単品で起動できるようにする方法でも、同じ方法でローカライズできた。
WinUI3プロジェクトをビルドしたexeを直叩きで起動する
https://tera1707.com/entry/2022/02/27/223359
WinUI3でSelfContained=trueでビルドすると出るエラー対処 その1
https://tera1707.com/entry/2022/03/19/000916
WinUI3でSelfContained=trueでビルドすると出るエラー対処 その2
https://tera1707.com/entry/2022/03/19/004221
WinUI3でSelfContained=trueでビルドすると出るエラー対処 その3
https://tera1707.com/entry/2022/03/19/010307
その場合は、出力先に、<プロジェクト名>.priという名前で、priができる。
上の実験コードのPJだと、下記のようになる。

そのpriをmakepri.exe dumpをすると、同じように、その中にリソースがあることが見れる。
※当然、そのPJの中にある各言語のResources.reswの内容のみが含まれる。パッケージPJの分は含まれない。
参考
makepri.exe
https://learn.microsoft.com/en-us/windows/uwp/app-resources/compile-resources-manually-with-makepri
makepri.exe dump コマンド
https://learn.microsoft.com/en-us/windows/uwp/app-resources/makepri-exe-command-options#dump-command
WinUI3でSelfContained=trueでビルドすると出るエラー対処 その1 https://tera1707.com/entry/2022/03/19/000916
WinUI3でSelfContained=trueでビルドすると出るエラー対処 その2 https://tera1707.com/entry/2022/03/19/004221
WinUI3でSelfContained=trueでビルドすると出るエラー対処 その3 https://tera1707.com/entry/2022/03/19/010307