diff --git a/core/modules/views/src/Plugin/views/HandlerBase.php b/core/modules/views/src/Plugin/views/HandlerBase.php
index 7b5fe3a..c6ae4b7 100644
--- a/core/modules/views/src/Plugin/views/HandlerBase.php
+++ b/core/modules/views/src/Plugin/views/HandlerBase.php
@@ -185,7 +185,7 @@ public function adminLabel($short = FALSE) {
       return $this->options['admin_label'];
     }
     $title = ($short && isset($this->definition['title short'])) ? $this->definition['title short'] : $this->definition['title'];
-    return $this->t('!group: !title', array('!group' => $this->definition['group'], '!title' => $title));
+    return $this->t('@group: @title', array('@group' => $this->definition['group'], '@title' => $title));
   }
 
   /**
diff --git a/core/modules/views/src/Plugin/views/PluginBase.php b/core/modules/views/src/Plugin/views/PluginBase.php
index ecb6a62..449cc23 100644
--- a/core/modules/views/src/Plugin/views/PluginBase.php
+++ b/core/modules/views/src/Plugin/views/PluginBase.php
@@ -585,7 +585,7 @@ protected function listLanguages($flags = LanguageInterface::STATE_ALL, array $c
           $name = $types_info[$id]['name'];
           // Surround IDs by '***LANGUAGE_...***', to avoid query collisions.
           $id = '***LANGUAGE_' . $id . '***';
-          $list[$id] = $this->t('!type language selected for page', array('!type' => $name));
+          $list[$id] = $this->t('@type language selected for page', array('@type' => $name));
         }
       }
       if (!empty($current_values)) {
@@ -595,7 +595,7 @@ protected function listLanguages($flags = LanguageInterface::STATE_ALL, array $c
           // add that option too, so it is not lost. If not among the current
           // values, skip displaying it to avoid user confusion.
           if (isset($type['name']) && !isset($list[$id]) && in_array($id, $current_values)) {
-            $list[$id] = $this->t('!type language selected for page', array('!type' => $type['name']));
+            $list[$id] = $this->t('@type language selected for page', array('@type' => $type['name']));
           }
         }
       }
diff --git a/core/modules/views/src/Plugin/views/area/HTTPStatusCode.php b/core/modules/views/src/Plugin/views/area/HTTPStatusCode.php
index 036e369..cadb796 100644
--- a/core/modules/views/src/Plugin/views/area/HTTPStatusCode.php
+++ b/core/modules/views/src/Plugin/views/area/HTTPStatusCode.php
@@ -48,7 +48,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
 
     // Add the HTTP status code, so it's easier for people to find it.
     array_walk($options, function($title, $code) use(&$options) {
-      $options[$code] = $this->t('@code (!title)', array('@code' => $code, '!title' => $title));
+      $options[$code] = $this->t('@code (@title)', array('@code' => $code, '@title' => $title));
     });
 
     $form['status_code'] = array(
diff --git a/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php b/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
index 76ae608..980da73 100644
--- a/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
+++ b/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
@@ -1544,7 +1544,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         if ($access_plugin->usesOptions()) {
           $form['markup'] = array(
             '#prefix' => '<div class="js-form-item form-item description">',
-            '#markup' => $this->t('You may also adjust the !settings for the currently selected access restriction.', array('!settings' => $this->optionLink(t('settings'), 'access_options'))),
+            '#markup' => $this->t('You may also adjust the @settings for the currently selected access restriction.', array('@settings' => $this->optionLink($this->t('settings'), 'access_options'))),
             '#suffix' => '</div>',
           );
         }
@@ -1582,7 +1582,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
           $form['markup'] = array(
             '#prefix' => '<div class="js-form-item form-item description">',
             '#suffix' => '</div>',
-            '#markup' => $this->t('You may also adjust the !settings for the currently selected cache mechanism.', array('!settings' => $this->optionLink(t('settings'), 'cache_options'))),
+            '#markup' => $this->t('You may also adjust the @settings for the currently selected cache mechanism.', array('@settings' => $this->optionLink($this->t('settings'), 'cache_options'))),
           );
         }
         break;
@@ -1654,7 +1654,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
           $form['markup'] = array(
             '#prefix' => '<div class="js-form-item form-item description">',
             '#suffix' => '</div>',
-            '#markup' => $this->t('You may also adjust the !settings for the currently selected style.', array('!settings' => $this->optionLink(t('settings'), 'style_options'))),
+            '#markup' => $this->t('You may also adjust the @settings for the currently selected style.', array('@settings' => $this->optionLink($this->t('settings'), 'style_options'))),
           );
         }
 
@@ -1702,7 +1702,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
           $form['markup'] = array(
             '#prefix' => '<div class="js-form-item form-item description">',
             '#suffix' => '</div>',
-            '#markup' => $this->t('You may also adjust the !settings for the currently selected row style.', array('!settings' => $this->optionLink(t('settings'), 'row_options'))),
+            '#markup' => $this->t('You may also adjust the @settings for the currently selected row style.', array('@settings' => $this->optionLink($this->t('settings'), 'row_options'))),
           );
         }
 
@@ -1803,7 +1803,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
           $form['markup'] = array(
             '#prefix' => '<div class="js-form-item form-item description">',
             '#suffix' => '</div>',
-            '#markup' => $this->t('You may also adjust the !settings for the currently selected style.', array('!settings' => $this->optionLink(t('settings'), 'exposed_form_options'))),
+            '#markup' => $this->t('You may also adjust the @settings for the currently selected style.', array('@settings' => $this->optionLink($this->t('settings'), 'exposed_form_options'))),
           );
         }
         break;
@@ -1839,7 +1839,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
           $form['markup'] = array(
             '#prefix' => '<div class="js-form-item form-item description">',
             '#suffix' => '</div>',
-            '#markup' => $this->t('You may also adjust the !settings for the currently selected pager.', array('!settings' => $this->optionLink(t('settings'), 'pager_options'))),
+            '#markup' => $this->t('You may also adjust the @settings for the currently selected pager.', array('@settings' => $this->optionLink($this->t('settings'), 'pager_options'))),
           );
         }
 
diff --git a/core/modules/views/src/Plugin/views/filter/Date.php b/core/modules/views/src/Plugin/views/filter/Date.php
index 60dd605..52dabbe 100644
--- a/core/modules/views/src/Plugin/views/filter/Date.php
+++ b/core/modules/views/src/Plugin/views/filter/Date.php
@@ -37,7 +37,7 @@ protected function valueForm(&$form, FormStateInterface $form_state) {
         '#title' => $this->t('Value type'),
         '#options' => array(
           'date' => $this->t('A date in any machine readable format. CCYY-MM-DD HH:MM:SS is preferred.'),
-          'offset' => $this->t('An offset from the current time such as "!example1" or "!example2"', array('!example1' => '+1 day', '!example2' => '-2 hours -30 minutes')),
+          'offset' => $this->t('An offset from the current time such as "@example1" or "@example2"', array('@example1' => '+1 day', '@example2' => '-2 hours -30 minutes')),
         ),
         '#default_value' => !empty($this->value['type']) ? $this->value['type'] : 'date',
       );
diff --git a/core/modules/views/src/Tests/FieldApiDataTest.php b/core/modules/views/src/Tests/FieldApiDataTest.php
index 96ff642..e6a6abc 100644
--- a/core/modules/views/src/Tests/FieldApiDataTest.php
+++ b/core/modules/views/src/Tests/FieldApiDataTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\views\Tests;
 
+use Drupal\field\Entity\FieldConfig;
 use Drupal\field\Tests\Views\FieldTestBase;
 
 /**
@@ -26,9 +27,20 @@ protected function setUp() {
       'field_name' => $field_names[0],
       'entity_type' => 'node',
       'bundle' => 'page',
+      'label' => 'The giraffe" label'
     );
     entity_create('field_config', $field)->save();
 
+    // Attach the same field to a different bundle with a different label.
+    $this->drupalCreateContentType(['type' => 'article']);
+    $field = FieldConfig::create([
+      'field_name' => $field_names[0],
+      'entity_type' => 'node',
+      'bundle' => 'article',
+      'label' => 'The giraffe2" label'
+    ]);
+    $field->save();
+
     // Now create some example nodes/users for the view result.
     for ($i = 0; $i < 5; $i++) {
       $edit = array(
@@ -86,6 +98,9 @@ function testViewsData() {
     $this->assertTrue($data[$current_table][$field_storage->getName()]['field']['click sortable'], 'String field is click sortable.');
     // Click sort should only be on the primary field.
     $this->assertTrue(empty($data[$revision_table][$field_storage->getName()]['field']['click sortable']), 'Non-primary fields are not click sortable');
+
+    $help = \Drupal::service('renderer')->renderPlain($data[$current_table][$field_storage->getName()]['help']);
+    $this->assertEqual(1, preg_match('/Appears in: .*page.*article.*\. Also known as: .*Content: The giraffe2&quot; label.*\./', $help), 'Help text has the expected format');
   }
 
 }
diff --git a/core/modules/views/views.api.php b/core/modules/views/views.api.php
index e88fbc7..50f470e 100644
--- a/core/modules/views/views.api.php
+++ b/core/modules/views/views.api.php
@@ -487,7 +487,7 @@ function hook_field_views_data(\Drupal\field\FieldStorageConfigInterface $field_
       'id' => 'standard',
       'base' => 'file_managed',
       'base field' => 'target_id',
-      'label' => t('image from !field_name', array('!field_name' => $field_storage->getName())),
+      'label' => t('image from @field_name', array('@field_name' => $field_storage->getName())),
     );
   }
 
@@ -531,7 +531,7 @@ function hook_field_views_data_alter(array &$data, \Drupal\field\FieldStorageCon
     'field field' => $field_name . '_target_id',
     'base' => $entity_type->getBaseTable(),
     'base field' => $entity_type->getKey('id'),
-    'label' => t('!field_name', array('!field_name' => $field_name)),
+    'label' => $field_name,
     'join_extra' => array(
       0 => array(
         'field' => 'deleted',
@@ -588,7 +588,7 @@ function hook_field_views_data_views_data_alter(array &$data, \Drupal\field\Fiel
     'field field' => $field_name . '_target_id',
     'base' => $entity_type->getBaseTable(),
     'base field' => $entity_type->getKey('id'),
-    'label' => t('!field_name', array('!field_name' => $field_name)),
+    'label' => $field_name,
     'join_extra' => array(
       0 => array(
         'field' => 'deleted',
diff --git a/core/modules/views/views.views.inc b/core/modules/views/views.views.inc
index 4f28122..742ce3e 100644
--- a/core/modules/views/views.views.inc
+++ b/core/modules/views/views.views.inc
@@ -5,6 +5,7 @@
  * Provide views data that isn't tied to any other module.
  */
 
+use Drupal\Component\Utility\Html;
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Entity\Sql\SqlContentEntityStorage;
@@ -418,7 +419,17 @@ function views_field_default_views_data(FieldStorageConfigInterface $field_stora
       'group' => $group,
       'title' => $label,
       'title short' => $label,
-      'help' =>  t('Appears in: @bundles.', array('@bundles' => implode(', ', $bundles_names))),
+      'help' => [
+        [
+          '#markup' => t('Appears in:'),
+          '#suffix' => ' ',
+        ],
+        [
+          '#theme' => 'item_list',
+          '#items' => $bundles_names,
+          '#context' => ['list_style' => 'comma-list'],
+        ]
+      ],
     );
 
     // Go through and create a list of aliases for all possible combinations of
@@ -449,7 +460,18 @@ function views_field_default_views_data(FieldStorageConfigInterface $field_stora
     }
     if ($aliases) {
       $data[$table_alias][$field_alias]['aliases'] = $aliases;
-      $data[$table_alias][$field_alias]['help'] .= ' ' . t('Also known as: !also.', array('!also' => implode(', ', $also_known)));
+      $data[$table_alias][$field_alias]['help'][] = [
+        '#prefix' => '. ',
+        '#markup' => t('Also known as:'),
+        '#suffix' => ' ',
+      ];
+      $data[$table_alias][$field_alias]['help'][] = [
+        '#theme' => 'item_list',
+        '#items' => $also_known,
+        '#context' => ['list_style' => 'comma-list'],
+        '#suffix' => '.',
+      ];
+
     }
 
     $keys = array_keys($field_columns);
@@ -497,12 +519,12 @@ function views_field_default_views_data(FieldStorageConfigInterface $field_stora
     }
 
     if (count($field_columns) == 1 || $column == 'value') {
-      $title = t('@label (!name)', array('@label' => $label, '!name' => $field_name));
+      $title = t('@label (@name)', array('@label' => $label, '@name' => $field_name));
       $title_short = $label;
     }
     else {
-      $title = t('@label (!name:!column)', array('@label' => $label, '!name' => $field_name, '!column' => $column));
-      $title_short = t('@label:!column', array('@label' => $label, '!column' => $column));
+      $title = t('@label (@name:@column)', array('@label' => $label, '@name' => $field_name, '@column' => $column));
+      $title_short = t('@label:@column', array('@label' => $label, '@column' => $column));
     }
 
     // Expose data for the property.
@@ -525,7 +547,17 @@ function views_field_default_views_data(FieldStorageConfigInterface $field_stora
         'group' => $group,
         'title' => $title,
         'title short' => $title_short,
-        'help' =>  t('Appears in: @bundles.', array('@bundles' => implode(', ', $bundles_names))),
+        'help' => [
+          [
+            '#markup' => t('Appears in:'),
+            '#suffix' => ' ',
+          ],
+          [
+            '#theme' => 'item_list',
+            '#context' => ['list_style' => 'comma-list'],
+            '#items' => $bundles_names,
+          ]
+        ],
       );
 
       // Go through and create a list of aliases for all possible combinations of
@@ -535,10 +567,10 @@ function views_field_default_views_data(FieldStorageConfigInterface $field_stora
       foreach ($all_labels as $label_name => $true) {
         if ($label != $label_name) {
           if (count($field_columns) == 1 || $column == 'value') {
-            $alias_title = t('@label (!name)', array('@label' => $label_name, '!name' => $field_name));
+            $alias_title = t('@label (@name)', array('@label' => $label_name, '@name' => $field_name));
           }
           else {
-            $alias_title = t('@label (!name:!column)', array('@label' => $label_name, '!name' => $field_name, '!column' => $column));
+            $alias_title = t('@label (@name:@column)', array('@label' => $label_name, '@name' => $field_name, '@column' => $column));
           }
           $aliases[] = array(
             'group' => $group_name,
@@ -550,9 +582,17 @@ function views_field_default_views_data(FieldStorageConfigInterface $field_stora
       }
       if ($aliases) {
         $data[$table_alias][$column_real_name]['aliases'] = $aliases;
-        $data[$table_alias][$column_real_name]['help'] .= ' ' . t('Also known as: !also.', array('!also' => implode(', ', $also_known)));
+        $data[$table_alias][$column_real_name]['help'][] = [
+          '#prefix' => ' ',
+          '#markup' => t('Also known as:'),
+          '#suffix' => ' ',
+        ];
+        $data[$table_alias][$column_real_name]['help'][] = [
+          '#theme' => 'item_list',
+          '#items' => $also_known,
+          '#context' => ['list_style' => 'comma-list'],
+        ];
       }
-
       $data[$table_alias][$column_real_name]['argument'] = array(
         'field' => $column_real_name,
         'table' => $table,
@@ -589,7 +629,7 @@ function views_field_default_views_data(FieldStorageConfigInterface $field_stora
 
       // Expose additional delta column for multiple value fields.
       if ($field_storage->isMultiple()) {
-        $title_delta = t('@label (!name:delta)', array('@label' => $label, '!name' => $field_name));
+        $title_delta = t('@label (@name:delta)', array('@label' => $label, '@name' => $field_name));
         $title_short_delta = t('@label:delta', array('@label' => $label));
 
         $data[$table_alias]['delta'] = array(
diff --git a/core/modules/views_ui/css/views_ui.admin.theme.css b/core/modules/views_ui/css/views_ui.admin.theme.css
index 6e7f1e0..5dc2e4d 100644
--- a/core/modules/views_ui/css/views_ui.admin.theme.css
+++ b/core/modules/views_ui/css/views_ui.admin.theme.css
@@ -512,6 +512,14 @@ td.group-title {
   margin-right: 0.2083em;
 }
 
+.views-ui-display-tab-setting > span {
+  margin-left: 0.5em; /* LTR */
+}
+[dir="rtl"] .views-ui-display-tab-setting > span {
+  margin-left: 0;
+  margin-right: 0.5em;
+}
+
 /** Applies an overridden(italics) font style to overridden buckets.
  * The better way to implement this would be to add the overridden class
  * to the bucket header when the bucket is overridden and style it as a
diff --git a/core/modules/views_ui/src/Form/Ajax/AddHandler.php b/core/modules/views_ui/src/Form/Ajax/AddHandler.php
index eef8f7d..56cb435 100644
--- a/core/modules/views_ui/src/Form/Ajax/AddHandler.php
+++ b/core/modules/views_ui/src/Form/Ajax/AddHandler.php
@@ -139,7 +139,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
         foreach ($group_options as $key => $option) {
           $form['options']['name'][$key] = array(
             '#type' => 'checkbox',
-            '#title' => $this->t('!group: !field', array('!group' => $option['group'], '!field' => $option['title'])),
+            '#title' => $this->t('@group: @field', array('@group' => $option['group'], '@field' => $option['title'])),
             '#description' => $option['help'],
             '#return_value' => $key,
             '#prefix' => "<div class='filterable-option'>",
diff --git a/core/modules/views_ui/src/Form/BreakLockForm.php b/core/modules/views_ui/src/Form/BreakLockForm.php
index 82f1f6f..89f0ce0 100644
--- a/core/modules/views_ui/src/Form/BreakLockForm.php
+++ b/core/modules/views_ui/src/Form/BreakLockForm.php
@@ -79,7 +79,7 @@ public function getDescription() {
       '#theme' => 'username',
       '#account' => $account,
     );
-    return $this->t('By breaking this lock, any unsaved changes made by !user will be lost.', array('!user' => drupal_render($username)));
+    return $this->t('By breaking this lock, any unsaved changes made by @user will be lost.', array('@user' => drupal_render($username)));
   }
 
   /**
diff --git a/core/modules/views_ui/src/ViewEditForm.php b/core/modules/views_ui/src/ViewEditForm.php
index 3b1d6af..fec9708 100644
--- a/core/modules/views_ui/src/ViewEditForm.php
+++ b/core/modules/views_ui/src/ViewEditForm.php
@@ -752,14 +752,14 @@ public function renderDisplayTop(ViewUI $view) {
     foreach (Views::fetchPluginNames('display', NULL, array($view->get('base_table'))) as $type => $label) {
       $element['add_display'][$type] = array(
         '#type' => 'submit',
-        '#value' => $this->t('Add !display', array('!display' => $label)),
+        '#value' => $this->t('Add @display', array('@display' => $label)),
         '#limit_validation_errors' => array(),
         '#submit' => array('::submitDisplayAdd', '::submitDelayDestination'),
         '#attributes' => array('class' => array('add-display')),
         // Allow JavaScript to remove the 'Add ' prefix from the button label when
         // placing the button in a "Add" dropdown menu.
         '#process' => array_merge(array('views_ui_form_button_was_clicked'), $this->elementInfo->getInfoProperty('submit', '#process', array())),
-        '#values' => array($this->t('Add !display', array('!display' => $label)), $label),
+        '#values' => array($this->t('Add @display', array('@display' => $label)), $label),
       );
     }
 
@@ -1130,12 +1130,8 @@ public function getFormBucket(ViewUI $view, $type, $display) {
         $last = end($keys);
         foreach ($contents as $key => $pid) {
           if ($key != $last) {
-            if ($group_info['groups'][$gid] == 'OR') {
-              $store[$pid]['#link'] = $this->t('!link &nbsp;&nbsp; OR', ['!link' => $store[$pid]['#link']]);
-            }
-            else {
-              $store[$pid]['#link'] = $this->t('!link &nbsp;&nbsp; AND', ['!link' => $store[$pid]['#link']]);
-            }
+            $operator = $group_info['groups'][$gid] == 'OR' ? $this->t('OR') : $this->t('AND');
+            $store[$pid]['#link'] = SafeMarkup::format('@link <span>@operator</span>', ['@link' => $store[$pid]['#link'], '@operator' => $operator]);
           }
           $build['fields'][$pid] = $store[$pid];
         }
