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());