WordPressのWEBサイトの多言語化1(WordPressのマルチサイト機能)

WordPressを利用してこのWEBサイトを立ち上げました。目的はWindowsのデスクトップアプリを公開する場所を用意することです。どうせ公開するなら、日本語だけでなく、他の言語でも公開したいと思いました。そのためには、WEBサイトも多言語化する必要があります。そこで、WordPressで立ち上げたWEBサイトの多言語化に挑戦です。まずは多言語化の下調べです。

多言語化するといっても複数言語に対応するのは大変なので、日本語と英語の2言語化を目標とします。2言語化ができればそれ以上の複数の言語にも同様に対応することができます。

まず、WordPressを利用したWEBサイトの多言語化の方法はどんな方法があるか調べました。

  • 投稿や固定ページを言語ごとに複数用意する方法
  • 一つの投稿や固定ページ内に複数の言語で記述し、プラグインなどでそれを表示し分ける方法
  • WordPressを言語ごとにインストールして複数のサイトを用意する方法
  • WordPressをマルチサイト化する方法

などがあることがわかりました。

各方法を簡単に説明します。


投稿や固定ページを言語ことに複数用意する方法

この方法では、投稿や固定ページを言語ごとに用意します。

たとえば、「WEBサイトの多言語化」という日本語の投稿を作成した場合、「Multilingualization of WEB site」という英語用の別の投稿も作成します。これによって同じ内容の投稿に対して複数の言語を用意します。

この方法は、WordPressに特別な設定や変更も必要はなく実現が容易です。しかし、個別の投稿や固定ページを多言語化することはできますが、それ以外の部分は、たとえば、メニューやThemeで用意されているアイテムなどは多言語化ができません。たとえば、投稿はこんなイメージになります。

  • WEBサイトの多言語化
    WEBサイトの多言語化の方法について考えます。調べてみたところ、色々な方法があるようです。…
  • Multilingualization of WEB site
    I will think about a multilingualization method of WEB site. As a result of research, there seem to be various methods. …

と同じ内容に関して、一つのサイト内に複数の投稿を用意します。しかし、投稿や固定ページ以外のところは、複数の言語分用意することはできません。

ナビゲーションなどが一つの言語でしか表示できず、各言語のユーザーがローカライズされた言語の投稿や固定ページにたどり着くことはできません。

この方式をサポートするプラグインもいくつか存在します。プラグインを使うと投稿以外の部分(ナビゲーション領域など)も多言語化できます。

  • Bogo (3.1.4 最終更新 2017年11月15日)
  • Polylang (2.3.2 最終更新 2018年3月5日)
  • [有料] WPML (3.9.3 最終更新 2018年2月5日)

バージョンや最終更新は2018年03月11日時点での情報です。

しかし、この方法では、一つのWordPress内に、複数の言語の投稿が混ざってしまいます。今後、言語ごとに分離したいときに少し面倒かもしれません。プラグインを導入すると、いい感じで扱えそうです。しかし、プラグインの開発が止まってしまったらどうなるかわかりません。プラグインがなくなってもそれなりに動作するようにしたいので、このサイトでこの方法を採用していません。


一つの投稿や固定ページ内に複数の言語で記述し、プラグインなどでそれを表示し分ける方法

この方法では、複数の言語に対応したとしても、同じ内容の投稿や固定ページは、すべての言語で共通の一つのみ用意します。一つの投稿や固定ページの中に複数言語分の記事を埋め込みます。ただ、そのままでは、投稿や固定ページを表示したときにすべての言語分が同時に表示されてしまうので、プラグインを利用して、実際に表示される言語をユーザーに合わせて一つにします。

たとえば、「WEBサイトの多言語化」という日本語の記事の投稿を作成した場合、おなじ投稿内に「Multilingualization of WEB site」という英語用の記事も追加します。このように同じ投稿に対して複数の言語を用意します。

たとえば、投稿はこんなイメージになります。

  • [[ja]WEBサイトの多言語化][[en]Multilingualization of WEB site]
    [[ja]WEBサイトの多言語化の方法について考えます。][[en]I will think about a multilingualization method of WEB site. ]
    [[ja]調べてみたところ、色々な方法があるようです。…][[en]As a result of research, there seem to be various methods. …]

投稿を一つのみ用意し、すべての言語の記事を追加します。一つの投稿内に複数の言語分のテキストがあるため、素の投稿を見たときは、かなり複雑な印象を受けます。しかし、実際の投稿の作成時や公開された投稿は、プラグインの機能によって、ひとつの言語分の情報のみが表示されるので、このような複雑な印象は受けません。

この方法の場合、プラグインが、投稿や固定ページ以外の部分の切り替えにも対応していれば、ナビゲーションなどもそれぞれの言語で表示できます。そのため、各言語のユーザーがそれぞれの言語の投稿や固定ページにたどり着くことができます。

この方式をサポートするプラグインもいくつか存在します。

  • qTranslate X (3.4.6.7 最終更新 2016年5月(2018年03月11日時点))

この方式は、問題なくみえます。しかし、投稿の編集時や公開時もプラグインの動作にかなり依存します。もし、プラグインがメンテナンスがされなくなったり、公開が停止されたりしたら、それまでに作成した投稿や固定ページがそのままでは、使えなくなります。なぜなら、先ほどの例に挙げたような独自な方式で内容を保持しています。そのなため、プラグインがない状態では、それがそのまま表示される、もしくは、全く表示されません。また、機能が同様の別のプラグインがあった場合でも、保存形式が同じでなければ、それまでに作成した投稿や固定ページは編集することなしに利用することはできません。

この方法では、特定のプラグインの機能に強く依存します。将来的な永続性に問題があるので、この方法は採用しません。


WordPressを言語ごとにインストールして複数のサイトを用意する方法

この方法では、言語ごとに専用のWordPressをインストールして、言語ごとに別々のWordPressを利用します。なので、多言語化するといっても、独立した一つのWordPressサイトを扱うのとなにもかわりません。各言語のWordPressサイトはWordPressの基本機能として、使用言語を設定できるので、投稿や記事だけでなく、サイトの全体をWordPressの標準機能のみでローカライズできます。

たとえば、日本語WordPressサイトに「WEBサイトの多言語化」という日本語の投稿を作成した場合、「Multilingualization of WEB site」という英語用の記事は英語WordPressサイトに投稿を作成します。これによって同じ投稿に対して言語ごとの投稿を用意します。

たとえば、投稿はこんなイメージになります。

日本語でインストールしたWordPressのサイト

  • WEBサイトの多言語化
    WEBサイトの多言語化の方法について考えます。
    調べてみたところ、色々な方法があるようです。…

英語でインストールしたWordPressのサイト

  • Multilingualization of WEB site
    I will think about a multilingualization method of WEB site.
    As a result of research, there seem to be various methods. …

この方法では、WordPressの標準機能のみで実現できます。大規模な組織であれば、それぞれの国の組織が独立してWordPressを管理できます。また、WordPressのサーバーを国ごとに設置でき、WEBサイトを利用するユーザーのそばにサーバーを配置できるためWEBページの表示を速くすることもできます。

ただ、言語ごとに完全に独立したWordPressサイトとなるため、テーマやプラグインなどの管理も完全に独立して言語サイトごとに管理します。各言語のサイトを独立した組織が管理した場合、組織間で密に連携しないと、言語ごとにWEBサイトのイメージが異なるものになってしまいます。また、小さい組織の場合、複数のWordPressを同時にメンテナンスするのも大変です。

この方式をサポートするプラグインもいくつか存在します。プラグインでサポートするのは、各独立したWEBサイトの投稿に関連を持たせることです。

この方式は、プラグインがあってもなくても、独立したWEBサイトなので問題なく動作します。ただ、複数のWordPressを管理することや、テーマやプラグインも独立して管理しなくてはいけないなど、小さな組織が管理するのは不向きです。

このサイトでは、この方式は採用していません。


WordPressをマルチサイト化する方法

WordPress 3.0以降では、マルチサイト機能というサイトのネットワークを作成する機能があります。ただし、マルチサイト機能はインストール直後は有効化されていません。

マルチサイト機能は、一つのWordPress内で複数のBlogサイトを実現する機能です。一つのWordPressで管理する複数のサイトの集合体をネットワークといいます。表示言語もネットワークで一つではなく、サイトごとに設定できます。そのため、マルチサイト機能は多言語化専用の機能ではありませんが、言語ごとサイトをに用意すれば、それは多言語化されたサイトです。

マルチサイト機能を利用する方法と言語ごとにWordPressをインストールする方法についていくつか違いを並べてみました。

マルチサイト機能 複数のWordPress
ダッシュボード ネットワークとして一元管理
サイトごとに表示を切り替える
完全独立
テーマ インストールはネットワークとして一元管理
有効か化サイトごと
完全個別管理
プラグイン インストールはネットワークとして一元管理
有効化はサイトごと
完全個別管理
メディア サイトごとのメディアプール 完全個別管理
ユーザー ネットワークで共通のユーザー管理 完全個別管理
管理者 サイトごとに設定可能 サイトごとに設定可能
サーバー 各サイトで共通 サイトごとに独立して設置

この方式はWordPressの標準機能を利用して複数のサイトを実現しているため、プラグインがあってもなくても問題なく動作します。

この方式をサポートするプラグインもいくつか存在します。プラグインでサポートするのは、ネットワーク内の各サイトの投稿に関連を持たせることです。

バージョンや最終更新は2018年03月11日時点での情報です。

WordPressをマルチサイト化した場合は、URLは、

  • 1サイト毎にサブドメイン
    (ex. https:/ja.sw-test.work/, https:/en.sw-test.work/)
  • 1サイト毎にサブフォルダー
    (ex. https://sw-test.work/ja/, https://sw-test.work/en/)

のどちらかの形式になります。

しかし、WordPress 4.5以降で標準機であるmultisite domain mapping (英語) を使うことによって、

  • 1サイト毎にトップレベルドメイン名のURL
    (ex. https:/sw-test-ja.work/, https:/sw-test-en.work/)

をサポートすることができるようです。


最終的にこのサイトでは、最後のWordPressのマルチサイト化での実現を採用しました。また、各言語サイト間での連携を容易にするため、プラグインとしてMultisite Language Switcherを利用することにしました。

セットアップの手順は別の投稿で報告したいと思います。

コメントを残す