# Tera Term 5 について

Tera Term 5 は Tera Term 4 の Unicode化を進めた次のバージョンです。

- 特徴
  - ターミナル(内部バッファ、描画、キー入力)のUnicode化
    - 多言語の同時表示ができます。
      Tera Term 4 では、例えば日本語を表示する設定にしていると中国語は表示できませんでした
    - ISO8859-1から16に対応しました。
    - ロケールの設定が不要になりました。
  - Windows UI(メニュー、ダイアログ)のUnicode化
    次の場合でもメニューやダイアログは設定した言語で正しく表示されます。
    - "現在のシステムロケール"以外の言語に設定した場合。
    - "ワールドワイド言語サポートで Unicode UTF-8 を使用"にチェックが入っている場合。
  - その他Windows APIのUnicode版への切り替え
    - Unicode ファイル名を使用できます。
  - マクロのUnicode化
    - 内部コードがUnicode(UTF-8)になりました。
    - ダイアログなどのGUIで多言語表示できます。
- 動作環境
  - alpha は次の環境でテストを行っています。
    - Windows 10, 11
    - Cygwin 3.3.4(most recent version)
  - 正式リリース(見込み)
    - Windows 7 から 11
      Visual Sutdio 2022 によるビルドを予定しているので Windows 7 以降サポートとなります。
    - Cygwin (most recent version)
- その他
  - 開発ツール,使用ライブラリなど
  - 実装状況

# Tera Term 5 へ移行

- Tera Term 4 と同居することができます。
- 設定ファイルはTera Term 4用をそのまま使用できます。

- TERATERM.INI,KEYBOARD.CNFはUnicode対応となりました。

- cygterm.cfgの文字コードは、cygwin 3.3.4ではUTF-8です

- Windows 10,11ではiniファイルをUnicode化することができます。
  - iniファイルを扱うWin32APIはUnicode対応版を使用します
  - cygterm.cfgはWin32APIを使って読み書きしていません
- Unicode化したiniファイルの文字コードはUTF-16 (with LE BOM)です。
- Tera Term 4 ではUnicode版APIを使用していないため、Shift_JISで表現できない文字が含まれていると、その項目は正しく扱えませんでした。
- Tera Term 5 は起動時にiniファイルの文字コードを自動的にUnicodeに変換します。
- Tera Term 5 でTERATERM.INI保存時にiniファイルの文字コードを自動的にUnicodeに変換します。
- 変換前のファイルはバックアップされています。
- Win32API/iniファイルを参照ください

- 設定ファイルのデフォルトフォルダが変更されました。

- %APPDATA%\teraterm5\
- Tera Term 4 の設定ファイルをコピーしてください。

- TERATERM.INI
- KEYBOARD.CNF
- cygterm.cfg

- ファイルがない場合、ttermpro.exe起動時にデフォルトの設定ファイルがコピーされます。
- 4のときは実行ファイルと同じフォルダ(またはVirtual Store)でした。
- フォルダについて

# Tera Term 5 へ移行(plugin)

- compat_w95.hは不要となりました。

- r9239

- plugin APIを変更しました。

- ファイル名がUnicode (型が char から wchar_t) になりました。
- trunk/teraterm/ttsetup.h
- 4-stable/teraterm/ttsetup.h

- iniファイル読み書き共通関数を追加しました。

- ファイル名だけをUnicode化して従来と同じ動作をする関数を準備。
- trunk/teraterm/common/inifile_com.h

- struct tttset (tttypes.h) のメンバを変更しました。

- ファイル名、パス、文字列のメンバには、WがついたUnicode版のメンバが追加。
- ファイル名、パスの文字数はMAX_PATH文字以上になることを考慮。
- まだ変化する予定(メンバ名、順序、サイズ、型などなど)。

- 通知アイコンのAPIが変更されました。

- 高DPIに対応しました。
- SetVerNotifyIcon(), SetCustomNotifyIcon(), GetCustomNotifyIcon() は削除されました。
- trunk/teraterm/ttpcmn/ttcmn_notify.h

- ヘルプAPIを追加。

- Unicodeファイル名に対応したAPIを追加しました。
- trunk/teraterm/ttpcmn/ttcmn_lib.h