From 59f9e53cd06299799dc49752105135f36bd504eb Mon Sep 17 00:00:00 2001
From: Michail Slabko <mslabko@ebay.com>
Date: Wed, 21 Oct 2015 13:45:08 +0300
Subject: [PATCH] =?UTF-8?q?MAGETWO-44055:=20[GITHUB]=20Admin=20product=20?=
 =?UTF-8?q?=C2=ABCustom=20Options=C2=BB=20tab=20controls=20(=C2=ABImport?=
 =?UTF-8?q?=20Options=C2=BB,=20=C2=ABAdd=20New=20Option=C2=BB=20buttons)?=
 =?UTF-8?q?=20do=20not=20work=20when=20non-English=20locale=20is=20used=20?=
 =?UTF-8?q?#1971?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Catalog/Model/Config/Source/Product/Options/Type.php    | 2 +-
 .../Magento/Catalog/view/adminhtml/web/js/custom-options.js | 3 ++-
 lib/internal/Magento/Framework/View/Element/Html/Select.php | 6 +++---
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/app/code/Magento/Catalog/Model/Config/Source/Product/Options/Type.php b/app/code/Magento/Catalog/Model/Config/Source/Product/Options/Type.php
index 5d0c1f24872..ca62402f23a 100644
--- a/app/code/Magento/Catalog/Model/Config/Source/Product/Options/Type.php
+++ b/app/code/Magento/Catalog/Model/Config/Source/Product/Options/Type.php
@@ -43,7 +43,7 @@ class Type implements \Magento\Framework\Option\ArrayInterface
                 $types[] = ['label' => __($type['label']), 'value' => $type['name']];
             }
             if (count($types)) {
-                $groups[] = ['label' => __($option['label']), 'value' => $types];
+                $groups[] = ['label' => __($option['label']), 'value' => $types, 'optgroup-name' => $option['label']];
             }
         }
 
diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js
index 69072252e41..ae23c3476b8 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js
+++ b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js
@@ -194,7 +194,8 @@ define([
                     var widget = this,
                         currentElement = $(event.target),
                         parentId = '#' + currentElement.closest('.fieldset-alt').attr('id'),
-                        group = currentElement.find('[value="' + currentElement.val() + '"]').closest('optgroup').attr('data-name'),
+                        group = currentElement.find('[value="' + currentElement.val() + '"]')
+                            .closest('optgroup').attr('data-optgroup-name'),
                         previousGroup = $(parentId + '_previous_group').val(),
                         previousBlock = $(parentId + '_type_' + previousGroup),
                         tmpl;
diff --git a/lib/internal/Magento/Framework/View/Element/Html/Select.php b/lib/internal/Magento/Framework/View/Element/Html/Select.php
index 2b240270ba7..1bdbd099cc7 100644
--- a/lib/internal/Magento/Framework/View/Element/Html/Select.php
+++ b/lib/internal/Magento/Framework/View/Element/Html/Select.php
@@ -151,21 +151,21 @@ class Select extends \Magento\Framework\View\Element\AbstractBlock
 
         $isArrayOption = true;
         foreach ($this->getOptions() as $key => $option) {
+            $optgroupName = '';
             if ($isArrayOption && is_array($option)) {
                 $value = $option['value'];
                 $label = (string)$option['label'];
-                $name = $option['label'] instanceof \Magento\Framework\Phrase ? $option['label']->getText() : $label;
+                $optgroupName = isset($option['optgroup-name']) ? $option['optgroup-name'] : $label;
                 $params = !empty($option['params']) ? $option['params'] : [];
             } else {
                 $value = (string)$key;
                 $label = (string)$option;
-                $name = $label;
                 $isArrayOption = false;
                 $params = [];
             }
 
             if (is_array($value)) {
-                $html .= '<optgroup label="' . $label . '" data-name="' . $name . '">';
+                $html .= '<optgroup label="' . $label . '" data-optgroup-name="' . $optgroupName . '">';
                 foreach ($value as $keyGroup => $optionGroup) {
                     if (!is_array($optionGroup)) {
                         $optionGroup = ['value' => $keyGroup, 'label' => $optionGroup];
-- 
GitLab