2012/03/18先日、制作している企画サイトを二ヶ国語対応したので、このサイトも二ヶ国語対応に挑戦してみました。このサイトはWordpressで制作しているので、qTranslateプラグインを導入して二ヶ国語に対応させます。記事が長くなりましたので目次をつけます。qTranslateダウンロードページやインストール画面の設定言語は英語ですが、そこまで難しい英語は使われていないので大丈夫だと思います。(Web制作の知識があれば理解できるレベルです)詳しいインストール方法はこちらの記事で解説されています。他の言語を選択した場合のURLのパターンが選べます。URL例:http://en.yoursite.com/※独自ドメインを自分で取得していない場合は、サブドメインモードは選べません。サブドメインモードを有効にするには、あらかじめ「http://en.yoursite.com/」のドメインを有効にしておく必要があります。ドメインのディレクトリは「http://yoursite.com/」で設定している場所と同じにします。設定が有効になるまで1時間ほどかかるのでのんびり待ちましょう。このサイトではWP標準ギャラリーを使っていたため、サブドメインモードに設定しました。記事に英語版を追加する以下のように英語版を追加します。カテゴリーやメニューに英語名を追加するカテゴリー・タグカテゴリーやタグの編集画面を開くと英語の入力フォームができているので入力し保存するだけです。サイトタイトルやウィジェットサイトタイトルやウィジェットは以下のサイトに記載されているクイックタグで英語名を追加できます。文字を記入しているテンプレート(ヘッダー・フッター等)に切り替え用の英語を追記するphpテンプレート内のテキストは以下のタグでくくることで英語名を追加できます。Title<!:>タグで囲まれた箇所のみが切り替わるので、テキストボックス内のテキストの切り替えにはこちらを使用した方がよいです。添付画像(ギャラリーに使用している画像)に切り替え用の英語を追加する3.4.で使用したタグを使って英語名を追加していきます。現在切り替え方法を模索中です。言語切り替えリンクを追加する」へ進んでください。)6.のステップは以下の方向けです。・Wordpress標準装備のギャラリー機能を使っている。・かつ、サムネイル画像をメディア(画像)へパーマリンクでリンクしている。(サムネイルをクリックすると画像固有のページが開く)5.までは手間はかかりますがスムーズに設定できたかと思います。最大の難関はここでした。このページはWordpress標準装備のギャラリー機能を使っています。※2015年10月現在、標準ギャラリーは使用していません。このギャラリー機能は便利ですが、今回は問題点がありました。qTranslateがギャラリーに対応していないため、英語用の画像ページのURLに自動でリンクを張ってくれないのです。(※今は対応をしたため、英語の画像ページにリンクできています)たとえば「http://en.carlmary.jp/pictures/y2012/japanese_boy」このギャラリーページに飛びたいのに「http://carlmary.jp/pictures/y2012/japanese_boy」にリンクが貼られてしまいます。英語サイトから来たのに、サムネイルをクリックすると画像ページがすべて日本語になってしまうのはがっかりです。いうと、ギャラリーに限らずWordpressのリンクは基本的に絶対パス(http://~から始まるパス)を設定するようになっているからなんです。(どんなにディレクトリが代わっても正しいリンク先にアクセスできるようにですね)普段はありがたい設定ですが、英語版と日本語版でURLを使い分けている場合には不便です。そこで、ギャラリー内の絶対パスをルートパスに書き換えてしまいます。書き換え方法は二種類ありました。リンクパス、イメージパスの出力について[A]の方法はもともとの書き出し方を変えてしまうのスマートです。wp-includesディレクトリはWordpressをバージョンアップすると書き換わってしまうので、リスクがあります。(バージョンアップした時にもきちんと対応すればよいのですが)[B]の方法はテンプレートファイルを弄るだけなので、Wordpressのバージョンアップによって書き換えられる心配はありません。※ただし、テンプレートを他の作者が作成したものを借りている場合は、バージョンアップによって書き換えられてしまいます。今回のようにたくさんカスタマイズを加える場合は、自分用のカスタムテンプレートセットとしてあらかじめ保存してから作業しまましょう。私は[B]の方法で書き換えを行いました。[B]の参考サイトに書いてある方法で、header.php、function.php、footer.phpに追記してしまうと、2つの問題がおきます。・記事を追加・編集することができない。・記事の本文中に自分のサイトのドメインを書いている場合、そこも消されてしまう。/」になってしまいました...。ギャラリーページのテンプレートの編集ギャラリーページ以外はqTranslateがちゃんとリンクを変換してくれていますから、影響範囲はギャラリーページだけでよいのです。追記しなければいけない書き換えタグをギャラリーページの付近にだけ設定すれば、他の記事でURLが消えてしまうことも、記事の追加編集ができないということもなくなるはずです。このサイトではギャラリーページも他の更新記事などと同じくデフォルトのpage.phpテンプレートを使っていましたが、専用のテンプレートを作ることにしました。いっても内容はpage.phpと同じでよいので、page.phpを別名で保存します。私は「gallery-page.php」という名前をつけて保存し、現在のテーマファイルフォルダ内にアップロードしました。このままでは固有ページのテンプレートを選択しようとしても、gallery-page.phpが候補に表示されません。日本語版にあるとおり、名前をつけてあげましょう。これでテンプレートが選べるようになりました。?>の後ろに以下を追加します。?>の前に以下を追加します。次はfunctions.phpの編集です。どこかに以下を追記します。$result;}http://yoursite.comのところをあなたのWPのURLにしてください。最後にスラッシュはつけません。これでギャラリーページのリンクがルートパスになりました。ためしに言語を切り替えたあとサムネイルをクリックしてみてください。画像固有ページに、前後の画像へのリンクなどを貼っている場合、これも日本語用のページへのリンクになってしまっているかと思います。6.1.と同じ作業を「attachment.php」に対して行います。これは画像固有ページ用のテンプレートです。ここまでを行うと、画像固有ページの前後の画像のリンクがそれぞれの言語版へのリンクになっているはずです。言語切り替えリンクを追加する切り替えリンクは全ての動作が上手くいったと思ったら、最後に追加しましょう。qTranslateをインストールした時点で、ウィジェットに言語切り替えリンクが用意されています。これを設置してみましょう。以下のコードを切り替えリンクをおきたい箇所のテンプレートに直接書くことでも追加できます。?>bothの部分は以下の3種類に変えられます。WP標準ギャラリーのリンクを英語用ドメインへのリンクに変更する」のみなのに大変長くなりました...もし同じ壁にぶつかった方の助けになれば幸いです。私の残りの課題は、この時点で翻訳が完了していない大量の記事やギャラリーの内容を片付けることです。)イラストを2枚追加しました。)楽曲用イラストを3枚追加しました。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。当サイトの画像の無断利用を禁止します。