web-dev-qa-db-ja.com

インスタンスごとではなく、投稿ごとにコンテンツを翻訳する

TL; DR:のみ特定の投稿の内容を別の言語に翻訳する方法を探しています。この記事のような( 'meta'や 'search'フィールドのような この解決方法はそうです )。

より長いバージョン:私は現在、新しい投稿で数週間ごとに更新される小規模企業向けの静的HTML Webサイトを管理しています。これらの記事のいくつかはフランス語(デフォルトの言語)と英語で書かれています。いくつかはドイツ語で書かれています。現在、すべての投稿のすべてのバージョンが最初に読み込まれますが、フランス語以外のすべてのバージョンはdisplay:noneによって非表示になります。各投稿の右側には、利用可能な翻訳に対応する多数のフラグがあります。ユーザーがこれらのフラグの1つをクリックすると、ちょっとしたjqueryマジックでdisplayプロパティがそれに応じて切り替えられ、投稿のコンテンツがそのローカライズされた対応物に置き換えられます。簡単です。

私は今、これらすべてをワードプレスに移植しようとしています。たとえば、Webサイトの管理を他の人に任せることなどです。私は必然的に洗練された解決策を見つけようとしています、それは両方ともコードを軽くし、そしてある編集者にとって理解しやすいものです。誰かが私が掘り下げることができるという考えを持っていれば、それは大いに感謝されるでしょう。

P.S .:私たちのビジネスの特定の性質がそれを要求していないので、私たちはSEOを気にしないことに注意することは重要です。

3

最も簡単な方法は、編集ページにカスタムフィールドを用意することです。使用したい言語ごとに1つのテキストフィールド(そしておそらく異なるタイトルフィールドがありますか?)これには、ACFのような プラグインを使用できます。 これにより、技術者以外の編集者にとって簡単なインタフェースが提供されます。

あなたがあなた自身のテーマを構築していると仮定すると、あなたはあなたのテンプレートにカスタムフィールドを統合することができます。常にフランス語のテキストを表示し、他の言語のフィールドが空かどうかを調べ、そうでない場合はそれらも含めます。それから慣れ親しんだようにjQueryを使って切り替えましょう。

サードパーティのテーマを使用している場合は、functions.php(およびthe_content)への通常の呼び出しにカスタムフィールドを追加し、表示を切り替えるためのcssとjQueryを含める、the_titleのフィルタを使用して子テーマを構築する必要があります。このような:

$spanish_content = '<div class="spanish">' . get_field('spanish_content') . '</div>';
apply_filters('the_content',$spanish_content);

(注:get_field呼び出しはACFプラグインに固有のものです)

1
cjbj