[flutter] 플러터 intl을 사용할 때 다국어 메시지 번역을 어떻게 처리하나요?

다국어 메시지 번역을 처리하기 위해 플러터에서는 intl 패키지를 사용합니다. intl 패키지는 표준화된 다국어 지원을 제공하여 앱의 다국어 지원을 쉽게 구현할 수 있습니다. 아래는 intl 패키지를 사용하여 다국어 메시지 번역을 처리하는 방법의 간단한 예제입니다.

  1. intl 패키지를 프로젝트에 추가합니다. pubspec.yaml 파일의 dependencies 섹션에 다음과 같이 intl 패키지를 추가합니다.
dependencies:
  flutter:
    sdk: flutter
  intl: ^0.17.0
  1. 번역할 메시지를 정의합니다. lib/l10n/messages.arb 와 같은 파일을 생성하고, 다국어로 번역할 메시지를 정의합니다. 예를 들어, 다음과 같이 hello라는 키에 대한 영어와 한국어 메시지를 정의할 수 있습니다.
{
  "@@locale": "en",
  "hello": "Hello",
}

{
  "@@locale": "ko",
  "hello": "안녕하세요",
}
  1. 메시지 클래스를 생성합니다. lib/l10n.dart 파일과 같이 Intl.message를 사용하여 다국어 메시지를 처리하는 클래스를 생성합니다. 예를 들어, 다음과 같이 AppLocalization 클래스를 생성할 수 있습니다.
import 'package:intl/intl.dart';

class AppLocalization {
  static String _localeName;

  static setLocale(String localeName) {
    _localeName = localeName;
  }

  static String hello() {
    return Intl.message(
      'Hello',
      name: 'hello',
      desc: 'Hello',
      locale: _localeName,
    );
  }
}
  1. 번역된 메시지를 사용합니다. 앱의 어느 곳에서든 AppLocalization.hello()와 같이 번역된 메시지를 사용할 수 있습니다. 예를 들어, 다음과 같이 Text 위젯에서 번역된 메시지를 사용할 수 있습니다.
Text(AppLocalization.hello()),

위와 같이 설정하면, 앱의 언어가 변경되면 자동으로 해당 언어로 번역된 메시지를 표시할 수 있습니다.

이외에도 intl 패키지는 다양한 편의 기능을 제공하며, 특수문자, 복수형 처리, 날짜 및 시간 형식 등 다양한 지원을 할 수 있습니다. 자세한 내용은 intl 패키지의 공식 문서를 참조하시기 바랍니다.

참고 자료: