안드로이드의 문구 작업 등을 할때(다국어 작업시 사용함) string.xml 을 이용하여 해당의 키값을 Java 단에서 지정하면 해당 키값에 문구를 가져와서 보여주는 방식이다. 실 사용은 아래와 같이 한다.
Ex) tv_a 라는 viewId 에 "Give me the Money" 를 넣고 싶다. 라고 가정할때
1. 먼저 프로젝트 안에 src > main > res > values > strings.xml 파일안에 키값을 설정해준다.(없으면 똑같은 폴더명과 파일명으로 생성해준다)
<string name="str_key_a">"Give me the Money"</string>
위와같이 키값을 하나 만들어준다.
2. 작업할 클래스에 기본 세팅을 해준다.
TextView tv_a = (TextView)findViewById(R.id.tv_a);
3. 위에서 만든 키값을 적용시킨다.
tv_a.setText(getResources().getString(R.string.str_key_a));
그럼 tv_a 지정했던 TextView 에 "Give me the Money" 가 보여지게 된다.
위의 작업을 다국어에 적용 시켜서 한다고 하면, 위의 키값 적용을 그대로 사용한다.
tv_a.setText(getResources().getString(R.string.str_key_a)); 이렇게 적용시켜놓고,
다국어 파일만 만들면 적용된 국가에 맞게 반자동적으로 적용이 되게 된다.
* 앱의 다국어 적용은, 앱 안에 언어 설정하는 함수를 이용해서 언어를 설정 해 준다.
Ex) 위의 언어는 영어로 되어있는데, 위와 같은 문구를 한국어로 번역되서 보여주게 하고싶다 라고 가정 할 때
1. 먼저 src > main > res > values-ko 안에 위와 똑같은 키값으로 한국어 폴더를 생성해준다.(폴더옆에 해당국가와 맞는 코드가 있다. 보통 구글링으로 찾는다)그리고 파일을 생성해준다.
<string name="str_key_a">"돈 내놔"</string>
그리고 나머지는 위의 작업내용 그대로 냅두면된다.
이렇게하면 준비는 끝. 이제 사용할 방법을 적겠다.
한국어로 보여주고 영어로 보여주게 하기 위해서는 앱 안의 언어설정을 변경해주는 함수를 넣어야 한다.
String language_code = "ko";//한국어로 보여주게하기
String language_code = "en";//영어로 보여주게 하기
Locale mLocale = new Locale(language_code);
Configuration config = new Configuration();
config.locale = mLocale;
mContext.getResources().updateConfiguration(config, null);
위의 코드를 넣으면 해당 코드에 맞게 언어가 변화되어 보여지게 된다. 이게 다국어 기본 원리이다.
string.xml 과 유동적인 값을 적용시키는 방법은 다른페이지에 정리하겠음
-끝-
'Android Study' 카테고리의 다른 글
구글 드라이브를 이용한 다국어관리 하기! (0) | 2019.04.25 |
---|---|
안드로이드 string.xml 을 사용 할 때 동적값 적용하기 (0) | 2019.04.25 |
안드로이드 앱 삭제는 확실하게!! (0) | 2019.04.02 |
JSON 을 SharedPreference 에 저장하여 사용하기 (0) | 2019.04.02 |
안드로이드 키보드 에 있는 다음,완료 버튼 작동 막기 (0) | 2019.03.29 |