/**
  * Parse and save edited translation
  *
  * @param array $translateParams
  * @return array
  */
 public function processAjaxPost(array $translateParams)
 {
     if (!$this->_translateInline->isAllowed()) {
         return ['inline' => 'not allowed'];
     }
     $this->_appCache->invalidate(\Magento\Framework\App\Cache\Type\Translate::TYPE_IDENTIFIER);
     $this->_validateTranslationParams($translateParams);
     $this->_filterTranslationParams($translateParams, ['custom']);
     /** @var $validStoreId int */
     $validStoreId = $this->_storeManager->getStore()->getId();
     /** @var $resource \Magento\Translation\Model\ResourceModel\StringUtils */
     $resource = $this->_resourceFactory->create();
     foreach ($translateParams as $param) {
         if ($this->_appState->getAreaCode() == \Magento\Backend\App\Area\FrontNameResolver::AREA_CODE) {
             $storeId = 0;
         } else {
             if (empty($param['perstore'])) {
                 $resource->deleteTranslate($param['original'], null, false);
                 $storeId = 0;
             } else {
                 $storeId = $validStoreId;
             }
         }
         $resource->saveTranslate($param['original'], $param['custom'], null, $storeId);
     }
     return $this->getCacheManger()->updateAndGetTranslations();
 }
 /**
  * Render element
  *
  * @param \Magento\Framework\Data\Form\Element\AbstractElement $element
  * @return string
  *
  * @see RendererInterface::render()
  */
 public function render(\Magento\Framework\Data\Form\Element\AbstractElement $element)
 {
     $element->addClass('element-value-changer');
     $valueName = $element->getValueName();
     if ($valueName === '') {
         $valueName = '...';
     }
     if ($element->getShowAsText()) {
         $html = ' <input type="hidden" class="hidden" id="' . $element->getHtmlId() . '" name="' . $element->getName() . '" value="' . $element->getValue() . '"/> ' . htmlspecialchars($valueName) . '&nbsp;';
     } else {
         $html = ' <span class="rule-param"' . ($element->getParamId() ? ' id="' . $element->getParamId() . '"' : '') . '>' . '<a href="javascript:void(0)" class="label">';
         if ($this->inlineTranslate->isAllowed()) {
             $html .= $this->escapeHtml($valueName);
         } else {
             $html .= $this->escapeHtml($this->filterManager->truncate($valueName, ['length' => 33, 'etc' => '...']));
         }
         $html .= '</a><span class="element"> ' . $element->getElementHtml();
         if ($element->getExplicitApply()) {
             $html .= ' <a href="javascript:void(0)" class="rule-param-apply"><img src="' . $this->getViewFileUrl('images/rule_component_apply.gif') . '" class="v-middle" alt="' . __('Apply') . '" title="' . __('Apply') . '" /></a> ';
         }
         $html .= '</span></span>&nbsp;';
     }
     return $html;
 }