안드로이드에서 리소스 폴더에 언어를 추가하면 자동적으로 다국어 언어가 지원되듯이 플러터에서 비슷한 것을 찾았다. 이 플러그인은 언어 파일의 형식은 json이고 중요한 것은 자동적으로 언어 리소스 코드를 생성해주기 때문에 별다른 추가 작업이 없다.
https://flutter.dev/docs/development/accessibility-and-localization/internationalization 기본적으로 이쪽 가이드를 따라서 설정을 완료하고, https://plugins.jetbrains.com/plugin/10128-flutter-i18n 여기서 Android stuiod 플러그인을 설치한다. 언어 파일인 arb 파일을 수정후 저장하면 자동적으로 generated/i18n.dart 에 반영된다. 이 파일에 구현된 S 클래스를 이용해서 다국어를 로드한다. 그래서 generated/i18n.dart은 gitignore에 추가할 필요가 있다.
이 플러그인의 좋은 점은 문자열에 파라미터가 있는 경우 함수로 만들어 준다는 점이다. arb가 이렇다면
{ "aboutListTileTitle": "About $applicationName" }
사용할 때는
S.of(context).aboutListTileTitle(yourAppTitle) 이렇게 함수로 사용한다.
추가적으로 테스트해 본 결과, 파라미터도 언어간에 다르면 에러를 내서 오류를 확인하기 쉽도록 되어있다.
공부하면서 적용해본 코드는 https://github.com/dajkim76/flutter_base/commit/0abcbe5f4c97ac259967ef61d414a0451d28f47a 여기서 확인할 수 있다.