[flutter] - Flutter에서의 다국어 지원 방법

Flutter는 Google에서 개발된 UI 프레임워크로, 여러 플랫폼에서 동작하는 애플리케이션을 개발할 수 있습니다. 다양한 국가와 언어로 앱을 제공하기 위해서는 다국어 지원이 필요합니다. 이번 글에서는 Flutter에서 다국어를 지원하는 방법에 대해 알아보겠습니다.

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

Flutter에서는 다국어를 지원하기 위해 리소스 파일을 사용합니다. 이러한 리소스 파일은 각 국가별로 다른 언어로 번역된 문자열을 담고 있습니다. 예를 들어, en 폴더에는 영어로 된 문자열, ko 폴더에는 한국어로 된 문자열을 저장할 수 있습니다.

- lib
  - main.dart
- res
  - lang
    - en
      - strings.dart
    - ko
      - strings.dart

strings.dart 파일은 각 언어에 맞는 문자열을 정의합니다. 예를 들어, 다음과 같이 영어와 한국어 문자열을 정의할 수 있습니다.

// en/strings.dart
class Strings {
  static String welcomeMessage = "Welcome to Flutter!";
}

// ko/strings.dart
class Strings {
  static String welcomeMessage = "플러터에 오신 것을 환영합니다!";
}

2. 다국어 지원 설정

다국어 지원을 위해 앱에서 사용할 언어를 설정해야 합니다. 이를 위해 Flutter 앱의 MaterialApp 위젯에서 localizationsDelegatessupportedLocales 속성을 설정해줍니다.

import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:my_app/res/lang/strings.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
      ],
      supportedLocales: [
        const Locale('en', ''),
        const Locale('ko', ''),
      ],
      title: 'Flutter Localization',
      home: MyHomePage(),
    );
  }
}

위 예제에서는 enko 언어를 지원하기 위해 supportedLocales에 대한 설정을 해줬습니다. 앱에서 사용된 언어 설정은 기기의 언어 설정과 일치시키는 것이 중요합니다.

3. 다국어 문자열 사용

이제 앱에서 다국어 문자열을 사용할 수 있습니다. strings.dart 파일에 정의된 문자열은 Strings.welcomeMessage와 같은 방식으로 사용할 수 있습니다.

import 'package:flutter/material.dart';
import 'package:my_app/res/lang/strings.dart';

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(Strings.welcomeMessage),
      ),
      body: Center(
        child: Text(Strings.welcomeMessage),
      ),
    );
  }
}

위 예제에서는 앱의 제목과 본문에 다국어 문자열을 사용하고 있습니다.

결론

Flutter에서의 다국어 지원은 리소스 파일과 설정 변경을 통해 간단하게 구현할 수 있습니다. 앱의 다양한 언어에 대한 지원은 사용자들에게 더 나은 사용 경험을 제공하는데 도움을 줄 수 있습니다. Flutter의 다국어 지원을 통해 앱 개발을 더욱 확장할 수 있습니다.