IVSの実装は難しい (LibreOfficeを中心に)
@0guma @monokano さすがにルビ付き文字列を置換したらルビは消える(当然か)。ルビ編集メニューで「対象文字列」が編集できてしまうのは地雷ですね。ルビ掛け範囲を狭めようと1文字削ると本文から消えてしまう。IVSをコピペで戻してやろうとしたらサロゲートがくっつきましたw
2014-07-10 12:00:33ご意見ご感想など
これはちゃんと仕様を理解してる人がバグ報告しないとつらいと思うなあ。報告しても直らない(直せない)可能性が高いので、詳しい人がパッチ書くのが一番なんだけどねぇ。むむむ togetter.com/li/690890#c153…
2014-07-10 12:50:25「実装してる人がユースケースを正しく理解していない可能性が高い」という指摘があったけど、ならなおのことバグを報告しても正しい実装になるとは限らないわけでして
2014-07-10 12:56:08@naru0ga 入力とか表示とかだけなら簡単そうだけど、検索とか置換とかソートとかで、死にそうって想像してましたが、やっぱその通りなんすねー。ルビまでは想像してませんでしたが。他にもなんか地雷がありそう
2014-07-10 13:03:56@turakitani デスヨネー。削除一発で問題が出るのはどうよって気もしますが、ぼくも含めてだれもテストしてなかったんだからしかたがない。まだなんか隠れてそうですよね
2014-07-10 13:07:16@naru0ga 以前、仕事でIVS対応したことがありますが、検索がregexライブラリ任せで、ライブラリの中には手が出せず、検索の対応は断念した記憶が。検索用抽象レイヤー、実体レイヤー、描画用レイヤーの三層構造にして……とか色々考えたものの、恐ろしく保守性が悪く断念。
2014-07-10 13:28:59@yutahanayama そーですねー。素人的に考えても処理があちこちに分散しそうで非常にコワイところですねえ。あと既存のライブラリの対応も、確かに悩ましいですね
2014-07-10 13:30:39これは確かにありそう。「どう動くのが望ましいか」を明確化/明文化する方が先かも知れぬ。 QT @496_ IVSの編集のあり方ってどこかで明確にされてたっけ? その辺が不足してるのが根本的な原因なのかな。
2014-07-10 13:17:23国が行政システムで文字情報基盤を使うって言ってるんだから、IVS文字列の編集時の挙動についても統一したルールづくりは必要だよな。 ……とか書いておけばIPA辺り動いてくれんかな。(他人任せ)
2014-07-10 13:45:26IVSに限らず結合文字は難しい
IVSのアプリケーションへの実装ってさ 二つの文字コードを読んだ後、一文字分もどって字形を確定する 検索された文字の後ろのコードまで読んでそこにVSがあるかどうか判断する 二文字分読んだ上で、その間にカーソル入れてよいかどうか判断する とか考えると、めちゃくちゃめんどくさそうだ
2014-07-10 14:06:00@akane_neko 文字にはSelectorがあるものと仮定して、IVS込みで一文字として扱うように設計して、IVSがない文字には「NULL IVS」がついているとでもすればいいんじゃないか?
2014-07-10 17:47:21@0guma いまから作るアプリならそれでよさそうなんですが、既存のアプリのIVS対応だとややこしそうだなと。(InDesignやIllustratorの実装っぷりをみるに…)
2014-07-10 17:49:09@akane_neko 欧文の「f」1文字表示するにも次の文字がf,i,lでない(flやffiの先頭文字ではない)ことを確認しないといけませんし、ÁをAと́に分けて入力した時にはAの直後にカーソルは移動できないので、文字合成とか分解はIVS以前から普通に使われている基盤技術なんです。
2014-07-10 18:09:33@KAN0U なるほど。それじゃIVSの実装でIllustratorやInDesignがどうにも不具合のある実装具合になっちゃってるのはどこらへんに原因があるんでしょう?IVSはここが難しいってのはどこですか?
2014-07-10 18:15:57@akane_neko IVSが厄介なのは「default ignorable」であることでしょう。ちゃんと置換されているのか、フォントが未対応なのでデフォルト字形のままなのか、間違ったシーケンス(漢字以外とか1文字に2個つくとか未登録シーケンスとか)が無視されているのか見えない
2014-07-10 18:31:00