PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.5
Independent Analytics – WordPress Analytics Plugin v2.15.5
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / symfony / translation / Loader / QtFileLoader.php
independent-analytics / vendor / symfony / translation / Loader Last commit date
ArrayLoader.php 1 month ago CsvFileLoader.php 1 month ago FileLoader.php 1 month ago IcuDatFileLoader.php 1 month ago IcuResFileLoader.php 1 month ago IniFileLoader.php 1 month ago JsonFileLoader.php 1 month ago LoaderInterface.php 1 month ago MoFileLoader.php 1 month ago PhpFileLoader.php 1 month ago PoFileLoader.php 1 month ago QtFileLoader.php 1 month ago XliffFileLoader.php 1 month ago YamlFileLoader.php 1 month ago
QtFileLoader.php
68 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 IAWPSCOPED\Symfony\Component\Translation\Loader;
12
13 use IAWPSCOPED\Symfony\Component\Config\Resource\FileResource;
14 use IAWPSCOPED\Symfony\Component\Config\Util\XmlUtils;
15 use IAWPSCOPED\Symfony\Component\Translation\Exception\InvalidResourceException;
16 use IAWPSCOPED\Symfony\Component\Translation\Exception\NotFoundResourceException;
17 use IAWPSCOPED\Symfony\Component\Translation\Exception\RuntimeException;
18 use IAWPSCOPED\Symfony\Component\Translation\MessageCatalogue;
19 /**
20 * QtFileLoader loads translations from QT Translations XML files.
21 *
22 * @author Benjamin Eberlei <kontakt@beberlei.de>
23 * @internal
24 */
25 class QtFileLoader implements LoaderInterface
26 {
27 /**
28 * {@inheritdoc}
29 */
30 public function load(mixed $resource, string $locale, string $domain = 'messages') : MessageCatalogue
31 {
32 if (!\class_exists(XmlUtils::class)) {
33 throw new RuntimeException('Loading translations from the QT format requires the Symfony Config component.');
34 }
35 if (!\stream_is_local($resource)) {
36 throw new InvalidResourceException(\sprintf('This is not a local file "%s".', $resource));
37 }
38 if (!\file_exists($resource)) {
39 throw new NotFoundResourceException(\sprintf('File "%s" not found.', $resource));
40 }
41 try {
42 $dom = XmlUtils::loadFile($resource);
43 } catch (\InvalidArgumentException $e) {
44 throw new InvalidResourceException(\sprintf('Unable to load "%s".', $resource), $e->getCode(), $e);
45 }
46 $internalErrors = \libxml_use_internal_errors(\true);
47 \libxml_clear_errors();
48 $xpath = new \DOMXPath($dom);
49 $nodes = $xpath->evaluate('//TS/context/name[text()="' . $domain . '"]');
50 $catalogue = new MessageCatalogue($locale);
51 if (1 == $nodes->length) {
52 $translations = $nodes->item(0)->nextSibling->parentNode->parentNode->getElementsByTagName('message');
53 foreach ($translations as $translation) {
54 $translationValue = (string) $translation->getElementsByTagName('translation')->item(0)->nodeValue;
55 if (!empty($translationValue)) {
56 $catalogue->set((string) $translation->getElementsByTagName('source')->item(0)->nodeValue, $translationValue, $domain);
57 }
58 $translation = $translation->nextSibling;
59 }
60 if (\class_exists(FileResource::class)) {
61 $catalogue->addResource(new FileResource($resource));
62 }
63 }
64 \libxml_use_internal_errors($internalErrors);
65 return $catalogue;
66 }
67 }
68