[flutter] flutter_localizations를 사용한 앱의 다국어 지원 게시판 구현 방법

다국어 지원은 모바일 앱을 국제 시장으로 확장하는 데 중요한 요소입니다. Flutter에서 flutter_localizations 패키지를 사용하여 앱에 다국어 지원을 추가하는 방법을 알아보겠습니다. 이 글에서는 flutter_localizations 패키지를 사용하여 게시판 앱의 다국어 지원을 구현하는 방법에 대해 자세히 살펴보겠습니다.

1. flutter_localizations 패키지 추가

먼저, pubspec.yaml 파일에 flutter_localizations 패키지를 추가해야 합니다. 아래와 같이 dependencies 섹션에 flutter_localizations를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter

그리고 패키지를 설치하기 위해 터미널에서 flutter pub get 명령을 실행합니다.

2. 지원할 언어 추가

MaterialApp 위젯의 localizationsDelegatessupportedLocales 속성을 사용하여 지원할 언어를 추가합니다. 아래의 코드는 영어(en)와 한국어(ko)를 지원하는 예제입니다.

MaterialApp(
  localizationsDelegates: [
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
  ],
  supportedLocales: [
    const Locale('en'),
    const Locale('ko'),
  ],
  // ... 
)

3. 다국어 문자열 추가

다국어 지원을 위해 문자열을 번역해야 합니다. 이를 위해 intl 패키지를 사용할 수 있습니다. 다국어 문자열을 추가하려면 arb 파일을 생성하여 각 언어에 해당하는 번역을 추가해야 합니다.

예를 들어, app_localizations_en.arbapp_localizations_ko.arb 파일을 생성하고 각각의 파일에 영어와 한국어에 대한 번역을 추가합니다.

{
  "title": "Welcome to the board",
  "subtitle": "Share and discuss with others"
}

4. 게시판 UI에 다국어 문자열 적용

이제 게시판 UI에서 AppLocalizations를 사용하여 다국어 문자열을 적용할 수 있습니다.

import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';

class MyBoardScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(AppLocalizations.of(context).title),
      ),
      body: Center(
        child: Text(AppLocalizations.of(context).subtitle),
      ),
    );
  }
}

결론

이제 flutter_localizations 패키지를 사용하여 다국어 지원을 통해 게시판 앱을 만들었습니다. 이를 통해 사용자들은 앱을 자신의 언어로 사용할 수 있으며, 국제 시장으로 쉽게 확장할 수 있게 되었습니다.