답변을 드리기 위해 약간의 리서치를 했습니다. StackOverflow 의 관련 Q&A를 참조하는 것이 똑같은 코드를 반복하는 것보다 나을 것 같네요.
https://stackoverflow.com/questions/4985805/set-locale-programmatically
Locale 을 동적으로 바꾸기 위해서는 모든 액티비티의 onCreate에 setLocal을 해주어야 하기 때문에, BaseActivity를 하나 두고 onCreate에 해당 코드를 넣고 상속을 받던가,
Application class에서 ActivityLifecycleCallbacks의 구현하여
onActivityCreated(Activity activity, Bundle savedInstanceState)
메소드를 오버라이드해서 Locale 설정하는 코드를 집어넣어도 될 것 같습니다.
https://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks
Edit:
정확하지는 않은데... Locale을 변경하는 경우 Configuration change가 생기는 듯 한데... 테스트를 해보시고 그렇게 된다면, 상황에 맞게 처리하시는 코드를 작성하셔야 합니다.