글로벌 ResourceBundle 클래스

3466 단어 ResourceBundle
1. 국제화 자원 문건 인식
이런 종류는 소프트웨어 국제화의 지름길을 제공한다.이러한 방법으로 작성한 프로그램은 다음과 같습니다.
다른 언어로 쉽게 현지화하거나 번역
한 번에 여러 로켈 처리
나중에 손쉽게 수정하여 더 많은 로켈 지원
간단하게 말하자면, 이 종류의 역할은 자원 속성 파일 (properties) 을 읽고 근거로 하는 것이다.properties 파일의 이름 정보 (현지화 정보) 는 현재 시스템의 국가 언어 정보와 일치하고, 해당하는 properties 파일의 내용을 가져옵니다.
이 클래스를 사용할 때 주의해야 할 점은 이properties 파일의 이름은 규범이 있다는 것이다. 일반적인 명칭 규범은: 사용자 정의 이름 이다언어 코드국가별 코드.properties,
기본값이면 사용자 정의 이름으로 직접 씁니다.properties
예를 들면 다음과 같습니다.
myres_en_US.properties
myres_zh_CN.properties
myres.properties
중국어 운영체제에서 myreszh_CN.properties、myres.properties 두 파일이 모두 존재하면 myres 를 우선 사용합니다zh_CN.properties, myreszh_CN.properties가 존재하지 않을 때 기본 myres를 사용합니다.properties.
언어와 지역을 제공하지 않은 자원 파일은 시스템의 기본 자원 파일입니다.
리소스 파일은 ISO-8859-1 인코딩이어야 하므로 모든 비서구 언어에서 Java Unicode Escape 형식으로 변환해야 합니다.변환 방법은 JDK 자체 도구를 통해 native2 ascii를 사용합니다.
2. 실례
세 개의 자원 파일을 정의하여 src의 루트 디렉터리 아래에 놓으십시오. (반드시 이렇게 해야 하거나, 자신이 설정한calsspath 아래에 놓아야 합니다.
myres.properties
aaa=good
bbb=thanks
myres_en_US.properties
aaa=good
bbb=thanks
myres_zh_CN.properties
aaa=\u597d
bbb=\u591a\u8c22
import java.util.Locale;
import java.util.ResourceBundle;
/** 
*           
* 
* @author leizhimin 2009-7-29 21:17:42 
*/ 
public class TestResourceBundle { 
        public static void main(String[] args) { 
                Locale locale1 = new Locale("zh", "CN"); 
                ResourceBundle resb1 = ResourceBundle.getBundle("myres", locale1); 
                System.out.println(resb1.getString("aaa")); 

                ResourceBundle resb2 = ResourceBundle.getBundle("myres", Locale.getDefault()); 
                System.out.println(resb1.getString("aaa")); 

                Locale locale3 = new Locale("en", "US"); 
                ResourceBundle resb3 = ResourceBundle.getBundle("myres", locale3); 
                System.out.println(resb3.getString("aaa")); 
        } 
}
 
실행 결과:
좋다
좋다
good
Process finished with exit code 0
기본 Locale을 사용하는 경우 영어 운영 체제에서 myresen_US.properties 또는 myres.properties 자원 파일입니다.
3. Locale 인식
Locale 대상은 특정한 지리, 정치, 문화 지역을 나타낸다.작업을 수행하기 위해 Locale이 필요한 작업을 언어 환경에 민감한 작업이라고 하는데, Locale를 사용하여 사용자를 위한 맞춤형 정보를 사용합니다.예를 들어 하나의 수치를 나타내는 것은 언어 환경의 민감한 조작으로 사용자의 국가, 지역 또는 문화의 풍속/전통에 따라 이 수치를 포맷해야 한다.
이러한 구성 방법을 사용하여 Locale을 생성합니다.
Locale(String language)
Locale(String language, String country)
Locale(String language, String country, String variant)
Locale을 만들면 자신에 대한 정보를 조회할 수 있습니다.getCountry를 사용하면 ISO 국가 코드를, getLanguage를 사용하면 ISO 언어 코드를 가져옵니다.getDisplayCountry를 사용하면 사용자에게 표시할 국가 이름을 얻을 수 있습니다.마찬가지로 getDisplayLanguage를 사용하여 사용자에게 표시할 언어 이름을 얻을 수 있습니다.흥미로운 것은 getDisplayXX 방법 자체가 언어 환경에 민감하다는 것이다. 두 가지 버전이 있는데 하나는 기본적인 언어 환경을 매개 변수로 하고 다른 하나는 지정된 언어 환경을 매개 변수로 한다.
언어 매개 변수는 유효한 ISO 언어 코드입니다.이 코드는 ISO-639에 의해 정의된 소문자 2자 코드입니다.이러한 코드의 전체 목록은 다음과 같은 여러 웹 사이트에서 확인할 수 있습니다.
http://www.loc.gov/standards/iso639-2/englangn.html.   
국가 매개 변수는 유효한 ISO 국가 코드입니다.이 코드는 ISO-3166에 의해 정의된 대문자 2자 코드입니다.이러한 코드의 전체 목록은 다음과 같은 여러 웹 사이트에서 확인할 수 있습니다.
http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html.   
본문http://lavasoft.blog.51cto.com/62575/184605

좋은 웹페이지 즐겨찾기