All Projects → tani → cl-skkserv

tani / cl-skkserv

Licence: GPL-3.0 license
Common LispによるSKK辞書サーバーとその拡張

Programming Languages

Lex
420 projects

Projects that are alternatives of or similar to cl-skkserv

skk.vim
skk.vim with miscellaneous hacks. patches/forks are welcome. if you are insterested in improving skk.vim, please contact me by twitter, email, and so on.
Stars: ✭ 58 (+163.64%)
Mutual labels:  skk, input-method
textlint-rule-no-synonyms
同義語を表記ゆれをチェックするtextlintルール
Stars: ✭ 18 (-18.18%)
Mutual labels:  japanese
vi-rs
Vietnamese Input Method library
Stars: ✭ 69 (+213.64%)
Mutual labels:  input-method
FCH-TTS
A fast Text-to-Speech (TTS) model. Work well for English, Mandarin/Chinese, Japanese, Korean, Russian and Tibetan (so far). 快速语音合成模型,适用于英语、普通话/中文、日语、韩语、俄语和藏语(当前已测试)。
Stars: ✭ 154 (+600%)
Mutual labels:  japanese
open2ch-dialogue-corpus
おーぷん2ちゃんねるをクロールして作成した対話コーパス
Stars: ✭ 65 (+195.45%)
Mutual labels:  japanese
xsampa
X-SAMPA to IPA converter
Stars: ✭ 20 (-9.09%)
Mutual labels:  input-method
sample-boot-scala
Spring Boot + Scala + Skinny ORM
Stars: ✭ 14 (-36.36%)
Mutual labels:  japanese
ReaperJPN-Phroneris
製品版REAPER日本語化パッチ(森)
Stars: ✭ 41 (+86.36%)
Mutual labels:  japanese
ra-language-japanese
Japanese messages for react-admin
Stars: ✭ 22 (+0%)
Mutual labels:  japanese
google-news-scraper
Google News Scraper for languages like Japanese, Chinese... [VPN Support]
Stars: ✭ 88 (+300%)
Mutual labels:  japanese
nihongo
Japanese Dictionary
Stars: ✭ 77 (+250%)
Mutual labels:  japanese
Nihonoari-App
A little and minimalist Japanese Kana training
Stars: ✭ 66 (+200%)
Mutual labels:  japanese
unihandecode
unihandecode is a transliteration library to convert all characters/words in Unicode into ASCII alphabet that aware with Language preference priorities
Stars: ✭ 71 (+222.73%)
Mutual labels:  japanese
japanese-pretrained-models
Code for producing Japanese pretrained models provided by rinna Co., Ltd.
Stars: ✭ 484 (+2100%)
Mutual labels:  japanese
kanji-frequency
Kanji usage frequency data collected from various sources
Stars: ✭ 92 (+318.18%)
Mutual labels:  japanese
jmdict-kindle
Japanese - English dictionary for Kindle based on the JMdict / EDICT database
Stars: ✭ 151 (+586.36%)
Mutual labels:  japanese
vimdoc-ja-working
vimdoc-ja working repository
Stars: ✭ 70 (+218.18%)
Mutual labels:  japanese
docker-alpine-pandoc-ja
Pandoc for Japanese based on Alpine Linux
Stars: ✭ 14 (-36.36%)
Mutual labels:  japanese
akka-doc-ja
Akka Japanese Documentation
Stars: ✭ 25 (+13.64%)
Mutual labels:  japanese
Domino-English-Translation
🌏 Let's translate Domino, a Japanese MIDI editor!
Stars: ✭ 29 (+31.82%)
Mutual labels:  japanese

cl-skkserv

GitHub Quicklisp

概要

cl-skkserv はSKKに影響を受けた日本語入力システムです。 既存のSKKサーバーとの互換性を保ちながらCommon Lispによるインテグレーションを可能にします。

cl-skkservはSKKサーバーとその辞書機能が完全に分離しており動的に辞書機能を書き換えることが可能です。 これにより辞書ファイルを事前に合成しておく必要がなくなります。 更にGoogleのCGIや他のSKKサーバーでさえ辞書として使うことができます。

なお、このソフトウェアは開発初期段階です。APIが変わる可能性があります。 Quicklispとの関係上developブランチ上で開発を行い、安定版の公開用にmasterブランチを使用しています。 最新の開発版APIはdevelopブランチを参照してください。

導入

Common Lisp開発ツールであるRoswellを使うことで以下のように簡単に導入できます。

$ ros install cl-skkserv

使い方

基礎

$ skkserv start # skkservを起動する
$ skkserv stop  # skkservを停止する

応用

設定

~/.skkservrcで編集することができます。以下に一例を示します。

(in-package :skkserv-user)

(setf *dictionary* (make-instance 'skk-dictionary :pathname #p"/path/to/dictionary"))
Emacs

Emacsで使う場合は~/.emacsで以下を追記してください。

(setq skk-server-host "127.0.0.1")
(setq skk-server-portnum 1178)
Vim

Vimで使う場合は~/.vimrcで以下を追記してください。

let g:eskk#server = {
\	'host': 'localhost',
\	'port': 1178,
\}

辞書

すべての辞書はCLOSによって管理されており、必ずDICTIONARYクラスを継承しconvertメソッドが定義されています。 もしあなたが新しい辞書を作りたい場合はDICTIONARYクラスを継承しconvertメソッドを定義したクラスを作ることで辞書を作ることができます。

以下は入力をそのまま候補として返すEcho辞書の例です。 メソッドコンビネーションがappendになっていることに注意してください。

(defclass echo-dictionary (dictionary) ())
(defmethod convert append ((d echo-dictionary) (s string)) (declare (ignore d)) (list s))
(setq *dictionary* (make-instance 'echo-dictionary))

例えば、SKKの辞書にEcho辞書を合成したいならSKK辞書を継承して以下のようにすることができます。

(defclass echo-and-skk-dictionary (echo-dictionary skk-dictionary) ()) ;; skk-dicitonary はdictionaryクラスのサブクラスです。
(setq *dictionary* (make-instance 'echo-and-skk-dictionary :pathname #p"/path/to/dictionary"))

また、DICTIONARYクラスのサブクラスのインスタンス同士を合成するMIXED-DICTIONARYクラスを使うこともできます。

(defvar skk (make-instance 'skk-dictionary :pathname #p"/path/to/dictionary"))
(defvar echo (make-instance 'echo-dictionary))
(setq *dictionary* (make-instance 'mixed-dictionary :dictionaries (list skk echo)))

cl-skkservで既に定義されている辞書としては以下のクラスがあります。

  • dictionary
    • skk-text-dictionary
      • skk-dictionary
    • skk-lisp-dictionary
      • skk-dictionary
    • skk-pattern-dictionary
      • skk-dictionary
    • google-ime-dictionary
    • mixed-dictionary
    • proxy-dictionary

リファレンス

各システムはPapyrusによって文芸的プログラミングで作られています。 各ページへの目次は以下の通りです。

ライセンス

GPL第三版及びそれ以降のライセンスのもとで公開された自由ソフトウェアです。 ライセンスドキュメントはこちら

著作権表示

Copyright (c) 2017 TANIGUCHI Masaya ALL Rights Reserved.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].