多言語化プラグイン「qTranslate」

ブログを多言語化しようと思い、プラグイン「qTranslate」を導入してみました。

General Settingsで使用する言語を選択する

★使用する言語を選択
管理画面「設定」⇒「Language」の下段に一覧があります。「Action」が"Disable"になっている言語が現在有効化されている言語ですので適宜切替えます。

そして、「Default Language / Order」でデフォルトの言語を選んで下さい。

Advanced Settings 部分

日付の表示がおかしくなる

ページにアクセスすると日付表示が「%Y年%m月%d日」(例)のようになったら、"Use strftime instead of date."を設定して下さい。表示が戻ります。
設定箇所:Date / Time Conversion

言語別のURL

言語別のURL構造を設定できます。

  • Use Query Mode パラメータ形式→「http://mysite/parmalink/?lang=en」
  • Use Pre-Path Mode サブディレクトリ形式→「http://mysite/en/parmalink/」
  • Use Pre-Domain Mode サブドメイン形式→「http://en.mysite/parmalink/」

設定箇所:URL Modification Mode

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

たとえば、特定の日本語のページから英語ページへ移動するためのボタンが用意できます。「外観」→「ウィジェット」から[qTranslate Language Chooser]を追加することで表示できます。
このブログでは、検索からの流入があればうれしいだけなので、言語切替のボタンやリンクは設置しませんでした。もし、表示しない場合は、スタイルも削除してもいいと思います。
削除方法
functions.phpに追加することで削除できます。

remove_action( 'wp_head',             'qtrans_header');

head内の以下のCSSが削除できます。

<style type="text/css" media="screen">
    .qtrans_flag span { display:none }
    .qtrans_flag { height:12px; width:18px; display:block }
    .qtrans_flag_and_text { padding-left:20px }
    .qtrans_flag_ja { .... }
</style>

翻訳した記事が用意されていない場合にインデックスされないようにする

これは、日本語の記事があるけど英語の記事がない場合には、英語の方をインデックスさせないようにするためのコードです。子テーマのfunctions.phpに追加して下さい。

add_action( 'wp_head', 'add_noindexnofollow');
function add_noindexnofollow(){
    global $post;
    if( preg_match( '/Sorry, this entry is only available in/', $post->post_content) ==1) {
        echo '<meta content="noindex,follow" name="robots">';
    }
}

Noticeメッセージ対応

デバッグログをONの場合、以下のようなメッセージがひたすら出力されます。
対応方法は、下のリンクを参照。

PHP Notice:  Undefined index: language in /wp-content/plugins/qtranslate/qtranslate_hooks.php on line 

Still Errors in debug mode

アップグレード対応

3.9版がリリースするまでの対応

// エラーメッセージ
PHP Catchable fatal error:  Object of class WP_Post could not be converted to string in /home/breakabroad/www/kwski/blog/wp-content/plugins/qtranslate/qtranslate_core.php on line 455
// qtranslate_core.php:455
// $before.を除去する
//	return $before.strftime($format, $date).$after; // 変更前
	return strftime($format, $date).$after;

WordPress 3.9 and qTranslate issue

  • このエントリーをはてなブックマークに追加

関連記事

titleタグ(wp_title) カスタマイズ

SEO対策を行う際に、titleタグは重要な要素だと言われています。 「サイトのタイトル」、「キャッチフレーズ」(site_description)、「カテゴリー名」など色々と組み合わせてみることが

no image

「固定ページ」ウィジェット カスタマイズ

「固定ページ」ウィジェットは、そのままではありますが、固定ページの一覧をウィジェットに表示してくれます。 カスタマイズは、管理画面よりいくつかできるようです。 目次 特定の(固定)ページ

ブルー・オレンジ・ピンクと選べるテーマ「Bouquet」をカスタマイズ

プレビューはこちら ダウンロード 目次 ヘッダー画像の高さを変更 アイキャッチをアップロード h1タグがやたら多いので最適化 画像をレスポンシブ対応 フォント「Sorts Mill

画像マウスオーバーでキャプションを表示

メディアをアップロードした際に、「キャプション」項目にテキストを設定された画像を挿入した場合はキャプションショートコードが生成され、ページ内の各画像下にその設定したテキストが表示されます。 今回

Twenty Fourteen 「投稿者」を非表示

TwentyFourteenでは、シングルページやアーカイブページにそれぞれ「投稿者」が表示されます。投稿者を非表示にさせる方法を投稿してみます。表示させる場合は、以下を参考に表示名などを変更してみて

no image

アップグレードで「更新を展開しています... 」のままになった場合の対処のひとつ

久々に出会ったような気がするのでメモです。 ローカルのテスト環境でWordPressを3.7から3.8にアップグレードしようとしたところ、「更新を展開しています... 」で止まってしまい更新処理がす

no image

Pocketボタンの設置

日本のブログでは、4大SNS(Twitter, はてな, Facebook, Google+)に加えて最近では、Pocket(以前は、Read it later)もよく見かけますよね。追加してみました

Tumblrの投稿をウィジェットに表示できる「Tumblr Widget」

このブログでは、サイドバーウィジェットに「Tumblr」に投稿したブックマーク一覧を表示させています。プラグインは「Tumblr Widget」を使用しています。ダウンロード 「This plugi

Twenty Twelve 投稿者情報を表示/非表示に

TwentyTwelveでは、投稿ページごとに投稿者の情報を掲載することができます。他のテーマでも同様だと思います。こんな感じです。ここでは、掲載と削除の方法について記載します。 表示方法 「

条件を付けて訪問時に開くポップアップを実装できる「WordPress Popup」

「WordPress Popup」は、ユーザの訪問時にポップアップを開くように実装できるプラグインです。それぞれ条件によって開くかどうかを設定することができます。 ダウンロード / サンプル イン

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

    PAGE TOP ↑