기능플러그인가격리소스
언어 변경
리소스WordPress에서 RTL 언어(아랍어, 히브리어, 페르시아어)를 번역하는 방법

WordPress에서 RTL 언어(아랍어, 히브리어, 페르시아어)를 번역하는 방법

SimplePoTranslate Team2026년 3월 20일
WordPress에서 RTL 언어(아랍어, 히브리어, 페르시아어)를 번역하는 방법

WordPress 테마를 아랍어로 번역하는 것을 막 끝냈습니다. .mo 파일을 업로드하고 사이트 언어를 변경했지만 결과는 읽을 수 없습니다. 텍스트가 왼쪽으로 넘치고, 버튼이 겹치고, 심혈을 기울여 디자인한 레이아웃이 종이 파쇄기에 들어간 것처럼 보입니다.

오른쪽에서 왼쪽으로 쓰는(RTL) 언어의 세계에 오신 것을 환영합니다. 여기서는 번역이 전투의 절반에 불과합니다.

아랍어, 히브리어, 페르시아어(파르시어)는 세계에서 가장 널리 사용되는 언어 중 하나입니다. 아랍어만 해도 4억 명이 넘는 원어민 화자가 있습니다. WordPress 사이트에서 이 사용자층을 무시한다면 엄청난 돈을 놓치고 있는 것입니다. 하지만 이들에게 서비스를 제공하려면 영어 단어를 아랍어 단어로 바꾸는 것 이상이 필요합니다. 전체 레이아웃 방향을 재고해야 합니다.

이 가이드에서는 RTL이 WordPress에서 어떻게 작동하는지, CSS를 수정하는 방법, RTL 문자열이 포함된 .po 파일을 처리하는 방법, 가장 흔한 함정을 피하는 방법 등 알아야 할 모든 것을 다룹니다.

WordPress에서 RTL 작동 방식

WordPress는 RTL을 기본적으로 지원합니다. 사이트 언어를 아랍어(ar), 히브리어(he), 페르시아어(fa)로 설정하면 WordPress는 자동으로 <html> 태그에 dir="rtl"을 추가하고 테마에서 rtl.css 스타일시트를 제공하는 경우 이를 로드합니다.

이것이 이론입니다. 실제로는 대부분의 테마가 최소한의 또는 깨진 RTL 지원과 함께 제공됩니다.

실제로 바뀌는 것

RTL 모드가 활성화되면 브라우저는 전체 페이지 레이아웃을 미러링합니다.

  • 텍스트가 오른쪽에서 왼쪽으로 흐릅니다.
  • 사이드바가 서로 바뀝니다.
  • 탐색 메뉴의 순서가 바뀝니다.
  • 패딩 및 마진 값이 뒤집힙니다(왼쪽이 오른쪽이 됨).
  • 방향성 의미가 있는 아이콘(화살표, 갈매기표)을 미러링해야 합니다.

테마의 CSS가 LTR에 대해서만 작성된 경우 모든 margin-left, padding-right, float: left, text-align: left 선언이 이제 브라우저의 RTL 엔진에 맞서 싸우고 있습니다.

RTL에 맞게 CSS 수정: 실용적인 가이드

가장 깔끔한 접근 방식은 문서의 쓰기 방향에 자동으로 적응하는 CSS 논리적 속성을 사용하는 것입니다. leftright 대신 inline-startinline-end를 사용합니다.

이전: 물리적 속성(RTL에서 깨짐)

/* LTR-only CSS -- breaks in Arabic */
.sidebar {
  float: left;
  margin-right: 20px;
}

.nav-arrow {
  padding-left: 10px;
  text-align: left;
}

.card {
  border-left: 3px solid #0073aa;
}

이후: 논리적 속성(양방향에서 작동)

/* Direction-agnostic CSS -- works in both LTR and RTL */
.sidebar {
  float: inline-start;
  margin-inline-end: 20px;
}

.nav-arrow {
  padding-inline-start: 10px;
  text-align: start;
}

.card {
  border-inline-start: 3px solid #0073aa;
}

논리적 속성을 사용하면 CSS를 한 번만 작성하면 영어와 아랍어 모두에서 재정의 없이 올바르게 작동합니다.

[dir="rtl"] 재정의 방법

전체 스타일시트를 리팩터링할 수 없는 경우 속성 선택기를 사용하여 RTL을 구체적으로 타겟팅할 수 있습니다.

[dir="rtl"] .sidebar {
  float: right;
  margin-left: 20px;
  margin-right: 0;
}

[dir="rtl"] .nav-arrow {
  padding-left: 0;
  padding-right: 10px;
  text-align: right;
}

이 방법은 작동하지만 유지 관리 부담이 두 배로 늘어납니다. LTR 스타일을 업데이트할 때마다 RTL 재정의도 업데이트해야 합니다.

RTL 문자열로 PO 파일 번역

번역 자체는 레이아웃을 넘어선 과제를 제시합니다. RTL 언어에는 대부분의 자동화 도구를 걸려 넘어지게 하는 고유한 특징이 있습니다.

PO 파일의 양방향 텍스트(Bidi)

진정한 복잡성은 RTL과 LTR 텍스트가 단일 문자열에서 혼합될 때 나타납니다. 다음의 일반적인 WordPress 패턴을 고려해 보세요.

msgid "Powered by %s"
msgstr "مدعوم بواسطة %s"

%s 자리 표시자는 "WooCommerce"와 같은 영어 제품 이름으로 대체됩니다. 렌더링된 출력에서 브라우저는 오른쪽에서 왼쪽으로 흐르는 아랍어 텍스트를 표시한 다음 영어 단어에 대해 왼쪽에서 오른쪽으로 전환한 다음 잠재적으로 다시 전환해야 합니다.

이를 양방향 텍스트(또는 "bidi")라고 하며 유니코드 양방향 알고리즘에 의해 처리됩니다. 대부분의 경우 자동으로 작동합니다. 그러나 여러 자리 표시자 또는 숫자가 RTL 텍스트에 인접해 있는 경우 시각적 순서가 예측할 수 없게 될 수 있습니다.

흔한 번역 실수

일반적인 번역 도구는 다음과 같은 여러 가지 RTL 관련 오류를 발생시킵니다.

  1. 자리 표시자 순서 뒤집힘. %1$s out of %2$s와 같은 문자열은 AI가 아랍어 문법에 맞게 재정렬하기 때문에 자리 표시자가 바뀔 수 있습니다. 이로 인해 "Page out of 10" 대신 "10 out of Page"와 같은 잘못된 출력이 생성됩니다. 코드 변수 보호 중 번역에 대해 자세히 알아보세요.

  2. 깨진 HTML 방향. 문자열에 <span dir="ltr">와 같은 인라인 HTML이 포함된 경우 순진한 번역가는 dir 속성을 제거하거나 번역할 수 있습니다.

  3. 누락된 복수형. 아랍어에는 여섯 개의 복수형(0, 1, 2, 몇, 많음, 기타)이 있습니다. 이는 WordPress가 지원하는 모든 언어 중에서 가장 복잡한 복수형 시스템입니다. 영어 단수/복수와 같이 두 개의 형식만 생성하는 도구는 아랍어 .po 파일을 손상시킵니다. Gettext 복수형 작동 방식에 대한 자세한 내용은 WordPress의 복잡한 복수형 처리에 대한 가이드를 참조하세요.

다음은 올바르게 번역된 아랍어 복수형 문자열이 .po 파일에 표시되는 모습입니다.

# Arabic: nplurals=6
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "لا تعليقات"
msgstr[1] "تعليق واحد"
msgstr[2] "تعليقان"
msgstr[3] "%d تعليقات"
msgstr[4] "%d تعليقًا"
msgstr[5] "%d تعليق"

이러한 여섯 가지 형식 중 하나라도 비어 있거나 올바르지 않으면 WordPress는 해당 특정 개수에 대해 영어 문자열로 대체됩니다. 사용자는 완전히 아랍어로 된 인터페이스 전체에 "5 comments"가 영어로 표시됩니다.

RTL 구현 테스트

CSS를 번역하고 수정하는 것만으로는 충분하지 않습니다. 실제 브라우저에서 결과를 확인해야 합니다.

빠른 테스트 체크리스트

  • 설정 > 일반에서 WordPress 언어를 아랍어로 전환합니다. dir="rtl"을 수동으로 추가하지 마세요. WordPress가 자체 RTL 재정의를 로드하도록 실제 언어 설정을 사용하세요.
  • 탐색 메뉴를 확인합니다. 미러링되었습니까? 드롭다운이 올바른 방향으로 열립니까?
  • 양식 필드를 검사합니다. 입력 텍스트가 오른쪽에서 왼쪽으로 흘러야 합니다. 자리 표시자 텍스트가 오른쪽 정렬되어야 합니다.
  • 혼합 방향 콘텐츠를 확인합니다. 아랍어와 영어(예: 브랜드 이름 또는 URL)가 모두 포함된 문자열은 올바른 시각적 순서로 렌더링되어야 합니다.
  • 모바일에서 테스트합니다. RTL 레이아웃 버그는 정렬 오류에 대한 여유 공간이 적은 작은 화면에서 더 심각한 경우가 많습니다.

번역이 전혀 표시되지 않는 경우 문제는 RTL과 관련이 없을 수 있습니다. 먼저 .mo 파일 컴파일 및 파일 경로를 확인하세요.

브라우저 개발자 도구 팁

Chrome DevTools에서 WordPress 설정을 변경하지 않고도 모든 페이지에서 RTL을 일시적으로 강제할 수 있습니다.

/* Paste in DevTools console as: document.documentElement.dir = 'rtl' */
html {
  direction: rtl;
}

이렇게 하면 번역을 시작하기 전에 테마가 RTL을 처리하는 방식에 대한 빠른 미리보기를 볼 수 있습니다.

올바른 방법으로 RTL 번역 자동화

RTL 언어의 수동 번역은 비용이 많이 들고 느립니다. 전문 아랍어 번역가는 프리미엄 요금을 부과하며 언어와 WordPress 특정 Gettext 구문을 모두 이해하는 사람을 찾기가 어렵습니다.

SimplePoTranslate는 RTL 관련 문제를 기본적으로 이해하는 컨텍스트 인식 AI 엔진을 통해 이 문제를 해결합니다.

  • 여섯 개의 아랍어 복수형이 모두 자동으로 생성됩니다. 당사 엔진은 .po 파일에서 Plural-Forms 헤더를 읽고 대상 언어에 필요한 정확한 수의 형식을 생성합니다. 비어 있는 msgstr 슬롯이나 영어 대체가 없습니다.
  • 자리 표시자 안전. %s, %d, %1$s와 같은 변수는 번역 중에 잠깁니다. AI는 아랍어 문법에서 다른 단어 순서를 제안하더라도 이러한 변수를 재정렬, 삭제 또는 손상시킬 수 없습니다. 구문 잠금이 코드를 보호하는 방법에 대해 자세히 알아보세요.
  • 양방향 컨텍스트. AI는 혼합 방향 문자열에 특별한 처리가 필요함을 이해하고 HTML 방향 속성을 보존합니다.

히브리어 사용자를 위한 블로그 테마를 현지화하든 전체 WooCommerce 스토어를 페르시아어로 번역하든 프로세스는 동일합니다. .po 파일을 업로드하고 대상 언어를 선택한 다음 번역된 파일을 다운로드합니다. 전체 워크플로는 며칠이 아닌 몇 분이 걸립니다.

WordPress 현지화 프로세스에 대한 전체 연습은 WordPress 현지화에 대한 궁극적인 가이드를 참조하세요.

RTL을 뒷전으로 취급하는 것을 중단하세요

오른쪽에서 왼쪽으로 쓰는 언어는 10억 명이 넘는 잠재적 사용자를 나타냅니다. 아랍어는 세계에서 다섯 번째로 많이 사용되는 언어입니다. 히브리어와 페르시아어는 중동 및 중앙 아시아의 중요한 시장에 서비스를 제공합니다.

WordPress 사이트가 이러한 사용자에게 세련되고 자연스러운 느낌의 경험을 제공할 수 없는 경우 이러한 사용자들은 서비스를 제공할 수 있는 경쟁업체를 찾을 것입니다.

좋은 소식은 WordPress에 이미 인프라가 있다는 것입니다. 테마에 적절한 CSS가 필요하고 .po 파일에는 RTL 언어의 복잡성을 존중하는 번역 도구가 필요합니다.

WordPress 사이트를 아랍어, 히브리어 또는 페르시아어로 번역할 준비가 되셨습니까? SimplePoTranslate.com에서 무료로 시작하세요.