縦書き→横書きの変換ツールを作った話
こんにちは。初めてエッセイを書くので緊張しています。
制作秘話とかどうでもいいという方。リンクは一番下です。どうぞ本文はすっ飛ばしてください。
さて、私は普段Web小説を書いているのですが、縦書きで書くのが好きです。
一度公募用に縦書きフォーマットで書いたら快適でハマってしまいました。まあその公募はあっさり一次落選したわけですが。
しかし、Web小説とは横書きです。
そして横書きの小説というものには、「こうすると読みやすい」というセオリーがあります。
代表的なものが会話行の前後に改行を入れる、というものでしょう。私も普段そうしています。
この公募落選した10万字の小説に、手作業で、一つずつ、会話行の前後に改行を入れていく……?
考えただけでめんどくさいですね。やりたくないです。やりたくなさすぎてしばらく二次創作してました。それも縦書きで書くものだから、やっぱり投稿する時はチマチマ手作業改行です。めんどくせえ……。
しかし、会話行前後で改行するだけのツールが探せど探せど見つからない。
横書きを縦書きにします!というサイトは、いくつかヒットしました。
違うんだ。その逆がしたいんだ。
なら、どうすればいいか?
そうだ自分で作ろう。
プログラミングの仕事が初めてプライベートで役に立ちました。この仕事してて良かった。
会話行の前後に改行を入れるだけ。正直技術的には難しくありません。
そうして作ったのが3年前です。
以降、私はこのツールを愛用しています。
毎週使ってます。
あまりにも便利すぎる。
今までのチマチマ改行はなんだったのか……!今はもうボタンひとつで会話行の前後に改行が入る……!
使うたびに3年前の自分に感謝しています。ありがとう私。本当にありがとう。
ついでに他に必要そうな変換も入れました。
まず「⁉︎」→「!?」の変換です。
縦書きで「!?」と書くと縦に並んでなんとなく気持ち悪い。なので「⁉︎」と書いていました。しかし、横書きにするなら「!?」にしたいですからね。こんなの置換するだけなので楽勝です。
次に濁点です。
縦書きの場合は「゛あっ」と書きます。
横書きでは「あ゛っ」ですね。
これも問答無用で位置を入れ替えればいいだけです。
あと横書き→縦書きの逆変換もできるようにしました。横書き→縦書き変換しかさせてくれないツールにムカついたので。両方させろやの気持ちを込めて。
このツールを必要としている人間がまさか日本中で私だけなんてことはあるまい。
そう思ったので、公開することにしました。今ではないです。3年前の話です。
「え? でも検索しても出てこなかったよ?」なんて思った方がいるかはわかりませんが、そうなんです。検索に出てこなかったんです。せっかく公開したのに!
リンクをクリックすればページはちゃんと表示される。公開はされている。
なのに!Google検索に!ヒットしない!
とはいえ、別に私は使えるしそのうち検索にも引っ掛かるようになるだろー、と思ったのが3年前です。
なってない。
3年経ってなおヒットしない。
そこで色々と工夫を施してアップデートをかけました。
Googleさんのインデックスに登録してくださいと申請も出しました。
工夫の甲斐あって、本日めでたく検索にヒットするようになりました。やったね。
さて、ここからが本題です。
アップデートついでに機能を追加したいな、と思いました。
題して
「漢数字を算用数字に変換する機能」
です。
前から思ってたんです。横書きで、「レベル一」とか、「千九百七年二月十二日」とか、読みにくいな?って。
「レベル1」が良くないですか?
「1907年2月12日」が良くないですか?
この機会にその変換もつけちゃおうかな!と思いました。
これが鬼門でした。
日本語には横書きでも漢数字を使わないといけない場合、というものが存在します。
例えば「一般」とか「一生懸命」とか。そういう熟語系ですね。
それに「石の上にも三年」とか「三度目の正直」とか。慣用句系ですね。
じゃあ算用数字がいい場合っていつか?というと「数量を表す時」だそうです。
「3グラム」「1km」「500ml」みたいな。
あと、固有名詞でもあり得ます。「ビタミンB2」とか。
どうやって区別するんだい?
機械学習とかで統計取るのか?みたいな世界になります。
もう生成AIに頼んだ方が早いんじゃね?
しかし、皆さん。創作者である皆さんならわかると思います。いや、全員がとは言いませんが。
・生成AIに自分の文章食わせるの抵抗ある方。
・生成AIの出力は信用できないという方。
・そもそも生成AI自体倫理的に受け付けられない方。
・生成AIとか関係なく、見知らぬサーバに小説文送りたくないわという方。
いますよね??
私は完全にローカルで動く静的なページとして作りました。早い話がオフラインでも動くように作りました。
創作者の皆さんが安心して使えるように……!
まあ、そうしないとgithubで無料公開できなかったとか、動的ページ作れるほど3年前は技術力なかったとか、そういう理由もあるんですけど。
なので生成AIは今回論外です。
じゃあ、やっぱり自分で作らないといけません。
そこで妥協点を探しました。実現できるかはともかくとして、一旦机上で「できそうな案」を考えてみました。
まず、対象とする「助数詞」を限定します。
「助数詞」とは「本」とか「冊」とかそういう単位のことです。
漢数字とこの単位が繋がっていれば算用数字にした方がよさそう、ということです。
次に、上記に当てはまっても変換してはいけないパターンを決めます。
「十人十色」とか「数十人」みたいな概数もそうです。
これはもう思いつく限り上げておくしかありません。
さて、「助数詞」がないパターンもあります。
「レベル一」とかまさにそれですね。これは「レベル」+「漢数字」のパターンを探せばよさそうです。
さらに逆変換(横書き→縦書き)も考えないといけません。
一見算用数字は問答無用で漢数字化すればいい気もします。
でもここにも例外はあります。
「0回」→「ゼロ回」です。
「0度」→「零度」「ゼロ度」どっちも良さそう。
「0時」→「零時」です。
ゼロにするか零にするか問題です。
一旦「時」だけ零にして、あとはゼロでいいかなと思ってます。他にも例外があれば教えてください。
日本語って難しいですね。この難しい日本語を駆使して物語を書いている私たち、相当すごいのではないでしょうか。
ここまで考えていて思いました。
これだけの労力を払う価値あるのか……?
私とて創作者の端くれです。プログラミングも好きですが、そんな時間あるなら小説を書きたい。別に「レベル一」や「千九百二年」でも読めなくはないし、いいじゃないか……!
そこでこのエッセイを書くに至りました。
要は需要の確認です。
正直言って「後から会話行の前後に改行を入れたい人」なんて少数派だと思います。
そもそも縦書きで最初に書くという人が少数派なんじゃないかと思います。
それでも私だけなわけない……!
と、思いたい……!
なので、
・こんな機能があれば使いたい
・その機能は実装して欲しい
・こういう場合を考慮して欲しい
などなど、ご意見をいただきたいのです。
それもできるだけ多く。できるだけ多く!(大事なことなので2回言いました)
私のモチベーションが上がるというのもありますが、それ以上に対象とする助数詞の参考が欲しいです。大量の助数詞全対応は現実的じゃありません。頻出助数詞を対応することになります。
今考えているのは
人、冊、匹、羽、本、個、回、歳、才、日、年、度、話、章、件、杯、台、枚、km、m、kg、g、分、秒、ページ、輪、円
って感じです。
kgとかgとか、この辺は単位変換も別機能でつけた方が良さそう。
ということで、以上です。
読んでくださった方、ありがとうございます。
このツールが必要な方に届くように、共有等ご協力いただけましたら幸いです。
ここまですっ飛ばした方も最後の依頼のところだけは読んで欲しいな、と思いつつ……最後にリンクを貼っておきます。
こんなツールが欲しかったんだ、という方がどうか私だけではありませんように。
https://kioinao.github.io/VerticalHorizontalChanger/




