diff options
Diffstat (limited to 'plugins/LanguagesManager/TranslationWriter/Filter/EncodedEntities.php')
-rw-r--r-- | plugins/LanguagesManager/TranslationWriter/Filter/EncodedEntities.php | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/plugins/LanguagesManager/TranslationWriter/Filter/EncodedEntities.php b/plugins/LanguagesManager/TranslationWriter/Filter/EncodedEntities.php index 492ad6953a..f63f35b2eb 100644 --- a/plugins/LanguagesManager/TranslationWriter/Filter/EncodedEntities.php +++ b/plugins/LanguagesManager/TranslationWriter/Filter/EncodedEntities.php @@ -13,6 +13,18 @@ use Piwik\Translate; class EncodedEntities extends FilterAbstract { + protected $baseTranslations = array(); + + /** + * Sets base translations + * + * @param array $baseTranslations + */ + public function __construct($baseTranslations = array()) + { + $this->baseTranslations = $baseTranslations; + } + /** * Decodes all encoded entities in the given translations * @@ -25,6 +37,11 @@ class EncodedEntities extends FilterAbstract foreach ($translations as $pluginName => $pluginTranslations) { foreach ($pluginTranslations as $key => $translation) { + if (isset($this->baseTranslations[$pluginName][$key]) && + $this->baseTranslations[$pluginName][$key] != Translate::clean($this->baseTranslations[$pluginName][$key])) { + continue; // skip if base translation already contains encoded entities + } + // remove encoded entities $decoded = Translate::clean($translation); if ($translation != $decoded) { |