🗽

第7回:英語入力モードの設計と実装案

に公開

🧩 はじめに

これまでの記事では、日本語入力に特化した2タッチテンキー入力システムを構築してきました。本記事では、英語入力モードを追加することで、国際化対応や多言語入力の可能性を広げる設計と実装について解説します。

🧠 英語入力モードの設計方針

目的

  • 日本語と英語の入力をテンキーで切り替え可能にする
  • 英語入力時は、アルファベットを直接出力するモードに変更
  • モード切替はホットキーまたは特定のキー操作で行う

設計ポイント

  • モード管理用のフラグ変数
  • 英語モード時のキー割り当て
  • 日本語モードとの状態共有

🔧 実装案:モード切替と英語入力

モード管理変数

isEnglishMode := false

モード切替ホットキー(例:NumpadDotNumpadDot::ToggleEnglishMode()
ToggleEnglishMode() {
  global isEnglishMode
  isEnglishMode := !isEnglishMode
  ToolTip(isEnglishMode ? "英語モード" : "日本語モード")
  SetTimer(() => ToolTip(""), -1000)
}

🔠 英語入力のキー割り当て
テンキーの数字にアルファベットを割り当てる例:

englishKeyMap := Map(
  "Numpad1", "a", "Numpad2", "b", "Numpad3", "c",
  "Numpad4", "d", "Numpad5", "e", "Numpad6", "f",
  "Numpad7", "g", "Numpad8", "h", "Numpad9", "i",
  "Numpad0", "j"
)

英語モード時の入力処理

HandleKey(currentKeyCode) {
  global isEnglishMode
  if (isEnglishMode) {
    if (englishKeyMap.Has(currentKeyCode)) {
      Send(englishKeyMap[currentKeyCode])
      return
    }
  }
  ; 以下は日本語モードの処理
}

🌐 国際化対応の可能性
この設計をベースに、以下のような拡張が可能です:
• 多言語対応:韓国語・中国語などの入力モード追加
• ユーザー定義マッピング:設定ファイルで自由に割り当て変更
• GUIによるモード切替:視覚的にモードを選択できるインターフェース


🖼 実行例
• NumpadDot → モード切替 → 「英語モード」
• Numpad1 → 出力:a
• Numpad2 → 出力:b
• NumpadDot → モード切替 → 「日本語モード」


✅ まとめ
今回は、2タッチ入力システムに英語入力モードを追加するための設計と実装案を紹介しました。次回は、ユーザーによるカスタマイズ性を高める設計について解説します。

📥 SNS

🔗 GitHubリポジトリ
https://github.com/chiquwa/2touch-ime

🔗 Zenn記事一覧
https://zenn.dev/chiquwagohan

🔗 Note記事一覧
https://note.com/search?context=note&q=from%3A%40chiquwa&size=10

EXEファイルの購入
https://note.com/chiquwa/n/n59973d490326

https://www.youtube.com/watch?v=7_C7cDYGKiA

Discussion