web-dev-qa-db-ja.com

Printf(__())はどのように機能しますか。作業?

今日はWordPressとテンプレートの理解を深めるためにテーマを通して取り組んでいます。私はこれを発見しました:

<?php 
printf( 
    __('Designed by %s', 'Anyword'), 
    '<a href="http://www.example.com">Blub</a>'
); 
?>

"Blubがリンクされている場所"と表示されていますが、__()とはどういう意味ですか、またはなぜ文字列の挿入があるのでしょうか。 Anywordとは何ですか?

誰かが私のためにこの行を正確に説明できますか?

10
Denny Mueller

これは テキスト翻訳 に使われます。

2番目の引数は、翻訳を取得するための 一種の名前空間 (ここではドメインと呼ばれます)です(例えば、専用ファイルまたはその他のものから)。

そのため、ここではAnywordをテンプレートの背後にいる人、会社、あるいはドメイン/名前空間にすることができます。

編集:

Wordpressのドキュメントには、どのように プラグインを国際化 するかについてのさらなる説明があります。


これをプラグインコードに追加して、言語ファイルが確実にロードされるようにします。

load_plugin_textdomain('your-unique-name', false, basename( dirname( __FILE__ ) ) . '/languages' );

文字列を取得するには、単に__('String name','your-unique-name');を使って翻訳を返すか、_e('String name','your-unique-name');を使って翻訳をエコーし​​ます。翻訳はあなたのプラグインの/ languagesフォルダに入ります。


あなたのプラグイン/テーマの場合、your-unique-nameAnywordのようです。

7
j0k