[flutter] device_info 라이브러리를 사용하여 디바이스의 시스템 언어 설정 가져오기

Flutter 애플리케이션을 개발할 때 디바이스의 시스템 언어 설정을 가져와야할 때가 있습니다. 이를 위해 device_info 라이브러리를 사용할 수 있습니다. 이 라이브러리는 Android와 iOS의 기기 정보를 제공해주는 패키지입니다.

device_info 라이브러리 설치하기

먼저 device_info 라이브러리를 프로젝트에 추가해야 합니다. pubspec.yaml 파일을 열고 의존성으로 device_info를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  device_info: ^2.0.0 # 최신 버전 확인 필요

의존성을 추가한 후 터미널에서 아래 명령어를 실행하여 패키지를 다운로드 받습니다.

flutter pub get

디바이스의 시스템 언어 설정 가져오기

이제 device_info 라이브러리를 사용하여 디바이스의 시스템 언어 설정을 가져와보겠습니다.

import 'package:flutter/material.dart';
import 'package:device_info/device_info.dart';

class LanguageScreen extends StatefulWidget {
  @override
  _LanguageScreenState createState() => _LanguageScreenState();
}

class _LanguageScreenState extends State<LanguageScreen> {
  String deviceLanguage = '';

  @override
  void initState() {
    super.initState();
    getDeviceLanguage();
  }

  Future<void> getDeviceLanguage() async {
    DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
    AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
    setState(() {
      deviceLanguage = androidInfo.locale.languageCode;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('시스템 언어 설정 가져오기'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(
              '디바이스의 시스템 언어 설정:',
            ),
            SizedBox(height: 10),
            Text(
              deviceLanguage,
              style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
            ),
          ],
        ),
      ),
    );
  }
}

위의 예제 코드에서는 device_info 패키지를 사용하여 디바이스의 시스템 언어 설정을 가져오는 방법을 보여줍니다. getDeviceLanguage() 메소드에서 device_info 패키지를 초기화한 후, androidInfo.locale.languageCode를 통해 디바이스의 언어 설정을 가져옵니다.

시스템 언어 설정을 가져오면 deviceLanguage 변수에 저장되고, 이를 화면에 출력합니다.

이제 위의 예제 코드를 실행하면 디바이스의 시스템 언어 설정을 확인할 수 있습니다.

참고자료