bcdice/BCDice

View on GitHub
docs/dicebot_sort_key.md

Summary

Maintainability
Test Coverage
# ゲームシステム名の読みがなの設定方法

BCDice Ver2.04.00から、各ダイスボットにゲームシステム名の読みがなを設定することが必要となりました。
これは、ダイスボットを自然な順序で並び替えることを目的としています。
この文書では、ゲームシステム名の読みがなの設定方法について説明します。

## 読みがなを定義する場所

ダイスボットのクラスに `SORT_KEY` という定数を作り、読み仮名を定義します。

```ruby
class KariDice < DiceBot
  # ...

  # ゲームシステム名の読みがな
  SORT_KEY = 'かりたいす'

  # ...
end
```

## 読みがな設定の指針

以下のルールを参考にして、読みがなを設定してください。

* JIS X 4061(後述)に沿って表記する。
* 副題に類する部分は省略する。
    * 例:心衝想機TRPGアルトレイズ → あるとれいす
* 発音する記号は発音に合わせて表記する。
    * 例:ダンジョンズ&ドラゴンズ → たんしよんす**あんと**とらこんす
* 空白や発音しない記号(中点 `・` など)は省略する。
    * 例:ダイス・オブ・ザ・デッド → たいすおふさてつと
    * 例:セブン=フォートレス メビウス → せふんふおおとれすめひうす
    * 例外:小数点 `.` は省略しない。
        * 例:ソードワールド2.0 → そおとわあると2.0
* 略語として使われているアルファベットは、半角アルファベットで表記する
    * 例:艦これRPG → かんこれRPG
    * 例:剣の街の異邦人TRPG → つるきのまちのいほうしんTRPG
* 数は半角アラビア数字(`0`、`1`、…、`9`)で表記する。
* 版数はアラビア数字のみで代表し、表記する。
    * 例:シャドウラン第4版 → `しやとうらん4`
* 日本語以外のゲームシステムの場合、`国際化:[言語名英語]:[システム名訳]` の形式とする。
    * 例:克蘇魯神話(中国語繁体字版クトゥルフ神話TRPG) → 国際化:Chinese Traditional:克蘇魯神話

### JIS X 4061とは

JIS X 4061とは、日本語の文字列の並び替えの順序についての規格です。
ここでは、読みがなの導出においてよく使われるルールのみを簡単に説明します。
詳しくは、Wikipedia「[日本語文字列照合順番](https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E8%AA%9E%E6%96%87%E5%AD%97%E5%88%97%E7%85%A7%E5%90%88%E9%A0%86%E7%95%AA)」を参照してください。

1. 読みがなをひらがなで書く。
2. 清音文字でない文字を清音文字に置き換える。
    * 小書き文字:「ぁ」「っ」「ゃ」など → 「あ」「つ」「や」など
    * 濁点付き文字:「が」「ば」など → 「か」「は」など
    * 半濁点付き文字:「ぱ」「ぴ」など → 「は」「ひ」など
3. 長音符「ー」を、直前の母音で置き換える。
    * 前の文字が「あ」「か」「さ」「た」「な」「は」「ま」「や」「ら」「わ」→「あ」
    * 前の文字が「い」「き」「し」「ち」「に」「ひ」「み」「り」「ゐ」→「い」
    * 前の文字が「う」「く」「す」「つ」「ぬ」「ふ」「む」「ゆ」「る」→「う」
    * 前の文字が「え」「け」「せ」「て」「ね」「へ」「め」「れ」「ゑ」→「え」
    * 前の文字が「お」「こ」「そ」「と」「の」「ほ」「も」「よ」「ろ」「を」→「お」
    * 例外:前の文字が「ん」→「ん」

以下に読みがなの導出例を示します。

* パラサイトブラッド → はらさいとふらつと
    * 手順1:ぱらさいとぶらっど
    * 手順2:はらさいとふらつと
* エースキラージーン → ええすきらあしいん
    * 手順1:えーすきらーじーん
    * 手順2:えーすきらーしーん
    * 手順3:ええすきらあしいん