[flutter] 다국어 지원을 위한 문자열 포매팅 방법

다국어 지원은 모바일 앱을 개발할 때 중요한 요소 중 하나입니다. 사용자들이 다양한 언어로 앱을 사용할 수 있도록 지원하는 것은 사용자 경험을 향상시키는데 도움이 됩니다. Flutter에서 문자열을 다국어로 지원하려면 포매팅 기술을 사용하여 각 언어에 맞게 문자열을 동적으로 표시할 수 있습니다.

1. Flutter 앱 내에서 문자열 리소스 파일 생성

먼저, 각 언어에 해당하는 문자열을 포함하는 리소스 파일을 생성해야 합니다. Flutter는 이를 위해 .arb 포맷을 사용합니다. intl 패키지를 사용하여 .arb 파일을 생성하고 다국어 문자열을 정의합니다.

예를 들어, app_strings_en.arb 파일은 영어 문자열을, app_strings_ko.arb 파일은 한국어 문자열을 포함합니다.

// app_strings_en.arb

{
  "@@locale": "en",
  "appTitle": "My Flutter App",
  "welcomeMessage": "Welcome to my app!"
}

// app_strings_ko.arb

{
  "@@locale": "ko",
  "appTitle": " 플러터 앱",
  "welcomeMessage": " 앱에 오신 것을 환영합니다!"
}

2. 문자열 로드 및 포매팅

Flutter 앱 내에서 사용자의 현재 지역에 따라 알맞은 문자열을 로드하려면 Intl 패키지를 사용합니다. 다음은 해당 기능을 구현하는 코드의 예시입니다.

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:intl/date_symbol_data_local.dart';

class MyLocalizedApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    var langCode = Localizations.localeOf(context).languageCode;
    var locale = langCode.isEmpty ? Intl.systemLocale : langCode;

      return Scaffold(
        appBar: AppBar(
          title: Text(Intl.message('appTitle', name: 'appTitle')),
        ),
        body: Center(
          child: Text(Intl.message('welcomeMessage', name: 'welcomeMessage')),
        ),
      );
    }
  }
}

위 코드에서 Intl.message 함수를 통해 로컬라이즈된 문자열을 렌더링할 수 있습니다.

이렇게 하면 언어 설정에 따라 사용자에게 알맞은 문자열이 표시될 것입니다.

이제 Flutter에서 문자열 다국어 지원을 위한 기초적인 포매팅 방법을 배워보았습니다. 앱의 언어 설정에 따라 적절한 문자열을 표시하여 전 세계의 다양한 사용자들에게 더 나은 경험을 제공할 수 있습니다.

참고 자료