티스토리 뷰

Computer/Eclipse n Plug-in

[Eclipse] Source Externalize Strings

인생이글케쉬우냐 2009. 12. 16. 13:59
출처 : http://darkkaiser.cafe24.com/blog/entry/JDT-%EA%B8%B0%EB%B3%B8-%EC%82%AC%EC%9A%A9%EB%B2%95?category=37

가끔 손가락이 삑사리가 나서..
원하지 않는걸 실행할 때가 있다.
이번엔.. dto 만들다가 set/get 메소드 주르륵 만들고 나니
디버깅용 toString()도 따로 만들어두려고
우클릭 후에 source를 간것 까진 좋았는데..
extenalize strings를 눌러버린것이다..
뭔가 윈도우가 따로 떠서..
cancel을 누르면 끝날일이었는데..
이건 머에 쓰는 걸까 하고.. 호기심이 발동해버렸다.



알지못하고 방관했던 이클립스의 기능..
문자열 외부화.. (맞는 표현인지는 모르겠다.)
일단 저걸 누르면 아래와 같은 콘솔(?)이 텨나온다.


configure를 누르면 아래와 같은 콘솔이 또 뜬다.


대충원하는 상태로 설정하고 ok누른후 next를 누르면 messages.properties와 Messages.java가 설정한 패키치 내에 생성된다.

아마도 저 (=) 기호 우측에 사용할 메세지를 적으면 되는 듯 하다.
그리고 아래는 key/value로 매핑하는 메세지 클래스..


내가 만들어둔 dto(우클릭해서 externalize strings를 실행했던 그 dto)도 선언부에 초기값이 변경되어있는 걸 확인할 수 있다.


이는 글로벌하게 언어를 여러가지로 바꿔서 활용해야 하는경우 유용한 기능인듯하다.
기회되면 제대로 써봐야지.. 흐하핫..



===참고================================================================================

문자열 외부화

소스 코드에 구체적인 문자열을 포함시키지 않고 이를 리소스 파일로 외부화해 빌드에 연관되지 않도록 하는 것이 국제화/지역화 등에 관련된 문제를 처리하는 데 편하다. 그러나 프로그램을 개발할 때 처음부터 그렇게 작업하지 않았다면, 문자열을 찾아 일일이 리소스 파일로 빼내는 것도 상당한 작업이 될 수 있다. 이럴 때 Externalize Strings 위저드를 사용하면 간단히 작업할 수 있다.
문자열을 외부화할 소스 코드를 에디터에 열어놓고 메뉴바 또는 컨텍스트 메뉴에서 Source>Externalize Strings 메뉴를 선택하면 다이얼로그가 뜨는데, 여기서 문자열 외부화와 관련된 여러 가지 작업을 할 수 있다.

다이얼로그의 맨 윗부분에는 해당 문자열에 대한 키에 붙일 접두사를 지정하는 텍스트필드가 있고 디폴트로 해당 클래스 이름이 설정되어 있다. 그 아래 테이블에는 선택한 소스 코드에 나온느 모든 문자열이 표시되어 있는데, 문자열에 대한 키는 임시로 숫자로 지정되어 있다. 테이블에서 문자열을 하나 선택하면 해당 문자열이 나오는 코드가 다이얼로그의 아랫부분에 표시되고 테이블에서 문자열에 대한 키 부분을 수정할 수 있는 상태가 되는데, 해당 문자열에 대한 적절한 키를 지정해 주면 된다.

문자열 중에 외부화하지 않아도 되는 것이 있을 수 있는데, 이런 문자열은 테이블에서 선택한 다음 다이얼로그 오른쪽의 Ignore 또는 Internalize 버튼을 누르면 외부화 대상에서 제외된다. 외부화되지 않은 문자열은 컴파일러 설정에 따라 에러나 경고를 발생할 수 있는데, 다이얼로그에서 Ignore로 지정한 문자열에 대해서는 컴파일 에러나 경고가 발생하지 않는다. Internalize로 한 것은 문자열 외부화 대상에서는 제외되지만 컴파일 에러나 경고 대상에서는 제외되지 않는다. Externalize/Ignore/Internalize 상태는 테이블의 각 항목 앞에 있는 체그 박스를 클릭해 바꿀 수 있다. 마우스로 체크박스를 클릭하면 세 상태가 토글된다.

다이얼로그의 오른쪽 아랫 부분에 보면 Configure버튼이 있는데, 이 버튼을 누르면 다이얼로그가 뜨며, 여기서 문자열 외부화와 관련된 클래스와 리소스 파일에 대한 설정을 할 수 있다.
=======================================================================================
반응형