テーマテキストドメインとは何ですか?


19

どのWordPressテーマでもこの機能を使用していることがわかりましたが、この場合の目的と目的はわかりません'themify'か?Themifyの例を次に示しfunctions.phpます。

1)。

load_theme_textdomain( 'themify', TEMPLATEPATH.'/languages' );

2)。

if (function_exists('register_nav_menus')) {
        register_nav_menus( array(
            'main-nav' => __( 'Main Navigation', 'themify' ),
            'footer-nav' => __( 'Footer Navigation', 'themify' ),
        ) );
    }

そして、tempateファイルで:

3)。 <?php _e( 'Sorry, nothing found.', 'themify' ); ?>

などなど!私の疑問は何の'themify'略ですか?彼らの目的は何ですか?変更または削除できますか?場所は何'themify'ですか?

回答:


23

この場合、'themify'はテーマに定義されたテキストドメイン、テーマを翻訳可能するために使用されます。(コーデックスリファレンス:)load_theme_textdomain()

テーマを翻訳対応にするには、いくつかの手順が必要です。

  1. テーマのtextdomainを定義します:

    load_theme_textdomain( 'themify', TEMPLATEPATH.'/languages' );
  2. テンプレートで翻訳可能な文字列を定義します

    :これは、いくつかの変換機能のいずれかを使用して行われます__()(のための返された文字列を)_e()(のためにエコーされた文字列)、および_x()/ _ex()(のためのgettextのコンテキスト文字列)。他にもありますが、あなたはアイデアを得る...

    などの静的テキスト文字列は、など<p>Hello world!</p>の適切な翻訳関数にラップされて、翻訳<p><?php _e( 'Hello World!', 'themify' ); ?></p>できるようになります。

  3. 言語ファイルの編集方法に関する .mo / .poファイル参照を生成します


@SokVanrithy、ファイルの処理方法についてはこのQ&Aを参照しください.mo/.po。(チップ、別の推奨事項があるかもしれないので、私はあなたの回答にリンクを追加していません:)
brasofilo

1
@brasofiloは必要に応じて自由に追加できます。質問どおりの質問の範囲外ですが、まだ有用な情報だと思います。
チップベネット

なぜ変更するのですか?テーマをフォークしていますか?
チップベネット

はい、私はそれらを取り除きたいです。Webdesigndepotからテーマをダウンロードしましたbase theme。著者に、元のコードを変更できるかどうか尋ねました。カスタムテーマの構造を持ちたい人のための基本空白テーマであるため、許可されています。また、読者に提供するのは、著者からのプレゼントです。私の疑問は上記のようなものです!
ソックヴァンリシー

1
もちろん、それらを取り除くことができます。しかし、彼らを去るだけでも害はありません。textdomain分岐したテーマを参照するために、別の文字列に変更することもできます。開発のベストプラクティスは、私が助言するので、テーマは、翻訳することが含まに対してそれらを完全に除去することができます。そうは言って、もし望むなら、確かにできる
チップベネット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.