0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

C#フォームアプリの多言語対応時に自国語リソースが参照されず詰まったメモ

Posted at

TL;DR

C#プロジェクトプロパティ > アセンブリ情報 > ニュートラル言語 が (なし) になってるか確認しよう
image.png

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は、指定されたCultureInfoNeutralCultureと一致する場合、
ローカライズ用アセンブリへの参照を行わない挙動らしい

ニュートラル言語 UICulture 挙動
日本語(日本) ja-JP Form1.resx のみ参照
(なし) ja-JP Form1.resx + Form1.ja-JP.resx を参照

Why it set?

基本的に日本語のアプリだしニュートラルも日本語でええやろ… とかアセンブリ情報入れながら考えてたようなうろ覚え:weary:

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?