Drupal 8のお問い合わせフォーム( 'あなたのメールアドレス')のラベルを変更しようとしています。ラベルは/core/modules/contact/src/MessageForm.phpに定義されていますが、明らかにコアでこれを変更したくない。
$form['mail'] = array(
'#type' => 'email',
'#title' => $this->t('Your email address'),
'#required' => TRUE,
);
Drupal 7私は常に string overrides を使用しましたが、Drupal 8の場合、モジュールはまだ使用できません。文字列をオーバーライドする方法Drupal 8?
最も簡単な方法は、タイトルをオーバーライドするカスタムモジュール内にhook_form_alterを実装することです。
カスタムモジュールの作成方法に関する情報。
次のように、settings.php
の文字列をいつでもオーバーライドできます。
$settings['locale_custom_strings_en'][''] = array(
'Related entities for @group' => 'Add Content to group @group',
);
en
をde
または任意の2文字の言語コードに変更できます。
注意:文字列全体が単独で存在する必要があります。たとえば、上記の文字列オーバーライドは、次のようにグループモジュールコントローラに存在していました。
return $this->t('Related entities for @group', ['@group' => $group->label()]);
これは機能しません:
$settings['locale_custom_strings_en'][''] = array(
'Related entities for ' => 'Add Content to ',
);
したがって、質問にリストされている例では、次のように使用できます。
$settings['locale_custom_strings_en'][''] = array(
'Your email address' => 'Your email ID',
);