Skip to main content

Docusarus i18n setting

This page explains how to set the i18n korean page setting.

I followed this page.

docusaurus.config.js

site language

docusaurus.config.js
module.exports = {
i18n: {
defaultLocale: 'en',
locales: ['en', 'ko'],
},
};

topbar language button

docusaurus.config.js
module.exports = {
themeConfig: {
navbar: {
items: [
{
type: 'localeDropdown',
position: 'left',
},
],
},
},
};

start site

caution

You can not test all the language at once. It means that you can not test all the language with yarn run start or npm run start. So you need to test with below command.

npm run start -- --locale ko

translate api usage

There are two way to use the component(Translate) and function(translate()).

sample code
import Translate, {translate} from '@docusaurus/Translate';

<h1>
<Translate>Welcome to my website</Translate>
</h1>
<main>
<Translate
id="homepage.visitMyBlog"
description="The homepage message to ask the user to visit my blog"
values={{blog: <Link to="https://docusaurus.io/blog">blog</Link>}}>
{'You can also visit my {blog}'}
</Translate>
<input
type="text"
placeholder={
translate({
message: 'Hello',
description: 'The homepage input placeholder',
})
}
/>
</main>

translate command

npm run write-translations -- --locale ko
i18n/ko/code.json
{
"Welcome to my website": {
"message": "Welcome to my website",
"description": "The homepage welcome message"
},
"Hello": {
"message": "Hello",
"description": "The homepage input placeholder"
}
}
i18n/ko/docusaurus-theme-classic/navbar.json
{
"title": {
"message": "My Site",
"description": "The title in the navbar"
},
"item.label.Docs": {
"message": "Docs",
"description": "Navbar item with label Docs"
},
"item.label.Blog": {
"message": "Blog",
"description": "Navbar item with label Blog"
},
"item.label.GitHub": {
"message": "GitHub",
"description": "Navbar item with label GitHub"
}
}

Translate the message attribute in the JSON files of i18n/ko, and your site layout and homepage should now be translated.

copy files for new language

copy docs files

note

you can skip mkdir if you have already made folder.

mkdir -p i18n/ko/docusaurus-plugin-content-docs/current
cp -r docs/** i18n/ko/docusaurus-plugin-content-docs/current

copy blog files

note

you can skip mkdir if you have already made folder.

mkdir -p i18n/ko/docusaurus-plugin-content-blog
cp -r blog/** i18n/ko/docusaurus-plugin-content-blog

build & deploy site

You can now deploy the build folder to the static hosting solution of your choice.

npm run build