---
layout: doc
---

# ローマ字変換

ローマ字で入力したチャットメッセージを自動的に日本語に変換します．この機能を利用するには `config.yml` で `features.japaneseConversion.enabled` を `true` に設定してください．

## 変換の仕組み

変換は2段階で行われます．

1. **ローマ字 → ひらがな**: プラグイン内蔵の Trie ベースの変換エンジンでローマ字をひらがなに変換します
2. **ひらがな → 漢字/カナ**: Google IME API を使用してひらがなを自然な日本語に変換します

### 変換例

```
入力:  konnichiha sekai
変換1: こんにちは せかい
変換2: こんにちは 世界
```

## 変換対象

- 通常チャット
- ダイレクトメッセージ (`/tell`, `/reply`)
- チャンネルチャット

入力が有効なローマ字でない場合 (英単語などが含まれる場合)，変換は行われずそのまま送信されます．

## プレイヤー設定

プレイヤーは個別に変換のオン/オフを切り替えられます．

```
/lc settings japanese on     # 変換を有効化
/lc settings japanese off    # 変換を無効化
```

## キャッシュ

変換結果は単語単位でキャッシュされ，同じ単語の再変換時には API を呼び出さずにキャッシュから取得します．キャッシュは JSON ファイルとしてディスクに定期保存されます．

| 設定キー | デフォルト | 説明 |
|----------|-----------|------|
| `cache.maxEntries` | `500` | キャッシュの最大エントリ数 |
| `cache.saveIntervalSeconds` | `300` | ディスク保存の間隔 (秒) |
| `cache.filePath` | `"conversion_cache.json"` | キャッシュファイルのパス |

キャッシュが上限に達すると，古いエントリの10%が自動的に削除されます．

## API 設定

Google IME API への接続に関する設定です．

| 設定キー | デフォルト | 説明 |
|----------|-----------|------|
| `api.timeout` | `3000` | リクエストタイムアウト (ミリ秒) |
| `api.retryAttempts` | `2` | 失敗時のリトライ回数 |

API がタイムアウトまたは失敗した場合，ひらがなのまま送信されます．
