[flutter] 플러터 Checkbox Naver번역 기능 추가하기

이번에는 플러터(Flutter)에서 Checkbox를 사용하면서 Naver 번역 기능을 추가하는 방법에 대해 알아보겠습니다. Checkbox는 사용자가 선택할 수 있는 옵션을 제공하는 위젯이며, Naver 번역 API를 사용하면 텍스트를 자동으로 번역할 수 있습니다.

1. Naver 번역 API 키 발급하기

Naver 개발자 포털에 가입하여 번역 API를 사용하기 위한 키를 발급받아야 합니다. 발급된 키를 얻은 후에는 API 요청을 할 준비가 끝납니다.

2. Flutter 프로젝트 설정하기

먼저 http 패키지와 fluttertoast 패키지를 프로젝트에 추가해야 합니다. 이 패키지들은 HTTP 요청을 처리하고, 토스트 메시지를 표시하는 기능을 제공합니다. pubspec.yaml 파일에 아래의 내용을 추가하세요:

dependencies:
  http: ^0.12.2
  fluttertoast: ^7.0.3

그리고 packages get 명령어를 실행하여 패키지들을 설치하세요.

3. 번역 기능 추가하기

번역 기능을 구현하기 위해 Checkboxhttp 패키지, 그리고 Naver 번역 API 키를 사용하는 함수를 작성해야 합니다. 먼저 Checkbox를 생성하고, 변경사항을 감지하기 위한 콜백 함수를 작성하세요:

bool isChecked = false;

Checkbox(
  value: isChecked,
  onChanged: (bool value) {
    setState(() {
      isChecked = value;
      // 번역 API를 호출하는 함수 호출
      if (isChecked) {
        // 번역 요청
        translateText();
      }
    });
  },
)

translateText 함수는 http 패키지를 사용하여 Naver 번역 API에 요청을 보내고, 응답을 처리하는 역할을 합니다. 아래는 예시 코드입니다:

import 'package:http/http.dart' as http;
import 'dart:convert';

Future<void> translateText() async {
  final String url = "https://openapi.naver.com/v1/papago/n2mt";
  final String apiClientId = "YOUR_CLIENT_ID";
  final String apiSecret = "YOUR_API_SECRET";

  final Map<String, String> headers = {
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'X-Naver-Client-Id': apiClientId,
    'X-Naver-Client-Secret': apiSecret,
  };

  final String text = "번역할 텍스트"; // 번역할 텍스트를 입력하세요

  final response = await http.post(
    url,
    headers: headers,
    body: {
      'source': 'ko', // 번역할 언어
      'target': 'en', // 번역될 언어
      'text': text,
    },
  );

  if (response.statusCode == 200) {
    final Map<String, dynamic> data = json.decode(response.body);

    final translatedText = data['message']['result']['translatedText'];

    // 번역된 텍스트 처리 코드 작성
    Fluttertoast.showToast(
      msg: translatedText,
      toastLength: Toast.LENGTH_LONG,
    );
  }
}

위의 코드에서 apiClientIdapiSecret는 Naver 개발자 포털에서 발급받은 키로 대체해야 합니다. 또한, text 변수에는 번역하고자 하는 텍스트를 입력하세요.

4. 실행 및 확인

Checkbox를 체크하면, translateText 함수가 호출되어 번역 요청이 이루어집니다. 번역된 텍스트는 Fluttertoast.showToast 함수를 사용하여 토스트 메시지로 표시됩니다.

원하는 언어로 번역된 텍스트가 정상적으로 화면에 표시되는지 확인해보세요.

참고 자료