diff --git a/honoka/po/POTFILES.in b/honoka/po/POTFILES.in index 7e3d7cd..672c85d 100644 --- a/honoka/po/POTFILES.in +++ b/honoka/po/POTFILES.in @@ -5,6 +5,8 @@ src/honokasetupgtk.cpp src/multiconvertor.h src/multiconvertor.cpp +src/acpredictor.h +src/acpredictor.cpp plugins/romkan.h plugins/romkan.cpp plugins/kanainput.h diff --git a/honoka/po/honoka.pot b/honoka/po/honoka.pot index 5fe011e..5bc1c38 100644 --- a/honoka/po/honoka.pot +++ b/honoka/po/honoka.pot @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-08-30 08:49+0900\n" +"POT-Creation-Date: 2005-09-17 14:14+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,49 +33,49 @@ msgid "SCIM-WNN HELP" msgstr "" -#: src/honoka_imengine.cpp:582 +#: src/honoka_imengine.cpp:573 msgid "input mode" msgstr "" -#: src/honoka_imengine.cpp:586 src/honoka_imengine.cpp:594 -#: src/honoka_imengine.cpp:602 src/honoka_imengine.cpp:605 +#: src/honoka_imengine.cpp:577 src/honoka_imengine.cpp:585 +#: src/honoka_imengine.cpp:593 src/honoka_imengine.cpp:596 msgid "mode status" msgstr "" -#: src/honoka_imengine.cpp:590 +#: src/honoka_imengine.cpp:581 msgid "predictor" msgstr "" -#: src/honoka_imengine.cpp:598 +#: src/honoka_imengine.cpp:589 msgid "convertor" msgstr "" -#: src/honoka_imengine.cpp:607 +#: src/honoka_imengine.cpp:598 msgid "conversion mode" msgstr "" -#: src/honoka_imengine.cpp:630 +#: src/honoka_imengine.cpp:621 msgid "Kanji" msgstr "" -#: src/honoka_imengine.cpp:631 +#: src/honoka_imengine.cpp:622 msgid "Yosoku" msgstr "" -#: src/honoka_imengine.cpp:637 +#: src/honoka_imengine.cpp:628 msgid "AUTO" msgstr "" -#: src/honoka_imengine.cpp:638 +#: src/honoka_imengine.cpp:629 msgid "REN" msgstr "" -#: src/honoka_imengine.cpp:1399 src/honoka_imengine.cpp:1438 -#: src/honoka_imengine.cpp:1450 +#: src/honoka_imengine.cpp:1385 src/honoka_imengine.cpp:1424 +#: src/honoka_imengine.cpp:1436 msgid "could not connect to server." msgstr "" -#: src/honoka_imengine.cpp:1408 +#: src/honoka_imengine.cpp:1394 msgid "The error was received from Converter. " msgstr "" @@ -505,27 +505,31 @@ msgid "lookup result (M)" msgstr "" -#: plugins/romkan.cpp:578 +#: src/acpredictor.cpp:110 +msgid "AutoConversion" +msgstr "" + +#: plugins/romkan.cpp:579 msgid "Roma-Kana" msgstr "" -#: plugins/romkan.cpp:582 +#: plugins/romkan.cpp:583 msgid "Roma-Katakana" msgstr "" -#: plugins/romkan.cpp:586 +#: plugins/romkan.cpp:587 msgid "Half Roma-Kana" msgstr "" -#: plugins/romkan.cpp:590 +#: plugins/romkan.cpp:591 msgid "Ascii" msgstr "" -#: plugins/romkan.cpp:594 +#: plugins/romkan.cpp:595 msgid "Wide Ascii" msgstr "" -#: plugins/romkan.cpp:666 +#: plugins/romkan.cpp:667 msgid "Roma" msgstr "" diff --git a/honoka/po/ja.po b/honoka/po/ja.po index 71b59fc..0e95bbc 100644 --- a/honoka/po/ja.po +++ b/honoka/po/ja.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: ja\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-08-30 08:49+0900\n" +"POT-Creation-Date: 2005-09-17 14:14+0900\n" "PO-Revision-Date: 2004-12-01 14:29+0900\n" "Last-Translator: TAM (Teppei Tamra) \n" "Language-Team: Japanese\n" @@ -35,49 +35,49 @@ msgid "SCIM-WNN HELP" msgstr "適当にそれっぽく操作して下さい。" -#: src/honoka_imengine.cpp:582 +#: src/honoka_imengine.cpp:573 msgid "input mode" msgstr "入力モード" -#: src/honoka_imengine.cpp:586 src/honoka_imengine.cpp:594 -#: src/honoka_imengine.cpp:602 src/honoka_imengine.cpp:605 +#: src/honoka_imengine.cpp:577 src/honoka_imengine.cpp:585 +#: src/honoka_imengine.cpp:593 src/honoka_imengine.cpp:596 msgid "mode status" msgstr "状態" -#: src/honoka_imengine.cpp:590 +#: src/honoka_imengine.cpp:581 msgid "predictor" msgstr "予測エンジン" -#: src/honoka_imengine.cpp:598 +#: src/honoka_imengine.cpp:589 msgid "convertor" msgstr "変換エンジン" -#: src/honoka_imengine.cpp:607 +#: src/honoka_imengine.cpp:598 msgid "conversion mode" msgstr "変換モード" -#: src/honoka_imengine.cpp:630 +#: src/honoka_imengine.cpp:621 msgid "Kanji" msgstr "[漢]" -#: src/honoka_imengine.cpp:631 +#: src/honoka_imengine.cpp:622 msgid "Yosoku" msgstr "[予]" -#: src/honoka_imengine.cpp:637 +#: src/honoka_imengine.cpp:628 msgid "AUTO" msgstr "[逐]" -#: src/honoka_imengine.cpp:638 +#: src/honoka_imengine.cpp:629 msgid "REN" msgstr "[連]" -#: src/honoka_imengine.cpp:1399 src/honoka_imengine.cpp:1438 -#: src/honoka_imengine.cpp:1450 +#: src/honoka_imengine.cpp:1385 src/honoka_imengine.cpp:1424 +#: src/honoka_imengine.cpp:1436 msgid "could not connect to server." msgstr "サーバに接続できませんでした" -#: src/honoka_imengine.cpp:1408 +#: src/honoka_imengine.cpp:1394 msgid "The error was received from Converter. " msgstr "変換エンジンがエラーを返しよりました。" @@ -509,27 +509,31 @@ msgid "lookup result (M)" msgstr "必殺技候補" -#: plugins/romkan.cpp:578 +#: src/acpredictor.cpp:110 +msgid "AutoConversion" +msgstr "逐次変換" + +#: plugins/romkan.cpp:579 msgid "Roma-Kana" msgstr "[あ]" -#: plugins/romkan.cpp:582 +#: plugins/romkan.cpp:583 msgid "Roma-Katakana" msgstr "[ア]" -#: plugins/romkan.cpp:586 +#: plugins/romkan.cpp:587 msgid "Half Roma-Kana" msgstr "[アr]" -#: plugins/romkan.cpp:590 +#: plugins/romkan.cpp:591 msgid "Ascii" msgstr "[aa]" -#: plugins/romkan.cpp:594 +#: plugins/romkan.cpp:595 msgid "Wide Ascii" msgstr "[a]" -#: plugins/romkan.cpp:666 +#: plugins/romkan.cpp:667 msgid "Roma" msgstr "ローマ字" diff --git a/honoka/src/Makefile.am b/honoka/src/Makefile.am index 6a30895..c5aa834 100644 --- a/honoka/src/Makefile.am +++ b/honoka/src/Makefile.am @@ -27,12 +27,12 @@ -DHONOKA_PLUGINDIR=\"@SCIM_MODULEDIR@/honoka\" noinst_HEADERS = honoka_imengine.h multiconvertor.h honoka_def.h \ - honokasetupgtk.h + honokasetupgtk.h acpredictor.h moduledir = @SCIM_MODULEDIR@/IMEngine module_LTLIBRARIES = honoka.la -honoka_la_SOURCES = honoka_imengine.cpp multiconvertor.cpp +honoka_la_SOURCES = honoka_imengine.cpp multiconvertor.cpp acpredictor.cpp honoka_la_CFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@ honoka_la_CXXFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@ diff --git a/honoka/src/acpredictor.cpp b/honoka/src/acpredictor.cpp new file mode 100644 index 0000000..d410370 --- /dev/null +++ b/honoka/src/acpredictor.cpp @@ -0,0 +1,129 @@ +/*************************************************************************** + * Copyright (C) 2005 by TAM(Teppei Tamra) * + * tam-t@par.odn.ne.jp * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include "acpredictor.h" +#include +#include + +#ifdef HAVE_CONFIG_H + #include +#endif + +#ifdef HAVE_GETTEXT + #include + #define _(String) dgettext(GETTEXT_PACKAGE,String) + #define N_(String) (String) +#else + #define _(String) (String) + #define N_(String) (String) + #define bindtextdomain(Package,Directory) + #define textdomain(domain) + #define bind_textdomain_codeset(domain,codeset) +#endif + +ACPredictor::ACPredictor(ConfigPointer cfg, HonokaInstance *i) +: Predictor(cfg) +{ + instance = i; +} + + +ACPredictor::~ACPredictor() +{ +} + + + + +/*! + \fn ACPredictor::getPredictionList(const WideString &str) + */ +ResultList ACPredictor::getPredictionList(const WideString &str) +{ + ResultList result; + if (isConnected()) { + instance->m_convertor->setYomiText(str); + if (instance->m_convertor->ren_conversion() != -1) { + vector segments = instance->m_convertor->getSegmentList(); + WideString t; + for(unsigned int i = 0;i < segments.size();i ++) t += segments[i].getKanji(); + result.kType = PREDICTION; + result.kouho.push_back(ResultEntry(t)); + } + instance->m_convertor->reset(); + } + return result; +} + + +/*! + \fn ACPredictor::disconnect() + */ +void ACPredictor::disconnect() +{ + if (instance->m_convertor->isConnected()) return instance->m_convertor->disconnect(); + return; +} + + +/*! + \fn ACPredictor::connect() + */ +bool ACPredictor::connect() +{ + if (!instance->m_convertor->isConnected()) return instance->m_convertor->connect(); + return true; +} + + +/*! + \fn ACPredictor::isConnected() + */ +bool ACPredictor::isConnected() +{ + return instance->m_convertor->isConnected(); +} + + +/*! + \fn ACPredictor::getPropertyName() + */ +String ACPredictor::getPropertyName() +{ + return String(_("AutoConversion")); +} + +/*! + \fn ACPredictor::getName() + */ +String ACPredictor::getName() +{ + return String("ACPredictor"); +} + + + +/*! + \fn ACPredictor::update(const WideString str,const WideString yomi) + */ +void ACPredictor::update(const WideString str,const WideString yomi) +{ + return; +} diff --git a/honoka/src/acpredictor.h b/honoka/src/acpredictor.h new file mode 100644 index 0000000..0f252a0 --- /dev/null +++ b/honoka/src/acpredictor.h @@ -0,0 +1,50 @@ +/*************************************************************************** + * Copyright (C) 2005 by TAM(Teppei Tamra) * + * tam-t@par.odn.ne.jp * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef ACPREDICTOR_H +#define ACPREDICTOR_H + +#include +#include + +/** +@author TAM (Teppei Tamra) +*/ +class HonokaInstance; + +class ACPredictor : public Predictor +{ +public: + ACPredictor(ConfigPointer cfg, HonokaInstance *i); + + ~ACPredictor(); + virtual ResultList getPredictionList(const WideString &str); + virtual void disconnect(); + virtual bool connect(); + virtual bool isConnected(); + virtual String getPropertyName(); + virtual String getName(); + virtual void update(const WideString str,const WideString yomi); +protected: + HonokaInstance *instance; + +}; + +#endif diff --git a/honoka/src/honoka_imengine.cpp b/honoka/src/honoka_imengine.cpp index ff9d3e2..bbf4e7a 100644 --- a/honoka/src/honoka_imengine.cpp +++ b/honoka/src/honoka_imengine.cpp @@ -217,6 +217,9 @@ } } } + + predictors.push_back(new ACPredictor(_scim_config,this)); + // �ץ饰���󤬤ʤ���Хǥե����㵡ǽ�ʥ١������饹��Ȥ��ޤ��� if (!convertors.size()) convertors.push_back(new Convertor(_scim_config)); if (!preeditors.size()) preeditors.push_back(new PreEditor(_scim_config)); diff --git a/honoka/src/honoka_imengine.h b/honoka/src/honoka_imengine.h index c47dfa0..13a6f52 100644 --- a/honoka/src/honoka_imengine.h +++ b/honoka/src/honoka_imengine.h @@ -47,6 +47,7 @@ #include #include #include +#include typedef HonokaPluginBase* createInstanceFunc(ConfigPointer); typedef void deleteInstanceFunc(HonokaPluginBase *); @@ -92,6 +93,7 @@ { protected: friend class MultiConvertor; + friend class ACPredictor; public: HonokaInstance (HonokaFactory *factory, const String &encoding, int id = -1);