발행 시간: 2026-01-24T10:30:00.000Z
국제화 (i18n)
Rino.js는 개발 서버와 정적 생성 모두에서 사용할 수 있는 완전한 기능을 갖춘 유연하고 개발자 친화적인 JSON 기반 국제화 시스템을 제공합니다. 로컬라이제이션은 컴파일러 파이프라인에 깊이 통합되어 있으면서도, 사용 방식은 단순하고 직관적으로 유지됩니다.
예시:
구조:
pages/
index.html
about.html
i18n/
en/
index.json
about.json
ko/
index.json
about.json
HTML 안의 각
index.html:
<h1><lang>header.title</lang></h1>
<p><lang>body.content.top[0]</lang></p>
i18n/en/index.json:
{
"header": { "title": "Welcome" },
"body": {
"content": { "top": ["First content block"] }
}
}
rino-config:
어떤 로케일을 빌드하고 서비스할지 명시적으로 정의할 수 있습니다.
/i18n/ 아래의 "en"과 “ko” 디렉터리만 사용되며,
그 외의 로케일 폴더는 무시됩니다 (안전하고 예측 가능한 결과 보장).
defaultLocale는 루트 페이지(예: /index.html)에 적용됩니다.
로컬라이즈된 페이지는 자동으로 /dist/<locale>/ 경로에 생성됩니다.
i18n: {
defaultLocale: "en",
locales: ["en", "ko"]
}
예외 적용법
입력:
\<lang>head.title\</lang>
<p><lang>head.title</lang></p>
<p><lang>missing.value</lang></p>
출력:
<lang>head.title</lang>
<p>Translated Title Here</p>
<p><lang>missing.value</lang></p>
i18n 기능 관련 추가 사항:
-
중첩된 객체 구조 지원
-
배열 인덱싱 지원 (예:
items[0].label) -
키가 누락된 경우, 설정되어 있다면 기본 로케일로 자연스럽게 폴백 처리됨