Windows はスレッドごとに異なる入力言語を保持しています。別のスレッドのウィンドウに切り替えると、入力言語が変わることがあります。スレッドはユーザーからは見えないので、ランダムに見えるかもしれませんし、これが地獄のようにイライラするのは同意です。
Windowsにはこれを回避するためのビルトインオプションはありませんので、サードパーティ製のソフトウェアを使うか、もっと良いものを使うしかありません。
「もっと良いもの」とは、Microsoft Keyboard Layout Creatorを使ってCapsLockを言語スイッチとして使用するカスタムレイアウトを作成し、他のすべてのレイアウト(デフォルトの英語を含む)を削除することです。私はこれを英語+ロシア語で行ったことがありますが、それ以来、私の生活がどれほど良くなったかは言葉では言い表せません。長所をチェック:
- 入力言語はシステムグローバルになり、自分で変更することはありません。
- 言語インジケータが表示されていないフルスクリーンアプリケーションでも、キーボードの LED を見れば、常に現在の言語を確認することができます。
- CapsLockはAlt+Shift、Ctrl+Shift、Cmd+Spaceなどよりもずっと押しやすく、小指が常に近くにあります。
- Alt+Shift や Ctrl+Shift よりも CapsLock を誤って押してしまうことが難しくなります。
- レイアウトに便利な文字を追加することができます。AltGr+?で入力することができます。例えば、長いダッシュ -、英語の引用符 “” “ ‘'、ロシア語の引用符 ”“、矢印 ← → ↑↓ 、数学記号 ≠ ± ≈ (私はこれらをすべてRightAlt+Keyで入力しています。追加のソフトウェアも文字コードもありません)
- サードパーティ製のアプリケーションが起動していないので、バグもなく、トレイアイコンもポップアップも広告もなく、メモリの追加使用もありません。
- OS固有のショートカットを使用する代わりに、使用しているすべてのOSで同じ言語切り替え方法を使用することができます(例:Mac OS XにはUkuleleキーボードレイアウトクリエーターがあります)。
欠点は以下の通りです。
- 3つ以上の言語では動作しない。
- Microsoft Word やおそらく他のいくつかのプログラムでは、入力している言語の検出に失敗し、スペルチェックが正しく動作しないことがあります。ロシア語の場合は、自動言語検出をオンにすることで解決しますが、ラテン語ベースの言語ペア(英語+イタリア語など)ではうまくいかないかもしれません。
この解決策を見つける前に、SwitchIt! プログラムを使って入力言語をグローバルに設定していました。これはもう開発されていないので、XP/Vista/Win7で動作するかどうかはわかりません。