WSJT-X Improved 3.2 / 260908で日本語メニューが英語で起動する場合の対処と原因 ― 2026年09月10日 07時48分31秒
WSJT-X Improved 3.2 / 260908で日本語メニューが英語で起動する場合の対処と原因
WSJT-X Improved 3.2.0 260908 AL PLUSを使用した日本人ユーザーから、 「これまで日本語だったメニューが英語表示になった」という問い合わせがありました。
同様の事象は別の日本人ユーザーでも確認されており、 日本語表示そのものが失われたわけではなく、起動時の言語選択の挙動が変わっていることが分かりました。
先に結論:日本語で起動する方法
260908で日本語GUIを使用したい場合は、起動時に次のオプションを付けます。
--language=ja
たとえばWindowsのショートカットを使用している場合は、「リンク先」の実行ファイル名の後ろに半角スペースを入れて、
"C:\WSJT\wsjtx\bin\wsjtx.exe" --language=ja
のようにします。 実際のインストール先は各自の環境に合わせてください。
この方法で260908でも正常に日本語表示になることを、複数の日本人ユーザーで確認しています。
260818と260908を同じPCで比較
原因を切り分けるため、私自身の日本語Windows環境で260818と260908を同じPC上でA/Bテストしました。
- 260818:言語オプションなし → 日本語で起動
- 260908:言語オプションなし → 英語で起動
- 260908:
--language=ja→ 日本語で起動
少なくとも私の環境では、260818と260908の間で、 「言語を明示指定しなかった場合のデフォルト動作」 が変わっていることが確認できました。
ソースを比較すると原因が見つかりました
そこで260818と260908の完全ソースを比較しました。
直接の違いは wsjtx/main.cpp にありました。
260818では次のようになっています。
L10nLoader l10n {&a, locale, parser.value (lang_option)};
この場合、--language が指定されていなければ空の値がそのまま L10nLoader に渡されます。
そのため通常のsystem localeによる言語選択が働き、日本語Windowsでは日本語GUIが自動的に読み込まれます。
一方、260908では次の処理が追加されています。
QString language_override = parser.value(lang_option);
// Default to English unless a language was explicitly requested.
if (language_override.isEmpty()) {
language_override = "en";
}
L10nLoader l10n {&a, locale, language_override};
つまり260908では、言語指定がない場合に "en" を明示的に設定するよう変更されています。
L10nLoader 側では "en" を明示的な英語指定として扱い、
system localeに基づくtranslationの読み込みをスキップします。
その結果、オプションなしでは英語GUIになります。
逆に --language=ja を付ければ "ja" が明示指定されるため、
日本語translationが正常に読み込まれます。
実際の挙動とソースの処理が一致
整理すると次の通りです。
- 260818:言語指定なし → system localeを使用 → 日本語Windowsでは日本語
- 260908:言語指定なし →
"en"を設定 → 英語 - 260908:
--language=ja→ 日本語
実機で確認した挙動と、ソース上の処理が完全に一致しました。
また、L10nLoader.cpp と L10nLoader.hpp 自体は260818と260908で変更されておらず、
言語・locale・translation周辺を確認した範囲では、今回のデフォルト動作を変える直接の差分はこの main.cpp の変更でした。
Best S&Pの日本語対応patchとは無関係です
260908には、私(JP1LRT)が提供したBest S&Pの言語依存修正patchも取り込まれています。 そのため当初、この変更との関係も念のため確認しました。
しかしこのpatchは、Best S&P内部で翻訳済み文字列を比較していた処理を、 言語に依存しない内部のtyped valueによる比較へ変更したものです。
QLocale、QTranslator、L10nLoader、
translation loading、--language の処理には触れていません。
ソースdiffでも今回の日本語GUI起動問題との直接的な関係がないことを確認しました。
これは「バグ」なのか?
260908のコードには、
// Default to English unless a language was explicitly requested.
というコメントがあるため、コード変更そのものは意図的に書かれたものと考えられます。
ただし、 「すべての非英語環境で、言語指定がなければ英語をデフォルトにする」 ことまで意図したユーザー向け仕様変更だったのか、 またその理由が何だったのかまでは、今回比較したソースだけからは判断できません。
したがって現時点では、これを「バグ」や「regression」と断定するのではなく、 260818と260908の間でデフォルトの言語選択処理が変更された という事実として整理しておくのが適切だと思います。
従来の自動言語選択へ戻す場合
もし260818までのように、言語指定がない場合はsystem localeに従う動作へ戻すのであれば、
main.cpp の処理を260818の形に戻すのが最小の修正です。
L10nLoader l10n {&a, locale, parser.value (lang_option)};
この形に戻しても、英語を明示したい場合の
--language=en
は従来通り機能します。
今回の解析結果についてはDG2YCB / Uweにも共有しています。
とりあえず困っている方へ
260908をインストールして「メニューが英語になってしまった」と困っている方は、 まずはショートカット等に
--language=ja
を追加して起動してみてください。 日本語translationそのものは正常に利用できます。
最初は単純な「日本語メニューが出ない」という問い合わせでしたが、 同一PCでのA/Bテスト、260818と260908のソース比較、 そしてtranslation loaderの処理を追うことで、今回の挙動の直接原因まで確認することができました。
73,
Yoshi / JP1LRT
最近のコメント