1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Braintree\Model;
use Magento\Framework\Locale\ResolverInterface;
use Magento\Braintree\Gateway\Config\PayPal\Config;
class LocaleResolver implements ResolverInterface
{
/**
* @var ResolverInterface
*/
private $resolver;
/**
* @var Config
*/
private $config;
/**
* @param ResolverInterface $resolver
* @param Config $config
*/
public function __construct(ResolverInterface $resolver, Config $config)
{
$this->resolver = $resolver;
$this->config = $config;
}
/**
* @inheritdoc
*/
public function getDefaultLocalePath()
{
return $this->resolver->getDefaultLocalePath();
}
/**
* @inheritdoc
*/
public function setDefaultLocale($locale)
{
return $this->resolver->setDefaultLocale($locale);
}
/**
* @inheritdoc
*/
public function getDefaultLocale()
{
return $this->resolver->getDefaultLocale();
}
/**
* @inheritdoc
*/
public function setLocale($locale = null)
{
return $this->resolver->setLocale($locale);
}
/**
* Gets store's locale or the `en_US` locale if store's locale does not supported by PayPal.
*
* @return string
*/
public function getLocale()
{
$locale = $this->resolver->getLocale();
$allowedLocales = $this->config->getValue('supported_locales');
return strpos($allowedLocales, $locale) !== false ? $locale : 'en_US';
}
/**
* @inheritdoc
*/
public function emulate($scopeId)
{
return $this->resolver->emulate($scopeId);
}
/**
* @inheritdoc
*/
public function revert()
{
return $this->resolver->revert();
}
}