skk-dev / dict

SKK dictionary
144 stars 31 forks source link

SKK中国語辞書 #22

Closed tetsuotsukamoto closed 3 years ago

tetsuotsukamoto commented 3 years ago

こんばんは。

SKKで使える中国語辞書(ピンイン→簡体字)を用意してみました。

https://github.com/tetsuotsukamoto/pinyin https://github.com/tetsuotsukamoto/pinyin/blob/main/SKK-JISYO.pinyin

辞書データの由来は、Emacs/LEIM と同じ CCE (Console Chinese Environment) というパッケージです。CCE は GPL v2 ライセンスです。

http://archive.debian.org/debian/pool/main/c/cce/cce_0.36.orig.tar.gz

これにより、SKK abbrev モードで pinyin (アルファベット) から単漢字または 単語に変換できます。

(例) ▽riben → ▼日本

SKK-JISYO.pinyin の文字コードはとりあえず utf-8 としています。

注意点としては、個人辞書の文字コードが日本語と中国語の混在を許すもの でないと問題がでるかもしれません。 (保存した後辞書を開きなおしたら別の漢字に変わってしまうなど)

pinyin は四声を省いた簡略なバージョンです。LEIM では四声付きの入力 メソッドもありますが、下手に実装するとかえって不便になるかと思います。

また四声なしの pinyin 辞書は、もう少し作業すれば補完入力に対応させる ことも可能かもしれません。

現在 DDSKK と AquaSKK で動作を確認しています。 ただし、AquaSKKのサーバー機能を利用して DDSKK から変換すると 一部の漢字が下駄になってしまい、表示できません。 これは SKKサーバーが EUC-JP を前提としており、一部の中国の漢字が 共存できないことと関係するかと思われます。

副作用として、mac OS 上の辞書機能 (DictionaryServices) をアノテーションで 利用する設定にしていると、中国語の候補に自動でアノテーションを付けることが 可能です。他の環境でもlookup経由のEPWING辞書によるアノテーションは可能と 思われます。

中国語使用者のプレゼンスが増している現代において、日本人にとっても 中国語を手軽に扱う手段があるのは悪くないかと思いました。 また、日本語入力メソッドのまま中国語を入力できるのは少し便利です。

今後もし余裕があったら改良していきたいと思います。

-- Tetsuo Tsukamoto

tats commented 3 years ago

SKK-JISYO.pinyin

特段の支障がなさそうなら、skk-dev/dictに取り込んではどうでしょうか。

CCE は GPL v2 ライセンスです。

GPL v2本文が同梱されていますが、許諾条件としてはGPL v1 or laterなの ですね。(GPL v2 onlyだとGPL v3 or laterとは非互換になります。GPL後継 バージョンとの互換性のためには"or later"が必要です) cf. https://www.gnu.org/licenses/gpl-faq.html#v2v3Compatibility

注意点としては、個人辞書の文字コードが日本語と中国語の混在を許すもの でないと問題がでるかもしれません。 (保存した後辞書を開きなおしたら別の漢字に変わってしまうなど)

EUC-JIS-2004の個人辞書で範疇外の文字が扱えない問題は、ほかのUTF-8の 辞書の場合と同様でしょう。

DDSKKでskk-jisyo-codeのデフォルト値を'utf-8にするのは、既存の設定 への影響を考えると悩ましいところです。Debianパッケージでは設定例を 示すに留めています。 cf. https://sources.debian.org/src/ddskk/17.1-2/debian/README.Debian/

tetsuotsukamoto commented 3 years ago

特段の支障がなさそうなら、skk-dev/dictに取り込んではどうでしょうか。

こちらは開発陣におまかせしますが、ライセンス的に問題ないことと、 ユーザーのメリットを考慮しているので、前向きの検討をいただけると幸いです。

CCE は GPL v2 ライセンスです。

GPL v2本文が同梱されていますが、許諾条件としてはGPL v1 or laterなの ですね。(GPL v2 onlyだとGPL v3 or laterとは非互換になります。GPL後継 バージョンとの互換性のためには"or later"が必要です) cf. https://www.gnu.org/licenses/gpl-faq.html#v2v3Compatibility

ここはライセンスのバージョンについての記述を間違えました。 明示的に GPL v2 にする理由はなかったです。 辞書自体はファイル内に書かれているように、GPL v1 or later の記述を残します。 私以降の配布については、それぞれの配布者のお考えに任せます。

DDSKKでskk-jisyo-codeのデフォルト値を'utf-8にするのは、既存の設定 への影響を考えると悩ましいところです。Debianパッケージでは設定例を 示すに留めています。 cf. https://sources.debian.org/src/ddskk/17.1-2/debian/README.Debian/

ユーザーが任意に設定できれば問題ないと思います。 DDSKKより歴史的背景の少ない SKK 実装なら utf-8 にしやすいでしょうね。

逆に問題があるとすると、先述したように skkserv の EUC-JP 決め打ち なのかもしれません。DDSKK でも skk-open-server() の中で "euc" が 指定されています。

tats commented 3 years ago

逆に問題があるとすると、先述したように skkserv の EUC-JP 決め打ち なのかもしれません。DDSKK でも skk-open-server() の中で "euc" が 指定されています。

UTF-8に対応しているyaskkserv2 https://github.com/wachikun/yaskkserv2 では、 DDSKKのskk-open-server()を上書きする方法が紹介されています。

Debianパッケージでは今のところサーバ側がUTF-8に対応しておらず、 また、UTF-8未対応の処理系が誤って扱わないよう、UTF-8の辞書は別 ディレクトリ</usr/share/skk/utf8>に配置しています。

tkita commented 3 years ago

Pull Request いただければ merge いたします。 ワタクシゴトで申し訳ありませんが、Pull Request によらない merge を知りません。 又は、「Pull Request によらない merge の手順」をお示しください。

tetsuotsukamoto commented 3 years ago

UTF-8に対応しているyaskkserv2 https://github.com/wachikun/yaskkserv2 では、 DDSKKのskk-open-server()を上書きする方法が紹介されています。

Debianパッケージでは今のところサーバ側がUTF-8に対応しておらず、 また、UTF-8未対応の処理系が誤って扱わないよう、UTF-8の辞書は別 ディレクトリ</usr/share/skk/utf8>に配置しています。

よく分かりました。 SKKの根幹は日本語に限定されないつくりもしているので さらなる国際化の可能性も含めて、今後どうなるか楽しみです。

tetsuotsukamoto commented 3 years ago

Pull Request いただければ merge いたします。 ワタクシゴトで申し訳ありませんが、Pull Request によらない merge を知りません。 又は、「Pull Request によらない merge の手順」をお示しください。

今回は自分の手元で中国語が入力できなくて不便に思い、 とりあえずつくったものを公開して関係ありそうなところにアナウウンスしました。 自分としてはこれで満足しています。 現段階で余計な要求をするつもりはありません。 ご心配にはおよびませんよ。

それでは。

tats commented 3 years ago

@tetsuotsukamoto

こちらは開発陣におまかせしますが、ライセンス的に問題ないことと、 ユーザーのメリットを考慮しているので、前向きの検討をいただけると幸いです。

ありがとうございます。私の方でPull Requestにしておきます。

tats commented 3 years ago

@tkita

Pull Request いただければ merge いたします。

SKK-JISYO.pinyinの追加とChangeLogの更新だけで、Pull Requestにしておきました。 cf. https://github.com/skk-dev/dict/pull/23

$ wget https://raw.githubusercontent.com/tetsuotsukamoto/pinyin/main/SKK-JISYO.pinyin
$ git add SKK-JISYO.pinyin
$ editor ChangeLog
$ git commit --author='Tetsuo Tsukamoto <tt.tetsuo.tsukamoto@gmail.com>' -am 'Add SKK-JISYO.pinyin'
tats commented 3 years ago

Merged by https://github.com/skk-dev/dict/commit/3f37fd44e38e888d09c7f6a046abba2fff60f8ba Thanks for your contribution.

tats commented 3 years ago

SKK-JISYO.pinyin is now included in Debian, https://tracker.debian.org/pkg/skkdic. Thank you.