diff options
author | Stefan Giehl <stefan@matomo.org> | 2019-01-22 02:41:55 +0300 |
---|---|---|
committer | diosmosis <diosmosis@users.noreply.github.com> | 2019-01-22 02:41:55 +0300 |
commit | f60c92af236276a589acbf6a9f5ef27d9a39bb8d (patch) | |
tree | 5e50d5655e77663607ce58b869e49394da85dc16 /plugins/LanguagesManager | |
parent | 0975037aad828cc989a55c10ad5f8faff58b1d6a (diff) |
Exclude non core plugins from translation percentage calculation (#13981)
Diffstat (limited to 'plugins/LanguagesManager')
-rw-r--r-- | plugins/LanguagesManager/API.php | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/plugins/LanguagesManager/API.php b/plugins/LanguagesManager/API.php index e7993746fa..9801841def 100644 --- a/plugins/LanguagesManager/API.php +++ b/plugins/LanguagesManager/API.php @@ -15,6 +15,7 @@ use Piwik\Filesystem; use Piwik\Piwik; use Piwik\Cache as PiwikCache; use Piwik\Plugin\Manager as PluginManager; +use Piwik\Plugin\Manager; use Piwik\Translation\Loader\DevelopmentLoader; /** @@ -86,9 +87,11 @@ class API extends \Piwik\Plugin\API /** * Return information on translations (code, language, % translated, etc) * + * @param boolean $excludeNonCorePlugins excludes non core plugin from percentage calculation + * * @return array Array of arrays */ - public function getAvailableLanguagesInfo() + public function getAvailableLanguagesInfo($excludeNonCorePlugins=true) { $data = file_get_contents(PIWIK_INCLUDE_PATH . '/lang/en.json'); $englishTranslation = json_decode($data, true); @@ -97,9 +100,14 @@ class API extends \Piwik\Plugin\API $pluginFiles = glob(sprintf('%s/plugins/*/lang/en.json', PIWIK_INCLUDE_PATH)); foreach ($pluginFiles as $file) { - $data = file_get_contents($file); - $pluginTranslations = json_decode($data, true); - $englishTranslation = array_merge_recursive($englishTranslation, $pluginTranslations); + preg_match('/\/plugins\/([^\/]+)\/lang/i', $file, $matches); + $plugin = $matches[1]; + + if (!$excludeNonCorePlugins || Manager::getInstance()->isPluginBundledWithCore($plugin)) { + $data = file_get_contents($file); + $pluginTranslations = json_decode($data, true); + $englishTranslation = array_merge_recursive($englishTranslation, $pluginTranslations); + } } $filenames = $this->getAvailableLanguages(); @@ -112,9 +120,14 @@ class API extends \Piwik\Plugin\API $pluginFiles = glob(sprintf('%s/plugins/*/lang/%s.json', PIWIK_INCLUDE_PATH, $filename)); foreach ($pluginFiles as $file) { - $data = file_get_contents($file); - $pluginTranslations = json_decode($data, true); - $translations = array_merge_recursive($translations, $pluginTranslations); + preg_match('/\/plugins\/([^\/]+)\/lang/i', $file, $matches); + $plugin = $matches[1]; + + if (!$excludeNonCorePlugins || Manager::getInstance()->isPluginBundledWithCore($plugin)) { + $data = file_get_contents($file); + $pluginTranslations = json_decode($data, true); + $translations = array_merge_recursive($translations, $pluginTranslations); + } } $intersect = function ($array, $array2) { |