diff --git a/src/Plugin/facets/processor/TranslateNodeProcessor.php b/src/Plugin/facets/processor/TranslateNodeProcessor.php
new file mode 100644
index 0000000..b8006f2
--- /dev/null
+++ b/src/Plugin/facets/processor/TranslateNodeProcessor.php
@@ -0,0 +1,43 @@
+<?php
+
+namespace Drupal\facets\Plugin\facets\processor;
+
+use Drupal\facets\FacetInterface;
+use Drupal\facets\Processor\BuildProcessorInterface;
+use Drupal\facets\Processor\ProcessorPluginBase;
+use Drupal\node\Entity\Node;
+
+/**
+ * @FacetsProcessor(
+ *   id="translate_node",
+ *   label=@Translation("Translate node"),
+ *   description=@Translation("Translate the node"),
+ *   stages={
+ *     "build" = 5
+ *   }
+ * )
+ */
+class TranslateNodeProcessor extends ProcessorPluginBase implements BuildProcessorInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function build(FacetInterface $facet, array $results) {
+    $language_interface = \Drupal::languageManager()->getCurrentLanguage();
+
+    /** @var \Drupal\facets\Result\ResultInterface $result */
+    foreach ($results as $result) {
+      /** @var \Drupal\node\Entity\Node $node */
+      $node = Node::load($result->getRawValue());
+
+      $result->setDisplayValue($node->getTitle());
+      if ($node->hasTranslation($language_interface->getId())) {
+        $node_trans = $node->getTranslation($language_interface->getId());
+        $result->setDisplayValue($node_trans->getTitle());
+      }
+    }
+
+    return $results;
+  }
+
+}
diff --git a/tests/src/Unit/Plugin/processor/TranslateNodeProcessorTest.php b/tests/src/Unit/Plugin/processor/TranslateNodeProcessorTest.php
new file mode 100644
index 0000000..a997a27
--- /dev/null
+++ b/tests/src/Unit/Plugin/processor/TranslateNodeProcessorTest.php
@@ -0,0 +1,113 @@
+<?php
+
+namespace Drupal\Tests\facets\Unit\Plugin\processor;
+
+use Drupal\facets\Plugin\facets\processor\TranslateNodeProcessor;
+use Drupal\Core\Entity\EntityStorageInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Language\Language;
+use Drupal\Core\Language\LanguageManagerInterface;
+use Drupal\facets\Entity\Facet;
+use Drupal\facets\Result\Result;
+use Drupal\node\Entity\Node;
+use Drupal\Tests\UnitTestCase;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+
+/**
+ * Class TranslateNodeProcessorTest
+ * @package Drupal\Tests\bosal_careers\Unit\Plugin\processor
+ *
+ * @group bosal_careers
+ */
+class TranslateNodeProcessorTest extends UnitTestCase {
+
+  /**
+   * The processor to be tested.
+   *
+   * @var \Drupal\facets\Plugin\facets\processor\TranslateNodeProcessor
+   */
+  protected $processor;
+
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $this->processor = new TranslateNodeProcessor([], 'translate_node', []);
+
+    $this->createMocks();
+  }
+
+  /**
+   * Tests that results were correctly changed.
+   */
+  public function testResultsChanged() {
+    /** @var \Drupal\facets\Result\ResultInterface[] $original_results */
+    $original_results = [
+      new Result(2, 2, 6),
+    ];
+
+    $facet = new Facet([], 'facet');
+    $facet->setResults($original_results);
+
+    $expected_results = [
+      ['nid' => 2, 'title' => 'shaken not stirred']
+    ];
+
+    foreach ($expected_results as $key => $expected) {
+      $this->assertEquals($expected['nid'], $original_results[$key]->getRawValue());
+      $this->assertEquals($expected['nid'], $original_results[$key]->getDisplayValue());
+    }
+
+    /** @var \Drupal\facets\Result\ResultInterface[] $filtered_results */
+    $filtered_results = $this->processor->build($facet, $original_results);
+
+    foreach ($expected_results as $key => $expected) {
+      $this->assertEquals($expected['nid'], $filtered_results[$key]->getRawValue());
+      $this->assertEquals($expected['title'], $filtered_results[$key]->getDisplayValue());
+    }
+  }
+
+  /**
+   * Creates and sets up the container to be used in tests.
+   */
+  protected function createMocks() {
+    $node = $this->getMockBuilder(Node::class)
+      ->disableOriginalConstructor()
+      ->getMock();
+    $node->expects($this->any())
+      ->method('getTitle')
+      ->willReturn('shaken not stirred');
+
+    $node_storage = $this->getMock(EntityStorageInterface::class);
+    $node->expects($this->any())
+      ->method('load')
+      ->willReturn($node);
+    $entity_manager = $this->getMock(EntityTypeManagerInterface::class);
+    $entity_manager->expects($this->any())
+      ->method('getStorage')
+      ->willReturn($node_storage);
+
+    $language_manager = $this->getMock(LanguageManagerInterface::class);
+    $language = new Language(['langcode' => 'en']);
+    $language_manager->expects($this->any())
+      ->method('getCurrentLanguage')
+      ->will($this->returnValue($language));
+
+    $container = new ContainerBuilder();
+    $container->set('entity_type.manager', $entity_manager);
+    $container->set('language_manager', $language_manager);
+    \Drupal::setContainer($container);
+  }
+
+  /**
+   * Tests configuration.
+   */
+  public function testConfiguration() {
+    $config = $this->processor->defaultConfiguration();
+    $this->assertEquals([], $config);
+  }
+
+}
