Search Results for 'google language'


1 POSTS

  1. 2009/06/19 이것은 어느 나라 말이냐? by 망고 (2)

이것은 어느 나라 말이냐?

담당하고 있는 웹싸이트에서 이번에 제기된 문제 중 하나.

이름과 주소를 일본어로 입력받으면 배송을 담당하고 있는 사람이 일본어를 몰라서 다시 번역을 하는데 시간이 걸리게 된다. 애초에 영어로 입력을 받을 수 없을까?

다시 말해서, 특정 input box에 영어로만 입력을 받을 수 있을까 하는 문제.

엄밀하게 말하면 입력받은 텍스트가 어떤 언어인가 하는 문제는 생각보다 전혀 쉬운게 아니다. 입력텍스트에 어떤 character set이 들어오는지 판별하려면, 음... 그 알고리즘을 어떻게 감당하나 싶어서, 처음엔 PHP 웹페이지에선 불가능하다고 생각했었다.

그런데 혹시나 하고 찾아보니 구글에서 해당 Javascript API를 제공하고 있다.

Sample Link:
http://www.google.com/uds/samples/language/detect.html

텍스트를 던져주면 어느 나라 말인지 신뢰도와 함께 알려준다.

코드는 다음과 같음.
Google API Loading 부분 <script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("language", "1");
</script>

Language Detecting Function 부분 function detectLang(text){
    google.language.detect(text, function(result){
        if(!result.error){
            var language = "unknown";
            for(l in google.language.Languages){
                if(google.language.Languages[l] == result.language){
                    language = l;
                    break;
                }
            } //for
            return language;
        } else {
            return -1; //google API Error
        }
    });
}

위 함수는 텍스트를 파라미터로 입력받아서 구글에서 판별한다음,
해당 언어가 구글의 랭귀지셋에 존재하면 언어의 이름을 반환해준다.

예를 들면, Thank you라고 입력하면 English가 반환되고,
'안녕'이라고 입력하면 Korean가 반환된다.

좀 Naive하게 생각해서 해당 로직을 입력받은 값이 English가 아니면 영어로 입력하라는 메시지와 함께 focus를 돌려주는 식으로 짰다가, 혹시 해서 테스트해본 결과 satomi라고 입력하면 태국어라고 반환된다. min이라고 입력하면 스웨덴어, kyu라고 입력하면 베트남어라고...  workaround하기 위해 로직 변경.

어차피 일본어 싸이트이기 때문에 일본어나 영어 이외의 문자가 입력될 일은 없을 것이라고 가정하여 "영어가 아닌 언어가 입력되면 -> 일본어가 입력되면" 으로 수정했다. 다행히 일본어 캐릭터는 잘 잡아내는 것 같다. 구글 덕분에 별걸 다 할 수 있게 되는구나.

Google Language 관련 Documentation Link

Posted by 망고

2009/06/19 15:18 2009/06/19 15:18
,
Response
No Trackback , 2 Comments
RSS :
http://www.shimminkyu.com/tc/rss/response/1031


Lilypie Fourth Birthday tickers

Stay Foolish, Stay Hungry.

- 망고

Site Stats

Total hits:
440240
Today:
56
Yesterday:
186