FAQ
アクティベートした時、重大エラーが発生しました。
WordPressは問題が起こる場合に備えて、問題の内容をお知らせるデバグ機能を用意しております。 WPMLデバグページをご覧になり、いろいろなデバグのアクティベート方法やバグレポートの送信先をお読みください。
Read more »タグ: デバグ, トラブルシューティング
ストリング翻訳が表示されない理由は何ですか?
ストリング翻訳が作動するには、あなたのテーマ(およびプラグイン)は翻訳呼び出しを通してテキストを提出しなくてはなりません。 テキストをGetText 呼び出しにラップさせ、WPMLの翻訳させる方法については、よくある質問(FAQ)をご覧ください。
Read more »WPMLの使用に制限はありますか?
WPMLはGPLとしてライセンスされているため、コードを自由に使用できます。 使用するサイト数、使用用途に制限はありませんし、コードも改変できます。
Read more »タグ: ライセンス
インストール後、コンテンツが紛失する
WPMLをアクティベートする時、すべての既存コンテンツに言語属性を追加します。 アクティベーションプロセスが中断されると、言語がないためコンテンツの一部が失われることがあります。全コンテンツを再表示するには、よくある質問(FAQ)で初期化プロセスの再試行に関する方法をご覧ください。
Read more »
ストリング翻訳を利用するには
ウィジェットが翻訳可能のストリングを含む場合、WPMLで翻訳を編集できます。しかし翻訳がサイトに表示される保証はありません。 方法1) WordPressフィルタを使う WPMLはスタンダードのWordPressフィルタを使い、フィルタされた内容を翻訳します。 スタンダートのWordPressウィジェットはすべてデフォルトでフィルタを適用します。 自分のウィジェットを作る時、同じことが起こるように確認する必要があります。 例えばフィルタをウィジェットのタイトルに適用するには、下記を使います: $wtitle = apply_filters(‘widget_title’, $wtitle); WPMLはapply_filters呼び出しに接続し、このストリングをストリング翻訳ページに通して翻訳可能にします。 方法 2) 手動でストリングを登録する もう一つの方法として、WPMLのストリング翻訳機能を手動で使用できます。 ストリングを翻訳に登録し、表示された時翻訳を調べます。 ストリングを登録するには、icl_register_string呼び出しを使用します: icl_register_string($context, $name, $value) $context – プラグイン名、人間が読めるフォーマット $name – ユーザー(または翻訳者)が何を翻訳するか理解できるようなストリング名 $value – 翻訳が必要なストリング テキストを表示する時、翻訳と一緒に表示されるようにicl_tを使います。 icl_t($context, $name, $value) 方法 3)ハードコード化されたストリング用にGetTextを使う 前記の二方法は動的に生成されたテキストに適しています。 これらのテキストはWordPress Admin パネルを通してユーザーが編集できます。 あなたがPHPでハードコード化されたスタティックテキストをお持ちなら、GetText呼び出しを以下のように使用します: <?php _(‘Hello world’,'cool_theme’); ?> WPMLはGetText呼び出しに結びつき、これらのテキストをストリング翻訳インターフェースに通して翻訳可能にします。 この方法は編集できない、またテーマに固定されたテキストにのみ有効であることにご注意ください。
Read more »
???????と表示されるテキスト
英語ではない文字にクエッションマークが表示されるのは、ほとんどの場合、お客様のデータベースの文字コードがUTF-8ではないからです。 PHPMyAdminをご使用なら、お客様の wp_posts 表の構造は下記のように見えるでしょう: collationに違う値が見える場合、文字コードが間違っています。ブラウザは英語ではない文字を表示する方法が分からず、その結果テキストが正しく表示されません。 これを直すのは簡単です。 あなたのデータを調べるALTERステートメントを実行し、現在の文字コードをUTF-8に変更するだけです。これを行う簡単な方法にWP データベースを UTF-8 に変換プラグインの使用があります。 このプラグインは以下のSQLステートメントを実行します: ALTER TABLE $table DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ALTER TABLE $table CHANGE $field_name $field_name $field_type CHARACTER SET utf8 COLLATE utf8_bin ご想像の通り、これを実行する前にデータベースをバックアップすることをお勧めします。 最後に将来UTF-8を敬遠しないようにしてください。wp-config.phpファイルを編集し、charsetの定義を正しく設定してください。 以下のように見えるはずです。 /** Database Charset to use in creating database tables. */ define(‘DB_CHARSET’, ‘utf8′);
Read more »違うドメインにある言語のサーバー設定
WPMLは個別のドメインやサブドメインからの異なる言語に使用できます。 これを利用するにはあなたのWebサーバーに設定が必要です。 あなたが自分のサーバーへの設定方法を理解できるように、まず作動の理論から説明します。 リクエストが来ると以下が起こります: DNSがブラウザにサイトのホスト先を伝えます。 ウェブサーバーがリクエストを受け取り、どの仮想ホストが答えるか確認します。 仮想ホストがWordPressとWPMLを実行します。WPMLがWordPressに各言語にリターンするページを指示します。 違うドメインで異なる言語が運用されるには、全言語が同じWordPressインストレーションを指定しなくてはなりません。 これを行うにはDSN設定とApacheコンフィギュレーションが必要です。 一つのドメインからもう一つのドメインにリダイレクトするように.htaccessファイルを編集するのは間違いです。 WordPressインストールは一つしかないため、リダイレクト先はありません。 1) DNS設定 異なる言語にすべてのドメインとサブドメインを登録する必要があります。 方法はホストのコントロールパネルにもよりますが、結果はすべて同じです。 すべてのドメインが同じウェブサーバーに行かなくてはなりません。 2) ウェブサーバーの設定 この例ではApacheを使い、コンフィギュレーションファイルがどのように見えるか説明します。 あなたのサーバーはApacheコンフィギュレーションファイルにグラフィックコントロールを追加するコントロールパネルをApache上部に搭載しているかもしれません。 コントロールパネルを使って下記を実行する方法が分からない場合、これをコピーしてホスティングプロバイダーに聞くとよいでしょう。 一番簡単な方法はすべてのドメインに対し、一つのVirtualHostエントリーを持ち、ServerAlias指示を使用し、Apacheに同じ仮想ホストの違うドメインに答えさせることです。 例: <VirtualHost *> DocumentRoot /your_wp_install_directory/wordpress ServerName www.english-domain.com ServerAlias www.french-domain.fr … your other stuff here … </VirtualHost> これはApacheに www.english-domain.com や www.french-domain.frからのリクエストに答えるWordPressインストールが一つあることを教えます。これらが全く違うドメインまたはサブドメインであるかは重要ではありません。 仮想ホストファイル内で(あなたが直接アクセスを持たないため)ServerAliasの設定方法が分からない場合、2つのVirtualHostを設定し、両方ともServerNameの値は違うけれど同じDocumentRoot (WordPressがインストールされたパス)を指すように設定することができます。 このセットアップはWPMLなしでもテストできます(お勧めします)。 両方のドメインへ行き、あなたのWordPressサイトが見えるかどうか確認します。 注:共有ホスティングプロバイダーの多くはApacheコンフィギュレーションファイルを直接編集することを禁じます。 その代わり、同一のWordPressインストレーションを指すcPanel-アドオンを作ることができます。 3) WPMLに異なるドメインに異なる言語を使用していることを教える この設定が作動する場合、WPMLにこれを言語の識別に利用するよう指示します。 WPML->言語へ行きます。「言語毎に異なるドメイン」を選択します。WPMLは各言語用のドメインを要求します。入力し、確認して保存します。 言語フィールドにWPMLが設定するデフォルト値はロケール名を持つサブドメインです。実際のドメイン名で上書きすることもできます。
Read more »MySQL クエリーを最適化する方法
翻訳ページの表示が元のページより遅い場合、できることが幾つかあります。 まず問題の原因を調べます。 DBアクセスとPHP処理を調べるためにデバグクエリプラグインを使います。 予期しない多数のクエリを発見した場合、これらの潜在的な発生源を調べます。 ストリング翻訳トラッキング WPML を使うと翻訳可能なストリングがどこから来たか見ることができます。 これはパワフルな機能ですが、多くのリソースが必要です。 WPML->ストリング翻訳 へ行き、 "サイトのどこにストリングが現れるか追跡する”がチェックされていないことを確認します。 この機能はあなたのサイトの各GetTextストリングに対し、SQLクエリを発生します。 これらのクエリはあなたがAdminとしてログインした時にだけ起こります。 自動ID調整 WPMLは自動的にハードコード化されたIDを現在の言語に変換します。 これは WPML->言語->テーマをマルチリンガルで使うを通して管理します。 ”マルチリンガル機能用にIDを調整する”が選択されている場合、WPMLはテーマが特定のIDを有するアイテムを読み込もうとする場合、常にSQLクエリを実行します。 これが必要な時もありますが、自分で最適化することもできます。 このオプションを無効にし、 icl_object_id と WPMLの APIからその他の機能を使って、テーマをマルチリンガルにすることができます。
Read more »
言語ディレクトリのサーバー設定
ディレクトリ内の言語を有効にした後、WPMLに異なる仮想ディレクトリのように見えるものの中で翻訳を行うように指示します。例えば、 www.example.com www.example.com/es/ www.example.com/ja/ これを行うためには、Apacheのリライトモジュールを有効にし、サイトに「特殊」なパーマリンク構造を使用する必要があります(例、デフォルトのパーマリンクとは違うもの)。 その後 WPML->言語へ行き、「ディレクトリ内の違う言語」を選びます。 よくある間違え 以下を行わないようにしてください。 1) あなたのサイトに本当のディレクトリを作成する あなたのWordPressに実際のディレクトリを作ったり、WordPressを数回インストールする必要はありません。 これを行うとディレクトリ内の言語は作動しなくなります。 これらのディレクトリは仮想です。 実際のパスとして存在しません。 2) 他のディレクトリにリダイレクトする 実際のディレクトリの作成と同様、.htaccess ファイルを編集し、リダイレクトルールを追加する人もいます。 これは止めて下さい。 WPMLは自らのリダイレクトルールを動的に作成します。
Read more »タグ: 設定
wp_options内のエントリー翻訳
多くのテーマやプラグインはテキストをwp_options表に保存します。 WPMLはストリング翻訳モジュールを通してこれらを翻訳可能にします。 まず最後から始めましょう。 あなたのコードに以下のようなものがあるとします: <?php echo(get_option(“footer_text”)) ?> テキストを翻訳するには、コード内は一切編集する必要はありません。 WPMLの(多言語CMS パッケージに含まれる)ストリング翻訳モジュールを有効にしてください。 wp_options エントリーを翻訳用に選択する WPMLにストリングを翻訳する必要があることを伝えます。 言語コンフィギュレーションファイルを作成し、あなたのテーマ/プラグイン ルートディレクトリに保存します。 このファイルはどの wp_optionsエントリー、 カスタムタイプ、 カスタムフィールド が多言語なのか教えてくれます。 翻訳 翻訳するストリングを選択したら、 WPML -> ストリング翻訳へ行きます。コンテキストフィルタを使えば重要なストリングだけを特定できます。 翻訳した各ストリングの横の翻訳完了ボックスをクリックすることを確認してください。完了した翻訳だけが公開ページに表示されます。 元のテキストが変更されると、翻訳が自動的に未完了に戻ることにご注意ください。ストリング翻訳画面の表示フィルタを使えば、翻訳が必要なストリングを選択することができます。
Read more »