私のフィールドの説明では、より多くのドキュメントにリンクしたいと思います。私がこのようにすると:
$form['field_name'] = array (
'#description' => t('Here are some words about') . ' <a href="http://mysite.com/blah">' . t('stuff') . '</a> ' . t('and things and whatnot'),
);
できます。次のようになります。
stuff についてのいくつかの単語と、物事とは何ですか。
私がそれを適切な方法で行うと、次のようになります:
$form['field_name'] = array (
'#description' => t('Here are some words about @stuff and things and whatnot', array('@stuff' => l('stuff', 'blah')),
);
次に、HTMLが生成され、次のように生のテキストとして説明に出力されます。
ここでは、<a href="http://mysite.com/blah">もの</a>とそのこと、そして何についてではないかについていくつか説明します。
「正しい」方法が機能しないのはなぜですか?
まず、ここにいくつかの方法があります[〜#〜]ではありません[〜#〜]リンクをt()
関数に渡します。
// DO NOT DO THESE THINGS
$BAD_EXTERNAL_LINK = t('Look at Drupal documentation at !handbook.', array('!handbook' => '<a href="http://drupal.org/handbooks">'. t('the Drupal Handbooks') .'</a>'));
$ANOTHER_BAD_EXTERNAL_LINK = t('Look at Drupal documentation at <a href="http://drupal.org/handbooks">the Drupal Handbooks</a>.');
$BAD_INTERNAL_LINK = t('To get an overview of your administration options, go to !administer in the main menu.', array('!administer' => l(t('the Administer screen'), 'admin'));
そして、これらは、そのタイプの引数をtoに渡す方法として受け入れられています:
// Do this instead.
$external_link = t('Look at Drupal documentation at <a href="@drupal-handbook">the Drupal Handbooks</a>.', array('@drupal-handbook' => 'http://drupal.org/handbooks'));
$internal_link = t('To get an overview of your administration options, go to <a href="@administer-page">the Administer screen</a> in the main menu.', array('@administer-page' => url('admin')));
これはすべて 動的リンクまたは静的リンク、および翻訳可能な文字列のHTML から来ています。