목차
Acecore는 주로 일본어로 콘텐츠를 편집하지만, 블로그는 9개 언어로 공개합니다. 여기서 중요한 점은 화면에서 번역해 보여주는 것과 언어별 페이지를 공개하는 것이 다르다는 점입니다.
브라우저 번역이나 위젯은 독자가 지금 보고 있는 페이지를 이해하는 데 도움이 됩니다. 그러나 /ko/blog/.../ 같은 URL, 언어별 메타 정보, RSS, sitemap, hreflang을 만들지는 않습니다.
검색 유입까지 고려한다면 번역은 UI 처리가 아니라 게시 전 콘텐츠 생성 과정으로 다뤄야 합니다.
기본 구조
- 일본어 원문:
src/content/blog/{slug}.md - 번역 파일:
src/content/blog/{locale}/{slug}.md - URL:
/blog/{slug}/,/en/blog/{slug}/,/ko/blog/{slug}/ - 편집: Sveltia CMS
- 번역: GitHub Copilot PR
- 공개: build와 리뷰
Sveltia CMS는 일본어 source를 편집하는 화면입니다. 번역은 GitHub PR로 분리해 변경 이력과 리뷰, CI를 남깁니다.
UI 번역이 맞는 경우
내부 확인, 일회성 열람, 관리 화면, 검색 유입을 목표로 하지 않는 페이지라면 UI 번역으로 충분할 수 있습니다.
이 방식은 가볍지만 번역 파일이 없으므로 검색 엔진이 직접 인덱싱할 언어별 페이지도 없습니다.
정적 다국어 페이지의 SEO 장점
검색 엔진, SNS 미리보기, RSS 리더는 URL과 HTML을 기준으로 정보를 봅니다.
일본어 페이지 하나만 있고 독자 브라우저가 번역하는 경우, title, description, 구조화 데이터, RSS, sitemap은 여전히 일본어 페이지 기준입니다.
정적 번역 페이지가 있으면 각 언어가 URL을 갖습니다.
/blog/copilot-translation-pipeline/
/en/blog/copilot-translation-pipeline/
/ko/blog/copilot-translation-pipeline/
/de/blog/copilot-translation-pipeline/
1. 각 언어 URL을 직접 크롤링할 수 있습니다
Google은 JavaScript를 처리할 수 있지만, 공식 문서에서는 JavaScript의 제한도 설명하며 정적 렌더링이나 서버 렌더링을 안정적인 선택지로 제시합니다. 다른 crawler나 RSS 리더까지 고려하면 초기 HTML에 번역문이 있는 편이 안전합니다.
2. 메타데이터를 번역할 수 있습니다
frontmatter도 언어별로 가질 수 있습니다.
title: 'Sveltia CMS로 다국어 블로그를 운영하는 방법'
description: 'Sveltia CMS와 GitHub Copilot으로 번역 PR을 만드는 운영 방식'
검색 결과, OGP, 관련 글 카드, RSS에 모두 영향을 줍니다.
3. hreflang으로 언어 버전을 연결합니다
언어별 URL이 있을 때 Google은 hreflang 사용을 권장합니다. UI 번역만 있으면 연결할 언어별 URL이 없습니다.
4. RSS와 sitemap도 언어별로 만들 수 있습니다
번역 파일이 있으면 /ko/rss.xml과 sitemap의 언어별 URL을 생성할 수 있습니다.
Sveltia CMS의 역할
Sveltia CMS는 번역 엔진이 아닙니다. 이 구성에서는 일본어 source 편집을 담당합니다.
- 일본어 블로그
- 저자 정보
- 태그 정의
- 일본어 source JSON
- 이미지
- date, FAQ, linkCards 같은 frontmatter
CMS 도입은 Sveltia CMS 도입 가이드에서 설명합니다.
Copilot 번역 규칙
번역 PR에는 유지할 값과 번역할 값을 명확히 전달해야 합니다.
Keep:
- slug
- image path
- author id
- tag ids
- external URLs
- code blocks
Localize:
- title
- description
- FAQ
- body text
- internal blog URLs when locale-specific URLs exist
PR에서 얻은 교훈
- 구현은 Sveltia CMS인데 예전 글에는 Pages CMS 표현이 남아 있었습니다.
date가 오래된 상태면 글을 다시 써도 블로그 첫 화면에 오르지 않습니다.- 번역 제목은 바꿔도 slug는 유지해야 합니다.
- 내부 링크는 독자의 locale로 이어져야 합니다.
- AI 번역은 빠르지만 공개 전 리뷰가 필요합니다.
참고 링크
- Google Search Central: Localized Versions of your Pages
- Google Search Central: Managing Multi-Regional and Multilingual Sites
- Google Search Central: JavaScript SEO Basics
- Google Search Central: Spam Policies
- Sveltia CMS 도입 가이드
정리
UI 번역은 읽기 보조입니다. 정적 다국어 페이지는 각 언어를 사이트의 실제 콘텐츠로 만듭니다.
Sveltia CMS는 일본어를 편집하고, GitHub Copilot은 번역 PR을 만들고, Astro build는 배포 전 검증을 담당합니다.
UI 번역만으로 충분하지 않나요?
AI 번역은 SEO에 불리한가요?
번역 페이지는 중복 콘텐츠인가요?
댓글
Gui
Acecore 대표. 업무 시스템, 웹, DB/인프라, 품질, AI 활용을 사업 과제 정리부터 설계, 도입 후 개선까지 이어지는 흐름으로 추진합니다. C#/.NET 기반의 실무 구현력을 바탕으로 PHP/JavaScript, SQL Server/PostgreSQL/MySQL, Linux/Windows Server도 고려하며, 요구사항 정리, 기술 선택, 품질 기준, GitHub 기반 개발 운영을 하나의 흐름으로 설계합니다. 생성형 AI는 개발, 검증, 정보 정리 등 업무 프로세스에 도입해 소규모 팀도 빠르고 확실하게 성과를 낼 수 있는 실무 기반으로 활용하고 있습니다.