web-dev-qa-db-ja.com

テーマを翻訳した(翻訳が表示されない)

私はあなたのウェブサイトを翻訳するのに最適であるものについて多くを読みました(私の場合フランス語と英語)

私は2つのサイトを作成したマルチサイトをセットアップしました。1つはフランス語mywebsite.com/frで、もう1つは英語mywebsite.com/en

私は今、私のテーマを翻訳する過程にあります(デフォルトではフランス語で)。これを私のテーマのfunction.phpに追加しました。

load_theme_textdomain('INTERluminaires', get_template_directory() . '/languages');

それからいくつかのテキストを翻訳できるように私のテンプレートファイルを修正しました

<?php _e("Design et conseils", "INTERluminaires"); ?>

poeditでpoとmoファイルを作成したら、すべてうまくいきます。

私のテーマフォルダ/言語にそれらのファイルをアップロードしました

それらのファイルはen_CA.poとen_CA.moという名前です(私はINTERLuminaires-en_ca.poとmoを試してみました)

一般設定でテーマの言語を変更してウェブサイトを更新すると、何も翻訳されません。

何がここで間違っている可能性がありますか?

ところで私は何の問題もなくインストールしたプラグインを翻訳することに成功しました。

1

あなたは不完全なコードを持っています。あなたはあなたのテーマのテキストドメインを登録しますが、実際にあなたの翻訳ファイルを load するようにWordPressに伝えないでください。

これに:

load_theme_textdomain('INTERluminaires', get_template_directory() . '/languages');

これを追加:

$locale = get_locale();
$locale_file = get_template_directory() . "/languages/$locale.php";
if ( is_readable( $locale_file ) ) {
    require_once( $locale_file );
}

あるいは、まとめて(そしてコールバックで適切にラップされて):

<?php
function wpse49326_translate_theme() {
    // Load Theme textdomain
    load_theme_textdomain('INTERluminaires', get_template_directory() . '/languages');

    // Include Theme text translation file
    $locale = get_locale();
    $locale_file = get_template_directory() . "/languages/$locale.php";
    if ( is_readable( $locale_file ) ) {
        require_once( $locale_file );
    }
}
add_action( 'after_setup_theme', 'wpse49326_translate_theme' );
?>
3
Chip Bennett