問題の概要
TablePressプラグインを使用してテーブルを作成した場合、WPMLで翻訳することはできません。WPMLは、翻訳エディタでテーブルのセルを個別のテキストとして表示しません。
回避策
TablePressのテーブルを複数の言語で表示するには、3つの方法があります。いずれかの方法を選択してください。
オプション1:言語ごとに1つのテーブル(推奨)
各言語用に1つのテーブルを作成します。次に、それぞれのテーブルをその言語のページに追加します。TablePressの開発者もこの解決策を推奨しています (新しいタブで開く)。- TablePressすべてのテーブルに移動します。
- 元のテーブルにカーソルを合わせ、コピーをクリックします。
- コピーを編集し、TablePress内でセルの内容を翻訳します。
- 翻訳されたページにコピーを追加します。TablePress tableブロックまたはコピーのショートコードを使用します。
オプション2:Row Filtering(TablePress Premium版)
TablePress PremiumのRow Filteringモジュール (新しいタブで開く)を使用します。各言語用に各行をコピーします。追加した非表示の最初の列などで、言語コードをフィルター条件として使用します。オプション3:WPMLでテーブルを翻訳する(高度な設定)
このオプションは、オプション1と2が機能しない場合にのみ使用してください。開始する前に必ずサイトの完全なバックアップを作成してください。制限事項:TablePressは、テーブルのすべてのセルを1つのコードブロックとして保存します。WPMLはこのブロックを1つのフィールドとして翻訳エディタに送信します。
- 高度な翻訳エディタではセルを翻訳できません。
- クラシック翻訳エディタでは、セルを
[["Tour","Days","Price"],["Coastal Loop","2","240 EUR"]]のような生のコードとしてのみ編集できます。引用符内の単語のみを翻訳してください。すべての括弧、引用符、カンマをそのまま維持してください。1つでも間違えるとテーブルが壊れます。
- WPML設定翻訳エディタに移動します。クラシック翻訳エディタの下にある選択をクリックします。
- WPML設定投稿タイプの翻訳に移動します。TablePress Tablesを翻訳可能 – 翻訳されたアイテムのみを表示に設定し、保存をクリックします。

TablePress Tables投稿タイプを翻訳可能にする - WPML設定カスタムフィールド翻訳に移動します。システムフィールドを表示をクリックします。以下のフィールドをコピーに設定し、保存をクリックします。
- _tablepress_table_options
- _tablepress_table_visibility
- WPML翻訳に移動し、ダッシュボードタブを開きます。TablePress Tablesセクションで、テーブルを選択します。コンテンツを翻訳をクリックし、自分で翻訳を選択してコンテンツを翻訳をクリックします。
- 翻訳タスクタブに移動し、テーブルの行にある翻訳をクリックします。
- 本文フィールドで、コードタブをクリックします。上記で説明したように、そこでセルを翻訳します。ビジュアルタブは使用しないでください。各フィールドで翻訳が完了しましたを選択し、保存して閉じるをクリックします。
- 翻訳されたテーブルのIDを取得します。
- 文字列タブに移動します。ユーティリティセクションのお探しの文字列が見つかりませんか?の下にある、管理テキスト翻訳をクリックします。
- tablepress_tablesを検索します。結果を選択し、文字列翻訳に追加をクリックします。
- 文字列タブに戻ります。ドメインのドロップダウンでadmin_texts_tablepress_tablesを選択し、フィルターをクリックします。
- 元のテーブルのIDを探します。文字列には
"table_post":{"1":5}のようなペアが含まれています。最初の数字はTablePressすべてのテーブルに表示されるテーブルIDです。2番目の数字は元のテーブルのIDです。 - 鉛筆アイコンをクリックして文字列を翻訳します。元の文字列を翻訳にコピーします。次に、元のテーブルのID(この例では5)を翻訳されたテーブルのID(この例では8)に置き換えます。Enterキーを押して保存します。

元のテーブルIDを翻訳されたテーブルIDに置き換える - 通常通り、テーブルを表示するページを翻訳します。テーブルブロックまたはショートコードは同じテーブルIDを維持します。これで、翻訳されたページに翻訳されたテーブルが表示されるようになります。






