Free Hugo Autotranslator for GitHub
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

제목

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

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.delanguages.en 섹션에 각 언어별 baseURLcontentDir 지정
  • 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-pagespublic/ 폴더 내용 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로 다국어 블로그 자동 번역 시스템 구축 가능.