Why the label of "subject' field in comment-form not be translated and how can I do the translation in a better way? In the baseFieldDefinitions of Comment Entity, the subject field is set to be translatable, but I can not find such a translation in User interface translation(admin/config/regional/translate) that can make it take effect when comment on a content.

$fields['subject'] = BaseFieldDefinition::create('string')
  -&gt;setLabel(t('Subject'))
  -&gt;setTranslatable(TRUE)
  -&gt;setSetting('max_length', 64)
  -&gt;setDisplayOptions('form', [
    'type' =&gt; 'string_textfield',
    // Default comment body field has weight 20.
    'weight' =&gt; 10,
  ])
  -&gt;setDisplayConfigurable('form', TRUE);


I now use the code to translate it in my module:

function mymodule_preprocess_form_element(&amp;$variables) {

  if (\Drupal::routeMatch()-&gt;getRouteName() == 'entity.node.canonical') {
    if($variables['label']['#title'] == 'Subject') $variables['label']['#title'] = t('Subject');
  }
}


I don't think it's a good way since the translation is already defined.(And I've defined Hook_Comment_presave, this two function seems will effect each other,which I don’t want it happen either.)

Is there a better way to do that?
I finally found a solution to enforce translation of 'Subject' label in hook_form_alter which can make code more clear:

function mymodule_form_alter(&amp;$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {

  if($form_id == 'comment_comment_forum_form') {
    $form['subject']['widget'][0]['value']['#title'] = t('Subject');

  }

}