여러분의 앱 코드에서 UI 문자열들을 추출하고 외부파일에 그 것들을 보관하는 것은 언제나 좋은 습관입니다. 안드로이드는 각각의 안드로이드 프로젝트안에 리소스(Resources) 디렉토리를 가지게 하여 이 것을 쉽게 만듭니다.
만약 여러분인 Android SDK Tools을 사용하여 프로젝트를 만들었다면( 이전 포스트인 "안드로이드 프로젝트 만들기" 참고) 이 툴은 프로젝트의 top level에 res/ 디렉토리를 만들어 냅니다. 이 res/ 디렉토리 안에는 다양한 리소스 타입의 서브 디렉토리들이 있습니다. 또한 여러분의 문자열 값을 가지고 있는 res/values/strings.xml 같이 기본적인 파일들이 몇개 있습니다.
나라별(지역 Locale) 디렉토리들과 문자열 파일들 만들기
------------------------------------------------
더 많은 언어를 지원하기 위해, res/ 안에 디렉토리의 이름 끝에 hyphen(-)기호와 함께 ISO 언어코드(ISO Language code)를 포함한 values 디렉토리를 추가하세요. 예를 들어, values-es 는 언어코드 "es"(스페인)를 부여한 지역에 대한 간단한 리소스들을 포함한 디렉토리입니다. Android 는 실행할 때 디바이스의 지역설정에 따라 적절한 리소스를 읽어들입니다. 좀더 자세한 정보는 개발자 사이트의"Providing Alternative Resources" 를 보시기 바랍니다. 여러분이 지원할 언어을 결정했다면, 리소스 서브디렉토리와 문자열 리소스 파일들을 만들 수 있습니다. 예:
MyProject/
res/
values/
strings.xml
values-es/
strings.xml
values-fr/
strings.xml
해당 파일에 각 지역에 적절한 문자열 값을 추가하세요.
실행할 때, 안드로이드 시스템은 여러분의 디바이스에 현재 설정된 지역을 기반으로 적절한 문자열 리소스를 사용합니다.
예를 위해, 아래는 다른 언어에 대한 몇 가지 다른 문자열 리소스들을 보여드립니다.
English(default locale), /values/strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="title">My Application</string> <string name="hello_world">Hello World!</string> </resources> |
Spanish, /values-es/strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="title">Mi Aplicacion</string> <string name="hello_world">Hola Mundo!</string> </resources> |
French, /values-fr/strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="title">Mon Application</string> <string name="hello_world">Bonjour le monde !</string> </resources> |
문자열(String) 리소스들 사용하기
-------------------------------
여러분은 소스코드와 다른 XML 파일들에서 <string> 요소의 name 속성에 정의된 리소스이름을 사용하여 문자열 리소스를 참조할 수 있습니다.
여러분의 소스코드에서, 여러분은 R.string.<string_name> 문법을 통해 문자열 리소스를 참조할 수 있습니다. 아래 방법처럼 문자열 리소스에 접근할 수 있는 다양한 방법이 있습니다.
예:
// Get a string resource from your app's Resources String hello = getResources().getString(R.string.hello_world); // Or supply a string resource to a method that requires a string TextView textView = new TextView(this); textView.setText(R.string.hello_world); |
다른 XML 파일에서, 여러분은 @string/<string_name> 문법을 통해 문자열 리소스를 참조할 수 있습니다. XML속성은 언제든 문자열 값에 접근합니다.
예:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> |
'Android 개발자사이트 튜토리얼' 카테고리의 다른 글
다른 플랫폼 버전들 지원하기(Supporting Difference Platform Versions) (0) | 2015.03.27 |
---|---|
다른 크기, 해상도, 밀도의 화면들 지원하기(Supporting Difference Screens) (0) | 2015.03.27 |
서로 다른 디바이스들 지원하기(Supporting Different Devices) (0) | 2015.03.27 |
액션바(Action Bar) 오버레이(Overlaying) 하기 (0) | 2015.03.27 |
액션바(Action Bar) 꾸미기 2 (0) | 2015.03.27 |