summaryrefslogtreecommitdiff
path: root/website/src/ja/docs/features/japanese-conversion.md
blob: 1cc7d6b94013ff63944b9648d149a8770283d81c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
---
layout: doc
---

# ローマ字変換

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

## 変換の仕組み

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

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

### 変換例

```
入力:  konnichiha sekai
変換1: こんにちは せかい
変換2: こんにちは 世界
送信:  konnichiha sekai §e(こんにちは 世界)
```

入力した文字列は**置き換えられません**.入力したそのままの文字列を残し,その後ろに変換結果を括弧付きで併記するため,受信側には両方が表示されます.

## 変換対象

- 通常チャット
- ダイレクトメッセージ (`/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 リクエスト1回あたりのタイムアウト (ミリ秒) |

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

> [!WARNING]
> `api.timeout` とは別に,1メッセージの変換処理全体に **1000ミリ秒**の上限があります.この上限に達すると変換は中断され,入力したそのままの文字列が (何も併記されずに) 送信されます.
>
> 変換全体の上限が `api.timeout` のデフォルト値より短いため,`api.timeout` を `1000` より大きくしても実質的な効果はありません.