summaryrefslogtreecommitdiff
path: root/docs/src/guide/japanese-romanization.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/src/guide/japanese-romanization.md')
-rw-r--r--docs/src/guide/japanese-romanization.md61
1 files changed, 61 insertions, 0 deletions
diff --git a/docs/src/guide/japanese-romanization.md b/docs/src/guide/japanese-romanization.md
new file mode 100644
index 0000000..3e9d702
--- /dev/null
+++ b/docs/src/guide/japanese-romanization.md
@@ -0,0 +1,61 @@
+# ローマ字変換
+
+LunaticChat では、日本語のテキストをローマ字に変換する機能が提供されています.
+
+## 設定を有効化する
+
+ローマ字変換機能を有効にするには `features.japaneseConversion.enabled` の値を `true` にする必要があります.
+
+```yaml{4}
+features:
+ # ...
+ japaneseConversion:
+ enabled: true
+```
+
+## 変換の仕組み
+
+LunaticChat はプレイヤーからのテキストを以下の手順で変換を行います.
+
+1. プレイヤーからのテキストがローマ字で構成されているかを検証する
+2. メモリキャッシュから該当のフレーズがあるかどうかを調べる
+ 1. ここで該当フレーズがヒットした場合はそれをサーバーに返す
+3. メモリキャッシュに存在していない場合は,ローマ字からひらがなに変換する
+4. 変換した文字列を Google IME API へ送り,人が読める形に変換する
+5. メモリキャッシュに保存し,それをサーバーに返す
+
+```
+┌───────────────────────────────────────────────────┐
+│ User Input │
+│ (Romanji Text) │
+└─────────────────────┬─────────────────────────────┘
+ │
+ ▼
+┌───────────────────────────────────────────────────┐
+│ RomanjiConverter │
+│ ┌───────────────────────────────────────────┐ │
+│ │ 1. Check Memory Cache │ │
+│ │ └─→ Hit: Return immediately │ │
+│ │ │ │
+│ │ 2. Call Google IME API │ │
+│ │ │ │
+│ │ 3. Store in Memory Cache │ │
+│ │ │ │
+│ │ 4. Queue for Disk Save (async) │ │
+│ └───────────────────────────────────────────┘ │
+└─────────────────────┬─────────────────────────────┘
+ │
+ ▼
+┌───────────────────────────────────────────────────┐
+│ Converted Text │
+│ (Japanese Text) │
+└───────────────────────────────────────────────────┘
+```
+
+::: tip ファイルへの保存
+
+メモリキャッシュの内容は負荷にならないよう,設定した秒毎にファイルキャッシュへ自動でセーブします.
+
+:::
+
+##