我想不要在t()drupal消息中使用该变量

时间:2015-05-25 10:57:48

标签: php drupal drupal-7

$loglink = l("blabla", 'admin/config/blabla');
drupal_set_message(t("You have to complete the fields in $loglink first."), 'error');

如何编写该消息,但不能在t()中使用变量$loglink。有数组吗?

2 个答案:

答案 0 :(得分:1)

为什么不把你分配给变量的内容代替变量?

drupal_set_message(t("You have to complete the fields in " . l("blabla", 'admin/config/blabla') . " first."), 'error');

或者,使用占位符

drupal_set_message(t("You have to complete the fields in !link first.", array('!link' => l("blabla", 'admin/config/blabla'), 'error');

由于您使用的是 t(),为什么不通过 t()运行链接文字?而不是混合单引号和双引号:

l(t('blabla'), 'admin/config/blabla')

顺便提一下,你会注意到我用过了!对于占位符的开头,可以使用以下内容:

!变量,表示文本将按原样插入。

@ @variable,这意味着文本应该通过check_plain()运行。

%变量,这意味着文本应该通过check_plain()运行,并且还会突出显示为强调的主题_placeholder()。

无论如何,我认为你应该这样做:

drupal_set_message(t('You have to complete the fields in !link first.', array('!link' => l(t('blabla'), 'admin/config/blabla'), 'error');

答案 1 :(得分:0)

在可翻译内容中使用链接的首选方法是

t('Have a look at the <a href="@drupal-handbook">Drupal Handbooks</a>.',
  array(
    '@drupal-handbook' => 'http://drupal.org/handbooks',
  )
)

请参阅Dynamic or static links and HTML in translatable strings