HOME > さらに使いこなす > ATOKダイレクト API > ATOK 2008 for Windows向け(プラグイン作成)
Perl 、Ruby を用いてプラグインを作成するには
を用意する必要があります。
ATOK ダイレクトで検索を実行した場合、入力中の文字列をプラグインで受け取ることができます。
スクリプトプラグインでは、入力中の文字列に対応する候補情報(候補表記、コメント、ツールチップ候補とその種類)を生成し、出力することができます。
Perlで記述したプラグインを作成する場合、そのスクリプトファイルに記述しなければならない情報は、以下の通りです。
#################################################
#
# Perlモジュール用のプラグインインターフェイス
#
# ※このテキストは必ずUTF-8で記述すること
# 扱う文字列は全てUTF-8前提であるとする
#
#################################################
package Atok_plugin;
#################################################
# 宣言
use strict;
use utf8;
#################################################
# 取得処理を実行する
# ・設定した候補を返すことが可能
# ・最大で100個の候補を返すことができる
# ・候補には、
# 1.表記
# 2.コメント
# 3.ツールチップ(確定文字列かURLジャンプ文字列)
# を設定できる
# ・何もセットしなかった場合、処理結果は何もないと判断される
# ・引数で渡される情報に含まれる文字列は、全てUTF8フラグが付いている
# ・返す情報に含める文字列は必ずUTF8にする必要がある
# (UTF8フラグは付いていなくても問題ない)
sub run_process
{
my( $a_request_data ) = @_;
my %result_data;
my @candidate_array;
push( @candidate_array , { 'hyoki' => "候補1" ,
'comment' => "コメント1" ,
'alternative' => "確定文字1" ,
'alternative_type' => 'definite_string' } );
$result_data{ 'candidate' } = \@candidate_array;
return( %result_data );
}
#################################################
1; # 重要:モジュールは必ず真と解釈される値を返さなければならない
※「Atok_plugin」パッケージ内に「run_process」を実装する必要があります。
「run_process」の引数で受け取るオブジェクトはハッシュであり、その構造は以下の通りです。『文字列』は全てUTF-8 で通知され、UTF8フラグが付いています。
キー | 種類 | 値 |
---|---|---|
composition_string | 文字列 | 入力中の文字列 |
プラグインの処理結果として返すオブジェクトはハッシュであり、その構造は以下の通りです。
キー | 種類 | 値 |
---|---|---|
candidate | 配列 | 候補として設定する 内容を格納します。 |
「candidate」で表される配列の個々の内容はハッシュであり、その構造は以下の通りです。『文字列』は全てUTF-8 で指定しますが、UTF8 フラグはなくてもかまいません。
キー | 種類 | 値 |
---|---|---|
hyoki | 文字列 | 候補文字列
|
comment | 文字列 | 候補に対応するコメント文字列
|
alternative | 文字列 | 候補に対応するツールチップ文字列
|
alternative_type | 文字列 | 候補に対応するツールチップの種類を表す文字列。以下のいずれかを設定します。
|
※文字列が最大値を超える場合、超過した文字列は破棄します。
※URL文字列については、http:// から始まらない場合や最大値を超える場合は、ツールチップ文字列は使用しません。
処理結果を格納して返すオブジェクト。(結果なしの場合は空のオブジェクトを返します)
Ruby で記述したプラグインを作成する場合、そのスクリプトファイルに記述しなければならない情報は、以下の通りです。
#! /usr/bin/ruby -Ku
#################################################
#
# ATOKダイレクトRubyスクリプトモジュールインターフェイス
#
# ※このテキストは必ずUTF-8で記述すること
# 扱う文字列は全てUTF-8前提であるとする
#
#################################################
module Atok_plugin
#################################################
# 取得処理を実行する
# ・設定した候補を返すことが可能
# ・最大で100個の候補を返すことができる
# ・候補には、
# 1.表記
# 2.コメント
# 3.ツールチップ(確定文字列かURLジャンプ文字列)
# を設定できる
# ・何もセットしなかった場合、処理結果は何もないと判断される
# ・引数で渡される情報に含まれる文字列は、全てUTF8である
# ・返す情報に含める文字列は必ずUTF-8にする必要がある
def run_process( a_request_data )
result_data = Hash.new
candidate_array = Array.new
candidate_array.push( { 'hyoki' => "候補1" ,
'comment' => "コメント1" ,
'alternative' => "確定文字1" ,
'alternative_type' => "definite_string" } )
result_data[ 'candidate' ] = candidate_array
result_data
end
#################################################
end
※「Atok_plugin」パッケージ内に「run_process」を実装する必要があります。
「run_process 」の引数で受け取るオブジェクトはHash であり、その構造は以下の通りです。 (『String 』は全てUTF-8 で通知されます)
キー | 種類 | 値 |
---|---|---|
composition_string | String | 入力中の文字列 |
プラグインの処理結果として返すオブジェクトはHashであり、その構造は以下の通りです。
キー | 種類 | 値 |
---|---|---|
candidate | Array | 候補として設定する 内容を格納します。 |
「candidate」で表される配列の個々の内容はHashであり、その構造は以下の通りです。 『String』は全てUTF-8 で指定する必要があります。
キー | 種類 | 値 |
---|---|---|
hyoki | String | 候補文字列
|
comment | String | 候補に対応するコメント文字列
|
alternative | String | 候補に対応するツールチップ文字列
|
alternative_type | String | 候補に対応するツールチップの種類を表す文字列。以下のいずれかを設定します。
|
※文字列が最大値を超える場合、超過した文字列は破棄します。
※URL文字列については、http:// から始まらない場合や最大値を超える場合は、ツールチップ文字列は使用しません。
処理結果を格納して返すオブジェクト。(結果なしの場合は空のオブジェクトを返します)
プラグインの情報(プラグインの名前、解説、コピーライト、およびバージョン)を記述するXML ファイルを準備します。
情報ファイルのファイル名は、スクリプトファイル名と同名のXMLファイル(スクリプトファイルの拡張子をのぞいた部分+拡張子XML のファイル)となります。
スクリプトファイルがplugin_sample.rb の場合、情報ファイル名はplugin_sample.xml。
<?xml version="1.0" encoding="UTF-8" ?>
<plugin_info>
<name>プラグインの名前</name>
<description>プラグインの解説</description>
<copyright>プラグインのコピーライト</copyright>
<major_version>1</major_version>
<minor_version>0</minor_version>
</plugin_info>
情報ファイルのタグは、以下の内容を示します。
※文字列が最大値を超える場合、超過した文字列は破棄します。