시간은 돈으로도 살 수 없습니다. 노동은 AI에게, 삶은 나에게.
AI · 자동화 · 워드프레스 · 온라인 수익화
📂
다국어 사이트
📄 총 3개의 글

🌍 WordPress 다국어 사이트 deep L ai 와 Polylang 플러은과 연동하여 자동 번역 시스템 구축 강의

안녕하세요! 😊 오늘은 워드프레스(WordPress) 사이트에서 기존 게시물과 새 게시물을 자동으로 번역하고, SEO 최적화까지 수행하는 시스템을 구축하는 방법을 배워보겠습니다.

이 강의에서는 DeepL API, Polylang 플러그인, Yoast SEO를 활용하여 한 번 설정하면 번역이 자동으로 이루어지는 환경을 만들 것입니다. 🚀

참고로 deep l api 는 한 달에 500,000자까지 번역 무료로 이용이 가능합니다.

📌 강의 목표

1️⃣ 기존에 작성된 모든 한국어 게시물을 영어와 일본어로 번역
2️⃣ 앞으로 작성되는 게시물도 자동으로 번역
3️⃣ 번역된 게시물의 HTML 구조를 유지하여 깨지지 않게 처리
4️⃣ SEO(검색엔진 최적화) 설정을 적용하여 검색 노출을 극대화
5️⃣ 중복 번역을 방지하여 이미 번역된 게시물은 다시 번역하지 않음

💡 1. 프로젝트 준비

먼저, 프로젝트를 준비해야 합니다. 아래 작업이 되어 있어야 합니다.

📌 필수 설치

WordPress 사이트
Polylang 플러그인 (다국어 지원)
Yoast SEO 플러그인 (검색 최적화)
DeepL API 키 발급 (번역 API 사용)

📌 DeepL API 키 발급

DeepL 번역 API를 사용하려면 API 키가 필요합니다.
1️⃣ DeepL API 웹사이트로 이동
2️⃣ 회원 가입 후 API 키 발급
3️⃣ API 키 복사 (YOUR_DEEPL_API_KEY 부분에 입력)

💡 2. 코드 작성: 자동 번역 시스템 구축

이제 functions.php에 코드를 추가하여 번역 시스템을 구축해보겠습니다.

📌 2-1. 기존 게시물 자동 번역 코드

먼저, 이미 작성된 모든 게시물을 자동으로 번역하는 코드를 만들어보겠습니다.

// 이미 번역된 글인지 확인하는 함수 (중복 번역 방지)
function is_already_translated($post_id, $lang) {
    $translations = pll_get_post_translations($post_id);
    return isset($translations[$lang]); // 해당 언어의 번역 존재 여부 확인
}

// 기존 모든 게시물을 번역하는 함수 (한 번만 실행)
function auto_translate_existing_posts() {
    $languages = [
        'en' => ['prefix' => 'en', 'sep' => '-', 'sitename' => get_bloginfo('name')],
        'ja' => ['prefix' => 'ja', 'sep' => '-', 'sitename' => get_bloginfo('name')],
    ];

    $args = [
        'post_type' => 'post',
        'post_status' => 'publish',
        'posts_per_page' => -1,
    ];
    $posts = get_posts($args);

    foreach ($posts as $post) {
        if (pll_get_post_language($post->ID) !== 'ko') continue;

        foreach ($languages as $lang => $settings) {
            if (is_already_translated($post->ID, $lang)) {
                continue; // 이미 번역된 경우 건너뜀
            }

            $translated_title = deepl_translate_with_html($post->post_title, $lang);
            $translated_content = deepl_translate_with_html($post->post_content, $lang);
            $translated_slug = $settings['prefix'] . '-' . sanitize_title($translated_title);
            $seo_title = $translated_title . ' ' . $settings['sep'] . ' ' . $settings['sitename'];

            $translated_post_id = wp_insert_post([
                'post_title'    => $translated_title,
                'post_content'  => $translated_content,
                'post_status'   => 'publish',
                'post_type'     => $post->post_type,
                'post_author'   => $post->post_author,
                'post_name'     => $translated_slug,
                'post_category' => wp_get_post_categories($post->ID),
                'meta_input'    => [
                    '_yoast_wpseo_title' => $seo_title,
                ],
            ]);

            pll_set_post_language($translated_post_id, $lang);
            pll_save_post_translations([
                'ko' => $post->ID,
                $lang => $translated_post_id,
            ]);
        }
    }
}

// 기존 게시물 번역 실행 (한 번만 실행)
add_action('admin_init', function () {
    if (isset($_GET['run_translation']) && $_GET['run_translation'] === '1') {
        auto_translate_existing_posts();
        wp_die('Translation for all existing posts completed.');
    }
});

🚀 이제 브라우저에서 아래 URL을 실행하면 기존 모든 글이 번역됩니다!

(your-site.com내 사이트 도메인으로 변경해야 합니다.)

https://your-site.com/wp-admin/?run_translation=1

📌 2-2. 새 글 자동 번역 코드

이제 새로운 글이 작성될 때 자동으로 번역되도록 설정합니다.

function auto_translate_and_seo_publish($post_id) {
    $original_post = get_post($post_id);
    if ($original_post->post_status !== 'publish') return;

    $languages = [
        'en' => ['prefix' => 'en', 'sep' => '-', 'sitename' => get_bloginfo('name')],
        'ja' => ['prefix' => 'ja', 'sep' => '-', 'sitename' => get_bloginfo('name')],
    ];

    if (pll_get_post_language($post_id) !== 'ko') return;

    foreach ($languages as $lang => $settings) {
        if (is_already_translated($post_id, $lang)) {
            continue; // 이미 번역된 경우 건너뜀
        }

        $translated_title = deepl_translate_with_html($original_post->post_title, $lang);
        $translated_content = deepl_translate_with_html($original_post->post_content, $lang);
        $translated_slug = $settings['prefix'] . '-' . sanitize_title($translated_title);
        $seo_title = $translated_title . ' ' . $settings['sep'] . ' ' . $settings['sitename'];

        $translated_post_id = wp_insert_post([
            'post_title'    => $translated_title,
            'post_content'  => $translated_content,
            'post_status'   => 'publish',
            'post_type'     => $original_post->post_type,
            'post_author'   => $original_post->post_author,
            'post_name'     => $translated_slug,
            'meta_input'    => [
                '_yoast_wpseo_title' => $seo_title,
            ],
        ]);

        pll_set_post_language($translated_post_id, $lang);
        pll_save_post_translations([
            'ko' => $post_id,
            $lang => $translated_post_id,
        ]);
    }
}

// 새로운 글이 게시될 때 자동 번역 실행
add_action('publish_post', 'auto_translate_and_seo_publish');

🚀 최종 정리

기존 모든 글을 번역하려면?

  • 한 번만 실행: https://your-site.com/wp-admin/?run_translation=1

새로운 글을 번역하려면?

  • 새 글 작성 후 자동 번역됨. (추가 작업 필요 없음)

번역된 글을 다시 만들고 싶다면?

  • 기존 번역 글을 삭제 후 다시 실행.

💡 이제 워드프레스에서 완전히 자동으로 다국어 콘텐츠를 운영할 수 있습니다! 🚀 더 궁금한 점이 있다면 언제든지 질문해주세요! 😊

📌 실행 후 추가 확인해야 할 사항

  1. 번역된 게시물이 생성되었는지 확인
    • 워드프레스 관리자 → “모든 글” 에서 영어(en), 일본어(ja)로 번역된 글이 있는지 확인하세요.
  2. URL 확인
    • 한국어 글: https://example.co.kr/올림픽-일정/
    • 영어 글: https://example.co.kr/en/olympic-schedule/
    • 일본어 글: https://example.co.kr/ja/オリンピック日程/
  3. 번역된 글이 Polylang에서 제대로 연결되었는지 확인
    • 워드프레스 관리자 → Polylang에서 번역 관계 확인.

📌 기존 글 번역이 끝나면 더 실행할 필요 없음

✅ 기존 글을 한 번 번역하면 이 URL을 다시 실행할 필요가 없습니다.
✅ 이후에는 새로운 글을 작성하면 자동으로 번역됩니다.

📌 추가 질문

Q1. 이 URL을 여러 번 실행해도 되나요?

✅ 이미 번역된 글은 다시 번역되지 않으므로 여러 번 실행해도 문제없습니다.
✅ 중복 번역을 방지하는 코드 (is_already_translated())가 포함되어 있기 때문입니다.

Q2. 기존 글을 다시 번역하려면?

🚨 기존 번역을 삭제하고 다시 실행해야 합니다.
✅ 기존 번역된 글을 삭제하고, https://your-site.com/wp-admin/?run_translation=1 을 다시 실행하세요.

Q3. 자동으로 번역이 진행되지 않으면?

❌ 실행했는데 번역이 되지 않는다면, 다음을 확인하세요.

  1. functions.php에 코드가 제대로 추가되었는지 확인.
  2. DeepL API 키가 올바르게 설정되었는지 확인.
  3. Polylang 플러그인이 활성화되었는지 확인.
  4. 워드프레스 관리자 → 설정 → 고유주소(퍼머링크) 저장 버튼 클릭 후 다시 실행.

🌍 워드프레스 다국어 사이트 쉽게 만드는 방법 🚀

워드프레스로 다국어(멀티랭귀지) 사이트를 만드는 방법은 여러 가지가 있습니다. 한 개의 웹사이트에서 여러 언어를 지원하여 방문자가 원하는 언어로 콘텐츠를 볼 수 있도록 설정을 진행할 수 있습니다.

1️⃣ 다국어 사이트를 만드는 3가지 방법

워드프레스 다국어 사이트를 만드는 대표적인 방법 3가지:

방법설명추천 대상
플러그인 사용가장 쉬운 방법, 번역 기능 자동 지원🔹빠르고 쉽게 만들고 싶은 경우
멀티사이트 기능 사용언어별 개별 사이트 운영 가능🔹완벽한 독립 번역이 필요한 경우
수동 번역 (서브도메인 / 서브디렉토리 활용)각 언어별 페이지를 따로 제작🔹최고의 SEO 및 퍼포먼스를 원하는 경우

2️⃣ 플러그인으로 다국어 사이트 만들기 (가장 쉬운 방법)

💡 추천 플러그인:
워드프레스에는 강력한 다국어 플러그인이 많습니다.

플러그인가격특징
WPML유료가장 강력한 다국어 플러그인 (SEO 지원)
Polylang무료 / 유료간단하고 가벼운 플러그인
TranslatePress무료 / 유료실시간 프런트엔드 번역 가능
Weglot유료AI 자동 번역 지원

가장 쉬운 방법: TranslatePress 또는 Polylang 사용 🚀

✅ 방법 1: Polylang으로 다국어 사이트 만들기 (무료)

📌 특징:

  • 무료 버전으로도 강력한 기능 제공
  • 사용법이 간단하며, 언어 스위처(전환 버튼) 제공
  • 번역할 콘텐츠를 수동으로 입력해야 함

📌 설치 및 설정

1️⃣ 워드프레스 플러그인 추가 → Polylang 검색 후 설치
2️⃣ 설정 → 언어 추가

  • 설정 → 언어에서 원하는 언어 추가 (예: 한국어 🇰🇷, 영어 🇺🇸, 일본어 🇯🇵 등)
    3️⃣ 번역할 콘텐츠 추가
  • 페이지 → 새 글 작성 후, 기존 페이지 복사하여 번역본 작성
    4️⃣ 언어 스위처(전환 버튼) 추가
  • 위젯 → 언어 선택기 추가 (메뉴 또는 사이드바에 배치 가능)
    5️⃣ SEO 설정
  • Yoast SEO 또는 RankMath와 함께 사용하여 다국어 SEO 최적화 가능

✅ 방법 2: TranslatePress로 다국어 사이트 만들기 (무료)

📌 특징:

  • 프런트엔드(사이트 화면)에서 실시간 번역 가능
  • AI 번역(Google Translate API) 지원
  • 초보자도 쉽게 사용 가능

📌 설치 및 설정

1️⃣ 워드프레스 플러그인 추가 → TranslatePress 검색 후 설치
2️⃣ 설정 → 언어 추가

  • 설정 → TranslatePress에서 기본 언어 + 추가 언어 설정
    3️⃣ 사이트에서 실시간 번역
  • 상단바에서 “Translate Site” 클릭 후 직접 번역
    4️⃣ 자동 번역 (선택 사항)
  • Google Translate API 연결 시 자동 번역 지원
    5️⃣ 언어 스위처 추가
  • 설정 → 언어 스위처에서 메뉴 또는 위젯에 추가

✅ 방법 3: WPML로 다국어 사이트 만들기 (유료)

📌 특징:

  • 가장 강력한 다국어 플러그인 (기업용 추천)
  • WooCommerce(쇼핑몰) 다국어 지원
  • SEO 기능이 뛰어남

📌 설치 및 설정 1️⃣ WPML 플러그인 구매 및 설치
2️⃣ 설정 → 언어 추가
3️⃣ 콘텐츠 번역

  • 수동 번역 또는 번역 관리자 기능 활용
    4️⃣ SEO 최적화
  • Yoast SEO, RankMath과 함께 사용

3️⃣ 다국어 SEO 최적화 (검색엔진 최적화)

다국어 사이트를 운영할 때 SEO 최적화가 중요합니다.

URL 구조 설정 (SEO 최적화)

  • 서브디렉토리 방식 (권장): example.com/en/, example.com/ko/
  • 서브도메인 방식: en.example.com, ko.example.com
  • 별도 도메인 사용: example.kr, example.com

hreflang 태그 추가

검색엔진이 올바른 언어 페이지를 인식하도록 hreflang 태그를 추가해야 합니다.

예제:

html복사편집<link rel="alternate" hreflang="ko" href="https://example.com/ko/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />

SEO 플러그인 사용

  • Yoast SEO 또는 RankMath 플러그인에서 다국어 SEO 최적화 기능 제공

4️⃣ 다국어 사이트 성능 최적화

다국어 사이트는 번역된 페이지가 많아지면서 속도가 느려질 수 있습니다.
다음 방법을 사용하여 속도를 최적화하세요.

1️⃣ 캐싱 플러그인 사용 → LiteSpeed Cache, WP Rocket
2️⃣ CDN(Content Delivery Network) 적용 → Cloudflare 사용
3️⃣ 이미지 최적화 → Smush 또는 ShortPixel 플러그인
4️⃣ 불필요한 플러그인 제거

5️⃣ 다국어 사이트 구축 시 추천 방법

추천 방법설명추천 대상
Polylang간단한 무료 플러그인, 직접 번역 필요🔹개인 블로그, 소규모 사이트
TranslatePress실시간 번역 지원, AI 번역 가능🔹번역이 쉬운 기업용 사이트
WPML강력한 기능, WooCommerce 지원🔹대규모 비즈니스, 쇼핑몰

👉 가장 쉬운 방법: TranslatePress + Google Translate API 🚀

🔥 최종 요약

가장 쉬운 방법: Polylang 또는 TranslatePress 플러그인 사용
자동 번역이 필요하면? TranslatePress + Google API 사용
완벽한 다국어 사이트를 원하면? WPML 사용
SEO 최적화 필수: hreflang 태그 추가, SEO 플러그인 활용
속도 최적화: 캐싱, CDN, 이미지 압축 적용

🚀 이제 쉽게 다국어 사이트를 만들 수 있습니다! 🌍

워드프레스 다국어 사이트 제작 방법 총정리

워드프레스로 다국어 사이트를 제작하려면 크게 3가지 방법이 있습니다.

  1. 플러그인 사용 (권장) – WPML, Polylang, TranslatePress 등
  2. 서브도메인 or 서브디렉토리 방식 – 각 언어별로 별도 사이트 운영
  3. 멀티사이트(Multisite) 설정 – 한 개의 워드프레스에서 여러 사이트 관리

각 방법의 장단점과 설정 방법을 자세히 설명하겠습니다.

1️⃣ 플러그인을 사용한 다국어 사이트 구축 (가장 쉬운 방법)

워드프레스에서 다국어 사이트를 운영하려면 보통 다국어 플러그인을 사용하는 것이 가장 쉽고 효과적입니다.

🚀 추천 플러그인 비교

플러그인가격주요 특징
WPML유료 (한화 약 3~10만원/년)가장 강력한 다국어 지원, SEO 최적화 우수
Polylang무료/유료무료 버전으로 기본 다국어 기능 지원, 사용 쉬움
TranslatePress무료/유료실시간 번역 지원, AI 번역(Google Translate) 가능

💡 **WPML(WordPress Multilingual Plugin)**은 SEO 친화적인 다국어 사이트를 만들기에 가장 적합합니다.

🔹 설치 및 설정

  1. WPML 플러그인 구매 후 설치 (wpml.org에서 다운로드 가능)
  2. WPML > Languages에서 추가할 언어 선택
  3. WPML > String Translation에서 번역할 문자열 추가
  4. WPML > Settings에서 SEO 설정 (URL 구조 변경 가능)
    • mydomain.com/en/, mydomain.com/fr/ 같은 URL 구조 설정 가능
  5. 각 페이지/포스트를 번역하여 다국어 콘텐츠 추가

📌 장점
✅ SEO 최적화 기능 제공 (Google 다국어 검색 지원)
✅ WooCommerce(쇼핑몰)과 완벽 호환

📌 단점
❌ 유료 플러그인 (연간 $39~$99)

✅ 방법 2: Polylang 플러그인 (무료 사용 가능)

💡 Polylang은 무료로 사용할 수 있는 다국어 플러그인입니다.

🔹 설치 및 설정

  1. 플러그인 > 새로 추가 > Polylang 검색 후 설치 및 활성화
  2. 설정 > 언어에서 추가할 언어 선택
  3. 기존 콘텐츠(페이지, 포스트)에서 다국어 번역 추가
  4. 메뉴 설정에서 각 언어별 네비게이션 메뉴 추가

📌 장점
✅ 무료 사용 가능
✅ 간단한 사이트에 적합

📌 단점
❌ String Translation 기능은 유료 (WPML보다 번역 옵션 부족)

✅ 방법 3: TranslatePress 플러그인 (실시간 번역 지원)

💡 TranslatePressGoogle 번역 API를 활용하여 실시간 번역이 가능한 플러그인입니다.

🔹 설치 및 설정

  1. 플러그인 > 새로 추가 > TranslatePress 설치 및 활성화
  2. 설정 > TranslatePress에서 추가할 언어 설정
  3. 페이지 편집 모드에서 번역할 텍스트 직접 수정 가능
  4. AI 번역 (Google Translate API) 사용 가능

📌 장점
✅ 실시간 번역 기능 제공
✅ 번역 편집 UI가 직관적

📌 단점
❌ 자동 번역의 경우 추가 비용 발생 (Google API 사용료)

2️⃣ 서브도메인 / 서브디렉토리 방식 (별도 사이트 운영)

예시:

  • 서브도메인 방식: en.mydomain.com, fr.mydomain.com
  • 서브디렉토리 방식: mydomain.com/en/, mydomain.com/fr/

📌 설정 방법

  1. 도메인 설정
    • 서브도메인 방식: en.mydomain.com 생성 후 별도 워드프레스 설치
    • 서브디렉토리 방식: mydomain.com/en/ 경로에 새 사이트 구축
  2. 각 언어별 워드프레스 사이트 운영
  3. hreflang 태그를 추가하여 SEO 최적화

📌 장점
✅ 완전히 독립적인 사이트 운영 가능
✅ 각 언어별로 SEO 최적화 가능

📌 단점
❌ 유지보수 어려움 (언어별 사이트 따로 관리해야 함)

3️⃣ 워드프레스 멀티사이트(Multisite) 기능 활용

워드프레스 멀티사이트를 설정하면 한 개의 워드프레스에서 여러 언어 사이트를 운영할 수 있습니다.

📌 설정 방법

  1. wp-config.php 파일에 다음 코드 추가
    • define('WP_ALLOW_MULTISITE', true);
  2. 워드프레스 관리자에서 네트워크 설정 활성화
  3. 각 언어별 서브도메인 또는 서브디렉토리 방식으로 사이트 추가
  4. 플러그인 MultilingualPress를 사용하여 언어 연결

📌 장점
✅ 하나의 워드프레스에서 여러 언어 사이트 관리 가능
✅ 플러그인, 테마 공유 가능

📌 단점
❌ 설정이 다소 복잡하며, 서버 리소스 사용량 증가

🚀 최종 선택 가이드 (어떤 방법이 가장 좋을까?)

방법추천 대상주요 특징
WPML (유료)SEO 최적화, WooCommerce 사용강력한 다국어 기능, 번역 관리 쉬움
Polylang (무료)간단한 다국어 사이트무료 사용 가능, WPML보다 기능 제한적
TranslatePress (무료/유료)실시간 번역 필요Google Translate API 사용 가능
서브도메인/서브디렉토리완전 독립적인 사이트 운영SEO 강력, 유지보수 어려움
멀티사이트 (Multisite)다국어 블로그, 포털하나의 워드프레스에서 여러 언어 사이트 운영

📌 추천 조합: ✅ WPML + SEO 최적화 → 전문적인 다국어 사이트
Polylang (무료) + 캐시 최적화 → 작은 규모의 다국어 사이트
TranslatePress + AI 번역 → 자동 번역 사이트 구축

🔹 결론

워드프레스에서 다국어 사이트를 제작하는 방법은 다양하지만, 플러그인을 이용하는 것이 가장 효율적입니다.
SEO 최적화 & 유지보수 편리함을 고려하면 WPML 플러그인이 가장 추천됩니다.
하지만 **무료 플러그인(Polylang, TranslatePress)**을 활용하면 비용을 절감하면서도 다국어 기능을 추가할 수 있습니다.

💡 어떤 방식이 가장 적합한지 고민된다면?간단한 블로그Polylang (무료)
쇼핑몰, 기업 사이트WPML (유료)
자동 번역 지원TranslatePress + Google Translate API

🚀 이 방법대로 설정하면 다국어 사이트 운영이 훨씬 쉬워질 것입니다! 💪