다국어 지원

ko, en, ja 를 지원하고, ko를 기본으로 사용할 경우 설정은 다음과 같습니다.

폴더 구조 설정

프로젝트 폴더 구조는 다음과 같습니다. Obsidian의 blog 폴더를 ko 콘텐츠로 사용하고, enja 콘텐츠를 별도로 구성합니다.

obsidian/
├── blog/
│   ├── note1/
│   │   └── note1.md
│   ├── note2/
│   │   └── note2.md
│   ├── note3/
│   │   └── note3.md
│   └── attachments/  # 이미지 및 기타 첨부 파일 폴더
hugo-project/
├── content/
│   ├── en/
│   │   └── _index.md  # 영어 콘텐츠
│   ├── ja/
│   │   └── _index.md  # 일본어 콘텐츠
├── config.toml
└── themes/
    └── doks/

config.toml 파일 설정

Hugo의 config.toml 파일을 수정하여 다국어 설정을 추가하고 blog 폴더를 content/ko로 마운트합니다.

baseURL = "https://example.com/"
languageCode = "en-us"
title = "My Hugo Site"
# 다국어 설정
[languages]
  [languages.ko]
    languageName = "한국어"
    weight = 1
    contentDir = "content/ko"
  [languages.en]
    languageName = "English"
    weight = 2
    contentDir = "content/en"
  [languages.ja]
    languageName = "日本語"
    weight = 3
    contentDir = "content/ja"
# 블로그 폴더 마운트
[module]
  [[module.mounts]]
    source = "../blog"
    target = "content/ko"

다국어 네비게이션 설정

Doks 테마에서 다국어 네비게이션을 설정하려면 config.toml 파일에 메뉴 항목을 추가해야 합니다.

[menu]
  [[menu.main]]
    identifier = "home"
    name = "Home"
    url = "/"
    weight = 1
    pre = "ko: / | en: /en/ | ja: /ja/"
  [[menu.main]]
    identifier = "obsidian"
    name = "Obsidian"
    url = "/Obsidian/"
    weight = 2
    pre = "ko: /about/ | en: /en/about/ | ja: /ja/about/"

다국어 스위처 추가

Doks 테마에 언어 스위처를 추가하려면 layouts/partials/navbar.html 파일을 수정하여 언어 선택 링크를 추가합니다.

{{ $currentLang := .Lang }}
<nav>
  <!-- 기존 네비게이션 코드 -->
  <ul class="language-switcher">
    {{ range .Site.Languages }}
      <li>
        <a href="{{ .RelPermalink }}" class="{{ if eq .Lang $currentLang }}active{{ end }}">{{ .LanguageName }}</a>
      </li>
    {{ end }}
  </ul>
</nav>