大文字/小文字変換について
-
お久しぶりです。
BMP外の文字が変換されないとかいってみる。
デザレット文字なんか使わないので別にいいんだけどね。
dz(U-01F3)を単語の先頭の文字を大文字に変換した場合、DZ(U-01F1)じゃなくてDz(U-01F2)なんだよ~とさらに無茶を続けたりする。(いやだから、そんな文字使わねぇよ。)
ただ、単語の先頭の文字を大文字に変換でBMP外の文字が全部単語の一部になっているのはちょっと嫌。
まぁ、pluginを適当にでっち上げればいいんだけどね。(実は8割ほど出来てたりする。)| foo | 返信 -
お久しぶりです。
ご報告ありがとうございます。確かに変換されませんね。そこまで考慮していませんでした^^;
現状、プラグインかマクロなどで対応していただいたほうが良いかと思います。Windows API の CharUpperBuff を呼んでるだけなので Windows の仕様に依存しています。逆に Windows さえ対応してくれれば勝手に対応されるかも…
> dz(U-01F3)を単語の先頭の文字を大文字に変換した場合、DZ(U-01F1)じゃなくてDz(U-01F2)なんだよ~とさらに無茶を続けたりする。(いやだから、そんな文字使わねぇよ。)
おぉ、これはなかなか手厳しい…
単語の区切りを見つけるのも Windows API (GetStringTypeEx) を叩いているだけなので Windows 頼みです。と、すごく言い訳っぽい感じになってしまいましたが、今後の開発の参考にさせて頂きたいと思います。需要があれば…
| Kuro | 返信 -
> > dz(U-01F3)を単語の先頭の文字を大文字に変換した場合、DZ(U-01F1)じゃなくてDz(U-01F2)なんだよ~とさらに無茶を続けたりする。(いやだから、そんな文字使わねぇよ。)
>
> おぉ、これはなかなか手厳しい…
> 単語の区切りを見つけるのも Windows API (GetStringTypeEx) を叩いているだけなので Windows 頼みです。多分こちらの意図がうまく伝わっていないと思います。
単語の区切りはおそらく関係ないです。
dz←これdとzの2文字に見えますが1文字です。
で、これを単語の先頭を大文字に変換する場合、dの部分だけを大文字にしたDzに変換しなければいけないのですが、
単純にCharUpperBuffで変換しちゃうとdとzの両方が大文字のDZになってしまうという問題です。一応、プラグインも出来たので,需要があるようなら公開します。
| foo | 返信 -
> dz←これdとzの2文字に見えますが1文字です。
横からですが、これは「合字」の一種で、2字1組となる文字ですね。
日本語や英語の文章では使用する機会がなく、自分も今回調べてみて知りましたが、
これらの文字(LJ/NJ/DZ など)には大文字小文字の種類が3パターンあるようです。LJ/NJ/DZ (Upper Case) 大文字
Lj/Nj/Dz (Title Case) 1字目のみ大文字
lj/nj/dz (Lower Case) 小文字現状、先頭の大文字変換だと Upper Case に変換されるけど Title Case で変換できないか?
というのが foo さんの意図ではないでしょうか。ただ、そういう変換処理って API やライブラリでのサポートがないと結構面倒ですね。
たとえば JavaScript には Title Case への変換関数が用意されていないので、JS マクロだと自力で変換処理を組む必要があります。| masme | 返信 -
すみません、引用を付ける個所を間違えていました。
単語の区切り云々のくだりは、
> ただ、単語の先頭の文字を大文字に変換でBMP外の文字が全部単語の一部になっているのはちょっと嫌。
ここに対して、でした。
dz に関しては、コピペして「ほー、これ 1 文字なんだ!」とびっくりするところまではしてたのですが、返信に含めるのを忘れてました (汗
> 現状、先頭の大文字変換だと Upper Case に変換されるけど Title Case で変換できないか?
> というのが foo さんの意図ではないでしょうか。ですね、失礼しました。1 文字なので区切りなんてありませんね…
変換するとしたらマッピングテーブルとか用意して… ぐらいしか思いつきません。
できなくはないと思いますが、個人的には使うことがなさそうな機能なので、需要次第ですね^^;| Kuro | 返信 -
昨日プラグインをこっそりと公開しました。
そのままではMeryのプラグインとして認識しませんが、拡張子をごにょごにょすると使えます。
秀○だとそのままで使えるという二つのエディタに対応したプラグインになっています。
秀○のライブラリページからダウンロードできます。場所が場所だけに秀○専用にすべきなんだろうけど、Mery用のコード部分を削除するとavast!が反応してウイルスと誤認識されてしまうという問題があって、できなかった。
まぁ、Meryでも使えるというのはここだけの秘密ということにしといて下さい。| foo | 返信