Flutter flutter_date_pickers 한국어

Flutter의 DateTime Picker라고 하면 showDatePicker 로 캘린더의 다이얼로그가 일어나는 것이 자주 사용되고 있습니다만, 이번은 다이얼로그가 아니고, 화면에 DatePicker를 묻고 싶었으므로 이쪽을 사용하지 않고 flutter_date_pickers 를 사용합니다 했다.

이쪽 UI에 맞추어 색등도 변경할 수 있어
  • DayPicker
  • WeekPicker
  • RangePicker
  • MonthPicker

  • 와 4 종류 있어, 실장도 간단하고 사용하기 쉬웠습니다.

    다만, pub.dev 봐도 일본어화하는 방법이 전혀 실려 있지 않아, 조사해도 나오지 않았습니다만, 이 플러그인의 GitHub 리포지토리의 issue에 실려 있었습니다.

    Support for localization

    여기에 쓰여진 대로 flutter_localizations.dart 를 import하고 main.dart 에 다음을 추가하여 일본어 설정을 합니다.
    import 'package:flutter_localizations/flutter_localizations.dart';
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          supportedLocales: const [
            Locale('en'),
            Locale('ja'),
          ],
          localizationsDelegates: [
            GlobalMaterialLocalizations.delegate,
            GlobalWidgetsLocalizations.delegate,
            GlobalCupertinoLocalizations.delegate,
          ],
        );
      }
    }
    

    그러나이 설정하고 빌드하면 다음 오류가 발생!
    Unsupported operation: Cannot set value in unmodifiable Map
    

    이 오류에 대해서는 [Flutter] Unsupported operation: Cannot set value in unmodifiable Map을 해결하는 방법 에 쓰여진 대로 initializeDateFormatting() 가 원인이었습니다.
    Intl.defaultLocale = 'ja_JP';
    await initializeDateFormatting('ja_JP');
    이쪽을 코멘트 아웃하면 제대로 빌드할 수 있었습니다!

    이대로, 연월일이 일본어가 되었습니다.
    material.dart 의 DateTime Picker가 아니어도 화면에 임베드를 할 수 있어 사용법에 따라서는 TimePicker와 함께 1화면으로 사용할 수 있습니다.

    참고문헌



  • [Flutter] Unsupported operation: Cannot set value in unmodifiable Map을 해결하는 방법
  • Support for localization
  • flutter_date_pickers
  • 좋은 웹페이지 즐겨찾기