サポート » 使い方全般 » テーマオプションの配列に入れたテキストが翻訳されません

  • いつもお世話になっています。

    作成したテーマを他言語化させているのですが、
    テーマオプションの配列に入れたテキストが翻訳されないまま表示されます。

    配列に入れてるテキストは、設定項目のラジオボタンのラベルなどで、
    配列に入れていないテキストはきちんと翻訳して表示しています。

    load_theme_textdomain()をadd_action( ‘after_setup_theme’)にフックしているのを、
    試しにload_theme_textdomain()をフックせずにfunctions.phpの最初に記述したら、
    配列に入れたテキストも翻訳されたので、
    theme-options.phpとja.po(add_action( ‘after_setup_theme’))が読み込まれるタイミングの問題かと思います。

    参考:初期化に関連するアクションのおさらい
    http://elearn.jp/wpman/column/c20120807_01.html

    該当部分のコード(省略しています)

    
    require_once( get_stylesheet_directory() . '/admin/theme-options.php' );
    
    function chocolat_setup() {
      load_theme_textdomain( 'chocolat', get_template_directory() . '/languages' );
      // 中略
    }
    add_action( 'after_setup_theme', 'chocolat_setup' );
    

    テーマオプションの配列

    
    $contact_options = array(
      'contact_mail' => array(
        'value'    => 'contact_mail',
        'id'       => 'mail',
        'label'    => __( 'Use e-mail address', 'chocolat' ),
      ),
      'contact_page' => array(
        'value'    => 'contact_page',
        'id'       => 'page',
        'label'    => __( 'Use the contact page', 'chocolat' ),
      ),
    );
    

    labelの部分が翻訳されないまま表示されます。

    テーマレビューの関係上、load_theme_textdomain()はadd_action( ‘after_setup_theme’)にフックして使用しないといけないのですが、
    どうしたらテーマオプションの配列に入れたテキストが翻訳表示されるようになるでしょうか?

    もし何かおわかりになる方がおられましたら、アドバイスをよろしくお願いします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター jim912

    (@jim912)

    Twenty Elevenの処理は、以下のようになっています。

    */
    function twentyeleven_setup() {
    
    	/* Make Twenty Eleven available for translation.
    	 * Translations can be added to the /languages/ directory.
    	 * If you're building a theme based on Twenty Eleven, use a find and replace
    	 * to change 'twentyeleven' to the name of your theme in all the template files.
    	 */
    	load_theme_textdomain( 'twentyeleven', get_template_directory() . '/languages' );
    
    	// This theme styles the visual editor with editor-style.css to match the theme style.
    	add_editor_style();
    
    	// Load up our theme options page and related code.
    	require( get_template_directory() . '/inc/theme-options.php' );

    こんにちは

    試していませんが、

    function chocolat_setup() {
      global $contact_options;
      load_theme_textdomain( 'chocolat', get_template_directory() . '/languages' );
      // 中略
    }

    では、どうですか?

    トピック投稿者 Mizue Imai (Mignon Style)

    (@mignonstyle)

    jim912さま
    nobitaさま

    ご回答ありがとうございます。
    jim912さまのコードのように記述したら、翻訳表示されるようになりました!

    最初、テーマオプションの配列の表示でエラーが出たので、
    Twenty Elevenをダウンロードして、
    functions.phpとtheme-options.phpのコードを参考に修正したら、
    きちんと翻訳表示されるようになりました。
    作成したテーマオプションのコードが問題だったようです。

    ありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「テーマオプションの配列に入れたテキストが翻訳されません」には新たに返信することはできません。