diff --git a/sources/content/src/Tests/ContentEntitySourceUiTest.php b/sources/content/src/Tests/ContentEntitySourceUiTest.php
index b457e4c..001c7a2 100644
--- a/sources/content/src/Tests/ContentEntitySourceUiTest.php
+++ b/sources/content/src/Tests/ContentEntitySourceUiTest.php
@@ -101,9 +101,9 @@ class ContentEntitySourceUiTest extends EntityTestBase {
     $this->assertText(t('The translation for @title has been accepted.', array('@title' => $node->getTitle())));
 
     // German node should now be listed and be clickable.
-    $this->clickLink('de_' . $node->label());
-    $this->assertText('de_' . $node->getTitle());
-    $this->assertText('de_' . $node->body->value);
+    $this->clickLink('de(de-ch): ' . $node->label());
+    $this->assertText('de(de-ch): ' . $node->getTitle());
+    $this->assertText('de(de-ch): ' . $node->body->value);
 
     // Test that the destination query argument does not break the redirect
     // and we are redirected back to the correct page.
@@ -243,12 +243,12 @@ class ContentEntitySourceUiTest extends EntityTestBase {
     // Translated nodes should now be listed and be clickable.
     // @todo Use links on translate tab.
     $this->drupalGet('de/node/' . $node->id());
-    $this->assertText('de_' . $node->getTitle());
-    $this->assertText('de_' . $node->body->value);
+    $this->assertText('de(de-ch): ' . $node->getTitle());
+    $this->assertText('de(de-ch): ' . $node->body->value);
 
     $this->drupalGet('es/node/' . $node->id());
-    $this->assertText('es_' . $node->getTitle());
-    $this->assertText('es_' . $node->body->value);
+    $this->assertText('es(es): ' . $node->getTitle());
+    $this->assertText('es(es): ' . $node->body->value);
   }
 
   /**
@@ -336,14 +336,14 @@ class ContentEntitySourceUiTest extends EntityTestBase {
     $this->assertText(t('The translation for @title has been accepted.', array('@title' => $comment->getSubject())));
 
     // The translated content should be in place.
-    $this->clickLink('de_' . $comment->getSubject());
-    $this->assertText('de_' . $comment->get('comment_body')->value);
+    $this->clickLink('de(de-ch): ' . $comment->getSubject());
+    $this->assertText('de(de-ch): ' . $comment->get('comment_body')->value);
     // @todo Remove when https://www.drupal.org/node/2444267 is fixed.
     \Drupal::entityManager()->getViewBuilder('node')->resetCache();
     $this->drupalGet('comment/1/translations');
-    $this->clickLink('es_' . $comment->getSubject());
+    $this->clickLink('es(es): ' . $comment->getSubject());
     $this->drupalGet('es/node/' . $comment->id());
-    $this->assertText('es_' . $comment->get('comment_body')->value);
+    $this->assertText('es(es): ' . $comment->get('comment_body')->value);
   }
 
   /**
diff --git a/sources/locale/src/Tests/LocaleSourceTest.php b/sources/locale/src/Tests/LocaleSourceTest.php
index fe19e52..7299e44 100644
--- a/sources/locale/src/Tests/LocaleSourceTest.php
+++ b/sources/locale/src/Tests/LocaleSourceTest.php
@@ -76,7 +76,7 @@ class LocaleSourceTest extends TMGMTKernelTestBase {
     }
 
     // Check string translation.
-    $expected_translation = $job->getTargetLangcode() . '_' . $source_text;
+    $expected_translation = $job->getTargetLangcode() . '(' . $job->getRemoteTargetLanguage() . '): ' . $source_text;
     $this->assertTranslation($locale_object->lid, 'de', $expected_translation);
 
     // Translate the german translation to spanish.
@@ -101,7 +101,7 @@ class LocaleSourceTest extends TMGMTKernelTestBase {
     }
 
     // Check string translation.
-    $this->assertTranslation($locale_object->lid, $target_langcode, $job->getTargetLangcode() . '_' . $expected_translation);
+    $this->assertTranslation($locale_object->lid, $target_langcode, $job->getTargetLangcode() . '(' . $job->getRemoteTargetLanguage() . '): ' . $expected_translation);
   }
 
   /**
diff --git a/sources/locale/src/Tests/LocaleSourceUiTest.php b/sources/locale/src/Tests/LocaleSourceUiTest.php
index 315e89f..8f9b902 100644
--- a/sources/locale/src/Tests/LocaleSourceUiTest.php
+++ b/sources/locale/src/Tests/LocaleSourceUiTest.php
@@ -85,7 +85,7 @@ class LocaleSourceUiTest extends TMGMTTestBase {
     // Review and accept the job item.
     $job_items = tmgmt_job_item_load_latest('locale', 'default', $locale_object->lid, 'en');
     $this->drupalGet('admin/tmgmt/items/' . $job_items['gsw-berne']->id());
-    $this->assertRaw('gsw-berne_Hello World');
+    $this->assertRaw('gsw-berne(gsw-berne): Hello World');
     $this->drupalPostForm(NULL, array(), t('Save as completed'));
     $this->drupalGet('admin/tmgmt/sources/locale/default');
 
diff --git a/src/Entity/Translator.php b/src/Entity/Translator.php
index fdcc1f3..d281977 100644
--- a/src/Entity/Translator.php
+++ b/src/Entity/Translator.php
@@ -400,7 +400,7 @@ class Translator extends ConfigEntityBase implements TranslatorInterface {
       return $language;
     }
 
-    if ($mapping = $this->getSetting(['remote_languages_mappings', $language])) {
+    if ($mapping = $this->get('remote_languages_mappings')[$language]) {
       return $mapping;
     }
 
diff --git a/src/Form/TranslatorForm.php b/src/Form/TranslatorForm.php
index cabb59c..99dfa74 100644
--- a/src/Form/TranslatorForm.php
+++ b/src/Form/TranslatorForm.php
@@ -232,14 +232,16 @@ class TranslatorForm extends EntityForm {
    * Overrides Drupal\Core\Entity\EntityForm::save().
    */
   public function save(array $form, FormStateInterface $form_state) {
+    //$this->entity->set('remote_languages_mappings', $form_state->getValue('remote_languages_mappings'));
     $entity = $this->entity;
     $status = $entity->save();
+    //$status = parent::save($form, $form_state);
 
     if ($status === SAVED_UPDATED) {
-      drupal_set_message(format_string('%label configuration has been updated.', array('%label' => $entity->label())));
+      drupal_set_message(format_string('%label configuration has been updated.', array('%label' => $this->entity->label())));
     }
     else {
-      drupal_set_message(format_string('%label configuration has been created.', array('%label' => $entity->label())));
+      drupal_set_message(format_string('%label configuration has been created.', array('%label' => $this->entity->label())));
     }
 
     $form_state->setRedirect('entity.tmgmt_translator.collection');
diff --git a/src/Tests/PluginsTest.php b/src/Tests/PluginsTest.php
index be321e5..9abd19a 100644
--- a/src/Tests/PluginsTest.php
+++ b/src/Tests/PluginsTest.php
@@ -85,11 +85,11 @@ class PluginsTest extends TMGMTKernelTestBase {
     foreach ($translate_job->getItems() as $item) {
       // Check the translated text.
       if ($i != 3) {
-        $expected_text = 'de_Text for job item with type ' . $item->getItemType() . ' and id ' . $item->getItemId() . '.';
+        $expected_text = 'de(de-ch): Text for job item with type ' . $item->getItemType() . ' and id ' . $item->getItemId() . '.';
       }
       else {
         // The third item has an explicitly stored data value.
-        $expected_text = 'de_Stored data';
+        $expected_text = 'de(de-ch): Stored data';
       }
       $item_data = $item->getData();
       $this->assertEqual($expected_text, $item_data['dummy']['deep_nesting']['#translation']['#text']);
diff --git a/src/Tests/TranslatorTest.php b/src/Tests/TranslatorTest.php
index 3db34ef..5a28077 100644
--- a/src/Tests/TranslatorTest.php
+++ b/src/Tests/TranslatorTest.php
@@ -110,8 +110,10 @@ class TranslatorTest extends TMGMTTestBase {
     $this->assertEqual($this->default_translator->mapToRemoteLanguage('en'), 'en-us');
     $this->assertEqual($this->default_translator->mapToRemoteLanguage('de'), 'de-ch');
 
-    $this->default_translator->setSetting(['remote_languages_mappings', 'de'], 'de-de');
-    $this->default_translator->setSetting(['remote_languages_mappings', 'en'], 'en-uk');
+    $remote_language_mappings = $this->default_translator->get('remote_languages_mappings');
+    $remote_language_mappings['de'] = 'de-de';
+    $remote_language_mappings['en'] = 'en-uk';
+    $this->default_translator->set('remote_languages_mappings', $remote_language_mappings);
     $this->default_translator->save();
 
     $this->assertEqual($this->default_translator->mapToRemoteLanguage('en'), 'en-uk');
@@ -125,4 +127,53 @@ class TranslatorTest extends TMGMTTestBase {
     $this->assertEqual($this->default_translator->mapToRemoteLanguage('de'), 'de');
   }
 
+  /**
+   * Test multiple local language with one single remote language.
+   */
+  protected function testMultipleLocalToSingleRemoteMapping() {
+    $this->addLanguage('pt-br');
+    $this->addLanguage('pt-pt');
+
+    // Add mapping to the file translator.
+    $edit = array(
+      'remote_languages_mappings[pt-br]' => 'pt',
+      'remote_languages_mappings[pt-pt]' => 'pt',
+    );
+    $this->drupalPostForm('admin/config/regional/tmgmt_translator/manage/test_translator', $edit, t('Save'));
+    $this->drupalGet('admin/config/regional/tmgmt_translator/manage/test_translator');
+    $this->assertFieldById('edit-remote-languages-mappings-pt-br', 'pt', 'Mapping saved correctly');
+
+    // Test first local language.
+    $job = tmgmt_job_match_item('en', 'pt-br');
+    $job->addItem('test_source', 'test', 0);
+    $edit = array(
+      'target_language' => 'pt-br',
+    );
+    $this->drupalPostAjaxForm('admin/tmgmt/jobs/' . $job->id(), $edit, 'target_language');
+    $this->assertFieldByXPath('//select[@id="edit-translator"]//option[@value="test_translator"]', t('Test translator (auto created)'), 'Translator maps correctly');
+    $this->drupalPostForm(NULL, $edit, t('Submit to translator'));
+    $this->assertText('Portuguese, Brazil');
+    $this->assertEqual(count($job->getItems()), 1);
+    $this->assertTrue($job->getItems()[1]->accepted());
+    $this->drupalGet('admin/tmgmt/items/' . 1);
+    $this->assertText('pt-br(pt): Text for job item with type ' . $job->getItems()[1]->getItemType() . ' and id ' . $job->getItems()[1]->getItemId() . '.');
+    $this->assertEqual($job->getTargetLangcode(), 'pt-br');
+
+    // Test the other local language.
+    $job = tmgmt_job_match_item('en', 'pt-pt');
+    $job->addItem('test_source', 'test', 0);
+    $edit = array(
+      'target_language' => 'pt-pt',
+    );
+    $this->drupalPostAjaxForm('admin/tmgmt/jobs/' . $job->id(), $edit, 'target_language');
+    $this->assertFieldByXPath('//select[@id="edit-translator"]//option[@value="test_translator"]', t('Test translator (auto created)'), 'Translator maps correctly');
+    $this->drupalPostForm(NULL, $edit, t('Submit to translator'));
+    $this->assertText('Portuguese, Portugal');
+    $this->assertEqual(count($job->getItems()), 1);
+    $this->assertTrue($job->getItems()[2]->accepted());
+    $this->drupalGet('admin/tmgmt/items/' . 2);
+    $this->assertText('pt-pt(pt): Text for job item with type ' . $job->getItems()[2]->getItemType() . ' and id ' . $job->getItems()[2]->getItemId() . '.');
+    $this->assertEqual($job->getTargetLangcode(), 'pt-pt');
+  }
+
 }
diff --git a/tmgmt_test/config/schema/tmgmt_test.schema.yml b/tmgmt_test/config/schema/tmgmt_test.schema.yml
index ff8933f..c88fd3b 100644
--- a/tmgmt_test/config/schema/tmgmt_test.schema.yml
+++ b/tmgmt_test/config/schema/tmgmt_test.schema.yml
@@ -16,8 +16,3 @@ tmgmt.translator.settings.test_translator:
     another_key:
       type: string
       label: Another key
-    remote_languages_mappings:
-      type: sequence
-      sequence:
-        type: string
-        label: Language key
diff --git a/tmgmt_test/src/Plugin/tmgmt/Translator/TestTranslator.php b/tmgmt_test/src/Plugin/tmgmt/Translator/TestTranslator.php
index 9d6f6be..a566188 100644
--- a/tmgmt_test/src/Plugin/tmgmt/Translator/TestTranslator.php
+++ b/tmgmt_test/src/Plugin/tmgmt/Translator/TestTranslator.php
@@ -86,7 +86,7 @@ class TestTranslator extends TranslatorPluginBase implements TranslatorRejectDat
         $data = array_filter(\Drupal::service('tmgmt.data')->flatten($job->getData()), array(\Drupal::service('tmgmt.data'), 'filterData'));
         $tdata = array();
         foreach ($data as $key => $value) {
-          $tdata[$key]['#text'] = $job->getTargetLangcode() . '_' . $value['#text'];
+          $tdata[$key]['#text'] = $job->getTargetLangcode() . '(' . $job->getRemoteTargetLanguage() . '): ' . $value['#text'];
         }
         $job->submitted('Test translation created.');
         $job->addTranslatedData(\Drupal::service('tmgmt.data')->unflatten($tdata));
@@ -108,7 +108,7 @@ class TestTranslator extends TranslatorPluginBase implements TranslatorRejectDat
    * {@inheritdoc}
    */
   public function getSupportedTargetLanguages(TranslatorInterface $translator, $source_language) {
-    $languages = array('en', 'de', 'es', 'it', 'zh-hans', 'gsw-berne');
+    $languages = array('en', 'de', 'es', 'it', 'pt', 'zh-hans', 'gsw-berne');
     $languages = array_combine($languages, $languages);
     unset($languages[$source_language]);
     return $languages;
