Bogo で WordPress を多言語化

WordPress をプラグインで多言語化する方法は、WPML(有料)と qTranslate が有名ですが、WPML と同じ方式の言語ごとに1投稿するプラグインは他にも、xili-languagePolylangBogo があるようです。今回、Bogo を使ってみました。多言語化する情報は、WordPress で多言語サイトを作成する – WordPress Codex 日本語版 が詳しいです。

※ この記事は Bogo 2.2、WordPress 日本語版 3.9.1-ja 使用時に書きました。

Bogo

今回、機能や仕組みがシンプルな Bogo を使ってみました。とりあえず、プロ生ちゃんのページを2言語用意しました。右のサイドバーの下の方に Bogo のウィジェットによる言語切り替えがあります。 2014/10/17 現在 Bogo を常時有効にしていません。

プラグイン Bogo を利用した場合、言語ごとにひとつの投稿や固定ページを作成します。異なる言語の投稿や固定ページは、プラグインで関連付けられ切り替えができるようになります。

ウィジェット、メニュー、カテゴリー、タグなどの言語ごとに用意する機能はありません。ウィジェットとメニューは、言語によって表示する・しないのオプションが増えるので、英語版・日本語版メニューを用意するなどある程度対応は可能です。

言語ファイルのインストール

使い方ですが、Bogo は WordPress にインストールされている言語ファイル(.mo ファイル)によって言語切り替えができます。日本語 WordPress を利用していると、英語・日本語の切り替えができます(英語は WordPress 既定の言語のため言語ファイル不要)。さらに言語を追加する場合は、WordPress Localization Repository からダウンロードします。

管理バーで言語選択

インストールすると、管理バーで言語選択ができます。

WordPress プラグイン Bogo

選択すると管理画面の言語も変わります。このため管理画面の言語切り替えプラグインとして使えると紹介しているサイトもありますが、選択している言語で、その言語の投稿や固定ページを作成するので少し違います。

投稿・固定ページの作成

新規作成

管理バーから言語を選択し、その言語の投稿・固定ページを作成します。言語の表示が追加されています。

WordPress プラグイン Bogo

別言語の投稿作成

Bogo を利用している状態で投稿するとロケール情報が付きます。言語を切り替えて、日本語の投稿の編集画面を見ると、「Add English translation」ボタンが付いていますので、ここから英語版の投稿を作成します。

WordPress プラグイン Bogo

コピーされた内容を編集し英語版を作成します。言語表示部分で日本語の投稿と関連付いていることがわかります。

WordPress プラグイン Bogo

スラッグ(hello 部分)は、異なる言語で同じ値にできるみたいですが、変えた方が無難です。WordPress ではこの値は一意であることを想定していると思うので、再編集など操作しているとプレビューに違う言語が表示されたり、hello-2 のようにリネームされたり微妙な動作がありました。

投稿一覧

投稿一覧で、ロケールの表示や、対応する別の言語の投稿作成もできます。

WordPress プラグイン Bogo

言語切り替えの UI を追加

ショートコード [bogo] を利用すると、記事中に言語切り替えを表示できます。また、言語切り替えのウィジェットも用意されています。

bogo6

各言語の URL

各言語の投稿や固定ページは、http://example.jp/en/hello や、http://example.jp/ja/hello-2 のように(当環境では)なりました。

Bogo の詳しい説明ないようですが、WordPress の既定の言語(wp-config.php の define(‘WPLANG’, ‘ja’))での表示は、多言語化する前の URL でアクセスできます。逆に、既定の言語でない場合、言語指定のある URL にリダイレクトされるようです。

このあたりの処理がうまく動作せず、これまでの記事がリダイレクトされると困るのですが、今のところ問題になっていません。

アーカイブ表示なども http://example.jp/en/2014/07/ のようになり、1言語のみ表示できます。

言語による表示切り替え

これも Bogo の説明にはありませんが、表示されている投稿・固定ページの言語によって、メニューやウィジェットの表示・非表示選択ができます。

bogo7

メニューやウィジェットの訳語が作れないのは面倒ですが、各言語のメニューやウィジェットを用意し、この表示切り替えである程度サイト全体の多言語化表示は対応できそうです。

おわりに

Bogo は、シンプルに投稿と固定ページの多言語化のみ可能です。逆に、メニュー、ウィジェット、カテゴリーなどサイト全体を多言語化するには工夫が必要です。このようなケースで問題なければ、シンプルで使いやすそうですね。

また、言語ごとに投稿が増えるため、テンプレートで自前で投稿一覧などを表示している場合、全言語の投稿が表示されるので修正が必要です。

今回は、通常の投稿と固定ページしか確認していません。カスタム投稿は動作しないかもしれません。