12.06.2013

レジストリの値から言語を判定する

Windowsのレジストリの値を見てシステムロケールの判定を行う方法

「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Locale」
の(Default)が0411ならOSの言語設定が日本語である。
InstallShieldでインストール要件に「日本語の時だけ」という前提条件を付けたかったので調べた。

実は
「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Language」
のDefaultが「0411」なら、という条件にしてしまった。こちらはインストーラをどの言語で動かすか、のデフォルト値だ。
ほんとはOSのLocaleに合わせるべきだったような気がする。まぁ英語OSを使う人がインストーラは日本語で動かしたい、なんてことも無いだろうから気にしない。

最近の記事を読み返すと押し通すだの気にしないだの、ほんと何ていうか、いい加減なエンジニアだなぁと思う。 インストーラってアプリ本体とは切り離されたものだからちょっといい加減になっちゃうんだねきっと。
その割にちょっと間違うとインストール自体出来ないという最悪の事態に陥り、すぐ直せ&全社掲示てことになる。
「0411」は日本語だが他の言語がどの数字か分からなかったが、恐らくこの辺の情報で良さそうだ。

0 件のコメント:

コメントを投稿