WordPressの多言語対応:プラグイン「mqTranslate」の実装

2015/5/1追記
mqTranslateはアップデート止めてしまったらしいので、qTranslate-xに移行しました。


サイトを多言語対応にしたい。日英対照のページを作るのはいいとして、はて、どうやって言語を保持したままのナビゲーションを作ったらいいんだろう、と思って調べたところ、さすがオープンソース。「あったらいいな」というものはたいがいどこかの偉い人が作ってくれているものなのですね。ありがたいことです。

WordPressを多言語対応するにあたってのメモ

  • 実装したサイト
    http://www.beerpub-ishii.com/
  • プラグインは「mqTranslate」を利用(qTranlateの後継らしく、こちらのほうがバージョンアップしているもよう)
  • プラグインを有効にするといきなり管理画面が英語になるので、設定>Languageで言語を選択する(私の場合は日英のみEnableに)
  • 投稿画面、タイトルは2カ国語を入れるフォームができ、記事のテキストエリアはタブで日本語|English|テキスト|ビジュアルで切り替えられるようになる。
  • すでにあった記事の英語版を入力し「更新」を押すと403 Forbiddenが出てしまう

上記の403、調べた結果、サーバ側でWAFを有効にしているとこのエラーが出るらしい。
私はロリポップだったので、ユーザー画面からWAFを無効とした。
セキュリティ的にはやや心配である。

下記を参考にさせていただきました。
WPプラグイン「qTranslate」で記事を新規投稿すると403 Error(wp-admin/post.php)

・言語切替スイッチ
WordPressプラグイン「qTranslate」でブログを多言語化する

・テキストではなく、国旗アイコンにしたかったので最終的にはWPのテーマ内「header.php」に下記を記述。

<div class="header_language">
<?php
// Language Chooser

$url = is_404() ? get_option('home') : '';
$lang = qtrans_getLanguage() == 'ja' ? 'en' : 'ja';
?>
<a class="lang-selector" href="<?php echo qtrans_convertURL($url, $lang); ?>">
<?php if ($lang == 'ja') echo "<img src=\"http://www.beerpub-ishii.com/wp-content/uploads/2014/09/icon_jp.png\">"; else echo "<img src=\"http://www.beerpub-ishii.com/wp-content/uploads/2014/09/icon_en.png\">"; ?>
</a> </div>
<!-- #language -->