context.setLocale(locale);

 

로케일을 변경하면 

LocaleKeys.title 혹은 'title'.tr() 이 올바른 언어로 바뀌어야하지만 바뀌지 않는 경우가 발생합니다.

 

MaterialApp.router(
          debugShowCheckedModeBanner: false,
          onGenerateTitle: (BuildContext context) => LocaleKeys.title.tr(),

 

여기 사이트의 타이틀 부분은 잘 바뀌는데 앱 내에서는 LocaleKeys.title 이 변화하지 않습니다.

 

final routerProvider = Provider((ref) {
  return GoRouter(routes: [
    GoRoute(
      path: '/',
      pageBuilder: (context, state) {
        print('고라우터 리빌드');
        return const MaterialPage(child: Home());
      },

 

이유는 페이지마다 "Const" 가 걸려있기 때문에 변화하지 않습니다. 저같은 경우는 vsCode를 사용하는데 const를 자동으로 넣는 바람에 오류인지도 모르고 당해야만하는 에러입니다.

 

해결법은 const를 빼고, vscode가 자동으로 넣지 말라고 말해주면 됩니다.

변화해야하는 페이지는 모두 const를 빼야할 것 같습니다.

 

// ignore: prefer_const_constructors
        return MaterialPage(child: Home());

 

 

출처 : https://github.com/aissat/easy_localization/issues/448

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기