Rino.js
언어

콘텐츠 네비게이션:


발행 시간: 2026-01-24T10:30:00.000Z

국제화 (i18n)

Rino.js는 개발 서버와 정적 생성에서 모두 사용할 수 있는 JSON 기반 국제화를 제공합니다. 페이지나 컴포넌트에 <lang>key</lang>를 작성하고, 페이지 경로와 일치하는 JSON 파일에 값을 정의합니다.

설정

rino-config.js에 사용할 로케일을 추가합니다.

export default {
  i18n: {
    defaultLocale: "en",
    locales: ["en", "ko"],
  },
};

기본 로케일은 일반 페이지 경로에 생성되고, 나머지 로케일은 로케일 접두사가 붙은 경로에 생성됩니다.

pages/index.html -> dist/index.html     (영어)
                 -> dist/ko/index.html  (한국어)

i18n.locales에 나열한 로케일만 생성됩니다.

번역 파일

i18n/{locale}/ 아래의 JSON 파일은 해당 페이지와 같은 경로를 따라야 합니다.

pages/index.html       i18n/en/index.json       i18n/ko/index.json
pages/about.html       i18n/en/about.json       i18n/ko/about.json
pages/docs/start.html  i18n/en/docs/start.json  i18n/ko/docs/start.json

pages/index.html:

<h1><lang>header.title</lang></h1>
<p><lang>body.content[0]</lang></p>

i18n/ko/index.json:

{
  "header": { "title": "환영합니다" },
  "body": { "content": ["Rino.js로 정적 사이트를 만드세요."] }
}

중첩 객체에는 점 경로를, 배열에는 items[0].label과 같은 대괄호 경로를 사용합니다.

폴백과 리터럴 태그

기본 로케일이 영어라면 Rino.js는 영어 JSON 위에 한국어 JSON을 병합합니다. 한국어 값이 없으면 영어 값을 사용합니다. 양쪽 모두에 키가 없으면 빌드가 실패하지 않고 <lang> 태그가 출력에 그대로 남습니다.

태그 자체를 표시하려면 이스케이프합니다.

\<lang>header.title\</lang>