Translatable strings not appearing in the translation interface I've recently started working on a custom D8 module. I've used $this-&gt;t() (or t()) wherever I had to output a text so that this text would then be translatable.

My module works correctly, but when I visit Drupal's "User interface translation" (admin/config/regional/translate) page, those strings are nowhere to be found.

Two examples:

_1. in the mymodule.module file, I have implemented the hook_help() function to display a help page in the admin:

&lt;?php

/**
 * Implements hook_help().
 */
function mymodule_help($route_name, RouteMatchInterface $route_match) {
  switch ($route_name) {
    case 'help.page.mymodule':
      return t('&lt;p&gt;Here is the (much longer) help text.&lt;/p&gt;');
  }
}

?&gt;


The help page is visible in the admin and shows the text; however this text cannot be found in the "User interface translation" page.

_2. the module has a configuration page in the admin, with several fields and a description for each field. This configuration form is defined in src/Form/mymoduleForm.php:

&lt;?php

namespace Drupal\mymodule\Form;

use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;

class mymoduleForm extends ConfigFormBase {

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    // Form constructor.
    $form = parent::buildForm($form, $form_state);
    $config = $this-&gt;config('mymodule.settings');
    $form['field1'] = array(
      '#type' =&gt; 'textfield',
      '#title' =&gt; $this-&gt;t('The first field:'),
      '#default_value' =&gt; $config-&gt;get('mymodule.field1'),
      '#description' =&gt; $this-&gt;t('&lt;p&gt;Description for this field.&lt;/p&gt;'),
      '#required' =&gt; TRUE,
    );
    // and so on
  }
  // other code
}
?&gt;


Here again, the configuration page works, all the fields are visible, but none of the strings in the code above appear on the "User interface translation" page (neither the title of the string, nor the description).

The same goes for strings declared in the *.yml files: they're supposed to be picked up automatically by Drupal, but I don't seen any of them in the interface... (e.g. the module description in the *.info.yml file.)

What am I missing?
As suggested by @prkos in the comments, visiting the pages (both public and admin) in the target language caused the corresponding strings to be discovered by Drupal and therefore become available in the interface translation. For each string, you have to visit the corresponding page (or block).

If you have custom error or confirmation messages, you apparently have to trigger them before they appear too. (? not entirely sure)

(I thought the "updating translations" progress bar that you see during the module installation was precisely Drupal listing all translations available in the module, but apparently that's not the case.)