반응형
최근 다국어로된 프로젝트를 맡은적이 있는데 검색을 해봐도 언어 파일을 추가하는 법이 잘 안나와서 작성해본다.
1. xml 파일 생성
-저는 strings라는 이름으로 처음 생성했기때문에 다른 언어도 통일해서 사용중입니다.
-strings폴더안에 묶여있는데 같은 이름으로 생성하면 자동으로 android studio가 묶어줍니다.
2.Available qualifiers -> Locale 클릭후 원하는 국가의 국기를 클릭(화면엔 눌러서 없음)
- 국기 뒤쪽에 es , et 등 약자들이 있는데 추후에 언어설정의 키값이 되니 잘봐두도록 하자.
language.xml (ko-rKR)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="menu1">메뉴1</string>
<string name="menu2">메뉴2</string>
<string name="menu3">메뉴3</string>
<string name="menu4">메뉴4</string>
<string name="menu5">메뉴5</string>
</resources>
language.xml (en-rUS)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="menu1">menu1</string>
<string name="menu2">menu2</string>
<string name="menu3">menu3</string>
<string name="menu4">menu4</string>
<string name="menu5">menu5</string>
</resources>
- 파일명, name 명을 일치 시켜줘야된다.
- 괄호에 ko-rKR,en-rUS에서 각각 ko,en이 키값이 되서 언어를 변경할수있도록 해준다.
private void changeLocale(String localeLang){
Locale locale = null;
switch (localeLang){
case "ko":
locale = new Locale("ko");
break;
case "en":
locale = new Locale("en");
break;
}
Configuration config = context.getResources().getConfiguration();
if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 ) {
config.setLocale(locale);
}
else {
config.locale = locale;
}
getResources().updateConfiguration(config, getResources().getDisplayMetrics());
list.clear();
list.add(getString(R.string.menu1));
list.add(getString(R.string.menu2));
list.add(getString(R.string.menu3));
list.add(getString(R.string.menu4));
list.add(getString(R.string.menu5));
pa.notifyDataSetChanged();
}
-localeLang 파라미터로 ko,en이 들어오면 각각 한국어 영어로 변경해준다.
반응형
'AOS' 카테고리의 다른 글
[안드로이드]오늘 하루 안보기 (0) | 2019.12.21 |
---|---|
[안드로이드] 위아래가 사라지는 레이아웃 (0) | 2019.12.21 |
[안드로이드] permission 관련 util (0) | 2019.12.20 |
[안드로이드]구글인앱결제(정기구독) (0) | 2019.12.20 |
[안드로이드]커스텀 위젯만들기 (0) | 2019.12.20 |