WordPress で構築したサイトのサイト名とキャッチフレーズを多言語化する方法です。
Bogo プラグインを導入して有効化していることが前提となります。
Bogo は WordPress サイトを手軽に多言語化できるプラグインです。
詳しくは以下の記事でご紹介しています。
この記事では日本語と英語という 2ヶ国語のマルチリンガル サイトを例にして、サイト名とキャッチフレーズを多言語化します。
日本語サイトではサイト名「デザイン ハック アンド スラッシュ」、キャッチフレーズ「きっと役立つ情報を わかりやすく記事にしよう」が表示され、英語サイトではサイト名「Design Hack and Slash」、キャッチフレーズ「Hopefully, there are some good ideas for you.」が表示される、という具合です。
尚、ご紹介する方法は、日本語や英語に限らず、他の言語でも同様に使えます。
メリット
この記事で説明する方法のメリットは、他のプラグインとの相性が良い、他のプラグインに悪影響を与えにくいことだと思います。
特に、サイト名やキャッチフレーズは、html ソースの head タグ内、title タグや meta タグ(name=”description”)に組み込まれるため、多くの場合、SEO プラグインに多言語化が反映されないと使いものになりません。
そのあたりも抜かりなく対応できます。
例えば html ソースの head タグは以下の通りになります。
日本語トップページの html ソース(抜粋)
<html lang="ja" prefix="og: http://ogp.me/ns#"> <head> <title>Design Hack and Slash | きっと役立つ情報を わかりやすく記事にしよう</title> <meta name="description" content="きっと役立つ情報を わかりやすく記事にしよう"/> ... </head>
英語トップページの html ソース(抜粋)
<html lang="en-US" prefix="og: http://ogp.me/ns#"> <head> <title>Design Hack and Slash | Hopefully, there are some good ideas for you.</title> <meta name="description" content="Hopefully, there are some good ideas for you."/> ... </head>
Bogo 及び WordPress SEO(by Yoast)プラグインを使わせていただき実現しています。
手順の概要
手順は大きく分けて 3ステップです。
- サイト名とキャッチフレーズを出力する関数をフックして翻訳処理を差し込む
- テーマをカスタマイズして多言語に対応できる準備を整える
- 言語ファイルに翻訳メッセージを追加する
サイト名とキャッチフレーズを出力する関数をフックして翻訳処理を差し込む
使用しているテーマの functions.php に以下のコードを追加してください。
4行目の「yourtheme」部分は、使用しているテーマのテキスト ドメイン(多くの場合 テーマ名と同じ)を指定します。分からない場合は、次のステップで調べる方法を記載していますので あとで書き換えてください。
サイト名(Site Title)
add_filter( 'option_blogname', 'tr_option_blogname' ); function tr_option_blogname( $blogname ) { return __($blogname, 'yourtheme'); }
キャッチフレーズ(Tagline)
add_filter( 'option_blogdescription', 'tr_option_blogdescription' ); function tr_option_blogdescription( $blogdescription ) { return __($blogdescription, 'yourtheme'); }
プチ解説
一般的に、サイト名の表示には bloginfo(‘name’)、キャッチフレーズの表示には bloginfo(‘description’) が使われます。bloginfo() 関数のソースを追うと、最終的には get_option() 関数に行き着きます。get_option() 関数に用意されているフィルターフックを使っています。
__() は、このあと作成する言語ファイルを参照して翻訳テキストを取得する関数です。
逆にいうと、テーマに直接サイト名やキャッチフレーズを書き込んでカスタマイズしている部分は多言語化できません。bloginfo() 関数を使うように書き換えてください。
テーマをカスタマイズして多言語に対応できる準備を整える
この手順は、お使いのテーマによっては既に設定済みだったり、目的のファイルが用意されているかも知れません。海外テーマであれば大抵は準備済みです。よく Translation Ready なんて表現されています。その場合はスキップして進んでください。
国産テーマの多くは Not Ready (未整備)だと思いますので、最初から順に実施してください。
尚、ここでは日本語対応を準備する手順を示します。他の言語の場合は適宜 読み替えてくださいませ。
テーマの functions.php に言語ファイル読み込みを設定
使用しているテーマの functions.php に以下の記述を探して、無ければ先頭に追加してください。
load_theme_textdomain( 'yourtheme', get_template_directory() . '/languages' );
「yourtheme」部分は多くの場合テーマの名前です。
さきほどの関数に翻訳処理を差し込む手順の「yourtheme」部分をここの表記に合わせてください。
もし異なる場合には戻って書き換えてください。
テーマ フォルダ配下に languages フォルダを作成
wp-content/themes/yourtheme フォルダの中に、languages という名前でフォルダを作成してください。
languages フォルダ内に pot ファイルを作成
wp-content/themes/yourtheme/languages フォルダの中に、yourtheme.pot というファイルを作成してください。
中身は空っぽで構わないので、フォルダ内を右クリックし、[新規作成]-[テキスト ドキュメント]をクリック、できたファイルの名前を変更すれば OK です。
もし ja.po ファイルが存在する場合は、念のためバックアップを取っておいてください。
pot ファイルの編集
さきほどの pot ファイル、もしくは既存の ja.po ファイルをお使いのエディタで開いてください。
末尾に以下の記述を追加し、保存して閉じてください。
#: Site Title
msgid "Your Site Title"
msgstr ""
#: Site Description
msgid "Your Site Description (Tagline)"
msgstr ""
msgid 直後のダブルクォーテション(” “)内は、あなたのサイト名(英語)とキャッチフレーズ(英語)に書き換えてください。あなたのサイトを英語表示する必要がなくても、ここは英語にします。
(WordPress のネイティブ言語が英語だからです)
以上でテーマの多言語化準備は完了です。
言語ファイルに翻訳メッセージを追加する
WordPress では、言語に対応した言語ファイルを用意することで、比較的簡単に多言語化できます。
これまでの手順で作成した pot ファイルを元に、翻訳する言語に応じた po ファイルと mo ファイルを作成します。
日本語の場合は ja.po と ja.mo になります。
(尚、WordPress が読み込むのは mo ファイルのみです)
Poedit というアプリを使います。
リンク先のページからダウンロードしてインストールしてください。
Poedit の使い方
Poedit を起動するとメニュー画面が表示されます。(バージョン 1.6.6 の場合)
既存の ja.po ファイルがある場合
「翻訳を編集」をクリックし、ja.po ファイルを指定します。
pot ファイルを元に新規作成する場合
「翻訳プロジェクトを新規作成する」をクリックし、pot ファイルを指定します。
言語を選択するダイアログが表示されますので「日本語」を選択します。
「日本語(日本)」を選ばないようにご注意ください。
翻訳メッセージの追加
開いたファイルを末尾までスクロールすると、さきほど追加したサイト名(英語)とキャッチフレーズ(英語)があります。
それぞれクリックして選択し、下の「翻訳:」欄に日本語メッセージを入力します。
追加できたら Poedit の「保存」ボタンをクリックします。
ファイル名「ja.po」で保存してください。
languages フォルダ内を確認すると、ja.po と ja.mo が作成されていると思います。
サイト名とキャッチフレーズを英語に変更する
最後に、サイト名とキャッチフレーズを英語に変更します。
WordPress 管理画面の[設定]-[一般]を開いて、サイト名とキャッチフレーズをさきほどの英語に変更してください。一字でも間違えると翻訳されないため、コピー&ペーストなどで確実に。
これですべての作業は完了です。お疲れさまでした。
日本語版サイトと英語版サイトを確認してください。
サイト名とキャッチフレーズが対応した言語で表示されると思います!
注意点
bogo で管理画面を日本語にして、[設定]-[一般]を開いてみてください。
サイト名とキャッチフレーズが日本語で表示されると思いますが、ここで日本語訳を変更することはできません。
設定されているサイト名やキャッチフレーズは あくまでも英語です。get_option() 関数をフックして翻訳処理を差し込んだために日本語訳が表示されるのです。サイト名やキャッチフレーズを変更する場合には以下の手順で実施ください。
日本語訳を変えたい場合
- Poedit で ja.po ファイルを開いて該当部分を変更して保存し直す
英語を変えたい場合
- 管理画面の一般設定で該当部分を変更
- ja.po ファイルをエディタで開いて該当する msgid を変更
- Poedit で ja.po ファイルを開いて保存し直す(mo ファイルを更新するため)
応用
言語ファイルを使うこの方法で、実はサイト上のすべてのメッセージを多言語化することができます。
- 多言語化したいメッセージを英語にして <?php _e(‘message’, ‘yourtheme‘) ?> のように _e() 関数で囲む
- ja.po ファイルに msgid “message” と msgstr “” を追加する
- Poedit で翻訳メッセージを追加して ja.mo ファイルを更新する
尚、WordPress 本体のメッセージは、wp-content/languages フォルダ内の ja.po ファイルを Poedit で編集することで変更できます。試す前にオリジナル ファイルのバックアップをお忘れなく。
このあとの関連サイトもご参考に、この記事があなたのサイトをより良くする手助けとなれば幸いです。
Pingback: WordPressで多言語サイトプラグインBogoを試してみる - ワードプレスのホームページ制作|新宿区のフリーランスWeb制作 ピクセルデザイン
Pingback: Bogoを使ってWordPressを他言語化 | 株式会社クオックス | QOX Inc.
Pingback: これ便利!ワードプレスサイトを多言語化するプラグイン「Bogo」使い方まとめ
Pingback: bogoを用いてwordpressを多言語化してみた! | | 暇で貧乏でインキャな日本人の挑戦!
Pingback: これ便利!ワードプレスサイトを多言語化するプラグイン「Bogo」使い方まとめ