6 EnglishPlugin::EnglishPlugin(QObject *parent)
11 void EnglishPlugin::set_settings(QSettings const *settings)
13 m_settings = settings;
16 QString EnglishPlugin::name() const { return QString("English"); }
18 int EnglishPlugin::code() const { return QLocale::Language::English; }
20 QIcon EnglishPlugin::icon() const
22 return QIcon(":/image/united_kingdom.svg");
25 Text::pointer EnglishPlugin::divide_into_sentences(QString string_)
27 Text::pointer result = Text::create();
28 result->set_data(RangeData::create(0, string_.size() - 1));
34 for(int i = 0; i < string_.size(); i++)
36 unsigned short c = string_.at(i).unicode();
39 case 0: s0: state = 0;// 開始位置
43 if(c == '.' || c == '?' || c == '!') state = 2;
46 if(c == ' ') state = 3;
50 if('A' <= c && c <= 'Z')
52 Text::pointer s = Text::create(result, cstring);
53 s->set_data(RangeData::create(begin_, tail_));
64 if(!cstring.isEmpty())
66 Text::pointer s = Text::create(result, cstring);
67 s->set_data(RangeData::create(begin_, tail_));
73 Text::pointer EnglishPlugin::divide_into_words(Text::pointer sentence)
75 assert(sentence->size() == 0);
76 Text::pointer result = Text::create();
77 result->set_data(sentence->data());
79 QString const &string_ = sentence->string();
83 for(int i = 0; i < string_.size(); i++)
85 unsigned short ch = string_.at(i).unicode();
86 if(('a' <= ch && ch <= 'z')
87 || ('A' <= ch && ch <= 'Z')
88 || ('0' <= ch && ch <= '9')
97 if(!cstring.isEmpty())
98 result->append(stuff_word(result, cstring, begin_, tail_));
100 result->append(stuff_word(result, QString(ch), i, i));
105 if(!cstring.isEmpty()) result->append(stuff_word(result, cstring, begin_, tail_));