본문 바로가기
Flutter

[Flutter][Google Cloud Translation] cloud translation api 를 활용해 번역 기능 구현하기!

by tls1107 2021. 12. 22.
728x90
반응형

오늘은 Google 의 Cloud Translation API 를 활용해

번역 기능을 구현해보려고 합니다!

 

먼저 Google Cloud Translation 의 공식 홈페이지입니다!

https://cloud.google.com/translate/docs?hl=ko-KR

 

Cloud Translation 문서  |  Google Cloud

Google 번역과 프로그래매틱 방식으로 통합할 수 있습니다.

cloud.google.com

위의 링크로 들어가면 이렇게 생긴 화면을 볼 수 있을텐데

무료로 시작하기 를 눌러줍니다.

 

계정이 있다면 바로 넘어갈거고

없다면 회원가입을 진행해주시면 됩니다!

구글 클라우드는 계정을 생성할 때 카드를 꼭 입력해야 합니다.

본인이 업그레이드 하지 않는다면 결제가 되지 않는다고 하니

걱정하지 않으셔도 됩니다!


그렇다면 계정이 생성되었다는 가정하에 

다음으로 넘어가겠습니다.

이런 화면을 보게 되실 겁니다.

화면 위쪽을 보시면 제품 및 리소스 검색창이 있습니다.

거기에 translation 이라고 검색합니다!

그렇다면 위와 같은 화면을 보실 수 있을겁니다!

4번째에 있는 Cloud Translation API 를 클릭해줍니다.

 

위의 화면이 나올텐데 사용 버튼을 누르면 됩니다!

위의 사진에선 이미 사용을 누른 상태이기 때문에

관리 버튼이 뜨는 겁니다!


사용 또는 관리 버튼을 누르면 위와 같은 화면이 보일겁니다!

왼쪽에 있는 메뉴에서 사용자 인증 정보 를 클릭합니다.

그 후 화면 위쪽에 있는 사용자 인증 정보 만들기 를 클릭합니다!

그리고 API 키 를 선택하면

이제 드디어 API를 사용하기 위한 키가 준비됩니다.


그럼 이제 플러터로 돌아옵니다!

pubspec.yaml 파일에 http 패키지를 추가합니다!

dependencies:
  flutter:
    sdk: flutter
    
  http: ^0.13.4
import 'package:http/http.dart' as http;

Future<void> getTranslation_google_cloud_translation() async {
    var _baseUrl = 'https://translation.googleapis.com/language/translate/v2';
    var key = '여러분이 발급받은 API Key';
    var to = "번역 후 언어";//(ex: en, ko, etc..)
    var response = await http.post(
      Uri.parse('$_baseUrl?target=$to&key=$key&q=$text'),
    );

    if (response.statusCode == 200) {
      var dataJson = jsonDecode(response.body);
      result_cloud_google =
          dataJson['data']['translations'][0]['translatedText'];
    } else {
      print(response.statusCode);
    }
  }

http 로 데이터를 전송받는데 성공한다면 response의 body를 jsonDecode 해주면 

전송받은 데이터 형식에 맞춰서 리스트나 맵으로 바꿔줍니다.

Google Cloud Translation api는 아래와 같은 형식으로 데이터를 리턴합니다!

그래서 result_cloud_google 변수에

dataJson['data']['translations'][0]['translatedText'] 로 가져온겁니다!

{
  "data": {
    "translations": [{
      "translatedText": "번역된 텍스트"
    }]
  }
}

이제 result_cloud_google 변수에 저장된 텍스트로 

원하는 작업을 이어가시면 됩니다!

 

이후의 응용은 여러분들께 맡깁니다!!

화이팅!!


위와 같이 번역이 되는 것을 확인할 수 있습니다!

줄바꿈 같은 형식은 무시되는 것 같습니다.

 

참고한 Github : https://github.com/awaik/google_cloud_translation

728x90
반응형

댓글