syn.$res: 다국어(i18n) 리소스 등록과 화면 요소 번역 기능을 제공합니다.

속성

현재 적용된 로케일 ID입니다(기본값 'ko-KR').
축약 언어 코드(ko, en, ja, zh)를 정식 로케일 문자열로 매핑한 참조 테이블입니다.
add()/remove()로 등록/삭제된 번역 키-값 저장소입니다.
페이지 로드 시 [syn-i18n] 속성이 있는 엘리먼트를 스캔하여 등록한 번역 대상 컨트롤 목록입니다. 아래 실습 요소 2개가 등록됩니다.

실습 요소 (syn-i18n)

Hello (원본 텍스트, 번역 전)
i18n-key: greeting, bindSource: content(기본값) → textContent에 번역 결과가 반영됩니다.
i18n-key: placeholderDemo, bindSource: placeholder → placeholder 속성에 번역 결과가 반영됩니다.

메서드: 번역 데이터 등록/치환

지정 id(번역 키)에 번역 문자열을 등록합니다. 먼저 이 버튼을 실행한 뒤 아래 translatePage()/translateElement()를 실행하면 실습 요소에 반영됩니다.
지정 id의 번역 데이터를 삭제합니다.
#{key} 형태의 플레이스홀더를 interpolations 객체 값으로 치환합니다. 이 메서드는 순수 문자열 치환만 수행하며 화면 요소와는 무관합니다.

메서드: 컨트롤 조회/화면 반영

엘리먼트(또는 id)로 등록된 번역 컨트롤 설명 객체를 translateControls에서 찾아 반환합니다.
등록된 모든 [syn-i18n] 요소를 현재 translations 저장소 값으로 한 번에 갱신합니다. 위 add()로 greeting, placeholderDemo 값을 등록한 뒤 실행해 보십시오.
지정한 엘리먼트 하나만 골라 번역을 반영합니다. 내부적으로 getControl() + translateControl()을 호출합니다.
getControl('demo_greeting')로 얻은 컨트롤 설명 객체를 translateControl()(DOM 반영)과 translateText()(반영될 텍스트만 계산, 부수효과 없음)에 각각 전달합니다.
control.bindSource 값에 대응하는 실제 DOM 속성 이름을 조회합니다.