-
Notifications
You must be signed in to change notification settings - Fork 165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
新規インストール時に言語設定に英語を適用する処理方法の変更 #749
Conversation
インストーラーで言語設定の為だけに不完全なINIファイルを作成するのはプログラム側が不完全なINIファイルに対応するのが難しいので止める 設定ファイルのMRUのエントリが無い場合に新規インストール後と判断して初期設定を適用させる記述は削除する 起動時に設定ファイルが存在しない場合はWindowsの表示言語を調べて日本語じゃなかった場合は言語設定が英語になるように処理を新規追加
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTMです。
多言語化もちゃんと考えないといかんですね・・・:smile:
sakura_core/env/CShareData_IO.cpp
Outdated
@@ -96,6 +95,15 @@ bool CShareData_IO::ShareData_IO_2( bool bRead ) | |||
if( bRead ){ | |||
if( !cProfile.ReadProfile( szIniFileName ) ){ | |||
/* 設定ファイルが存在しない */ | |||
LANGID langId = GetUserDefaultUILanguage(); | |||
// Windowsの表示言語が日本語でない場合は言語設定を英語にする | |||
if (langId != 0x0411) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wLangId の値はWindows SDKのMAKELANGIDマクロを使って書くものと思っています。
MAKELANGID( LANG_JAPANESE, SUBLANG_JAPANESE_JAPAN )
ただし、このマクロが他で使われているのを見たことはほとんどないっす 😄
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
マジックナンバー埋め込むよりマクロ使うべきですね、指摘ありがとうございます。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3b0f5e0 で対処しました。
sakura_core/env/CShareData_IO.cpp
Outdated
@@ -96,6 +95,15 @@ bool CShareData_IO::ShareData_IO_2( bool bRead ) | |||
if( bRead ){ | |||
if( !cProfile.ReadProfile( szIniFileName ) ){ | |||
/* 設定ファイルが存在しない */ | |||
LANGID langId = GetUserDefaultUILanguage(); | |||
// Windowsの表示言語が日本語でない場合は言語設定を英語にする | |||
if (langId != 0x0411) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
他言語DLLの対応状況からして、
「not equal 日本語」ではなく
「equal 英語」に限定するほうがよいような気がします。
つまり langId == 0x409
ということです。
英語(0x409)は以下のように指定します。
MAKELANGID( LANG_ENGLISH, SUBLANG_ENGLISH_US )
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
その方が判定としては素直だとは思います。しかし現状言語として設定出来るのが日本語と英語だけなので、日本語使わない人には英語にしとこう、という考え方です。
英語より日本語の方が国際共通語だろJK
と真顔で言われたら、アッハイと反応します。
sakura_core/env/CShareData_IO.cpp
Outdated
@@ -96,6 +95,15 @@ bool CShareData_IO::ShareData_IO_2( bool bRead ) | |||
if( bRead ){ | |||
if( !cProfile.ReadProfile( szIniFileName ) ){ | |||
/* 設定ファイルが存在しない */ | |||
LANGID langId = GetUserDefaultUILanguage(); | |||
// Windowsの表示言語が日本語でない場合は言語設定を英語にする | |||
if (langId != 0x0411) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
L"sakura_lang_en_US.dll"
の ファイル存在チェックも条件に加えるのがベターだと思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
それも考えましたが有る事が前提にしても良いのではないかと考えて記述しませんでした。
まぁ白状すると GetModuleFileName
してから _tsplitpath
して PathAppend
する手間を省いたんです。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTMです。
レビューありがとうございました。マージします。 |
新規インストール時に言語設定に英語を適用する処理方法の変更
このPRでは下記の3つの変更を加えています。
インストーラーで言語設定の為だけに不完全なINIファイルを作成するのはプログラム側が不完全なINIファイルに対応するのが難しいので止める
設定ファイルのMRUのエントリが無い場合に新規インストール後と判断して初期設定を適用させる
処理の記述は削除する起動時に設定ファイルが存在しない場合はWindowsの表示言語を調べて日本語じゃなかった場合はサクラエディタの言語設定を英語にする
処理を新規追加#616 の問題に対処する為に #620 で変更を加えましたが、新規インストールの判定方法が微妙なのでこのPRのやり方に変えたいです。