diff --git a/panelizer.services.yml b/panelizer.services.yml
index d36b86c..845bb7e 100644
--- a/panelizer.services.yml
+++ b/panelizer.services.yml
@@ -9,7 +9,7 @@ services:
     parent: default_plugin_manager
   panelizer:
     class: Drupal\panelizer\Panelizer
-    arguments: ['@entity_type.manager', '@entity_type.bundle.info', '@entity_field.manager', '@plugin.manager.field.field_type', '@module_handler', '@current_user', '@plugin.manager.panelizer_entity', '@panels.display_manager', '@string_translation', '@ctools.context_mapper']
+    arguments: ['@entity_type.manager', '@entity_type.bundle.info', '@entity_field.manager', '@plugin.manager.field.field_type', '@module_handler', '@current_user', '@plugin.manager.panelizer_entity', '@panels.display_manager', '@string_translation', '@ctools.context_mapper', '@language_manager']
   panelizer.default.access:
     class: Drupal\panelizer\Access\DefaultAccess
     arguments: ['@panelizer']
diff --git a/src/Panelizer.php b/src/Panelizer.php
index 5ebc79a..33c1072 100644
--- a/src/Panelizer.php
+++ b/src/Panelizer.php
@@ -13,6 +13,8 @@ use Drupal\Core\Entity\FieldableEntityInterface;
 use Drupal\Core\Entity\RevisionableInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Field\FieldTypePluginManagerInterface;
+use Drupal\Core\Language\LanguageInterface;
+use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\Core\Session\AccountInterface;
 use Drupal\Core\Session\AccountProxyInterface;
 use Drupal\Core\StringTranslation\StringTranslationTrait;
@@ -94,6 +96,13 @@ class Panelizer implements PanelizerInterface {
   protected $contextMapper;
 
   /**
+   * The language manager.
+   *
+   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
+   */
+  protected $languageManager;
+
+  /**
    * Constructs a Panelizer.
    *
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
@@ -116,8 +125,10 @@ class Panelizer implements PanelizerInterface {
    *   The string translation service.
    * @param \Drupal\ctools\ContextMapperInterface $context_mapper
    *   The context mapper service.
+   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
+   *   The language manager.
    */
-  public function __construct(EntityTypeManagerInterface $entity_type_manager, EntityTypeBundleInfoInterface $entity_type_bundle_info, EntityFieldManagerInterface $entity_field_manager, FieldTypePluginManagerInterface $field_type_manager, ModuleHandlerInterface $module_handler, AccountProxyInterface $current_user, PanelizerEntityManager $panelizer_entity_manager, PanelsDisplayManagerInterface $panels_manager, TranslationInterface $string_translation, ContextMapperInterface $context_mapper) {
+  public function __construct(EntityTypeManagerInterface $entity_type_manager, EntityTypeBundleInfoInterface $entity_type_bundle_info, EntityFieldManagerInterface $entity_field_manager, FieldTypePluginManagerInterface $field_type_manager, ModuleHandlerInterface $module_handler, AccountProxyInterface $current_user, PanelizerEntityManager $panelizer_entity_manager, PanelsDisplayManagerInterface $panels_manager, TranslationInterface $string_translation, ContextMapperInterface $context_mapper, LanguageManagerInterface $language_manager) {
     $this->entityTypeManager = $entity_type_manager;
     $this->entityTypeBundleInfo = $entity_type_bundle_info;
     $this->entityFieldManager = $entity_field_manager;
@@ -128,6 +139,7 @@ class Panelizer implements PanelizerInterface {
     $this->panelsManager = $panels_manager;
     $this->stringTranslation = $string_translation;
     $this->contextMapper = $context_mapper;
+    $this->languageManager = $language_manager;
   }
 
   /**
@@ -322,8 +334,18 @@ class Panelizer implements PanelizerInterface {
         $entity->setChangedTime(REQUEST_TIME);
       }
 
-      $entity->panelizer[$panelizer_item->getName()] = $panelizer_item;
-
+      $langcode = $this->languageManager->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId();
+      if ($entity->language()->getId() != $langcode) {
+        $translated_value = $entity->getTranslation($langcode)->toArray();
+        $translated_value['panelizer'][$panelizer_item->getName()] = $panelizer_item->getValue();
+        if ($entity->hasTranslation($langcode)) {
+          $entity->removeTranslation($langcode);
+        }
+        $entity->addTranslation($langcode, $translated_value);
+      }
+      else {
+        $entity->panelizer[$panelizer_item->getName()] = $panelizer_item;
+      }
       $entity->save();
     }
     else {
diff --git a/src/Plugin/PanelsStorage/PanelizerFieldPanelsStorage.php b/src/Plugin/PanelsStorage/PanelizerFieldPanelsStorage.php
index 3f6aaaf..f44f08e 100644
--- a/src/Plugin/PanelsStorage/PanelizerFieldPanelsStorage.php
+++ b/src/Plugin/PanelsStorage/PanelizerFieldPanelsStorage.php
@@ -6,6 +6,8 @@ use Drupal\Core\Access\AccessResult;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Entity\FieldableEntityInterface;
+use Drupal\Core\Language\LanguageInterface;
+use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\Core\Plugin\Context\Context;
 use Drupal\Core\Plugin\Context\ContextDefinition;
@@ -34,6 +36,13 @@ class PanelizerFieldPanelsStorage extends PanelsStorageBase implements Container
   protected $panelizer;
 
   /**
+   * The language manager.
+   *
+   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
+   */
+  protected $languageManager;
+
+  /**
    * Constructs a PanelizerDefaultPanelsStorage.
    *
    * @param array $configuration
@@ -46,10 +55,13 @@ class PanelizerFieldPanelsStorage extends PanelsStorageBase implements Container
    *   The entity type manager.
    * @param \Drupal\panelizer\PanelizerInterface $panelizer
    *   The Panelizer service.
+   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
+   *   The language manager.
    */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, PanelizerInterface $panelizer) {
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, PanelizerInterface $panelizer, LanguageManagerInterface $language_manager) {
     $this->entityTypeManager = $entity_type_manager;
     $this->panelizer = $panelizer;
+    $this->languageManager = $language_manager;
     parent::__construct($configuration, $plugin_id, $plugin_definition);
   }
 
@@ -62,7 +74,8 @@ class PanelizerFieldPanelsStorage extends PanelsStorageBase implements Container
       $plugin_id,
       $plugin_definition,
       $container->get('entity_type.manager'),
-      $container->get('panelizer')
+      $container->get('panelizer'),
+      $container->get('language_manager')
     );
   }
 
@@ -84,6 +97,10 @@ class PanelizerFieldPanelsStorage extends PanelsStorageBase implements Container
     else {
       $entity = $storage->load($id);
     }
+    $langcode = $this->languageManager->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId();
+    if ($entity->language()->getId() != $langcode) {
+      $entity = $entity->getTranslation($langcode);
+    }
 
     return $entity;
   }
