diff --git a/scim-wnn/po/ja.po b/scim-wnn/po/ja.po index da9ea3c..39d1db0 100644 --- a/scim-wnn/po/ja.po +++ b/scim-wnn/po/ja.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ja\n" -"POT-Creation-Date: 2004-12-16 12:09+0900\n" +"POT-Creation-Date: 2004-12-18 08:43+0900\n" "PO-Revision-Date: 2004-12-01 14:29+0900\n" "Last-Translator: TAM (Teppei Tamra) \n" "Language-Team: Japanese\n" @@ -35,23 +35,33 @@ msgid "SCIM-WNN HELP" msgstr "適当にそれっぽく操作して下さい。" -#: src/scim_wnn_imengine.cpp:291 +#: src/scim_wnn_imengine.cpp:298 msgid "input mode" msgstr "入力モード" -#: src/scim_wnn_imengine.cpp:295 src/scim_wnn_imengine.cpp:298 +#: src/scim_wnn_imengine.cpp:302 src/scim_wnn_imengine.cpp:305 msgid "mode status" msgstr "状態" -#: src/scim_wnn_imengine.cpp:309 +#: src/scim_wnn_imengine.cpp:316 msgid "Kanji" msgstr "[漢]" -#: src/scim_wnn_imengine.cpp:670 src/scim_wnn_imengine.cpp:677 +#: src/scim_wnn_imengine.cpp:691 src/scim_wnn_imengine.cpp:698 msgid "could not connect to jserver." msgstr "サーバに接続できませんでした" -#: src/scim_wnn_imengine.cpp:718 +#: src/scim_wnn_imengine.cpp:741 +#, fuzzy +msgid "Ikeiji lookup result" +msgstr "異形字変換" + +#: src/scim_wnn_imengine.cpp:745 +#, fuzzy +msgid "association lookup result" +msgstr "連想変換" + +#: src/scim_wnn_imengine.cpp:749 msgid "lookup result" msgstr "候補一覧" @@ -290,4 +300,3 @@ #: src/kanainput.cpp:140 msgid "Kana" msgstr "かな入力" - diff --git a/scim-wnn/po/scim-wnn.pot b/scim-wnn/po/scim-wnn.pot index e424e6f..220a8eb 100644 --- a/scim-wnn/po/scim-wnn.pot +++ b/scim-wnn/po/scim-wnn.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2004-12-16 12:09+0900\n" +"POT-Creation-Date: 2004-12-18 08:43+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -32,23 +32,31 @@ msgid "SCIM-WNN HELP" msgstr "" -#: src/scim_wnn_imengine.cpp:291 +#: src/scim_wnn_imengine.cpp:298 msgid "input mode" msgstr "" -#: src/scim_wnn_imengine.cpp:295 src/scim_wnn_imengine.cpp:298 +#: src/scim_wnn_imengine.cpp:302 src/scim_wnn_imengine.cpp:305 msgid "mode status" msgstr "" -#: src/scim_wnn_imengine.cpp:309 +#: src/scim_wnn_imengine.cpp:316 msgid "Kanji" msgstr "" -#: src/scim_wnn_imengine.cpp:670 src/scim_wnn_imengine.cpp:677 +#: src/scim_wnn_imengine.cpp:691 src/scim_wnn_imengine.cpp:698 msgid "could not connect to jserver." msgstr "" -#: src/scim_wnn_imengine.cpp:718 +#: src/scim_wnn_imengine.cpp:741 +msgid "Ikeiji lookup result" +msgstr "" + +#: src/scim_wnn_imengine.cpp:745 +msgid "association lookup result" +msgstr "" + +#: src/scim_wnn_imengine.cpp:749 msgid "lookup result" msgstr "" diff --git a/scim-wnn/src/scim_wnn_def.h b/scim-wnn/src/scim_wnn_def.h index ee7e282..243c8fd 100644 --- a/scim-wnn/src/scim_wnn_def.h +++ b/scim-wnn/src/scim_wnn_def.h @@ -58,6 +58,11 @@ #define SCIM_CONFIG_WNN_KEY_CONVERT_KATAKANA "/IMEngine/Wnn/Key/ConvertKatakana" #define SCIM_DEFAULT_WNN_KEY_CONVERT_KATAKANA "Alt+k" +#define SCIM_CONFIG_WNN_KEY_CONVERSION_IKEIJI "/IMEngine/Wnn/Key/ConversionIkeiji" +#define SCIM_DEFAULT_WNN_KEY_CONVERSION_IKEIJI "Shift+F8" +#define SCIM_CONFIG_WNN_KEY_CONVERSION_RENSOU "/IMEngine/Wnn/Key/ConversionRensou" +#define SCIM_DEFAULT_WNN_KEY_CONVERSION_RENSOU "Shift+F9" + #define SCIM_CONFIG_WNN_ALP "/IMEngine/Wnn/AutoLookupPopup" #define SCIM_DEFAULT_WNN_ALP 3 #define SCIM_CONFIG_WNN_SERVER "/IMEngine/Wnn/Server" diff --git a/scim-wnn/src/scim_wnn_imengine.cpp b/scim-wnn/src/scim_wnn_imengine.cpp index e1719e2..f677132 100644 --- a/scim-wnn/src/scim_wnn_imengine.cpp +++ b/scim-wnn/src/scim_wnn_imengine.cpp @@ -263,6 +263,13 @@ _scim_config->read(String(SCIM_CONFIG_WNN_KEY_CONVERT_KATAKANA), String(SCIM_DEFAULT_WNN_KEY_CONVERT_KATAKANA))); + scim_string_to_key_list(k_conversion_rensou, + _scim_config->read(String(SCIM_CONFIG_WNN_KEY_CONVERSION_RENSOU), + String(SCIM_DEFAULT_WNN_KEY_CONVERSION_RENSOU))); + scim_string_to_key_list(k_conversion_ikeiji, + _scim_config->read(String(SCIM_CONFIG_WNN_KEY_CONVERSION_IKEIJI), + String(SCIM_DEFAULT_WNN_KEY_CONVERSION_IKEIJI))); + } @@ -493,6 +500,20 @@ alp_count = 1; return(true); } else + if (k_conversion_rensou.comp(key)) { + m_convList = wnn.getConversionList(wnn.getPos(),RENSOU); + startLookup(); + updateConversion(); + alp_count = 1; + return(true); + } else + if (k_conversion_ikeiji.comp(key)) { + m_convList = wnn.getConversionList(wnn.getPos(),IKEIJI); + startLookup(); + updateConversion(); + alp_count = 1; + return(true); + } else if (k_conversion_forward.comp(key) || k_conversion_backward.comp(key)) { k_conversion_backward.comp(key) ? wnn.setPos(wnn.getPos() - 1) : wnn.setPos(wnn.getPos() + 1); m_convList = wnn.getConversionList(); @@ -715,7 +736,20 @@ { createLookupTable(m_convList); m_lookup = true; - update_aux_string(utf8_mbstowcs(String(_("lookup result")))); + switch(m_convList.kType) { + case IKEIJI: { + update_aux_string(utf8_mbstowcs(String(_("Ikeiji lookup result")))); + break; + } + case RENSOU: { + update_aux_string(utf8_mbstowcs(String(_("association lookup result")))); + break; + } + default: { + update_aux_string(utf8_mbstowcs(String(_("lookup result")))); + break; + } + } show_aux_string(); show_lookup_table(); } diff --git a/scim-wnn/src/scim_wnn_imengine.h b/scim-wnn/src/scim_wnn_imengine.h index 47447ca..4fe4874 100644 --- a/scim-wnn/src/scim_wnn_imengine.h +++ b/scim-wnn/src/scim_wnn_imengine.h @@ -127,6 +127,11 @@ k_lookup_pagedown, // ����������� k_convert_hiragana, // �Ҥ餬���Ѵ� k_convert_katakana, // ���������Ѵ� + + // for Wnn7 + k_conversion_ikeiji, // �۷����Ѵ� + k_conversion_rensou, // Ϣ���Ѵ� + k_dummy; }; diff --git a/scim-wnn/src/wnnconversion.cpp b/scim-wnn/src/wnnconversion.cpp index 4c1f15d..d135715 100644 --- a/scim-wnn/src/wnnconversion.cpp +++ b/scim-wnn/src/wnnconversion.cpp @@ -280,9 +280,9 @@ /*! - \fn WnnConversion::getConversionList(int p) + \fn WnnConversion::getConversionList(int p,KouhoType kt) */ -WnnConversionList WnnConversion::getConversionList(int p) +WnnConversionList WnnConversion::getConversionList(int p,KouhoType kt) { w_char k[1024]; char buf[2048]; @@ -292,7 +292,7 @@ convList.pos = 0; convList.count = 0; if (p == -1) p = pos; - if ((p >= bunsetu) || (p < 0)) return(convList); + if ((p >= bunsetu) || (p < 0)) p = p % bunsetu; pos = p; jl_get_yomi(wnn,pos,pos + 1,k); wstostr((unsigned char*)buf,k); @@ -304,11 +304,31 @@ if (bunsetu == 1) conn = WNN_NO_USE; else if (pos == 0) conn = WNN_USE_ATO; else if (pos == (bunsetu - 1)) conn = WNN_USE_MAE; + switch (kt) { + #ifdef HAVE_LIBWNN7 + case IKEIJI: { + convList.pos = jl_zenikeiji_dai(wnn,pos,pos + 1,conn,WNN_UNIQ); + convList.kType = IKEIJI; + break; + } + case RENSOU: { + convList.pos = jl_zenassoc_dai(wnn,pos,pos + 1,conn,WNN_UNIQ); + convList.kType = RENSOU; + break; + } + #endif + default: { + convList.pos = jl_zenkouho_dai(wnn,pos,pos + 1,conn,WNN_UNIQ); + convList.kType = DEFAULT; + break; + } + } + // @todo be implement to ikeiji conversion using "jl_zenikeiji_dai()". // @todo be implement to rensou conversion using "jl_zenassoc_dai()". // @todo jl_zenkouho should change to jl_zenkouho_dai. - //convList.pos = jl_zenkouho_dai(wnn,pos,pos + 1,WNN_USE_ZENGO,WNN_UNIQ); - convList.pos = jl_zenkouho(wnn,pos,conn,WNN_UNIQ); + //convList.pos = jl_zenassoc_dai(wnn,pos,pos + 1,WNN_USE_ZENGO,WNN_UNIQ); + //convList.pos = jl_zenkouho(wnn,pos,conn,WNN_UNIQ); convList.count = jl_zenkouho_suu(wnn); for (unsigned int i = 0;i < convList.count; i ++) { @@ -331,7 +351,7 @@ { if (p > convList.count) p = 0; convList.pos = p; - jl_set_jikouho(wnn,p); + if (convList.kType == DEFAULT) jl_set_jikouho_dai(wnn,p); bunList.at(pos) = convList.kouho.at(p); createText(); diff --git a/scim-wnn/src/wnnconversion.h b/scim-wnn/src/wnnconversion.h index 30eab17..fd51997 100644 --- a/scim-wnn/src/wnnconversion.h +++ b/scim-wnn/src/wnnconversion.h @@ -37,11 +37,14 @@ /** @author TAM(Teppei Tamra) */ +enum KouhoType { DEFAULT, IKEIJI, RENSOU }; + class WnnConversionList{ public: WideString Yomi; int pos; int count; + KouhoType kType; vector kouho; }; @@ -57,7 +60,7 @@ WideString getText(); int setPos(int p); int getPos(); - WnnConversionList getConversionList(int p = -1); + WnnConversionList getConversionList(int p = -1 ,KouhoType kt = DEFAULT); bool select(int p); AttributeList getAttributeList(); bool resizeRegion(int w); diff --git a/scim-wnn/src/wnnproto.h b/scim-wnn/src/wnnproto.h index 3b60af0..3a1d333 100644 --- a/scim-wnn/src/wnnproto.h +++ b/scim-wnn/src/wnnproto.h @@ -47,6 +47,7 @@ int jl_zenkouho_dai(struct wnn_buf*,int,int,int,int); int jl_set_jikouho(struct wnn_buf*,int); + int jl_set_jikouho_dai(struct wnn_buf*,int); #ifdef HAVE_LIBWNN7 /* wnn6sdk is not having it.*/