Skip to content
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

Merged
merged 2 commits into from
Jan 5, 2019

Conversation

beru
Copy link
Contributor

@beru beru commented Jan 4, 2019

このPRでは下記の3つの変更を加えています。

  • インストーラーで言語設定の為だけに不完全なINIファイルを作成するのはプログラム側が不完全なINIファイルに対応するのが難しいので止める

  • 設定ファイルのMRUのエントリが無い場合に新規インストール後と判断して初期設定を適用させる 処理の記述は削除する

  • 起動時に設定ファイルが存在しない場合はWindowsの表示言語を調べて日本語じゃなかった場合はサクラエディタの言語設定を英語にする 処理を新規追加

#616 の問題に対処する為に #620 で変更を加えましたが、新規インストールの判定方法が微妙なのでこのPRのやり方に変えたいです。

インストーラーで言語設定の為だけに不完全なINIファイルを作成するのはプログラム側が不完全なINIファイルに対応するのが難しいので止める

設定ファイルのMRUのエントリが無い場合に新規インストール後と判断して初期設定を適用させる記述は削除する

起動時に設定ファイルが存在しない場合はWindowsの表示言語を調べて日本語じゃなかった場合は言語設定が英語になるように処理を新規追加
berryzplus
berryzplus previously approved these changes Jan 4, 2019
Copy link
Contributor

@berryzplus berryzplus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTMです。
多言語化もちゃんと考えないといかんですね・・・:smile:

@@ -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) {
Copy link
Contributor

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 )

ただし、このマクロが他で使われているのを見たことはほとんどないっす 😄

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

マジックナンバー埋め込むよりマクロ使うべきですね、指摘ありがとうございます。

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3b0f5e0 で対処しました。

@@ -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) {
Copy link
Contributor

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 )

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

その方が判定としては素直だとは思います。しかし現状言語として設定出来るのが日本語と英語だけなので、日本語使わない人には英語にしとこう、という考え方です。

英語より日本語の方が国際共通語だろJK と真顔で言われたら、アッハイと反応します。

@@ -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) {
Copy link
Contributor

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" の ファイル存在チェックも条件に加えるのがベターだと思います。

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

それも考えましたが有る事が前提にしても良いのではないかと考えて記述しませんでした。
まぁ白状すると GetModuleFileName してから _tsplitpath して PathAppend する手間を省いたんです。

Copy link
Contributor

@berryzplus berryzplus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTMです。

@beru
Copy link
Contributor Author

beru commented Jan 5, 2019

レビューありがとうございました。マージします。

@beru beru merged commit 1a4088b into sakura-editor:master Jan 5, 2019
@m-tmatma m-tmatma added this to the next release milestone Feb 3, 2019
HoppingTappy pushed a commit to HoppingTappy/sakura that referenced this pull request Jun 11, 2019
新規インストール時に言語設定に英語を適用する処理方法の変更
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants