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
* 2つのエントリはtridに同じtrid値を持つため、互いの翻訳となります。値自体は重要ではありません。
WPMLのicl_translationsおよび関連テーブル

古いサイト(WPML 4.8より前に作成されたサイト)では、1回限りのプロセスを実行して翻訳テーブルを最適化できます。

国旗テーブル

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日