본문 바로가기
Mobile/Flutter

[Flutter]앱 다국어(한국어) 지원하기

by C_Meaning 2023. 11. 16.
728x90

Flutter에서 한국어 및 대한민국 포맷(날짜정보 등)을 사용하는 방법입니다.

 

 

1. 의존성 추가하기


pubspec.yaml 파일로 이동하여 아래 코드를 추가한 뒤 관련 패키지를 받아옵니다.

dependencies:
  flutter:
    sdk: flutter
<-- 이것을 추가 -->
  flutter_localizations: 
    sdk: flutter
  intl: any
<-- 이것을 추가 -->

입력 후 다운로드

 

2. 다국어 지원 코드 작성


main.dart 내 전체 코드입니다.

import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'pages/home_page.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: const [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: [
        Locale('ko', ''),
        Locale('en', ''),
      ],
      home: HomePage(),
    );
  }
}

 

 

MaterialApp 객체 내에 아래와 같은 코드를 작성합니다.

 @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: const [
        GlobalMaterialLocalizations.delegate, //MaterialApp에 지원할 언어 및 값 적용
        GlobalWidgetsLocalizations.delegate, //텍스트 방향 설정 (가로, 세로)
        GlobalCupertinoLocalizations.delegate, //CupertinoApp에 지원할 언어 및 값 적용
      ],
      supportedLocales: [
        Locale('ko', ''), //한국어
        Locale('en', ''), //영어
      ],
      home: HomePage(),
    );
  }
}

 

 

GlobalMaterialLocalizations.delegate : MaterialApp에 지원할 언어 및 값을 적용합니다.
GlobalWidgetsLocalizations.delegate : 아랍어와 같은 언어를 고려하여 설정된 언어에 따라 왼쪽, 오른쪽으로 배치됩니다.
GlobalCupertinoLocalizations.delegate : CupertinoApp에 지원할 언어 및 값을 적용합니다.

 

supportedLocales에는 Locale 객체를 파라미터를 전달합니다.

Locale 객체 내에 들어갈 국가 코드는 여기를 참조해주세요.

 

참조 문서

 

Internationalizing Flutter apps

How to internationalize your Flutter app.

docs.flutter.dev

 

728x90

댓글