もくじ
https://tera1707.com/entry/2022/02/06/144447
やりたいこと
以前の記事で、.resw
ファイルを作成して、WinUI3をローカライズする方法を調べた。
そこでローカライズした後、画面上の文言が翻訳できているか、OSの言語設定を変えて動作確認していたのだが、 そうすると1言語確認するたびにOSのログアウトをしないといけなくて、非常にめんどくさい。
思ったところに意図した文字がでてるか、文字がはみ出してないか、くらいの確認であれば、もっと簡単な方法で、 例えば、コードの頭に指定の言語を書くとかでもいいので、簡単にできないか調べたい。
前提
VisualStudio2022:17.4.4 WindowsAppSDK:1.2.221109.1 パッケージアプリ
やったこと
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride
を使う。
サンプルコード
App.xaml.cs
のAppクラスのコンストラクタに、Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride
の値を入れる処理を入れる。
namespace LaungTest { public partial class App : Application { public App() { this.InitializeComponent(); ApplicationLanguages.PrimaryLanguageOverride = "de"; // ★★コレ } protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args) { m_window = new MainWindow(); m_window.Activate(); } private Window m_window; } }
上記だと、ドイツ語のリソースを使うように設定している。
参考
UWPのローカライズ
https://learn.microsoft.com/ja-jp/windows/uwp/app-resources/localize-strings-ui-manifest
ApplicationLanguages.PrimaryLanguageOverride プロパティ