i18n - 깃 사용하기
번역 작업 시 사용할 수 있는 방안 중 하나는 깃(또는 다른 버전 관리 시스템)을 사용해 번역 파일의 버전을 관리하는 것입니다.
고려해 야 할 점
이 방법은 아래와 같은 장점을 가지고 있습니다.
- 손쉬운 시작:
i18n
디렉터리를 깃에 가져다 놓기만 하면 됩니다. - 개발자에게 익숙한: 깃이나 깃허브, 풀 리퀘스트 요청은 개발자가 주로 사용하는 도구입니다.
- 무료 (또는 이미 깃을 사용하고 있다면 추가 비용 없이)
- 적은 부담: 다른 도구를 추가로 사용할 필요가 없습니다.
- 보상: 기여자들이 자신의 작업 이력을 쉽게 확인할 수 있습니다.
하지만 깃은 아래와 같은 단점도 있습니다.
- 비개발자에게 낯선: 깃이나 풀 리퀘스트가 익숙하지 않습니다.
- Hard for professional translators: they are used to SaaS translation software and advanced features
- 관리하기 어려운: 여러분이 직접 번역한 파일을 번역되지 않은 파일과 동기화해주어야 합니다.
노트
일부 규모있는 기술 프로젝트 (React, Vue.js, MDN, TypeScript, Nuxt.js 등)에서 번역을 위해 깃을 사용하고 있습니다.
이런 시스템에서 어떤 식으로 작업하고 있는지는 Docusaurus i18n RFC 문서를 참고하세요.
초기화
이미 여러분이 i18n 따라해보기를 살펴보았다면 이번에는 깃을 사용해 새로 만든 영문 도큐사우루스 웹 사이트를 프랑스어로 번역하는 과정을 따라가보겠습니다.
도큐사우루스 사이트 준비하기
새로운 도큐사우루스 사이트를 초기화합니다.
npx create-docusaurus@latest website classic
프랑스어 번역을 위해 site 설정을 아래와 같이 추가합니다.
docusaurus.config.js
export default {
i18n: {
defaultLocale: 'en',
locales: ['en', 'fr'],
},
themeConfig: {
navbar: {
items: [
// ...
{
type: 'localeDropdown',
position: 'left',
},
// ...
],
},
},
// ...
};
홈페이지를 번역합니다.
src/pages/index.js
import React from 'react';
import Translate from '@docusaurus/Translate';
import Layout from '@theme/Layout';
export default function Home() {
return (
<Layout>
<h1 style={{margin: 20}}>
<Translate description="The homepage main heading">
Welcome to my Docusaurus translated site!
</Translate>
</h1>
</Layout>
);
}
i18n
디렉터리 초기화하기
write-translations 명령을 사용해 프랑스 로케일에서 사용할 JSON 번역 파일을 초기화합니다.
- npm
- Yarn
- pnpm
npm run write-translations -- --locale fr
1 translations written at i18n/fr/code.json
11 translations written at i18n/fr/docusaurus-theme-classic/footer.json
4 translations written at i18n/fr/docusaurus-theme-classic/navbar.json
3 translations written at i18n/fr/docusaurus-plugin-content-docs/current.json