diff --git a/site_settings.module b/site_settings.module
index b860cac..ec33eab 100755
--- a/site_settings.module
+++ b/site_settings.module
@@ -8,9 +8,16 @@
 use Drupal\Core\Routing\RouteMatchInterface;
 
 /**
+ * Cache BIN for settings.
+ */
+const SITE_SETTINGS_CACHE_BIN = 'site_settings';
+
+/**
  * Cache CID for settings.
  */
-const SITE_SETTINGS_CACHE_CID = 'site_settings:settings';
+const SITE_SETTINGS_CACHE_CID = 'settings';
+
+
 
 /**
  * Implements hook_help().
diff --git a/site_settings.services.yml b/site_settings.services.yml
index 7508acd..b170512 100755
--- a/site_settings.services.yml
+++ b/site_settings.services.yml
@@ -1,7 +1,13 @@
 services:
+  cache.site_settings:
+    class: Drupal\Core\Cache\CacheBackendInterface
+    tags:
+      - { name: cache.bin }
+    factory: cache_factory:get
+    arguments: [site_settings]
   site_settings.loader:
     class: Drupal\site_settings\SiteSettingsLoader
-    arguments: ["@entity.query", "@entity.manager"]
+    arguments: ["@entity.query", "@entity.manager", "@language_manager"]
 
   site_settings.replicator:
     class: Drupal\site_settings\SiteSettingsReplicator
diff --git a/src/Entity/SiteSettingEntity.php b/src/Entity/SiteSettingEntity.php
index 90a257f..7a5d0aa 100755
--- a/src/Entity/SiteSettingEntity.php
+++ b/src/Entity/SiteSettingEntity.php
@@ -36,7 +36,9 @@ use Drupal\user\UserInterface;
  *     },
  *   },
  *   base_table = "site_setting_entity",
+ *   data_table = "site_setting_entity_field_data",
  *   admin_permission = "administer site setting entities",
+ *   translatable = TRUE,
  *   entity_keys = {
  *     "id" = "id",
  *     "bundle" = "type",
diff --git a/src/Form/SiteSettingEntityDeleteForm.php b/src/Form/SiteSettingEntityDeleteForm.php
index 8bfa0f1..2887ab0 100755
--- a/src/Form/SiteSettingEntityDeleteForm.php
+++ b/src/Form/SiteSettingEntityDeleteForm.php
@@ -17,9 +17,9 @@ class SiteSettingEntityDeleteForm extends ContentEntityDeleteForm {
    */
   public function submitForm(array &$form, FormStateInterface $form_state) {
 
-    // Rebuild the site settings cache.
+    // Clear the site settings cache.
     $site_settings = \Drupal::service('site_settings.loader');
-    $site_settings->rebuildCache();
+    $site_settings->clearCache();
 
     // Submit the parent form.
     parent::submitForm($form, $form_state);
diff --git a/src/Form/SiteSettingEntityForm.php b/src/Form/SiteSettingEntityForm.php
index 8196be4..4027c78 100755
--- a/src/Form/SiteSettingEntityForm.php
+++ b/src/Form/SiteSettingEntityForm.php
@@ -92,9 +92,9 @@ class SiteSettingEntityForm extends ContentEntityForm {
         ]));
     }
 
-    // Rebuild the site settings cache.
+    // Clear the site settings cache.
     $site_settings = \Drupal::service('site_settings.loader');
-    $site_settings->rebuildCache();
+    $site_settings->clearCache();
 
     $form_state->setRedirect('entity.site_setting_entity.collection');
   }
diff --git a/src/Form/SiteSettingEntityTypeDeleteForm.php b/src/Form/SiteSettingEntityTypeDeleteForm.php
index 8b45ede..adb1d84 100755
--- a/src/Form/SiteSettingEntityTypeDeleteForm.php
+++ b/src/Form/SiteSettingEntityTypeDeleteForm.php
@@ -47,9 +47,9 @@ class SiteSettingEntityTypeDeleteForm extends EntityConfirmFormBase {
         )
     );
 
-    // Rebuild the site settings cache.
+    // Clear the site settings cache.
     $site_settings = \Drupal::service('site_settings.loader');
-    $site_settings->rebuildCache();
+    $site_settings->clearCache();
 
     $form_state->setRedirectUrl($this->getCancelUrl());
   }
diff --git a/src/Form/SiteSettingEntityTypeForm.php b/src/Form/SiteSettingEntityTypeForm.php
index 0433eb4..585e762 100755
--- a/src/Form/SiteSettingEntityTypeForm.php
+++ b/src/Form/SiteSettingEntityTypeForm.php
@@ -141,9 +141,9 @@ class SiteSettingEntityTypeForm extends EntityForm {
         ]));
     }
 
-    // Rebuild the site settings cache.
+    // Clear the site settings cache.
     $site_settings = \Drupal::service('site_settings.loader');
-    $site_settings->rebuildCache();
+    $site_settings->clearCache();
 
     // Redirect the user to the add fields screen for this new entity type.
     $route_parameters = [
diff --git a/src/SiteSettingsLoader.php b/src/SiteSettingsLoader.php
index 3d48442..ece92d6 100755
--- a/src/SiteSettingsLoader.php
+++ b/src/SiteSettingsLoader.php
@@ -4,6 +4,7 @@ namespace Drupal\site_settings;
 
 use Drupal\Core\Entity\Query\QueryFactory;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Language\LanguageManagerInterface;
 
 /**
  * Class SiteSettingsLoader.
@@ -36,9 +37,10 @@ class SiteSettingsLoader {
   /**
    * Constructor.
    */
-  public function __construct(QueryFactory $entity_query, EntityTypeManagerInterface $entity_manager) {
+  public function __construct(QueryFactory $entity_query, EntityTypeManagerInterface $entity_manager, LanguageManagerInterface $language_manager) {
     $this->entityQuery = $entity_query;
     $this->entityManager = $entity_manager;
+    $this->languageManager = $language_manager;
   }
 
   /**
@@ -66,11 +68,12 @@ class SiteSettingsLoader {
    *   All settings.
    */
   public function loadAll($rebuild_cache = FALSE) {
-    if (!$rebuild_cache && $cache = \Drupal::cache()->get(SITE_SETTINGS_CACHE_CID)) {
+    $langcode = $this->languageManager->getCurrentLanguage()->getId();
+    if (!$rebuild_cache && $cache = \Drupal::cache(SITE_SETTINGS_CACHE_BIN)->get(SITE_SETTINGS_CACHE_CID . ':' . $langcode)) {
       $this->settings = $cache->data;
     }
     else {
-      $this->rebuildCache();
+      $this->rebuildCache($langcode);
     }
     return $this->settings;
   }
@@ -78,15 +81,22 @@ class SiteSettingsLoader {
   /**
    * Rebuild the cache.
    */
-  public function rebuildCache() {
-    $this->buildSettings();
-    \Drupal::cache()->set(SITE_SETTINGS_CACHE_CID, $this->settings);
+  public function rebuildCache($langcode) {
+    $this->buildSettings($langcode);
+    \Drupal::cache(SITE_SETTINGS_CACHE_BIN)->set(SITE_SETTINGS_CACHE_CID . ':' . $langcode, $this->settings);
+  }
+
+  /**
+   * Rebuild the cache.
+   */
+  public function clearCache($langcode) {
+    \Drupal::cache(SITE_SETTINGS_CACHE_BIN)->deleteAll();
   }
 
   /**
    * Build the settings array.
    */
-  private function buildSettings() {
+  private function buildSettings($langcode) {
     $query = $this->entityQuery->get('site_setting_entity');
     if ($ids = $query->execute()) {
 
@@ -104,6 +114,7 @@ class SiteSettingsLoader {
 
       foreach ($setting_entities as $entity) {
 
+        $entity = $entity->getTranslation($langcode);
         // Get data.
         $fieldset = $entity->fieldset->getValue()[0]['value'];
         $fieldset = $this->fieldsetKey($fieldset);
