Mozc に新しい元号「令和」を追加する方法

4/1 具体的な編集方法を追記。

Mozc に新しい元号を追加するには、以下のファイルに変更が必要です。

  • src/rewriter/date_rewriter.cc, 日付変換

「今日」などで変換したときに表示される元号入りの日時を追加します。

date_rewriter.ccL1242 辺りに追加します。

    1989,
    "平成",
    "へいせい",
  }, {
    2019,
    "令和",
    "れいわ",
  }
  • src/data/symbol/symbol.tsv, 単漢字変換、㍻など、2019年に発表される新元号は U+32FF

symbol.tsv 辺りに追加します。

記号   ㋿ れいわ ねんごう  年号      OTHER
  • src/data/unicode/UnicodeData.txt, 単漢字文字の属性指定

U+32FF の位置に追加します。

32FF;SQUARE ERA NAME REIWA;So;0;L;<square> 4EE4 548C;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME REIWA;;;;

<square> の後の二つの数値は「令」と「和」の文字コードです。

unicode/Blocks.txt では以下に含まれているため修正の必要はありません。

3200..32FF; Enclosed CJK Letters and Months

2019年4月現在、mozc が利用しているユニコードデータは 6.0 (2010)です。

  • data/dictionary_oss/dictionaryXX.txt, 変換辞書

普通に変換候補として表示されるように追加します。

平成の場合、以下のようになっています。

# dictionary07.txt
へいせい    1916    1916    1598    平成
へいせい    1920    1920    6206    平成

1916 と 1920 は data/dictionary_oss/id.def に記載されている POS インデックスです。

# id.def
1916 名詞,固有名詞,一般,*,*,*,*
1920 名詞,固有名詞,地域,一般,*,*,*

3つめの数字はコストです。コストは単語の出現率です。新語では定義できないため、平成と同じような数値を指定すればよいと思われます。

#dictionary08.txt
れいわ   1847    1847    8251    例話
れいわ   1916    1916    1598    令和
れいわ   1920    1920    6206    令和