summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/pinyin.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp
index 2d77a95..9ed172b 100644
--- a/src/pinyin.cpp
+++ b/src/pinyin.cpp
@@ -19,7 +19,7 @@ struct _pinyin_context_t{
PinyinLookup * m_pinyin_lookup;
PhraseLookup * m_phrase_lookup;
- PinyinKeyVector m_pinyins;
+ PinyinKeyVector m_pinyin_keys;
MatchResults m_match_results;
CandidateConstraints m_constraints;
@@ -61,12 +61,28 @@ bool pinyin_get_candidates(pinyin_context_t * context,
size_t offset, TokenVector tokens);
bool pinyin_choose_candidate(pinyin_context_t * context,
size_t offset, phrase_token_t token);
+bool pinyin_clear_constraints(pinyin_context_t * context);
/* the returned word should be freed by g_free. */
bool pinyin_translate_token(pinyin_context_t * context,
- phrase_token_t token, char ** word);
+ phrase_token_t token, char ** word){
+ PhraseItem item;
+ utf16_t buffer[MAX_PHRASE_LENGTH];
+
+ bool retval = context->m_phrase_index->get_phrase_item(token, item);
+ m_cache_phrase_item.get_phrase_string(buffer);
+ guint8 length = m_cache_phrase_item.get_phrase_length();
+ *word = g_utf16_to_utf8(buffer, length, NULL, NULL, NULL);
+ return retval;
+}
+
+bool pinyin_train(pinyin_context_t * context){
+ bool retval = context->m_pinyin_lookup->train_result
+ (context->m_piinyin_keys, context->m_constraints,
+ context->m_match_results);
+ return retval;
+}
-bool pinyin_train(pinyin_context_t * context);
bool pinyin_save(pinyin_context_t * context);
bool pinyin_reset(pinyin_context_t * context);