앱을 개발할 때, 디바이스의 로케일(언어 설정)을 가져와야 하는 경우가 있습니다. Flutter에서는 device_info 라이브러리를 사용하여 디바이스의 정보를 쉽게 얻을 수 있습니다. 이번 포스트에서는 device_info 라이브러리를 이용하여 디바이스의 로케일 설정 가능한 언어 목록을 가져오는 방법에 대해 알아보겠습니다.
device_info 라이브러리
device_info 라이브러리는 Flutter 앱에서 디바이스의 정보를 제공하는 패키지입니다. 디바이스의 모델명, 운영체제 버전 등 다양한 정보를 얻을 수 있습니다. 이를 이용하여 로케일 설정 가능한 언어 목록을 가져오는 방법에 대해 알아보겠습니다.
로케일 설정 가능한 언어 목록 가져오기
먼저, device_info
패키지를 프로젝트에 추가해야 합니다. pubspec.yaml
파일에 아래와 같이 device_info
를 추가합니다.
dependencies:
flutter:
sdk: flutter
device_info: ^2.0.2
그리고 pubspec.yaml
파일이 있는 디렉토리에서 아래 명령을 실행하여 패키지를 설치합니다.
flutter pub get
이제 device_info
패키지를 사용하여 디바이스의 로케일 설정 가능한 언어 목록을 가져올 수 있습니다. 아래는 예시 코드입니다.
import 'package:flutter/material.dart';
import 'package:device_info/device_info.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Language List',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: LanguageList(),
);
}
}
class LanguageList extends StatefulWidget {
@override
_LanguageListState createState() => _LanguageListState();
}
class _LanguageListState extends State<LanguageList> {
List<String> languages = [];
@override
void initState() {
super.initState();
getLocaleLanguages();
}
void getLocaleLanguages() async {
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
languages = androidInfo.supportedLocales.map((locale) => locale.languageCode).toList();
// iOS의 경우, iOSDeviceInfo 사용
setState(() {});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Language List'),
),
body: ListView.builder(
itemCount: languages.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(languages[index]),
);
},
),
);
}
}
위의 코드에서 getLocaleLanguages
메소드에서는 device_info
패키지를 사용하여 디바이스의 로케일 설정 가능한 언어 목록을 가져와서 languages
변수에 저장합니다. Android 기기의 경우 androidInfo.supportedLocales
를, iOS 기기의 경우 iOSDeviceInfo
를 사용하면 됩니다.
이제 코드를 실행하면 앱 화면에 로케일 설정 가능한 언어 목록이 표시됩니다.
이번 포스트에서는 device_info
라이브러리를 이용하여 디바이스의 로케일 설정 가능한 언어 목록을 가져오는 방법에 대해 알아보았습니다. 이를 활용하여 앱의 로케일 설정에 따라 다양한 언어를 지원할 수 있습니다.