2014/10/25

Google CGI API for Japanese Input (その 2) の巻

前回は、ひらかな→漢字変換でしたが、Haiku 上では直接ひらがな入力はできないので、アルファベット (ローマ字) →ひらがな→漢字変換とする必要があります。今回は、こちらを参考に、Haiku でも使われている ICU を使ってみました。

前回のコードに適当にちょい足しです。ちゃんとやるには、変換バッファー長なども確認しないと。
#include <iostream>
#include <stdio .h>
#include "clx/http.h"
#include "clx/uri.h"
#include "unicode/translit.h"

//ローマ字→ひらがな変換関数
void
latin2hiragana(UnicodeString text, char *buf){
  UErrorCode status = U_ZERO_ERROR;
  Transliterator *myTrans = 
    myTrans->createInstance("Latin-Hiragana",
      UTRANS_FORWARD,status);
  myTrans->transliterate(text);
  text.extract(0,text.length(),buf,"utf-8");
}

int
main(int argc, char* argv[]) {
const char *host = "www.google.com";
char *request;
char buf2[1024];
char buf[1024];

  if (argc != 2 ) return 0;
  latin2hiragana(argv[1], buf2);

  snprintf(buf, sizeof(buf),
    "/transliterate?langpair=ja-Hira|ja&text=%s",
    buf2);
  request = buf;    

  try {
    clx::http session(host);

結果!!

ちょっと普段使っているローマ字と変換テーブル (?) が違うようです (「わたせぃ」ってなんでしょ?)。最終的には、自前で変換関数を作らないといけないかも。

0 件のコメント:

コメントを投稿