diff --git a/scim-wnn/po/ja.po b/scim-wnn/po/ja.po index 1193749..851e75b 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: 2005-01-11 14:22+0900\n" +"POT-Creation-Date: 2005-01-16 13:11+0900\n" "PO-Revision-Date: 2004-12-01 14:29+0900\n" "Last-Translator: TAM (Teppei Tamra) \n" "Language-Team: Japanese\n" @@ -35,39 +35,52 @@ msgid "SCIM-WNN HELP" msgstr "適当にそれっぽく操作して下さい。" -#: src/scim_wnn_imengine.cpp:317 +#: src/scim_wnn_imengine.cpp:321 msgid "input mode" msgstr "入力モード" -#: src/scim_wnn_imengine.cpp:321 src/scim_wnn_imengine.cpp:324 +#: src/scim_wnn_imengine.cpp:325 src/scim_wnn_imengine.cpp:328 msgid "mode status" msgstr "状態" -#: src/scim_wnn_imengine.cpp:335 +#: src/scim_wnn_imengine.cpp:330 +msgid "conversion mode" +msgstr "変換モード" + +#: src/scim_wnn_imengine.cpp:341 msgid "Kanji" msgstr "[漢]" -#: src/scim_wnn_imengine.cpp:336 +#: src/scim_wnn_imengine.cpp:342 msgid "Yosoku" msgstr "[予]" -#: src/scim_wnn_imengine.cpp:836 src/scim_wnn_imengine.cpp:844 +#: src/scim_wnn_imengine.cpp:348 +msgid "AUTO" +msgstr "[逐]" + +#: src/scim_wnn_imengine.cpp:349 +msgid "REN" +msgstr "[連]" + +#: src/scim_wnn_imengine.cpp:861 src/scim_wnn_imengine.cpp:869 +#: src/scim_wnn_imengine.cpp:896 src/scim_wnn_imengine.cpp:908 msgid "could not connect to jserver." msgstr "サーバに接続できませんでした" -#: src/scim_wnn_imengine.cpp:890 +#: src/scim_wnn_imengine.cpp:948 msgid "Ikeiji lookup result" msgstr "異形字変換" -#: src/scim_wnn_imengine.cpp:894 +#: src/scim_wnn_imengine.cpp:952 msgid "association lookup result" msgstr "連想変換" -#: src/scim_wnn_imengine.cpp:898 +#: src/scim_wnn_imengine.cpp:956 msgid "yosoku lookup result" msgstr "予測候補" -#: src/scim_wnn_imengine.cpp:902 +#: src/scim_wnn_imengine.cpp:960 msgid "lookup result" msgstr "候補一覧" @@ -435,19 +448,19 @@ msgid "Options" msgstr "オプション" -#: src/romkan.cpp:295 +#: src/romkan.cpp:297 msgid "Roma-Kana" msgstr "[あ]" -#: src/romkan.cpp:299 +#: src/romkan.cpp:301 msgid "Ascii" msgstr "[aa]" -#: src/romkan.cpp:303 +#: src/romkan.cpp:305 msgid "Wide Ascii" msgstr "[a]" -#: src/romkan.cpp:357 +#: src/romkan.cpp:359 msgid "Roma" msgstr "ローマ字" diff --git a/scim-wnn/po/scim-wnn.pot b/scim-wnn/po/scim-wnn.pot index 24ad386..05168e5 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: 2005-01-11 14:22+0900\n" +"POT-Creation-Date: 2005-01-16 13:11+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -32,39 +32,52 @@ msgid "SCIM-WNN HELP" msgstr "" -#: src/scim_wnn_imengine.cpp:317 +#: src/scim_wnn_imengine.cpp:321 msgid "input mode" msgstr "" -#: src/scim_wnn_imengine.cpp:321 src/scim_wnn_imengine.cpp:324 +#: src/scim_wnn_imengine.cpp:325 src/scim_wnn_imengine.cpp:328 msgid "mode status" msgstr "" -#: src/scim_wnn_imengine.cpp:335 +#: src/scim_wnn_imengine.cpp:330 +msgid "conversion mode" +msgstr "" + +#: src/scim_wnn_imengine.cpp:341 msgid "Kanji" msgstr "" -#: src/scim_wnn_imengine.cpp:336 +#: src/scim_wnn_imengine.cpp:342 msgid "Yosoku" msgstr "" -#: src/scim_wnn_imengine.cpp:836 src/scim_wnn_imengine.cpp:844 +#: src/scim_wnn_imengine.cpp:348 +msgid "AUTO" +msgstr "" + +#: src/scim_wnn_imengine.cpp:349 +msgid "REN" +msgstr "" + +#: src/scim_wnn_imengine.cpp:861 src/scim_wnn_imengine.cpp:869 +#: src/scim_wnn_imengine.cpp:896 src/scim_wnn_imengine.cpp:908 msgid "could not connect to jserver." msgstr "" -#: src/scim_wnn_imengine.cpp:890 +#: src/scim_wnn_imengine.cpp:948 msgid "Ikeiji lookup result" msgstr "" -#: src/scim_wnn_imengine.cpp:894 +#: src/scim_wnn_imengine.cpp:952 msgid "association lookup result" msgstr "" -#: src/scim_wnn_imengine.cpp:898 +#: src/scim_wnn_imengine.cpp:956 msgid "yosoku lookup result" msgstr "" -#: src/scim_wnn_imengine.cpp:902 +#: src/scim_wnn_imengine.cpp:960 msgid "lookup result" msgstr "" @@ -432,19 +445,19 @@ msgid "Options" msgstr "" -#: src/romkan.cpp:295 +#: src/romkan.cpp:297 msgid "Roma-Kana" msgstr "" -#: src/romkan.cpp:299 +#: src/romkan.cpp:301 msgid "Ascii" msgstr "" -#: src/romkan.cpp:303 +#: src/romkan.cpp:305 msgid "Wide Ascii" msgstr "" -#: src/romkan.cpp:357 +#: src/romkan.cpp:359 msgid "Roma" msgstr "" diff --git a/scim-wnn/src/scim_wnn_def.h b/scim-wnn/src/scim_wnn_def.h index cca925f..3712288 100644 --- a/scim-wnn/src/scim_wnn_def.h +++ b/scim-wnn/src/scim_wnn_def.h @@ -64,6 +64,8 @@ #define SCIM_DEFAULT_WNN_KEY_CONVERSION_RENSOU "Shift+F9" #define SCIM_CONFIG_WNN_KEY_SELECT_YOSOKU "/IMEngine/Wnn/Key/SelectYosoku" #define SCIM_DEFAULT_WNN_KEY_SELECT_YOSOKU "Tab" +#define SCIM_CONFIG_WNN_KEY_AUTO_CONVERSION "/IMEngine/Wnn/Key/AutoConversion" +#define SCIM_DEFAULT_WNN_KEY_AUTO_CONVERSION "Alt+a" #define SCIM_CONFIG_WNN_ALP "/IMEngine/Wnn/AutoLookupPopup" #define SCIM_DEFAULT_WNN_ALP 3 @@ -71,6 +73,8 @@ #define SCIM_DEFAULT_WNN_SERVER "localhost" #define SCIM_CONFIG_WNN_RC "/IMEngine/Wnn/Rc" #define SCIM_DEFAULT_WNN_RC "/usr/lib/wnn7/ja_JP/wnnenvrc" +#define SCIM_CONFIG_WNN_AUTO_CONVERSION "/IMEngine/Wnn/AutoConversion" +#define SCIM_DEFAULT_WNN_AUTO_CONVERSION false #define SCIM_CONFIG_WNN_NUMKEY_SELECT "/IMEngine/Wnn/NumkeySelection" #define SCIM_DEFAULT_WNN_NUMKEY_SELECT true #define SCIM_CONFIG_WNN_DEFAULT_PREEDITOR "/IMEngine/Wnn/DefaultPreEditor" @@ -94,6 +98,7 @@ #define SCIM_PROP_WNN_MODESTATUS "/IMEngine/Wnn/Property/ModeStatus" #define SCIM_PROP_WNN_INPUTMODE "/IMEngine/Wnn/InputMode" +#define SCIM_PROP_WNN_CONVERSIONMODE "/IMEngine/Wnn/ConversionMode" #endif diff --git a/scim-wnn/src/scim_wnn_imengine.cpp b/scim-wnn/src/scim_wnn_imengine.cpp index 861eaf5..92403d9 100644 --- a/scim-wnn/src/scim_wnn_imengine.cpp +++ b/scim-wnn/src/scim_wnn_imengine.cpp @@ -217,6 +217,7 @@ sType = Wnn4; } defaultPreEditor = _scim_config->read(String(SCIM_CONFIG_WNN_DEFAULT_PREEDITOR),String(SCIM_DEFAULT_WNN_DEFAULT_PREEDITOR)); + auto_conversion = _scim_config->read(String(SCIM_CONFIG_WNN_AUTO_CONVERSION),SCIM_DEFAULT_WNN_AUTO_CONVERSION);; // �ǥե���ȥ������ꡣ scim_string_to_key_list(k_conversion_start, @@ -283,6 +284,9 @@ scim_string_to_key_list(k_select_yosoku, _scim_config->read(String(SCIM_CONFIG_WNN_KEY_SELECT_YOSOKU), String(SCIM_DEFAULT_WNN_KEY_SELECT_YOSOKU))); + scim_string_to_key_list(k_auto_conversion, + _scim_config->read(String(SCIM_CONFIG_WNN_KEY_AUTO_CONVERSION), + String(SCIM_DEFAULT_WNN_KEY_AUTO_CONVERSION))); changePreEditor(defaultPreEditor); @@ -323,6 +327,8 @@ } p = Property(SCIM_PROP_WNN_MODESTATUS,"",String(""),_("mode status")); m_proplist.push_back(p); + p = Property(SCIM_PROP_WNN_CONVERSIONMODE,"",String(""),_("conversion mode")); + m_proplist.push_back(p); } PropertyList::iterator it; it = find(m_proplist.begin(),m_proplist.end(),SCIM_PROP_WNN_INPUTMODE); @@ -337,6 +343,12 @@ else it->set_label(m_preeditor->getModeName()); } update_property(*it); + it = find(m_proplist.begin(),m_proplist.end(),SCIM_PROP_WNN_CONVERSIONMODE); + if (it != m_proplist.end()) { + if (auto_conversion) it->set_label(_("AUTO")); + else it->set_label(_("REN")); + } + update_property(*it); register_properties(m_proplist); } @@ -347,10 +359,14 @@ void WnnInstance::updatePreEditor() { if (m_preeditor->getTextLength()) { - show_preedit_string(); - update_preedit_string(m_preeditor->getText()); - update_preedit_caret(m_preeditor->getPos()); - if ((!m_conversion) && yosoku && wnn.isConnected() && (sType == Wnn7)) { + if (auto_conversion && (m_preeditor->getTextLength() == m_preeditor->getPos())) + autoConversion(); + else { + show_preedit_string(); + update_preedit_string(m_preeditor->getText()); + update_preedit_caret(m_preeditor->getPos()); + } + if ((!m_conversion) && yosoku && wnn.isConnected() && (sType == Wnn7) && (!auto_conversion)) { m_convList = wnn.getYosokuList(m_preeditor->getText()); if (m_convList.count) { m_lookup_table.clear(); @@ -423,7 +439,10 @@ return(true); } else if (k_commit.comp(key)) { - commit_string(m_preeditor->getText(true)); + if (auto_conversion) { + commit_string(wnn.getText()); + wnn.reset(); + } else commit_string(m_preeditor->getText(true)); m_preeditor->reset(); updatePreEditor(); return(true); @@ -468,6 +487,12 @@ return(true); } + if (k_auto_conversion.comp(key)) { + auto_conversion ? auto_conversion = false : auto_conversion = true; + updatePreEditor(); + return(true); + } + if (m_preeditor->inputEvent(key)) { updatePreEditor(); @@ -813,6 +838,11 @@ changePreEditor(property.substr(s.length() + 1)); updateProperty(); } + s = SCIM_PROP_WNN_CONVERSIONMODE; + if (property == s) { + auto_conversion ? auto_conversion = false : auto_conversion = true; + updatePreEditor(); + } } @@ -862,6 +892,39 @@ /*! + \fn WnnInstance::autoConversion() + */ +void WnnInstance::autoConversion() +{ + if (!wnn.isConnected()) { + if (!wnn.wnnConnect(String("scim-wnn"),host,rc,sType,0)) { + update_aux_string(utf8_mbstowcs(String(_("could not connect to jserver.")))); + show_aux_string(); + show_preedit_string(); + update_preedit_string(m_preeditor->getText()); + update_preedit_caret(m_preeditor->getPos()); + return; + } + } + + wnn.reset(); + wnn.setYomiText(m_preeditor->getText(true)); + if (wnn.ren_conversion() == -1) { + update_aux_string(utf8_mbstowcs(String(_("could not connect to jserver.")))); + show_aux_string(); + show_preedit_string(); + update_preedit_string(m_preeditor->getText()); + update_preedit_caret(m_preeditor->getPos()); + return; + } + + show_preedit_string(); + update_preedit_string(wnn.getText()); + update_preedit_caret(wnn.getText().size()); +} + + +/*! \fn WnnInstance::createLookupTable(WnnConversionList cList) */ void WnnInstance::createLookupTable(WnnConversionList cList) @@ -910,3 +973,5 @@ + + diff --git a/scim-wnn/src/scim_wnn_imengine.h b/scim-wnn/src/scim_wnn_imengine.h index 1168a28..42c7921 100644 --- a/scim-wnn/src/scim_wnn_imengine.h +++ b/scim-wnn/src/scim_wnn_imengine.h @@ -99,6 +99,7 @@ bool numkeyselect; bool mini_status; bool yosoku; + bool auto_conversion; String host; String rc; JServerType sType; @@ -116,6 +117,7 @@ void updateProperty(); void updateConversion(); void changePreEditor(const String &name); + void autoConversion(); private: WnnKeyEventList @@ -142,9 +144,9 @@ k_conversion_ikeiji, // �۷����Ѵ� k_conversion_rensou, // Ϣ���Ѵ� k_select_yosoku, // ͽ¬���� + k_auto_conversion, // �Ѵ��⡼�ɥȥ��� k_dummy; - }; diff --git a/scim-wnn/src/wnnconversion.cpp b/scim-wnn/src/wnnconversion.cpp index 804fc1c..92bf164 100644 --- a/scim-wnn/src/wnnconversion.cpp +++ b/scim-wnn/src/wnnconversion.cpp @@ -459,3 +459,5 @@ return(caretPos); } + +