TL;DR
C#プロジェクトプロパティ > アセンブリ情報 > ニュートラル言語 が (なし)
になってるか確認しよう
Environments
- Microsoft Visual Studio Community 2022 (64 ビット) - Preview
Version 17.3.0 Preview 2.0 - .Net framework 4.8
What happened
C#フォームプロジェクトをある程度作成進めた後、UIの日本語表示対応に手を付けようとして
Form1.ja-JP.resx
を追加しフォームエディタでも日本語が表示されていて安心していたが、
いざ実行するとニュートラル用のForm1.resx
の値しか参照してくれなかった
ja-JP.resx等の追加の仕方は ReMIXのブログ 様を参考にしました
フォームエディタ上ではこちらの想定通り日本語が表示されてしまう ため原因把握に時間がかかった
How to resolve
プロジェクトのプロパティから、アセンブリ情報 > ニュートラル言語 が 日本語(日本)
になっていたので
なし
に変更したら正しく読めるようになった
どうやらResourceManager
は、指定されたCultureInfo
がNeutralCulture
と一致する場合、
ローカライズ用アセンブリへの参照を行わない挙動らしい
ニュートラル言語 | UICulture | 挙動 |
---|---|---|
日本語(日本) | ja-JP |
Form1.resx のみ参照 |
(なし) | ja-JP |
Form1.resx + Form1.ja-JP.resx を参照 |
Why it set?
基本的に日本語のアプリだしニュートラルも日本語でええやろ… とかアセンブリ情報入れながら考えてたようなうろ覚え