[flutter] 언어팩 개발

flutter 개발자·2023년 7월 13일

import library

  easy_localization: ^3.0.0 #언어팩

설정

runApp 전 main 함수 실행 시, 모드 초기화

 // 언어 모드 초기화
  await EasyLocalization.ensureInitialized();

runApp 안에 MaterialApp 감싸기

   runApp(EasyLocalization(
    path: 'translations', // 언어 파일 경로
    supportedLocales: [Locale('en', 'US'), Locale('ko', 'KR')], // 지원 언어
    fallbackLocale: Locale('en', 'US'), // 설정한 언어가 없는 경우 기본값
    // startLocale: Locale('ko', 'KR') // 초기 값 설정 // 초기값 설정 안될 경우, os 따라 감
    child: MyApp(),
  ));

json 파일

ko-KR.json

  {
    "hello": "안녕",
    "name": "이름",
    "clear": "청소",
    "english": "English",
    "korean": "한국어",
    "chandongi": "천동이",
    "myNameIs": "내 이름은 {}",
    "namedArgs": "namedArgs {name}",
    "argsWithNamedArgs": "args: {}, {}, Named Args {name}",
    "mode":{
        "mode1":"{}과 함께한다.",
        "mode2":"{}와 이별한다.",
        "mode3":"{}를 응원한다."
    }
    "bottom":{
    "Home": "Home",
    "Map": "Map",
    "Garage": "Garage",
    "Market": "Market",
    "Community": "Community"
  },
}

en-US.json

{
    "hello": "hello",
    "name": "name",
    "clear": "clear",
    "english": "English",
    "korean": "한국어",
    "chandongi": "chandongi",
    "myNameIs": "My Name is {}",
    "namedArgs": "Named Args {name}",
    "argsWithNamedArgs": "args: {}, {}, Named Args {name}",
    "mode":{
        "mode1":"With {}.",
        "mode2":"leave with a {}.",
        "mode3":"cheer for {}."
    }
}

실행

버튼을 사용하여 언어 변경 적용해보기

context.setLocale(Locale('ko', 'KR'));

context를 사용하여 text 호출

context.tr('myNameIs');
context.tr('myNameIs', args: [name])
item('bottom'.tr(gender: 'Home')

reference
https://blog.naver.com/chandong83/222422479689

profile
매일, 꾸준히

0개의 댓글