emuramemo

製品レビュー、HTML/CSS、webデザイン、音楽、その他いろいろ

WordPressの多言語化プラグイン qtranslateX

WordPressの多言語化の方法は何種類かありますが、一番とっつきやすそうな「qtranslateX」を使ってみることにしました。

 

管理画面のプラグインから「qtranslateX」を検索、インストールし、有効化。

ほぼこれだけで完了。

 

f:id:emj1025:20160204001912g:plain

投稿ページや固定ページが見事に多言語化され、それぞれの言語で入力できるようになります。

 

カスタムフィールドも対応

「qtranslateX」をインストールすると「ACF qtranslate」もインストールするように促されるのでこちらも有効化。これでカスタムフィールドも対応できました。「qtranslate」時代はカスタムフィールドの対応が出来なかったようです。

※カスタムフィールドで追加した項目は言語切替が出来なかったので、「テキスト(日本語)」「テキスト(英語)」のようにフィールドを増やしCSSなどで表示・非表示を切り分けて対応…するしかないでしょうか?

 

qtranslateX、qtranslate、mqtranslate?

「qtranslateX」は現在更新停止されている「qtranslate」や「mqtranslate」の最新版のようなものらしいです。ですので、記述は同じものが使えたりします。
似たようなものが沢山出てきて混乱しましたが、今のところ「qtranslateX」を使えば問題なさそうです。

 

qtranslateXのコード各種

英語のみ出力

もしくは

普段WordPress使わないのですが、どちらがよく使われる記述方法なのでしょうか。

 

日本語と英語でソースを分岐

 

こんな記述方法も

 

言語切り換えボタンの表示

調べて以下を書いたらソースが表示されなくなってしまいました。
<?php echo qtrans_generateLanguageSelectCode('text'); ?>

 

上記は「qtranslate」時代のもので、「qtranslateX」では以下の記述になります。

 

微妙にコードが異なる部分もあるようです。ボタンをデザインする必要がある場合はCSSで調整します。

 

URLの設定

「qtranslateX」の設定はWPの管理画面の「設定」→「言語」から可能です。

 

URL 変更モード

言語ごとのURLの表示を変更することができます。

事前パスモード(/en/のような形)にしようと思ってもラジオボタンがなぜか選択できません。


WPの「設定」→「パーマリンクの設定」で「基本」にチェックがはいっていると事前パスモードが選択不可になるようです。


事前パスモードを使いたい場合はパーマリンクの設定を「基本」以外のどれかにして設定を保存します。

 

パーマリンクを投稿名ではなくIDにしたい

「qtranslateX」を導入すると投稿記事のパーマリンクに投稿名が入るようになります。
管理画面の「パーマリンクの設定」を変更しても投稿名は絶対に出てしまうようです。

 

これをIDに変えたい場合は「Slug or PostID」というプラグインを使用します。

投稿記事のURLにスラッグかPostIDを使うプラグイン – うにまくら.jp

 

「Slug or PostID」を有効化した後から投稿した記事のパーマリンクがちゃんとIDになりました。有効化以前の投稿記事のパーマリンクは変わらなかったので自力での変更が必要?

 

投稿一覧で言語を未入力の記事の表示・非表示

言語を未入力の場合でも投稿一覧に表示する

デフォルトではこの設定になっています。

例えば、日本語だけ登録して英語を未入力で記事を公開すると英語ページの投稿一覧では

(日本語)投稿名」

の形で表示されます。

記事詳細に行くと本文に「Sorry, this entry is only available in Japanese.」と表示され、日本語の記事ページへもリンクできる親切設計です。

逆に英語のみを登録した記事を日本語ページでみると「申し訳ありません、このコンテンツはただ今 アメリカ英語 のみです。」と出てきます。

 

言語を未入力の記事は投稿一覧に表示しない

記事を追加するたびに毎度翻訳できないし、英語ページで「(日本語)投稿名」ばかり出られても困る場合は、その言語を登録していない記事を非表示にすることも可能です。

f:id:emj1025:20160205155140j:plain

「設定」→「言語」→「General」タブの「Untranslated Content」

から「選択した言語によって利用できないコンテンツを隠す 」にチェックを入れ変更を保存。

これで英語ページでは英語を登録された記事のみ、日本語ページでは日本語を登録された記事のみが一覧で表示されます。

 

日本語しか登録していない記事から言語切り換えボタンで英語ページに行くと404ページに飛ばされます。ユーザビリティ的にはデフォルト設定のほうがいいかなという気もしますが案件によって使い分けるのがいいでしょう。

 

参考:プラグインを使ってWordPressサイトを超簡単に多言語化する | RYUS blog

 

問題点

「qtranslate」はお手軽なのですが非常に重いプラグインのようです。

WordPressの多言語化プラグインをqTranslateからWPMLに変更しました | Webクリエイターボックス

 

「qtranslate」はアクセスの多いサイトの運用には向いていないようですが「qtranslateX」で改善されているのかどうか。上記は2013年の記事なので改善されているとよいなぁ。ともあれ、無料プラグインは急に更新停止されることもあるので、頼れるプログラマがいないと使うのは少し怖い気も。影響範囲が大きそうなプラグインなので他とぶつからないか考慮して導入する必要もあります。

 

WordPressの多言語化 参考リンク

多言語化の方法と、それぞれのメリット・デメリットなどわかりやすいです。

 

www.slideshare.net

 

WordPress の多言語化で考えることとプラグインの比較 – Shinichi Nishikawa's

 

 

WordPress 仕事の現場でサッと使える! デザイン教科書 (Webデザイナー養成講座)

WordPress 仕事の現場でサッと使える! デザイン教科書 (Webデザイナー養成講座)

 

 

emuramemo(c) All Rights Reserved.