diff --git a/config/schema/tmgmt.schema.yml b/config/schema/tmgmt.schema.yml
index 2947c55..ac40ea7 100644
--- a/config/schema/tmgmt.schema.yml
+++ b/config/schema/tmgmt.schema.yml
@@ -39,11 +39,6 @@ tmgmt.translator.*:
       label: 'Translator plugin'
     settings:
       type: tmgmt.translator.settings.[%parent.plugin]
-    remote_languages_mappings:
-      type: sequence
-      sequence:
-        type: string
-        label: Language key
 
 views.access.tmgmt_job:
   type: mapping
@@ -55,3 +50,8 @@ tmgmt.translator_base:
     auto_accept:
       type: boolean
       label: Automatically accept
+    remote_languages_mappings:
+      type: sequence
+      sequence:
+        type: string
+        label: Language key
diff --git a/modules/demo/config/optional/language.entity.gsw-berne.yml b/modules/demo/config/optional/language.entity.gsw-berne.yml
new file mode 100644
index 0000000..8e994bc
--- /dev/null
+++ b/modules/demo/config/optional/language.entity.gsw-berne.yml
@@ -0,0 +1,8 @@
+langcode: en
+status: true
+dependencies: {  }
+id: gsw-berne
+label: Swiss German
+direction: ltr
+weight: 5
+locked: false
diff --git a/modules/demo/config/optional/language.entity.pt-br.yml b/modules/demo/config/optional/language.entity.pt-br.yml
new file mode 100644
index 0000000..918f962
--- /dev/null
+++ b/modules/demo/config/optional/language.entity.pt-br.yml
@@ -0,0 +1,8 @@
+langcode: en
+status: true
+dependencies: {  }
+id: pt-br
+label: Portuguese, Brazil
+direction: ltr
+weight: 3
+locked: false
diff --git a/modules/demo/config/optional/language.entity.pt-pt.yml b/modules/demo/config/optional/language.entity.pt-pt.yml
new file mode 100644
index 0000000..4df8096
--- /dev/null
+++ b/modules/demo/config/optional/language.entity.pt-pt.yml
@@ -0,0 +1,8 @@
+langcode: en
+status: true
+dependencies: {  }
+id: pt-pt
+label: Portuguese, Portugal
+direction: ltr
+weight: 4
+locked: false
diff --git a/src/Form/TranslatorForm.php b/src/Form/TranslatorForm.php
index cabb59c..1ef2359 100644
--- a/src/Form/TranslatorForm.php
+++ b/src/Form/TranslatorForm.php
@@ -233,6 +233,7 @@ class TranslatorForm extends EntityForm {
    */
   public function save(array $form, FormStateInterface $form_state) {
     $entity = $this->entity;
+    $entity->setSetting('remote_languages_mappings', $form_state->getValue('remote_languages_mappings'));
     $status = $entity->save();
 
     if ($status === SAVED_UPDATED) {
diff --git a/src/Tests/TranslatorTest.php b/src/Tests/TranslatorTest.php
index 3db34ef..203a330 100644
--- a/src/Tests/TranslatorTest.php
+++ b/src/Tests/TranslatorTest.php
@@ -125,4 +125,39 @@ 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_create('en', 'pt-br', 0);
+    $job->save();
+    $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');
+
+    // Test the other local language.
+    $job = tmgmt_job_create('en', 'pt-pt', 1);
+    $job->save();
+    $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');
+  }
+
 }
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..9b6cff9 100644
--- a/tmgmt_test/src/Plugin/tmgmt/Translator/TestTranslator.php
+++ b/tmgmt_test/src/Plugin/tmgmt/Translator/TestTranslator.php
@@ -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;
