PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.0.3
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.0.3
5.13.0 5.12.1 5.12.0 5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / Translation / Loader / DevelopmentLoader.php
matomo / app / core / Translation / Loader Last commit date
DevelopmentLoader.php 2 years ago JsonFileLoader.php 2 years ago LoaderCache.php 2 years ago LoaderInterface.php 2 years ago
DevelopmentLoader.php
62 lines
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 */
9 namespace Piwik\Translation\Loader;
10
11 /**
12 * Loads a pseudo-language for developers where translation are equal to translation ids.
13 */
14 class DevelopmentLoader implements \Piwik\Translation\Loader\LoaderInterface
15 {
16 const LANGUAGE_ID = 'dev';
17 /**
18 * Decorated loader.
19 *
20 * @var LoaderInterface
21 */
22 private $loader;
23 /**
24 * @var string
25 */
26 private $fallbackLanguage = 'en';
27 /**
28 * @param LoaderInterface $loader Decorate another loader to add the pseudo-language.
29 */
30 public function __construct(\Piwik\Translation\Loader\LoaderInterface $loader)
31 {
32 $this->loader = $loader;
33 }
34 /**
35 * {@inheritdoc}
36 */
37 public function load($language, array $directories)
38 {
39 if ($language !== self::LANGUAGE_ID) {
40 return $this->loader->load($language, $directories);
41 }
42 return $this->getDevelopmentTranslations($directories);
43 }
44 private function getDevelopmentTranslations(array $directories)
45 {
46 $fallbackTranslations = $this->loader->load($this->fallbackLanguage, $directories);
47 $translations = array();
48 foreach ($fallbackTranslations as $section => $sectionFallbackTranslations) {
49 $translationIds = array_keys($sectionFallbackTranslations);
50 $sectionTranslations = $this->prefixTranslationsWithSection($section, $translationIds);
51 $translations[$section] = array_combine($translationIds, $sectionTranslations);
52 }
53 return $translations;
54 }
55 private function prefixTranslationsWithSection($section, $translationIds)
56 {
57 return array_map(function ($translation) use($section) {
58 return $section . '_' . $translation;
59 }, $translationIds);
60 }
61 }
62