제목
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- 대상자: Hugo로 블로그를 운영하는 개발자, GitHub Actions를 사용하는 CI/CD 파이프라인 구축자
- 난이도: 중급 (Python, GitHub Actions, Hugo 기초 지식 필요)
핵심 요약
- 자동 번역 구현:
googletrans
라이브러리 사용, GitHub Actions로 자동화 - Hugo 다국어 설정:
hugo.toml
에서defaultContentLanguageInSubdir = true
적용 - 번역 스크립트 핵심 로직:
- mask_placeholders()
로 코드 블록/링크/이미지 마스킹
- langdetect
로 언어 감지 후 googletrans
로 번역
- unmask_placeholders()
로 마스킹된 내용 복원
섹션별 세부 요약
1. **Hugo 다국어 설정**
hugo.toml
에서defaultContentLanguage = "de"
설정languages.de
및languages.en
섹션에 각 언어별baseURL
및contentDir
지정enableMissingTranslationPlaceholders = true
로 미번역 키워드 표시
2. **GitHub Actions 워크플로우 구성**
- translate job:
- Python 3.12 환경 설정 (actions/setup-python@v4
)
- googletrans==4.0.0-rc1
, langdetect
등 의존성 설치
- translate_markdown.py
스크립트 실행 및 번역된 파일 커밋
- deploy job:
- peaceiris/actions-hugo
로 Hugo 빌드 (hugo --minify
)
- peaceiris/actions-gh-pages
로 public/
폴더 내용 gh-pages
브랜치에 배포
3. **번역 스크립트 핵심 구현**
- 파일 처리:
content/
디렉토리 내.md
파일 탐색 - 언어 감지:
langdetect.detect()
로de
/en
언어 식별 - 번역 로직:
- mask_placeholders()
로 코드 블록, 링크, 이미지 등 특수 문자 마스킹
- googletrans.Translator().translate()
로 번역 수행
- unmask_placeholders()
로 마스킹된 내용 복원 및 .en.md
/.de.md
파일 생성
결론
- 실무 팁: 마스킹 기능으로 코드 블록/이미지 번역 오류 방지,
googletrans
대신DeepL API
사용 시 비용 절감 가능 - 요약: GitHub Actions + Hugo +
googletrans
로 다국어 블로그 자동 번역 시스템 구축 가능.