PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
4.17.1 4.17.0 4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / third-party / vendor / symfony / translation / MessageCatalogue.php
wp-user-avatar / third-party / vendor / symfony / translation Last commit date
Catalogue 2 months ago Command 2 months ago DataCollector 2 months ago DependencyInjection 2 months ago Dumper 2 months ago Exception 2 months ago Extractor 2 months ago Formatter 2 months ago Loader 2 months ago Provider 2 months ago Reader 2 months ago Resources 2 months ago Util 2 months ago Writer 2 months ago DataCollectorTranslator.php 2 months ago IdentityTranslator.php 2 months ago LoggingTranslator.php 2 months ago MessageCatalogue.php 2 months ago MessageCatalogueInterface.php 2 months ago MetadataAwareInterface.php 2 months ago PseudoLocalizationTranslator.php 2 months ago TranslatableMessage.php 2 months ago Translator.php 2 months ago TranslatorBag.php 2 months ago TranslatorBagInterface.php 2 months ago
MessageCatalogue.php
266 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11 namespace ProfilePressVendor\Symfony\Component\Translation;
12
13 use ProfilePressVendor\Symfony\Component\Config\Resource\ResourceInterface;
14 use ProfilePressVendor\Symfony\Component\Translation\Exception\LogicException;
15 /**
16 * @author Fabien Potencier <fabien@symfony.com>
17 */
18 class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterface
19 {
20 private $messages = [];
21 private $metadata = [];
22 private $resources = [];
23 private $locale;
24 private $fallbackCatalogue;
25 private $parent;
26 /**
27 * @param array $messages An array of messages classified by domain
28 */
29 public function __construct(string $locale, array $messages = [])
30 {
31 $this->locale = $locale;
32 $this->messages = $messages;
33 }
34 /**
35 * {@inheritdoc}
36 */
37 public function getLocale()
38 {
39 return $this->locale;
40 }
41 /**
42 * {@inheritdoc}
43 */
44 public function getDomains()
45 {
46 $domains = [];
47 foreach ($this->messages as $domain => $messages) {
48 if (str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) {
49 $domain = substr($domain, 0, -\strlen(self::INTL_DOMAIN_SUFFIX));
50 }
51 $domains[$domain] = $domain;
52 }
53 return array_values($domains);
54 }
55 /**
56 * {@inheritdoc}
57 */
58 public function all(?string $domain = null)
59 {
60 if (null !== $domain) {
61 // skip messages merge if intl-icu requested explicitly
62 if (str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) {
63 return $this->messages[$domain] ?? [];
64 }
65 return ($this->messages[$domain . self::INTL_DOMAIN_SUFFIX] ?? []) + ($this->messages[$domain] ?? []);
66 }
67 $allMessages = [];
68 foreach ($this->messages as $domain => $messages) {
69 if (str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) {
70 $domain = substr($domain, 0, -\strlen(self::INTL_DOMAIN_SUFFIX));
71 $allMessages[$domain] = $messages + ($allMessages[$domain] ?? []);
72 } else {
73 $allMessages[$domain] = ($allMessages[$domain] ?? []) + $messages;
74 }
75 }
76 return $allMessages;
77 }
78 /**
79 * {@inheritdoc}
80 */
81 public function set(string $id, string $translation, string $domain = 'messages')
82 {
83 $this->add([$id => $translation], $domain);
84 }
85 /**
86 * {@inheritdoc}
87 */
88 public function has(string $id, string $domain = 'messages')
89 {
90 if (isset($this->messages[$domain][$id]) || isset($this->messages[$domain . self::INTL_DOMAIN_SUFFIX][$id])) {
91 return \true;
92 }
93 if (null !== $this->fallbackCatalogue) {
94 return $this->fallbackCatalogue->has($id, $domain);
95 }
96 return \false;
97 }
98 /**
99 * {@inheritdoc}
100 */
101 public function defines(string $id, string $domain = 'messages')
102 {
103 return isset($this->messages[$domain][$id]) || isset($this->messages[$domain . self::INTL_DOMAIN_SUFFIX][$id]);
104 }
105 /**
106 * {@inheritdoc}
107 */
108 public function get(string $id, string $domain = 'messages')
109 {
110 if (isset($this->messages[$domain . self::INTL_DOMAIN_SUFFIX][$id])) {
111 return $this->messages[$domain . self::INTL_DOMAIN_SUFFIX][$id];
112 }
113 if (isset($this->messages[$domain][$id])) {
114 return $this->messages[$domain][$id];
115 }
116 if (null !== $this->fallbackCatalogue) {
117 return $this->fallbackCatalogue->get($id, $domain);
118 }
119 return $id;
120 }
121 /**
122 * {@inheritdoc}
123 */
124 public function replace(array $messages, string $domain = 'messages')
125 {
126 unset($this->messages[$domain], $this->messages[$domain . self::INTL_DOMAIN_SUFFIX]);
127 $this->add($messages, $domain);
128 }
129 /**
130 * {@inheritdoc}
131 */
132 public function add(array $messages, string $domain = 'messages')
133 {
134 $altDomain = str_ends_with($domain, self::INTL_DOMAIN_SUFFIX) ? substr($domain, 0, -\strlen(self::INTL_DOMAIN_SUFFIX)) : $domain . self::INTL_DOMAIN_SUFFIX;
135 foreach ($messages as $id => $message) {
136 unset($this->messages[$altDomain][$id]);
137 $this->messages[$domain][$id] = $message;
138 }
139 if ([] === ($this->messages[$altDomain] ?? null)) {
140 unset($this->messages[$altDomain]);
141 }
142 }
143 /**
144 * {@inheritdoc}
145 */
146 public function addCatalogue(MessageCatalogueInterface $catalogue)
147 {
148 if ($catalogue->getLocale() !== $this->locale) {
149 throw new LogicException(sprintf('Cannot add a catalogue for locale "%s" as the current locale for this catalogue is "%s".', $catalogue->getLocale(), $this->locale));
150 }
151 foreach ($catalogue->all() as $domain => $messages) {
152 if ($intlMessages = $catalogue->all($domain . self::INTL_DOMAIN_SUFFIX)) {
153 $this->add($intlMessages, $domain . self::INTL_DOMAIN_SUFFIX);
154 $messages = array_diff_key($messages, $intlMessages);
155 }
156 $this->add($messages, $domain);
157 }
158 foreach ($catalogue->getResources() as $resource) {
159 $this->addResource($resource);
160 }
161 if ($catalogue instanceof MetadataAwareInterface) {
162 $metadata = $catalogue->getMetadata('', '');
163 $this->addMetadata($metadata);
164 }
165 }
166 /**
167 * {@inheritdoc}
168 */
169 public function addFallbackCatalogue(MessageCatalogueInterface $catalogue)
170 {
171 // detect circular references
172 $c = $catalogue;
173 while ($c = $c->getFallbackCatalogue()) {
174 if ($c->getLocale() === $this->getLocale()) {
175 throw new LogicException(sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale()));
176 }
177 }
178 $c = $this;
179 do {
180 if ($c->getLocale() === $catalogue->getLocale()) {
181 throw new LogicException(sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale()));
182 }
183 foreach ($catalogue->getResources() as $resource) {
184 $c->addResource($resource);
185 }
186 } while ($c = $c->parent);
187 $catalogue->parent = $this;
188 $this->fallbackCatalogue = $catalogue;
189 foreach ($catalogue->getResources() as $resource) {
190 $this->addResource($resource);
191 }
192 }
193 /**
194 * {@inheritdoc}
195 */
196 public function getFallbackCatalogue()
197 {
198 return $this->fallbackCatalogue;
199 }
200 /**
201 * {@inheritdoc}
202 */
203 public function getResources()
204 {
205 return array_values($this->resources);
206 }
207 /**
208 * {@inheritdoc}
209 */
210 public function addResource(ResourceInterface $resource)
211 {
212 $this->resources[$resource->__toString()] = $resource;
213 }
214 /**
215 * {@inheritdoc}
216 */
217 public function getMetadata(string $key = '', string $domain = 'messages')
218 {
219 if ('' == $domain) {
220 return $this->metadata;
221 }
222 if (isset($this->metadata[$domain])) {
223 if ('' == $key) {
224 return $this->metadata[$domain];
225 }
226 if (isset($this->metadata[$domain][$key])) {
227 return $this->metadata[$domain][$key];
228 }
229 }
230 return null;
231 }
232 /**
233 * {@inheritdoc}
234 */
235 public function setMetadata(string $key, $value, string $domain = 'messages')
236 {
237 $this->metadata[$domain][$key] = $value;
238 }
239 /**
240 * {@inheritdoc}
241 */
242 public function deleteMetadata(string $key = '', string $domain = 'messages')
243 {
244 if ('' == $domain) {
245 $this->metadata = [];
246 } elseif ('' == $key) {
247 unset($this->metadata[$domain]);
248 } else {
249 unset($this->metadata[$domain][$key]);
250 }
251 }
252 /**
253 * Adds current values with the new values.
254 *
255 * @param array $values Values to add
256 */
257 private function addMetadata(array $values)
258 {
259 foreach ($values as $domain => $keys) {
260 foreach ($keys as $key => $value) {
261 $this->setMetadata($key, $value, $domain);
262 }
263 }
264 }
265 }
266