• 作成:

dic-nico-intersection-pixivの直リンクを見て意味わからないと言われてしまったのでファイルにコメントを追加しました

そうですね. 辞書本体のテキストファイルを見るだけだったら意味がわからないと言うのは当然だと思います.

というわけで, 生成する辞書にコメントを追加しておこうと思います.

今まで雰囲気で辞書を生成していましたが, まず辞書のコメントの文法はどうなっているんでしょう. それがまずわからない.

参考にするためにnicoimeのmsimeを見てみたら!以下をコメントとして扱っているようですが, 制御文法も多少はあるみたいですね.

この辺の仕様はmozcでは多分異なるだろうので, 主にmozc/google日本語入力向けとして辞書を生成している私はそのままではダメでしょうね.

google/mozc: Mozc - a Japanese Input Method Editor designed for multi-platformを見てみたけど規格とか仕様とか無さそうですね. 雰囲気でやっていくいくしかない.

と思って雰囲気で!を先頭に置いたらコメントになると思ったら失敗しました.

テキスト形式のユーザー辞書の仕様など | ピロリ菌(♂)の日記によるとGoogle日本語入力の辞書にはコメント行がないらしい?

そんな馬鹿なと思ってmozcのソースを見ました.

mozc/user_dictionary_importer.cc at master · google/mozc

line.begin() == '#'という行があってこれがあると辞書がMozc判定になるらしいのでこれがコメント行かなと思って#を入れてみたらどうやら正しかったようです.

雰囲気でソース読みでやっていってます.

内容は

  • 簡単な説明と
  • githubへのリンクと
  • nicoimeとpixivのデータを使っていること
  • 生成日時

があれば十分でしょう.

formatTimeでISO 8601の拡張形式を使用する方法が書いてないので自分でフォーマット文字列を構築する必要があって少し手間取りました.

普段ファイル名などには, :がWindowsやAndroidに使えないことや, Tが大文字であることを考慮して, 全てをハイフンで繋ぐなんちゃってISO 8601である%Y-%m-%d-%H-%M-%Sを使っています.

しかし今回はファイルの内部に入れるので, きちんと正式な拡張形式を使いたいですね. タイムゾーンなども付けたいです.

既存のISO 8601のフォーマットがあればそれを使いたかったのですが, 無かったので自分で書くことにしました.

%Y-%m-%dT%H:%M:%S%zで問題ない…と思ったのですが, ISO 8601では+09:00のようなタイムゾーン表記が求められるのに対して, formatTimeでは+0900のようになってしまうみたいですね.

unixのdateでは%:zを使うとコロン区切りのタイムゾーンを出力出来るのですが, formatTimeにはそのような仕組みはないようです.

仕方がないのでISO 8601への準拠は諦めて, "%Y-%m-%dT%H:%M:%S%Z"としてJSTを付けてもらうことにしました.