WordPressのカスタマイズ方法やプラグインレビューを中心に、パソコン/動物/植物のことなどを紹介するホームページです

WordPressで作ったサイトを複数の言語で表示してみよう!サイト多言語化に挑戦

公開日:2017(平成29)年8月7日/最終更新日:

Knowledge Base Wordpress パソコン カスタマイズ 設定



【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています

WordPressでサイトを作り始めてはや数年。作っては壊しをしながらようやく今のサイトに落ち着きました。考えれば過去に消し去った記事がもったいなかったなぁと思う今日この頃、後悔先に立たずとはこのことを言うんだなと痛感してます。

いきなり関係ない内容からのスタートですみません。そんな後悔をしつつ書き続け、今や結構な数の記事がこのサイトにはあります。そこでふと浮かんだのが「読んでくれる方は日本語が分かる人だけなの?」という素朴な疑問。このサイトではWordPressに関する使い方などを書いた記事も多数あり、逆に私自身もサイト作りの参考に海外のサイトを見る機会も多いですから、自分の記事も英語で表記できたら・・というのが今回行った別言語を使った別ページ作成のきっかけでした。

そこで下調べとして、そもそもどんな言語が世界では使われているの?と調べたところ、文部科学省の資料によれば、世界で使用されている言語のランキング(言語別使用人口ランキング)は

  1. 中国語(1,075,000,000人-10億7千500万人)
  2. 英語(514,000,000人-5億1千400万人)
  3. ヒンディー語(496,000,000人-4億9千600万人)
  4. スペイン語(425,000,000人-4億2千500万人)
  5. ロシア語(275,000,000人-2億7千500万人)
  6. アラビア語(256,000,000人-2億5千600万人)
  7. ベンガル語(215,000,000人-2億1千500万人)
  8. ポルトガル語(194,000,000人-1億9千400万人)
  9. マレー・インドネシア語(176,000,000人-1億7千600万人)
  10. フランス語(129,000,000人-1億2千900万人)

となっており、いかに中国語の使用人口が多いかが分かります。「使用されている言語」として日本語は少ないんですね(日本人の数も少ないので当然かと)。そこで、せっかく記事を書くなら日本だけでなく世界の人に読んでもらえるようなサイトが作れないか?ということで今回の多言語化チャレンジをしてみたわけです。

とはいえ、私自身中国語の「ち」の字も分からないですし、ネットの世界では中国語って・・・という印象が個人的にあるため、今回は今ある日本語ページとは別に同じ内容の英語のページを作ってみたいと思います。

何分初めてのチャレンジですので経緯を次々に追記していく形になりますから読みづらいところが多々ありますが、ちょっと我慢してお付き合いください(こういうのはまとまっている紹介記事よりも過程が書いてあった方が役に立つ・・・と勝手に思ってます)。

コンテンツ例として

を作ってみましたのでぜひ動作確認をしてみてください。画面右上(サイドバーの一番上)に言語切り替えのボタンを設置しています。

テーマ内の文字列がすべて英語になるわけではないので基本的には本文のみの対応にはなってしまいますが、何か急にワールドワイドになったみたいでかっこいい!!と自身では満足しています。

WordPressのサイトを多言語化する方法・気を付けること

手っ取り早く複数の言語に対応するなら、訪問してくれた方に対して言語を切り替えて表示するプラグインもあります

これを使えば確かに「訪問してくれた方」には対応ができます。でも、訪問されるのか?となると疑問がいっぱいです。例えば英語なら検索結果にページが表示され、かつタイトルなどに英語のタイトルや抜粋が表示されなければ訪問される可能性はゼロですからね。どんなに読者がいても検索経由でのアクセスが多いインターネットの世界において、これでは意味がありません。

そこでやりたいのが「日本語のページ」と「同じ内容の英語ページ」を作るということ。単純に英語のサイトをもう一つ作って運用する方法が一番単純です。サブドメインやサブディレクトリに英語のサイトを作るんですね。サブディレクトリなら同一サイトと認識されるのでサイト全体のパワーアップにつながるかもしれません。

でもこの方法だと結局別サイトだから管理が煩雑になって結局放置になるかもしれません。ものぐさな私なら100%ダメになると思います。となるとあくまでも同一の管理が必要、マルチサイトにするか??いやいやそれでも別のサイトには変わりありません。

次に考えたのが投稿の中にタブ切り替えで英語・日本語の切り替えをすれば・・・という方法。でも根本的な検索経由でアクセスされる可能性はゼロです。

それなら同じサイトにカスタム投稿タイプを作って英語版とすればいいのでは?と思いましたが、これも根本解決にはならない。特にSEOという観点では「このページの言語は英語ですよ~」としないと本文にいくら英語を使っても無駄になるようです。

意味がないからやめるか・・・でさらにいろいろ調べたら、プラグインで何とか実現できそうな予感。しかも日本の方が作ったプラグインだからより安心です。

ここからはサイトを多言語化するプラグインの導入・設定とその他気になる事柄について書いていきます。

おすすめプラグイン 【Bogo】を使う

どこかで見覚えのある上のプラグイン公式配布サイトの画像、そうです、【Bogo】は有名なコンタクトフォーム作成プラグイン【ContactForm7】と同じ作者が提供しているプラグインです。日本人の方なので説明などもすべて日本語、これは心強いです。他にも多言語化できるプラグインはいろいろありますが、やっぱり日本人ですから・・・でこのプラグインを使うことにします。

またプラグインかぁ~~と思われた方も多いと思います。でもこのプラグイン、多言語のサイトを同一サイト内で作るにあたっての問題を一気に解決できるんです。【ContactForm7】と同様に「こうなったら、ああなったら、こんなときは、あんなときは・・・」に対処してくれる本当に優れたプラグインなんです。自分で何とか・・と考えたらプラグイン1つでできるわけですから使わない手はない!!ということで、これを軸に作っていきます。

インストールは他と同様にプラグインの新規追加から【Bogo】で検索するか、上の画像リンクから公式ページへ行き、ダウンロードしたものをインストールするかの2つです。前者の方が圧倒的に簡単です。さすが日本の方のプラグイン、有効化すると日本語表記になっています。これはうれしい。

簡単に【Bogo】で何ができるのかを紹介すると

日本語の記事とは別言語の記事を複製する

複製された記事は日本語ページのスラグの前に英語なら「/en/」が付与されます
例:「http://〇〇.co.jp/post/」の場合、英語版は「http://〇〇.co.jp/en/post/」になる

作成した言語のページであることをhtmlへ書き出す

前述した「別言語のページで〇〇の言語のページですよ~」という記述に変更してくれます

投稿編集画面上で日本語記事と別言語の記事を移動できる

WordPressで作ったサイトを複数の言語で表示してみよう!サイト多言語化に挑戦|Knowledge Base


投稿編集画面にこういう項目が追加されます。ここで他の言語の記事を作成したり、切り替えたり、編集したりできます

管理画面の投稿一覧で日本語記事と別言語の記事を絞り込むことができる

WordPressで作ったサイトを複数の言語で表示してみよう!サイト多言語化に挑戦|Knowledge Base


画像のように管理画面の投稿一覧に項目が追加されます。日本語(通常)のものと、別言語のものとの絞り込みができます。

  1. [bogo]ショーコードを挿入して投稿本文内やウィジェットに別言語ページへの切り替えリンクが設置できる
  2. 日本語ページと別言語ページとでウィジェットの表示が切り替えられる

各ウィジェットに言語によって表示するかどうかの選択項目が加わります。これによって日本語のページでのみ表示したい場合や別の言語のページのみで表示したい場合など切り替えることができます

特に赤字の項目は管理上すごく便利な機能です。

ただ1点スラグについてはカテゴリーやタグ、カスタム投稿タイプなどで同じスラグを使っていたら不具合や競合が起こる可能性があるのでチェックが必要ですね。

QA AnalyticsQA Analytics

【Bogo】をサイトで使うにあたって気になることいろいろ

【Bogo】をカスタム投稿タイプで使えるようにする

当サイトはカスタム投稿タイプで記事のジャンル分けをし、ヘッダーの画像スライダーやウィジェットの内容を分けて表示しているため、多言語にするにしてもカスタム投稿タイプで使えなければ意味がありません。

【Bogo】は標準仕様では固定ページと通常の投稿のみに対応しているのでそのままでは使えず・・・で検索したら

WordPress Bogo をカスタム投稿タイプでも使う

に方法とコードが掲載されていました。いつも何かに困るとここのサイトで解決させていただいてるありがたいサイトです。

プラグインのソースを編集するとアップデート時に元に戻ってしまうので、テーマのfunctions.phpへ

/******* BOGOプラグインをカスタム投稿タイプにも対応させる *******/
function my_localizable_post_types( $localizable ) {
    $args = array(
        'public'   => true,
        '_builtin' => false
    );
    $custom_post_types = get_post_types( $args );
    return array_merge( $localizable, $custom_post_types );
}
add_filter( 'bogo_localizable_post_types', 'my_localizable_post_types', 10, 1 );

を追記して終了、無事問題解決しました。

検索エンジン向けのサイトマップはどうなる?

せっかくコンテンツ作るんだからきちんとインデックスされるようにしたい、そのためには「sitemap.xml」に追加されていることが登録への近道です。それでは【Bogo】で作った別言語の記事はどうなっているのかを検証しました。

当サイトで使っているのは

でも書いている「XML Sitemap & Google News feeds」プラグイン。早速確認してみたところ、残念ながら英語版ページはサイトマップに含まれていませんでした。この状態でインデックスされるのかはしばらく様子を見るしかなさそうです。ひとまず少しでも認識してもらえるよう言語切り替え用のショートカットは本文内に埋め込んでおいた方がよさそうです。

別言語のページへ非表示で日本語を入れられないか

【Bogo】を使うことで投稿編集画面から日本語の記事と別言語の記事をクリック一つで移動できるようになります。しかし、いくら移動が簡単にできてもよほどその言語に堪能でなければ編集するときに「この部分の記述は・・・????」となってしまいますよね?

こんな時はCSSで【display:none】にすればいいのでは?と思うかもしれませんが、実はこの方法だとソース上には記述があるのに目に見えないようにする、いわゆるブラインドテキストになってしまうのです。googleではブラインドテキスト(わざと非表示にしたり、文字色を背景色と同じにして見えなくする)があまりにも多いとseoスパムと判断されてしまうこともありますから気を付けたいところですね。

また別のCSSで【visibility:hidden】にする方法もありますが、divクラスなどで設定した場合にはその部分が空白になってしまう(日本語の部分の表示は真っ白の空白として表示される)のでこちらもあまりよくありません。

そこで登場するのがまたまたプラグイン。プラグイン名はそのまま「Hide This」です。


このプラグインは本文などで編集画面上のみ見えるようにしたい部分を[hide]~[/hide]で囲むだけの簡単操作です。もちろん【display:none】での非表示のようにhtmlソース上に出てしまうこともなければ、【visibility:hidden】のように余計な空白ができてしまうこともないので簡単便利です。

これを

でクイックタグにしておけばボタン1つで非表示にしたい文章が設定できるので、非表示の日本語の下に表示する別言語の文章という形を簡単に作ることができます。

肝心の別言語に翻訳した記事をどう作る?

最初に考えておくべきことが最後になってしまいました。読んで理解できることと書くことは全く別次元の話です。私も海外サイトの文章を読んだりしますからある程度読むことはできます。でも書くことは・・・、根本的問題ですね、もっと早く気づくべきでした(笑)。

本格的な翻訳済みサイトを作るのならもちろん有料の翻訳ソフトなりツールなりが必要になります。でも日本語で作っているサイトのエッセンスとして別言語のページを作りたいわけですから限りなくゼロ投資でやりたいところ。

そこで登場するのがネットの翻訳ツール。「翻訳」というキーワードで検索すればたくさん出てきますね。これを利用するわけです。日本語から英語などへ文章の変換が即座にできるのですからこれを使わない手はないということです。

もちろん語学の勉強になるわけですから1つ1つの文章を翻訳してはチェック・・・を繰り返していくのです。習うより慣れろ!の精神です。いつかすらすらと別の言語で記事が書けるようになれたら・・・が夢です。

新着記事や関連記事などの表示(テーマでの動作)

当サイトで使用している【Simplicity2】テーマでの結果ですので他のテーマでは別にカスタマイズが必要かもしれません。

新着記事については英語版は新しく公開された英語の記事の一覧が表示され、日本語の記事ではきちんと日本語の一覧が表示されました。

関連記事は同一カテゴリーの記事をランダムに抽出する仕様になっていますので、新たに「 English translation articles 」という英訳記事を意味するカテゴリーを追加して登録することで表示されるようになりました。

トップページにはブログ様の一覧をそのまま使っているので日本語と英語の記事が混在して表示されるのかな?と思いましたが、英語版ではURL「/en」が付いた英語記事のみの一覧が表示されました。動作としてはサブディレクトリに新しく英語サイトができたようなもの?と考えればいいようです。

最後に

どうでしたか?参考になりましたか?【Bogo】を軸に別言語のコンテンツを付加する方法をいろいろと考察しながら書いてみました。

途中で誤って「公開」ボタンを押してしまい、完全中途半端の記事を見られた方もいたと思います、スミマセン・・・。また、今後使っていくうちにいろいろと問題&解決を追記していこうと思ってますのでブックマークなどしてまた見ていただけたらうれしいです。

なお、今回のコンテンツ追加がSEO的にどんな影響を及ぼすかが未知数(というかちょっと怖い)なのでひとまず簡単な数件の記事だけ英語版を作って様子を見ることにしました。アクセス状況など結果はまた追記予定です。

逆に「こんな方法もあるよ!!」とコメントなどでアドバイスいただけたら幸いです。

8月17日追記 【Bogo】プラグインは案外動作が重いかも・・・

何件かこの方法で英語の記事を作ってみました。フロントエンド(閲覧画面)側は問題ありませんでしたが、その頃から?だんだんと管理画面側の表示が重くなって、投稿一覧などを開くと次のアクションができるまでにタイムラグが生じるようになりました。

??としたのは【Bogo】が原因なのかどうか特定できないから。P3というプラグインを使うとサイト内でどのプラグインにどの程度の負荷がかかっているのかが分かるので、それを使って計ったらという結果のためです。

出ている症状としては、投稿一覧画面やプラグインの管理画面、特に遅いのがウィジェットの設定画面の順。一覧が開いてからしばらくするとスクロールが効くようになって編集などのボタンも反応し始めるという感じです。極端に遅いウィジェットの設定画面については分単位で時間がかかる感じです(一瞬フリーズしたかと思う位の長さです)。

恐らく何かのスクリプトと衝突しているのでは?という感じがするのですがエンジニアでないため不明です。

ただ【Bogo】の影響で速度低下が起こるなら【Bogo】で作成した英語ページの速度も極端に遅くなるはずですし、プラグインを停止すれば解消できるはずなのにそうでもない状況。何とも言えないのでしばらく英語記事の追加はしないようにして様子見です。