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>2022-03-14 23:36:04 +0300
committerGitHub <noreply@github.com>2022-03-14 23:36:04 +0300
commit6712b4f7ee71a53187b19bd3a066d2c57da7e155 (patch)
tree0d4fc517c470efd2e0e8a08eba725259496a6afa /plugins
parentb183ce903f3e24c97ad929c77aff99e1ef93ab11 (diff)
Adds GitHub action to automatically update our Intl data from CLDR (#18842)
* make cldr version an optional parameter & fix script for PHP8 * adds action to update intl data
Diffstat (limited to 'plugins')
-rw-r--r--plugins/Intl/Commands/GenerateIntl.php33
1 files changed, 18 insertions, 15 deletions
diff --git a/plugins/Intl/Commands/GenerateIntl.php b/plugins/Intl/Commands/GenerateIntl.php
index 555190ef91..ec035b40bb 100644
--- a/plugins/Intl/Commands/GenerateIntl.php
+++ b/plugins/Intl/Commands/GenerateIntl.php
@@ -40,6 +40,7 @@ class GenerateIntl extends ConsoleCommand
{
$this->setName('translations:generate-intl-data')
->addOption('language', 'l', InputOption::VALUE_OPTIONAL, 'language that should be fetched')
+ ->addOption('cldr-version', '', InputOption::VALUE_OPTIONAL, 'CLDR version to use for update')
->setDescription('Generates Intl-data for Piwik');
}
@@ -70,15 +71,17 @@ class GenerateIntl extends ConsoleCommand
$matomoLanguages = [$input->getOption('language')];
}
+ if ($input->getOption('cldr-version')) {
+ $this->CLDRVersion = $input->getOption('cldr-version');
+ }
+
$aliasesUrl = 'https://raw.githubusercontent.com/unicode-org/cldr-json/%s/cldr-json/cldr-core/supplemental/aliases.json';
$aliasesData = Http::fetchRemoteFile(sprintf($aliasesUrl, $this->CLDRVersion));
$aliasesData = json_decode($aliasesData, true);
- $aliasesData = $aliasesData['supplemental']['metadata']['alias']['languageAlias'];
+ $aliasesData = $aliasesData['supplemental']['metadata']['alias']['languageAlias'] ?? [];
$this->checkCurrencies($output);
- $writePath = Filesystem::getPathToPiwikRoot() . '/plugins/Intl/lang/%s.json';
-
foreach ($matomoLanguages AS $langCode) {
if ($langCode == 'dev') {
@@ -150,7 +153,7 @@ class GenerateIntl extends ConsoleCommand
$currencyData = Http::fetchRemoteFile(sprintf($currencyDataUrl, $this->CLDRVersion, 'en'));
$currencyData = json_decode($currencyData, true);
- $currencyData = $currencyData['supplemental']['currencyData']['region'];
+ $currencyData = $currencyData['supplemental']['currencyData']['region'] ?? [];
$cldrCurrencies = array();
foreach ($currencyData as $region) {
@@ -187,7 +190,7 @@ class GenerateIntl extends ConsoleCommand
if (empty($languageData)) {
$languageData = Http::fetchRemoteFile(sprintf($languageDataUrl, $this->CLDRVersion, 'en'));
$languageData = json_decode($languageData, true);
- $languageData = $languageData['main']['en']['localeDisplayNames']['languages'];
+ $languageData = $languageData['main']['en']['localeDisplayNames']['languages'] ?? [];
}
if (array_key_exists($code, $languageData) && $languageData[$code] != $code) {
@@ -212,7 +215,7 @@ class GenerateIntl extends ConsoleCommand
try {
$territoryData = Http::fetchRemoteFile(sprintf($territoryDataUrl, $this->CLDRVersion, 'en'));
$territoryData = json_decode($territoryData, true);
- $territoryData = $territoryData['main']['en']['localeDisplayNames']['territories'];
+ $territoryData = $territoryData['main']['en']['localeDisplayNames']['territories'] ?? [];
if (array_key_exists($territory, $territoryData)) {
$englishName .= ' ('.$territoryData[$territory].')';
@@ -241,7 +244,7 @@ class GenerateIntl extends ConsoleCommand
try {
$languageData = Http::fetchRemoteFile(sprintf($languageDataUrl, $this->CLDRVersion, $requestLangCode));
$languageData = json_decode($languageData, true);
- $languageData = $languageData['main'][$requestLangCode]['localeDisplayNames']['languages'];
+ $languageData = $languageData['main'][$requestLangCode]['localeDisplayNames']['languages'] ?? [];
if (empty($languageData)) {
throw new \Exception();
@@ -273,7 +276,7 @@ class GenerateIntl extends ConsoleCommand
try {
$layoutData = Http::fetchRemoteFile(sprintf($layoutDirectionUrl, $this->CLDRVersion, $requestLangCode));
$layoutData = json_decode($layoutData, true);
- $layoutData = $layoutData['main'][$requestLangCode]['layout']['orientation'];
+ $layoutData = $layoutData['main'][$requestLangCode]['layout']['orientation'] ?? [];
if (empty($layoutData)) {
throw new \Exception();
@@ -311,7 +314,7 @@ class GenerateIntl extends ConsoleCommand
try {
$territoryData = Http::fetchRemoteFile(sprintf($territoryDataUrl, $this->CLDRVersion, $requestLangCode));
$territoryData = json_decode($territoryData, true);
- $territoryData = $territoryData['main'][$requestLangCode]['localeDisplayNames']['territories'];
+ $territoryData = $territoryData['main'][$requestLangCode]['localeDisplayNames']['territories'] ?? [];
if (empty($territoryData)) {
throw new \Exception();
@@ -342,7 +345,7 @@ class GenerateIntl extends ConsoleCommand
try {
$calendarData = Http::fetchRemoteFile(sprintf($calendarDataUrl, $this->CLDRVersion, $requestLangCode));
$calendarData = json_decode($calendarData, true);
- $calendarData = $calendarData['main'][$requestLangCode]['dates']['calendars']['gregorian'];
+ $calendarData = $calendarData['main'][$requestLangCode]['dates']['calendars']['gregorian'] ?? [];
if (empty($calendarData)) {
throw new \Exception();
@@ -418,7 +421,7 @@ class GenerateIntl extends ConsoleCommand
try {
$dateFieldData = Http::fetchRemoteFile(sprintf($dateFieldsUrl, $this->CLDRVersion, $requestLangCode));
$dateFieldData = json_decode($dateFieldData, true);
- $dateFieldData = $dateFieldData['main'][$requestLangCode]['dates']['fields'];
+ $dateFieldData = $dateFieldData['main'][$requestLangCode]['dates']['fields'] ?? [];
if (empty($dateFieldData)) {
throw new \Exception();
@@ -445,7 +448,7 @@ class GenerateIntl extends ConsoleCommand
try {
$timeZoneData = Http::fetchRemoteFile(sprintf($timeZoneDataUrl, $this->CLDRVersion, $requestLangCode));
$timeZoneData = json_decode($timeZoneData, true);
- $timeZoneData = $timeZoneData['main'][$requestLangCode]['dates']['timeZoneNames'];
+ $timeZoneData = $timeZoneData['main'][$requestLangCode]['dates']['timeZoneNames'] ?? [];
if (empty($timeZoneData)) {
throw new \Exception();
@@ -508,7 +511,7 @@ class GenerateIntl extends ConsoleCommand
try {
$unitsData = Http::fetchRemoteFile(sprintf($unitsUrl, $this->CLDRVersion, $requestLangCode));
$unitsData = json_decode($unitsData, true);
- $unitsData = $unitsData['main'][$requestLangCode]['numbers'];
+ $unitsData = $unitsData['main'][$requestLangCode]['numbers'] ?? [];
if (empty($unitsData)) {
throw new \Exception();
@@ -538,7 +541,7 @@ class GenerateIntl extends ConsoleCommand
try {
$unitsData = Http::fetchRemoteFile(sprintf($unitsUrl, $this->CLDRVersion, $requestLangCode));
$unitsData = json_decode($unitsData, true);
- $unitsData = $unitsData['main'][$requestLangCode]['units'];
+ $unitsData = $unitsData['main'][$requestLangCode]['units'] ?? [];
if (empty($unitsData)) {
throw new \Exception();
@@ -596,7 +599,7 @@ class GenerateIntl extends ConsoleCommand
try {
$currencyData = Http::fetchRemoteFile(sprintf($currenciesUrl, $this->CLDRVersion, $requestLangCode));
$currencyData = json_decode($currencyData, true);
- $currencyData = $currencyData['main'][$requestLangCode]['numbers']['currencies'];
+ $currencyData = $currencyData['main'][$requestLangCode]['numbers']['currencies'] ?? [];
if (empty($currencyData)) {
throw new \Exception();