web-dev-qa-db-ja.com

カスタムテーマを翻訳可能にする

私は私自身のテーマを作成しました、今私はそれを翻訳可能にしたいです。

私は二つのファイルを作りました:

theme.pot

msgid "know_more"
msgstr "Vuoi saperne di più?"

it_IT.po

msgid "know_more"
msgstr "Vuoi saperne di più?"

それから私は書いたインデックステーマファイルで:

<h2><?php _e('know_more',''); ?></h2>

しかし、私が実行したときにちょうど表示されます:know_more

2
WalterV

それを正しく行うには、有効な.moファイルを生成してテーマのfunctions.phpにテキストドメインをロードする必要があります。

function wpse222346_localize_theme() {

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

}

add_action( 'after_setup_theme', 'wpse222346_localize_theme' );

Load_theme_textdomain関数の詳細については、WordPress Codexを確認してください。 https://codex.wordpress.org/Function_Reference/load_theme_textdomain

次に、テーマのテキストドメインを使って翻訳可能な文字列を呼び出します。

<h2><?php _e( 'know_more', 'your_theme_domain' ); ?></h2>

また、POTファイルの作成を自動化するためのツールを使用することを強くお勧めします。保守性がずっと簡単になります。 Poedit 、いくつかのオンラインジェネレータ、 makepot.php および LocoTranslate と呼ばれるWordPressダッシュボードからそれを実行するための非常に素晴らしいプラグインなど、多くのオプションがあります。それらのほとんどは.POファイルと.MOファイルの作成にも役立つでしょう。

3
Luis Sanz