WPML

WPML은 언어, 번역 및 문자열 데이터를 사용자 정의 데이터베이스 테이블에 저장합니다. 이러한 테이블이 WordPress 테이블 및 콘텐츠와 어떻게 연결되는지 알아보세요.

WPML의 데이터베이스 모델

다음 다이어그램은 WPML이 사용하는 테이블의 모델을 보여줍니다.

WPML 데이터베이스 테이블 다이어그램

언어 및 번역 테이블

언어 및 번역 정보를 보관하는 테이블은 icl_translations입니다.

  • 번역 가능으로 구성된 각 사이트 콘텐츠 요소(글, 페이지, 태그, 카테고리, 사용자 정의 글 유형 및 사용자 정의 택소노미)는 이 테이블에 항목을 가집니다. 참고: 댓글은 번역할 수 없지만 언어 정보가 할당되어 있으므로 icl_translations에 레코드가 있습니다.
  • 이 항목은 항목의 언어와 항목이 속한 번역 그룹(요소 유형)을 지정합니다.
  • 동일한 번역 클러스터의 항목은 element_type 및 trid 열에서 동일한 값을 공유합니다.
  • 동일한 클러스터에서 원본 언어가 없는(NULL) 항목이 원본 항목입니다.

다음 열이 있습니다.

  • translation_id – 일련번호
  • element_type – 요소의 유형입니다. 이 값은 wpml_element_type 훅에서 설명하고 검색합니다.
  • element_id – 항목의 ID입니다(글 유형의 경우 post_id, 택소노미 용어의 경우 term_taxonomy_id).
  • trid – 번역 그룹의 ID입니다.
  • language_code – 항목의 언어 코드입니다.
  • source_language_code – 번역된 경우 원본 항목의 언어입니다.

예를 들어 ID=3인 영어 글이 스페인어로 번역되고 스페인어 번역의 ID가 7인 경우 icl_translations 테이블은 다음과 같습니다.

translation_idelement_typeelement_idtridlanguage_codesource_language_code
1post_post32enNULL
2post_post72esen
* 두 항목의 trid에 대한 trid 값이 같으므로 서로의 번역입니다. 값 자체는 중요하지 않습니다.
WPML의 icl_translations 및 관련 테이블

이전 사이트(WPML 4.8 이전 버전에서 생성됨)에서는 일회성 프로세스를 실행하여 번역 테이블을 최적화할 수 있습니다.

국기 테이블

WPML은 다양한 국기 모음과 함께 제공됩니다. 언어를 국가와 연결하는 것은 문제가 될 수 있다는 점에 유의하세요. 많은 언어가 여러 국가에서 (때로는 다르게) 사용됩니다. 하지만 국기는 여전히 유용한 시각적 단서이며 방문자가 자신의 언어를 쉽게 찾을 수 있도록 도와줍니다.

WPML의 국기는 res/flags 디렉토리에 저장되며 icl_flags 테이블은 각 국가에 반환할 국기를 나타냅니다. icl_flags 테이블의 열은 다음과 같습니다.

  • id – 일련번호
  • lang_code – 언어 코드
  • flag – 국기 파일의 이름
  • from_template – “0”: WPML의 res/flags 폴더에서 국기를 가져옴, “1”: 테마 디렉토리에서 국기를 가져옴

다른 국기를 사용하려면 WPML언어로 이동한 다음 언어 편집을 클릭하여 사용자 정의 국기 파일을 업로드할 수 있습니다.

사용자 정의 국기 추가
사용자 정의 국기 추가

동일한 언어 편집 페이지를 사용하여 사용자 정의 언어를 추가할 수 있습니다.

문자열 번역 테이블

대부분의 WordPress 사이트에는 항목(글, 페이지, 태그, 카테고리)에 속하지 않지만 블로그의 태그라인과 같이 여전히 번역해야 하는 일부 문자열이 포함되어 있습니다.

WPML에는 이러한 문자열을 처리하기 위한 문자열 번역이라는 메커니즘이 포함되어 있습니다.

문자열은 다음 열이 있는 icl_strings 테이블에 보관됩니다.

  • id – 일련번호
  • language – 언어
  • context – 문자열의 컨텍스트(문자열이 속한 항목을 나타냄)
  • name – 문자열의 이름
  • value – 문자열 값(해당 내용)
  • string_package_id - 문자열이 속한 패키지의 ID
  • type – 번역 에디터를 통해 문자열을 편집할 때 사용할 에디터의 유형(LINE, AREA 또는 VISUAL)
  • title – 번역 에디터에 표시할 문자열의 제목
  • status – 문자열이 모든 언어로 완전히 번역되었는지를 나타내는 번역 상태
  • gettext_context – gettext 함수에 설정된 컨텍스트(예: _x)
  • domain_name_context_md5 – 조회 성능을 향상시키는 고유 키

문자열의 번역은 icl_string_translations 테이블에 보관됩니다.

  • id – 일련번호
  • string_id – 번역 중인 문자열의 ID(일련번호)
  • language – 번역의 언어
  • status – 번역의 상태(완료 / 미완료)
  • value – 번역 자체
  • translator_id – 번역가의 ID
  • translation_service – 문자열을 번역하는 데 사용된 번역 서비스. 비어 있거나 로컬 또는 원격 서비스일 수 있음
  • batch_id – 번역 서비스에서 문자열을 번역할 때의 일괄 처리 ID
  • translation_date – 번역 날짜
WPML의 icl_strings 및 icl_string_translations 테이블

모든 WPML 테이블

다음은 WPML이 사용하는 모든 테이블의 전체 목록입니다.

wp_icl_background_task
wp_icl_content_status
wp_icl_core_status
wp_icl_flags
wp_icl_languages
wp_icl_languages_translations
wp_icl_locale_map
wp_icl_message_status
wp_icl_mo_files_domains
wp_icl_node
wp_icl_reminders
wp_icl_strings
wp_icl_string_batches
wp_icl_string_packages
wp_icl_string_positions
wp_icl_string_status
wp_icl_string_translations
wp_icl_translate
wp_icl_translate_job
wp_icl_translations
wp_icl_translation_batches
wp_icl_translation_downloads
wp_icl_translation_status

이 섹션의 추가 정보

작성자: Amir · 마지막 업데이트: 2025년 8월 28일