diff --git a/app/code/Magento/Braintree/Model/LocaleResolver.php b/app/code/Magento/Braintree/Model/LocaleResolver.php index cebd90dffc70e..4407282df8077 100644 --- a/app/code/Magento/Braintree/Model/LocaleResolver.php +++ b/app/code/Magento/Braintree/Model/LocaleResolver.php @@ -49,9 +49,9 @@ public function setDefaultLocale($locale) /** * @inheritdoc */ - public function getDefaultLocale() + public function getDefaultLocale($store = null) { - return $this->resolver->getDefaultLocale(); + return $this->resolver->getDefaultLocale($store); } /** diff --git a/app/code/Magento/Sales/Model/Order.php b/app/code/Magento/Sales/Model/Order.php index 5f38bcb4ea235..a54ea806aeb7f 100644 --- a/app/code/Magento/Sales/Model/Order.php +++ b/app/code/Magento/Sales/Model/Order.php @@ -7,6 +7,8 @@ use Magento\Directory\Model\Currency; use Magento\Framework\Api\AttributeValueFactory; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\Locale\ResolverInterface; use Magento\Framework\Pricing\PriceCurrencyInterface; use Magento\Sales\Api\Data\OrderInterface; use Magento\Sales\Api\Data\OrderStatusHistoryInterface; @@ -268,6 +270,11 @@ class Order extends AbstractModel implements EntityInterface, OrderInterface */ protected $timezone; + /** + * @var ResolverInterface + */ + protected $localeResolver; + /** * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry @@ -296,6 +303,7 @@ class Order extends AbstractModel implements EntityInterface, OrderInterface * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data + * @param ResolverInterface $localeResolver * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( @@ -325,7 +333,8 @@ public function __construct( \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productListFactory, \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, - array $data = [] + array $data = [], + ResolverInterface $localeResolver = null ) { $this->_storeManager = $storeManager; $this->_orderConfig = $orderConfig; @@ -347,6 +356,8 @@ public function __construct( $this->_trackCollectionFactory = $trackCollectionFactory; $this->salesOrderCollectionFactory = $salesOrderCollectionFactory; $this->priceCurrency = $priceCurrency; + $this->localeResolver = $localeResolver ?: ObjectManager::getInstance()->get(ResolverInterface::class); + parent::__construct( $context, $registry, @@ -1831,7 +1842,7 @@ public function getCreatedAtFormatted($format) new \DateTime($this->getCreatedAt()), $format, $format, - null, + $this->localeResolver->getDefaultLocale($this->getStore()), $this->timezone->getConfigTimezone('store', $this->getStore()) ); } diff --git a/lib/internal/Magento/Framework/Locale/Resolver.php b/lib/internal/Magento/Framework/Locale/Resolver.php index 8372908a380ff..94a91ea6a83be 100644 --- a/lib/internal/Magento/Framework/Locale/Resolver.php +++ b/lib/internal/Magento/Framework/Locale/Resolver.php @@ -85,10 +85,10 @@ public function setDefaultLocale($locale) /** * {@inheritdoc} */ - public function getDefaultLocale() + public function getDefaultLocale($store = null) { if (!$this->defaultLocale) { - $locale = $this->scopeConfig->getValue($this->getDefaultLocalePath(), $this->scopeType); + $locale = $this->scopeConfig->getValue($this->getDefaultLocalePath(), $this->scopeType, $store); if (!$locale) { $locale = self::DEFAULT_LOCALE; } diff --git a/lib/internal/Magento/Framework/Locale/ResolverInterface.php b/lib/internal/Magento/Framework/Locale/ResolverInterface.php index 22ec8fb70304c..a99c18cef8a4c 100644 --- a/lib/internal/Magento/Framework/Locale/ResolverInterface.php +++ b/lib/internal/Magento/Framework/Locale/ResolverInterface.php @@ -5,6 +5,8 @@ */ namespace Magento\Framework\Locale; +use Magento\Store\Api\Data\StoreInterface; + /** * Manages locale config information * @@ -30,9 +32,11 @@ public function setDefaultLocale($locale); /** * Retrieve default locale code * + * @param bool|int|null|string|StoreInterface $store + * * @return string */ - public function getDefaultLocale(); + public function getDefaultLocale($store = null); /** * Set locale