ヨーロッパ製のGPLライセンスのFIAT用スキャンツールを海外日本語化しようと取組んでいます。言語はC#。他WEB記事を拝見すると、日本語 と、日本語(日本) の2つが見られました。Visual Stdio の form プロパティ の Language からはどちらも選べるようになっています。
![](https://motoplus4.com/blog/wp-content/uploads/2024/01/cjpn1.png)
![](https://motoplus4.com/blog/wp-content/uploads/2024/01/cjpn2-1.png)
どちらかデフォルトなのでしょうか? リソースは同じProject内で両方生成できてしまうため、日本語OS上で動作させるとき、どちらをリーソースの作成対象なのか知る必要があります。
いずれを選ぶかによって、以下のように生成される情報がかわります。
選択 | 日本語 | 日本語(日本) |
Culture名 | jp | ja-JP |
Formリソースファイル | .jp.resx | .ja-JP.resx |
共通リソースファイル | Lang.jp.resx | Lang.ja-JP.resx |
リソースdllファイル | ja\*.resources.dll | ja-JP\*.resources.dll |
以下のコードを挿入し、日本語での Culture (カルチャ Win32APIでいうロケールと同意 )を確認してみます。挿入箇所はだいたいどこでもいいようです。
using System.Diagnostics;
(中略)
Debug.Print( "OS Lang=" + System.Threading.Thread.CurrentThread.CurrentCulture );
Windows11日本語にて、デバッグビルドで実行すると、日本語(日本) のようですね。
![](https://motoplus4.com/blog/wp-content/uploads/2024/01/cjpn3.png)
こういう時はテストProjectを作り試すのが一番です。日本語 と、日本語(日本) の2つを追加して試すとの以下のようになりました。
![](https://motoplus4.com/blog/wp-content/uploads/2024/01/cjpn4.png)