文系のIT勉強メモ

勉強中のメモと、インフラの覚書き

WordPress 多言語プラグイン比較

WordPressで多言語のサイトをつくることになった。多言語といっても2か国語だけど。

手作りでできないこともなかったけど、今後記事数が増えていったときのメンテンナンス性まで考えると、プラグインを入れたほうが記事を増やす人の手順が少なくなるように・ミスを誘発しないようなつくりで構築できるので、入れることにしました。

ここでいう多言語サイトのイメージってこんな感じ

  1. ページ内の言語切り替えボタン(言語スイッチャー)を押すと、「そのページの」他言語ページに切り替わる。
  2. URLは言語を表す「/en/」を挟むだけで、それ以外は日本語ページと同じ文字列になるように。※「/en/」は他言語が英語の場合
  3. 固定ページも投稿ページもすべて1.2.のように、対になる他言語ページが存在する

f:id:suika_daisuki:20200523161421p:plain

多言語サイトのイメージ

これを手作りでつくろうとすると困るのが、1.の言語切り替えボタン(言語スイッチャー)です。そのページの絶対パスを出すWordPressphpタグはありますが、サイトURL(https://xxx)を除いたパスを出してくれる方法がありません(私の調べ不足かもしれないけど、ないと思った)。もしそれが出せるなら、/en/をはさんだそのページのパスを自動生成するようにテンプレートファイルに書けるのですが。

多言語プラグイン比較のポイント

言語スイッチャー

これがほしくてプラグインを使うようなものなので、必須です。

URLのつくり

上述したイメージ「2.」URLのつくりは、サイトによって異なることでしょう。でも自分が出会う多言語サイトはそのような作りが多いように感じられ、今回の案件でお客さんもそれを望んだので、これを実現できる必要があります。

カテゴリー

英語の固定ページには、英語の投稿を出力。
カテゴリーで絞って出力するときに、同じカテゴリーなら日本語のも英語のも出ちゃうというのはだめ。そのへんをどう処理できるかも確認の必要がある。

自動翻訳

また、多言語プラグインを調べていくと、自動翻訳機能の有無もポイントになっているようでした。個人のブログなどなら自動翻訳でも良いと思いますが、組織が費用をかけて公開するサイトで外国からの閲覧者を想定している場合には自動翻訳は使わないなと思い、今回は自動翻訳は不要として比較しました。

比較したプラグイン Multisite Language Switcher / WPML / Polylang / Bogo

調べても上記のポイントがわからないものも多かったので、ともかく入れて構築してみることにしました。比較したのは、調べていて有名で使ってる人が多いようだったプラグインです。つくってるときに調べて情報が出てくるプラグインがいいですから。

  Multisite Language Switcher WPML Polylang Bogo
  海外製 海外製 海外製 日本製
  無料 有料 無料 無料
ざっくりとした概要

・無料のなかでいちばん有名

・マルチサイト(サブディレクトリ型)をまずつくる 英語と日本語で別サイトになるので、テーマの使い分けがしやすい?

・有料のなかでいちばん有名

・30日間ののちに課金ではなく、まず購入して、そのあと30日以内の解約で返金される仕組み = お試しの時点でハードル高い

・使いやすいらしい

・動作が重くなるという意見もあるらしい

・軽量でシンプル

・他のプラグインやテーマとの干渉などのトラブルが少ない

参考サイト https://skygold.jp/web/4646
https://showtaki.com/wordpress-multilingual/
https://www.webcreatorbox.com/tech/plugin-multilingual 2010年の記事
https://showtaki.com/wordpress-multilingual/
https://design-plus1.com/tcd-w/2019/03/polylang.html https://spoke.cloud/ja/how-to-use-bogo-plugin/

表が飛び出ちゃった💦

結論 WPMLにした

入れて、やってみた結果、有料だけどWPMLにしました。


Bogoでもやりたいことは大方実現できそうだったのですが、上長に「早く決めろ。有料でもいい」と言われて。WPMLは管理画面の記事一覧で、日本語記事/英語記事をボタンで切り替えられます。Bogoは、ボタンではなくソートで一覧を切り替えます。ほんのちょっとしたことだけど、ボタン切り替えのほうが最初から表示が出てるのでわかりやすいです。そんなほんのちょっとの積み重ねでWPMLを選びました。

「早く決めろ」の過程で、構築に時間がかかりそうだったMultisite Language Switcherは、マルチサイトをつくっただけで、試さないままになってしまいました。構成からして今回の要件はすべて実現できるはずですが、参考にあげてるリンクの記事のなかで、Multisite Language SwitcherとWPMLを両方使った方が「最初からWPMLにしとけばよかった」と書かれてたから、有料でもいいなら、WPMLでいいか。となりました。

Polylangは、日本語ページと同じURLで/en/が挟まるようにしたい、という要件が無料版ではかなえられません。/en/は挟まるけど自アドレスのスラッグも変わってしまう。有料版で「スラッグを共有」を使うしかない。 有料といってもWPMLよりは安いのでPolylang有料版で検討してもよかったのですが、今回は「早く決め(略)。URL以外は構築スムーズだったんですけどね。

で、今、WPMLを入れて多言語に関するところは作り終えて、想定どおりにつくれている状態です。WPMLでの構築方法についてはまた別で記事を書きたいと思います。プラグインをいれるところまでは表中に書いた参考サイトでできるのですが、言語スイッチャーをオリジナルテーマのなかに入れ込んだりテンプレートの切り替えは、別で記事を探してなんとかたどりついたところです。)

おまけ

手作りで作る場合も後日、書こうと思います。他言語のボタンを押したらその言語でのトップページにとぶ、というつくりになりますが。投稿があまり増えなくて固定ページも少ないなら、手作りのままでも良かったかも。(プラグイン入れる前にいったん手作りで多言語作ったんです)

あと、メニューを切り替えるんじゃなく二か国語併記にし、コンテンツも、ページを分けないで「English below」みたいに下に翻訳を入れて、サイト構成を日本語だけの場合と同じにするなら、サイト作る側としてはすごく楽ですね。参考サイトを探しててそういうつくりのも見かけたので、作りながら「そういう作り手側の事情があったのかもな」と思っていました。