본문 바로가기
컴퓨터

XBMC 플러그인 만들기 - 7강: 언어와 설정 불러오기

by Moon Madness 2015. 4. 2.

2강때 language/ 폴더와 settings.xml에 대해서 설명을 했었다.


1. 언어

resources/languages/ 폴더 아래 각 언어 디렉토리를 만들고 아래와 같은 strings.xml 을 만든다. 예로 영어라면 English/ 라는 이름으로, 한국어라면 Korean/ 이라는 이름의 폴더를 만든다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<strings>
  <string id="30010">사용자 이름</string>
  <string id="30011">다른옵션 사용</string>
  ...
  <string id="30100">%s 자막 검색</string>
  ...
</strings>
스트링의 id로 번호를 할당하며 plugin.get_string 함수에 이 id를 넘겨주어 해당 스트링을 가져올 수 있다.
msg  = plugin.get_string(30100) % fileName
plugin.log.info(msg)

또한 스트링 id는 뒤에 설명하는 settings.xml 에서도 사용된다.


2. 설정

resources/ 디렉토리 아래에 다음과 같은 settings.xml 파일이 만든다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<settings>
  <setting id="userName" type="text" label="30010" default="" />
  <setting id="advOption" type="bool" label="30011" default="false" />
  <setting id="selNumber" type="number" label="30012" default="10" />
  <setting type="lsep" label="" />
  <setting id="Language" type="enum" label="30013" default="0" lvalues="30014|30015" />
</settings>

이 파일은 추가기능의 '사용자 설정'을 표시하고 이를 저장하는데 사용된다.


id는 플러그인 안에서 코드 안에서 사용자 설정값을 읽어오는데 사용되고, type은 설정값의 형식, label은 설정창에 표시될 스트링의 id 값이다. default로 초기값을 정할 수 있다.

자세한 구조와 형식에 대해서는 이 문서를 참고한다.


코드 안에서는 plugin.get_setting 함수를 사용하여 사용자 설정값을 읽어올 수 있다.

if plugin.get_setting("advOption", bool):
    do_login( plugin.get_setting("userName", str) )

get_setting 함수의 첫번째 인자로 settings.xml에 정의된 설정 id, 두번째 인자로는 casting 함수를 주면 된다. casting 함수로는 str, bool, int, unicode 등이 있으며 choice가 특별히 정의되어 있다.