i18n - 따라해보기
도큐사우루스 i18n 시스템이 어떻게 동작하는지 간단한 예제를 따라해보면서 살펴봅니다.
영어로 만든 도큐사우루스 웹 사이트에 프랑스어 번역을 추가해볼 겁니다.
npx create-docusaurus@latest website classic
명령으로 새로운 사이트를 초기화합니다(이런 형태 파일 구조가 만들어집니다).
사이트 설정하기
프랑스어 i18n 지원에 필요한 설정을 docusaurus.config.js
파일에 추가합니다.
사이트 설정
사이트 i18n 설정을 참조해 i18n locales 항목을 아래와 같이 설정합니다.
export default {
i18n: {
defaultLocale: 'en',
locales: ['en', 'fr', 'fa'],
localeConfigs: {
en: {
htmlLang: 'en-GB',
},
// You can omit a locale (e.g. fr) if you don't need to override the defaults
fa: {
direction: 'rtl',
},
},
},
};
로케일 이름은 번역된 파일 위치와 번역된 로케일 base URL에 사용됩니다. 모든 로케일 빌드 시 기본 로케일만 base URL에서 이름이 생략됩니다.
도큐사우루스는 로케일 이름을 사용해 <html lang="...">
속성, 로케일 라벨, 달력 포맷 등에 적절한 기본값을 제공합니다. 기본값은 localeConfigs
에서 수정할 수 있습니다.
테마 설정
원하는 로케일을 선택할 수 있도록 navbar item 항목의 type 값을 localeDropdown
으로 설정합니다.
export default {
themeConfig: {
navbar: {
items: [
{
type: 'localeDropdown',
position: 'left',
},
],
},
},
};
You can pass a query parameter that will be appended to the URL when a user changes the locale using the dropdown (e.g. queryString: '?persistLocale=true'
).
This is useful for implementing an automatic locale detection on your server. For example, you can use this parameter to store the user's preferred locale in a cookie.
기본으로 제공되는 번역은 없습니다. 최초 생성되는 사이트는 번역되지 않는 상태로 만들어집니다.
사이트 시작하기
Start your localized site in dev mode, using the locale of your choice:
- npm
- Yarn
- pnpm
npm run start -- --locale fr
yarn run start --locale fr
pnpm run start -- --locale fr
Your site is accessible at http://localhost:3000/fr/
.
We haven't provided any translation yet, so the site is mostly untranslated.
여러분은 이제 원하는 호스팅 서비스에 build
디렉터리를 배포할 수 있습니다.
선택한 로케일 옵션으로 번역된 사이트를 개발 모드에서 시작합니다.
http://localhost:3000/fr/ 주소로 여러분의 번역된 사이트에 접근할 수 있습니다.
**기본 번역**이 적절하게 제공될 수 있도록 참여를 부탁드립니다.
"다음"이나 "이전" 같은 도큐사우루스 기본 테마에 포함된 표현들은 번역을 제공합니다.
사이트 번역하기
All translation data for the French locale is stored in website/i18n/fr
. Each plugin sources its own translated content under the corresponding folder, while the code.json
file defines all text labels used in the React code.
After copying files around, restart your site with npm run start -- --locale fr
. Hot-reload will work better when editing existing files.