Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Giehl <stefan@matomo.org>2019-01-22 02:41:55 +0300
committerdiosmosis <diosmosis@users.noreply.github.com>2019-01-22 02:41:55 +0300
commitf60c92af236276a589acbf6a9f5ef27d9a39bb8d (patch)
tree5e50d5655e77663607ce58b869e49394da85dc16 /plugins/LanguagesManager
parent0975037aad828cc989a55c10ad5f8faff58b1d6a (diff)
Exclude non core plugins from translation percentage calculation (#13981)
Diffstat (limited to 'plugins/LanguagesManager')
-rw-r--r--plugins/LanguagesManager/API.php27
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) {