도리안의 개발 이야기 #199 - 안드로이드 앱에서 중국어가 아닌 한국어 문구가 나오는 문제

avatar



대문 제작: imrahelk

최근에 추가한 안드로이드 앱 화면의 문구가 사용자가 설정한 언어(예: 중국어)가 아닌 휴대폰에 설정된 언어(예: 한국어)로 보이는 버그가 있었습니다. 이게 갤럭시 폰들에서 재현되지만 G 폰들에서는 그렇지 않았지요. 그래서 원인을 찾기가 어려웠습니다. 곰곰이 생각해 보니... 안드로이드 버전 Oreo가 공식 배포된 후 먼저 그것으로 업그레이드 된 갤럭시 폰들에서도 같은 버그가 있었던 기억이 되살아났습니다. 해결책을 어렵게 찾아 BaseActivity에 적용했었지요. BaseActivity는 앱의 모든 화면들에 공통적으로 적용해야 하는 것들을 가지고 있는 사용자 정의 클래스입니다. 최근 추가한 액티비티의 일부는 BaseActivity가 아닌 AppCompatActivity를 상속받은 것이 문제의 원인이었습니다. 부모 클래스를 BaseActivity로 변경하여 문제가 해결되었습니다.

안드로이드 Oreo 이상 버전의 폰에서 발생한 언어 문제는 BaseActivity 클래스에 attachBaseContext라는 메소드를 아래와 같이 오버라이드 하여 문제를 해결했습니다.

public class BaseActivity extends AppCompatActivity {
    // ...

    @Override
    protected void attachBaseContext(Context newBase) {
        super.attachBaseContext(LocaleUtil.wrap(newBase));
    }

}

문제 해결에 참고한 사이트


aaronhong_banner.jpg



0
0
0.000
0 comments