Rino.js
언어

콘텐츠 네비게이션:


발행 시간: 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 안의 각 태그는 해당 페이지에 대응되는 JSON 파일의 키와 매핑됩니다.

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)

  • 키가 누락된 경우, 설정되어 있다면 기본 로케일로 자연스럽게 폴백 처리됨