diff options
Diffstat (limited to 'core/Translate/Filter/EncodedEntities.php')
-rw-r--r-- | core/Translate/Filter/EncodedEntities.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/core/Translate/Filter/EncodedEntities.php b/core/Translate/Filter/EncodedEntities.php new file mode 100644 index 0000000000..4a8b757c1f --- /dev/null +++ b/core/Translate/Filter/EncodedEntities.php @@ -0,0 +1,49 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + * @category Piwik + * @package Piwik + */ + +namespace Piwik\Translate\Filter; + +use Piwik\Translate\Filter\FilterAbstract; +use Piwik\Translate; + +/** + * @package Piwik + * @subpackage Piwik_Translate + */ +class EncodedEntities extends FilterAbstract +{ + /** + * Decodes all encoded entities in the given translations + * + * @param array $translations + * + * @return array filtered translations + * + */ + public function filter($translations) + { + foreach ($translations AS $pluginName => $pluginTranslations) { + foreach ($pluginTranslations AS $key => $translation) { + + // remove encoded entities + $decoded = Translate::clean($translation); + if ($translation != $decoded) { + $this->_filteredData[$pluginName][$key] = $translation; + $translations[$pluginName][$key] = $decoded; + continue; + } + + } + } + + return $translations; + } +}
\ No newline at end of file |