Flutter Localization


Flutter 국제화 및 지역화

Flutter에서 국제화(Internationalization) 및 지역화(Localization)는 앱을 여러 언어와 문화에 맞춰 제공할 수 있도록 하는 중요한 기능입니다. Flutter는 이를 지원하기 위해 flutter_localizations 패키지를 제공하며, 이를 사용하여 텍스트, 날짜, 숫자 등의 형식을 각 지역에 맞게 조정할 수 있습니다. 다음은 Flutter 앱에서 국제화 및 지역화를 구현하는 기본적인 단계입니다.

1. pubspec.yaml 파일 수정

먼저 pubspec.yaml 파일에 flutter_localizations 패키지와 intl 패키지를 추가해야 합니다.

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  intl: ^0.17.0

2. MaterialApp 설정

MaterialApp 위젯에서 localizationsDelegatessupportedLocales를 설정합니다.

import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:intl/intl.dart';
import 'generated/l10n.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: [
        S.delegate,
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: S.delegate.supportedLocales,
      home: MyHomePage(),
    );
  }
}

3. arb 파일 생성

각 언어에 대한 .arb (Application Resource Bundle) 파일을 생성합니다. 예를 들어, intl_en.arbintl_ko.arb 파일을 생성할 수 있습니다.

intl_en.arb

{
  "title": "Hello World",
  "@title": {
    "description": "The application title"
  }
}

intl_ko.arb

{
  "title": "안녕하세요",
  "@title": {
    "description": "The application title"
  }
}

4. intl 패키지 사용

intl 패키지를 사용하여 번역된 문자열을 사용합니다.

import 'package:flutter/material.dart';
import 'generated/l10n.dart';

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

5. 코드 생성

마지막으로 intl 패키지의 intl_translation 도구를 사용하여 .arb 파일을 기반으로 Dart 코드를 생성합니다. 터미널에서 다음 명령어를 실행합니다.

flutter pub run intl_translation:extract_to_arb --output-dir=lib/l10n lib/main.dart
flutter pub run intl_translation:generate_from_arb --output-dir=lib/l10n --no-use-deferred-loading lib/l10n/intl_*.arb

이렇게 하면 lib/l10n 디렉토리에 생성된 Dart 파일이 생성되며, 이를 통해 앱에서 다국어를 지원할 수 있습니다.

위의 단계들을 따르면 Flutter 앱에서 국제화 및 지역화를 쉽게 구현할 수 있습니다. 추가적인 정보나 특정 문제에 대한 해결책이 필요하다면 질문해 주세요!

이런 자료를 참고했어요.
[1] 티스토리 – [Flutter] intl & intl_utils : 국제화(다국어처리) 라이브러리 (https://ctoahn.tistory.com/19)
[2] Medium – [Flutter]”Localization”, “Internationalization”, “Translation” (https://medium.com/@sunlution/flutter-localization-internationalization-translation-5904f828c6d3)
[3] 티스토리 – [Flutter] 플러터 앱 국제화 – 해나래 – 티스토리 (https://points.tistory.com/59)
[4] 티스토리 – 플러터(Flutter) 다국어 대응하기 (Localization) – 프론티어쿼리 (https://fronquarry.tistory.com/8)

뤼튼 사용하러 가기 > https://agent.wrtn.ai/5xb91l


Leave a Reply

Your email address will not be published. Required fields are marked *