[flutter] device_info 라이브러리를 이용하여 디바이스의 로케일(언어, 국가) 정보 확인하기

앱을 개발할 때, 사용자의 디바이스에 대한 정보를 얻는 것은 매우 중요합니다. 특히, 앱의 다국어 지원을 위해 사용자의 로케일 정보(언어, 국가)가 필요한 경우가 많습니다. Flutter에서는 device_info 라이브러리를 사용하여 이러한 정보를 확인할 수 있습니다.

device_info 라이브러리 추가하기

먼저, device_info 라이브러리를 프로젝트에 추가해야 합니다. pubspec.yaml 파일의 dependencies 섹션에 다음과 같이 추가해주세요:

dependencies:
  device_info: ^2.0.2

그리고, 터미널에서 flutter packages get 명령을 실행하여 의존성을 업데이트해주세요.

디바이스의 로케일 정보 확인하기

device_info 라이브러리를 사용하여 디바이스의 로케일 정보를 확인하려면, 다음과 같은 코드를 사용할 수 있습니다:

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

String getLocale() {
  String locale = '';
  
  // 디바이스 정보 가져오기
  DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
  if (Platform.isAndroid) {
    deviceInfo.androidInfo.then((AndroidDeviceInfo info) {
      locale = info.deviceLocale.toString();
    });
  } else if (Platform.isIOS) {
    deviceInfo.iosInfo.then((IosDeviceInfo info) {
      locale = info.locale.toString();
    });
  }
  
  return locale;
}

위의 코드에서는 import 문으로 flutter/services.dartdevice_info/device_info.dart를 가져옵니다. 그리고 getLocale() 함수를 정의하여 디바이스의 로케일 정보를 반환합니다. 함수 내부에서는 DeviceInfoPlugin을 생성한 후, androidInfo 또는 iosInfo 메소드를 사용하여 디바이스 정보를 가져옵니다. 가져온 정보에서 로케일 정보를 추출하여 locale 변수에 저장하고 반환합니다.

이제 getLocale() 함수를 호출하여 디바이스의 로케일 정보를 사용하면 됩니다.

예시

void main() {
  String locale = getLocale();
  print('디바이스 로케일: $locale');
}

위의 예시에서는 main() 함수에서 getLocale() 함수를 호출하여 디바이스의 로케일 정보를 가져온 후, 로그에 출력합니다.

위와 같은 방법으로 device_info 라이브러리를 사용하여 Flutter 앱에서 디바이스의 로케일 정보를 확인할 수 있습니다.

참고 자료