WordPressを多言語化する

post-075-img-0001

WordPressを日本語と英語など複数の言語で表示したい場合がありますが、多言語化のプラグインは、ある1つの言語で書かれたページを自動翻訳を使って翻訳しながら表示するプラグインが多く、これだと原稿は1ページ分で良いというメリットがあるものの、翻訳の質がぜんぜん良くないというデメリットがあります。そこで、今回は、言語ごとのページを自分で作って、選択された言語でページを表示するようなしくみを構築するにはどうすれば良いかを解説していきます。

準備

多言語化に必要なプラグイン

ワードプレスに以下のプラグインを導入します。

Conditional Menus 言語毎にメニューを切り替えるプラグイン
Content Aware Sidebars言語毎にサイドバーを切り替えるプラグイン

多言語化をサポートしてくれるWebツール類

ワードプレス関連以外で多言語化サイトを作る際に便利なルールです。

DeepL https://www.deepl.com/
ドイツの自動翻訳ソフト(無料です)

WordPressの変更点

外観 ⇨ テーマエディター でテーマエディターを開き、画面右側のファイルのリストから「functions.php」を選択し、下記のコードを functions.phpの一番下に追加して保存します。

// 固定ページにもタグをつける
// function.php に記述
function add_tag_to_page() {
   register_taxonomy_for_object_type('post_tag', 'page'); 
}
add_action('init', 'add_tag_to_page');


この変更を行うことで、以下のように固定ページにもタグを記入することができるようになります。

Imgur spankyjpn.com
01-spankyjpn.com-TechPosts

実際に多言語のサイトを作る

ページは作る言語毎に用意する

たとえば、英語と日本語のページを作りたい場合を例に取ると、まずトップページですが、英語で書かれたものと、日本語で書かれたものを用意します。この際に、英語のページには「english」などのタグを、日本語のページには「japanese」などのタグを指定しておきます。

サイドバーを切り分けるための設定

WordPressの画面左側の管理者メニューから、「Content Aware」を選択してサイドバーの管理画面を開きます。新規追加を選択してサイドバーを作りたい言語の種類の数だけ作ります。
今回は「english」と「japanese」の2つを作りました。このそれぞれのサイドバーを表示させる条件として、英語のサイドバーは表示条件を「タグ」が「english」だった時、日本語のサイドバーは表示条件を「タグ」が「japanese」だったときと設定しておきます。こうすることで投稿でも固定ページでもタグによって使うサイドバーを分けることが出来ます。

実際のサイドバーを定義する

実際のサイドバーは、外観 ⇨ ウイジェット で編集できます。さきほど作った2つのサイドバーが表示されているはずです。

メニューを切り替えるしくみ

メニューを言語によって切り替えるには、いくつかの技を駆使します。まずは、どの言語のページをデフォルトで表示させるのかを決めます。URLで指定されない限り日本語のトップページをデフォルトで表示させるのであれば、日本語のメニューの中に「English」などの名称で英語の方のトップページを選択するアイテムを入れておきます。逆に英語の方のメニューには「日本語」などのように日本語のページのトップを表示するアイテムを入れておきます。そして日本語のトップページ用に作ったページを 設定 ⇨ 表示設定 で 「ホームページ」として指定しておきます。逆に英語のページをデフォルトで開くようにしたいのであれば、英語の好きなページを 設定 ⇨ 表示設定 で 「ホームページ」として指定しておきます。

メニューを作る

WordPressの管理者メニューから 外観 ⇨ メニュー と選択してメニューの管理画面を出し、2つのメニューを作成します。1つは英語のメニュー、もう1つは日本語のメニューです。このメニューの管理画面の下の方をスクロールしてみると、「固定ページを自動追加」や「メニューの位置」といった設定項目がありますが、ここはチェックを入れないでください。

メニューを言語毎に切り替える設定

メニューを作成したら、画面の上の方にある「位置を管理」というタブを選択します。すると、ヘッダーメニューという項目があるので、ここに表示されている「+ Conditional Menu」というリンクをクリックします。するとメニューを選択するリストとその横に「conditions」というリンクが出ると思いますので、ここで英語のメニューを選んでおいてから「conditions」をクリックし、さらに「Pages」というタブから英語のメニューを表示したいページにすべてチェックを入れます。日本語のメニューも同様に設定して保存ボタンを押しておきます。設定が終わったら、「位置を管理」の画面の下にある保存ボタンを忘れずに押下しておいてください。これをしないと設定が反映されません。

注意点
この原稿を執筆している時点では、サイドバーの設定と違い、メニューのほうの切り替え設定では、固定ページに関しては、タグによる切り替えができませんでした。面倒ですがページを1つ1つ指定していくしか無いようです。ですので、ページを新規に作るたびにここの設定も変更してください。

動作確認

サイトを表示させ、メニューが表示されていることを確認してください、さらに、言語を選択したときには目当ての言語でのページが表示されて、サイドバーとマニューが意図したとおりに表示されていることを確認してください。

英語のメニュー

Imgur spankyjpn.com
01-spankyjpn.com-TechPosts

日本語のメニュー

Imgur spankyjpn.com
01-spankyjpn.com-TechPosts

さいごに

今回は、Wordpressでマルチリンガルサイトを構築する方法を解説しました。
現在、1つのページを自動翻訳して多言語に対応させるプラグインは数多く出ていますが、自動翻訳の制度が高くない上に、自動翻訳できない言語には対応できないなど使い勝手がよくありません。
 そこで、ちゃんとした多言語サイトを作りたいのであれば、上記の方法で複数の言語を表示できるサイトが構築できると思います。DeepLの翻訳品質は驚くほど良いので、これを使って複数言語に対応したサイトの構築も比較的ラクにできるのではないでしょうか。

タイトルとURLをコピーしました