[flutter] 오류 메시지 또는 경고 메시지의 다국어 지원 방법

다국어 지원은 모바일 앱을 세계적으로 릴리스하기 위한 중요한 요소입니다. Flutter를 사용하여 앱을 개발하는 경우, 오류 메시지 및 경고 메시지를 다국어로 지원하는 방법에 대해 이야기해보겠습니다.

1. 다국어 리소스 파일 생성

먼저, 각 언어별로 오류 메시지 및 경고 메시지를 저장할 리소스 파일을 생성해야 합니다. 이를 위해 lib 폴더 내에 l10n 폴더를 생성하고, 다음과 같은 형식으로 리소스 파일을 만들 수 있습니다.

예:

l10n/
    |- error_messages_en.dart
    |- error_messages_ko.dart
    |- error_messages_ja.dart

2. 리소스 파일에 메시지 추가

각 리소스 파일에는 해당 언어에 맞는 오류 메시지 및 경고 메시지를 정의해야 합니다. 예를 들어, error_messages_en.dart 파일에는 영어로 된 메시지를, error_messages_ko.dart 파일에는 한국어로 된 메시지를 추가할 수 있습니다.

예:

// error_messages_en.dart
Map<String, String> errorMessagesEn = {
  'invalid_email': 'Invalid email address',
  'password_too_short': 'Password is too short'
};
// error_messages_ko.dart
Map<String, String> errorMessagesKo = {
  'invalid_email': '유효하지 않은 이메일 주소입니다',
  'password_too_short': '비밀번호가 너무 짧습니다'
};

3. 다국어 개체 생성

앱의 다국어 애트리뷰트를 사용하여 개체를 생성하고 언어에 따라 적절한 리소스 파일을 선택합니다.

예:

import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';

class ErrorMessages {
  ErrorMessages(this.locale);

  final Locale locale;

  static Map<String, Map<String, String>> _localizedValues = {
    'en': errorMessagesEn,
    'ko': errorMessagesKo,
  };

  Map<String, String> get currentLanguage => _localizedValues[locale.languageCode];

  static ErrorMessages of(BuildContext context) {
    return Localizations.of<ErrorMessages>(context, ErrorMessages);
  }
}

4. 오류 및 경고 메시지 표시

마지막으로, 다국어 지원된 오류 메시지 및 경고 메시지를 앱 내에서 표시할 때 ErrorMessages 클래스를 사용하여 현재 언어에 맞는 메시지를 표시합니다.

예:

String _getErrorMessage(String errorCode, BuildContext context) {
  return ErrorMessages.of(context).currentLanguage[errorCode] ?? 'Unknown error';
}

다음으로, 위의 코드 예시를 통해 Flutter 앱에서 다국어 지원을 위한 오류 및 경고 메시지의 다국어 지원 방법을 확인해보세요.

참고 자료