From 7f770e476e0509f68e0754a90de22205e3dfa1d2 Mon Sep 17 00:00:00 2001 From: "pieterjan.eilers" Date: Mon, 2 Sep 2024 13:54:57 +0200 Subject: [PATCH] options translation --- .../lang/english.additional.php | 51 +++++++++++++++---- .../realtimeregister/realtimeregister.php | 10 +++- .../src/Actions/Domains/CheckAvailability.php | 20 ++++++++ .../registrars/realtimeregister/src/App.php | 3 +- .../src/Cron/update_additionalfields_lang.php | 14 +++-- .../realtimeregister/src/LocalApi.php | 2 + .../src/Services/MetadataService.php | 24 ++++----- 7 files changed, 93 insertions(+), 31 deletions(-) diff --git a/modules/registrars/realtimeregister/lang/english.additional.php b/modules/registrars/realtimeregister/lang/english.additional.php index f98cdd0..31105ba 100644 --- a/modules/registrars/realtimeregister/lang/english.additional.php +++ b/modules/registrars/realtimeregister/lang/english.additional.php @@ -1,5 +1,4 @@ getTldPricing())[0]); + } + + $searchResult->setStatus(SearchResult::STATUS_UNKNOWN); + $resultList->append($searchResult); + + logActivity("Error while checking domain" . $query . ": " . $exception->getMessage()); + + return $resultList; + } } diff --git a/modules/registrars/realtimeregister/src/App.php b/modules/registrars/realtimeregister/src/App.php index 7c59911..9f96286 100644 --- a/modules/registrars/realtimeregister/src/App.php +++ b/modules/registrars/realtimeregister/src/App.php @@ -15,6 +15,7 @@ use SandwaveIo\RealtimeRegister\IsProxy; use SandwaveIo\RealtimeRegister\RealtimeRegister; + class App { public const NAME = 'realtimeregister'; @@ -145,7 +146,7 @@ public static function dispatch(string $action, array $params = [], callable $ca return static::instance()->dispatchTo($action, $params); } catch (\Throwable $exception) { if ($catch) { - return $catch($exception); + return $catch($exception, $params); } if ($exception instanceof ActionFailedException) { diff --git a/modules/registrars/realtimeregister/src/Cron/update_additionalfields_lang.php b/modules/registrars/realtimeregister/src/Cron/update_additionalfields_lang.php index c785457..155bcf4 100644 --- a/modules/registrars/realtimeregister/src/Cron/update_additionalfields_lang.php +++ b/modules/registrars/realtimeregister/src/Cron/update_additionalfields_lang.php @@ -10,9 +10,8 @@ ini_set('max_execution_time', 0); - $tlds = MetadataService::getAllTlds(); -$re = '/(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/'; +$regex = '/(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/'; $entry = "\$_LANG['%s'] = '%s';\n"; $lines = []; @@ -25,17 +24,24 @@ $label = $property['label']; if (strlen($label) > 70) { $name = str_replace(['-', '_'], ' ', $property['name']); - $label = ucfirst(strtolower(preg_replace($re, ' \0', $name))); + $label = ucfirst(strtolower(preg_replace($regex, ' \0', $name))); } $label = addcslashes($label, "'"); $description = addcslashes($property['description'], "'"); $langvar = MetadataService::toLangVar($tld, $property['name']); $lines[] = sprintf($entry, $langvar . '_label', $label); $lines[] = sprintf($entry, $langvar . '_description', $description); + + if ($property['values']) { + foreach ($property['values'] as $key => $value) { + $lines[] = sprintf($entry, $langvar . '_' . $key, $value); + } + } } $lines[] = "\n"; } - } catch (\Exception $ignored) { + } catch (\Exception $e) { + logActivity("Exception in update_additional_fields while getting metadata for " . $tld . ": " . $e->getMessage()); continue; } } diff --git a/modules/registrars/realtimeregister/src/LocalApi.php b/modules/registrars/realtimeregister/src/LocalApi.php index 66ee1a3..62f5ca1 100644 --- a/modules/registrars/realtimeregister/src/LocalApi.php +++ b/modules/registrars/realtimeregister/src/LocalApi.php @@ -107,5 +107,7 @@ public function getTldPricing() if ($result) { return $result['pricing']; } + + return null; } } diff --git a/modules/registrars/realtimeregister/src/Services/MetadataService.php b/modules/registrars/realtimeregister/src/Services/MetadataService.php index bd8c633..3db405d 100644 --- a/modules/registrars/realtimeregister/src/Services/MetadataService.php +++ b/modules/registrars/realtimeregister/src/Services/MetadataService.php @@ -121,7 +121,7 @@ public function getTldAdditionalFields(): array if ($properties) { foreach ($properties as $property) { $default = array_key_exists($property['name'], $current) ? $current[$property['name']] : null; - $tldAdditionalFields[] = self::propertyToAdditionalField($this->tld, $property, $default); + $tldAdditionalFields[] = $this->propertyToAdditionalField($property, $default); } } return ['fields' => $tldAdditionalFields, 'applicableFor' => $this->info->applicableFor]; @@ -154,10 +154,10 @@ public static function toLangVar(string $tld, string $property_name): string return sprintf('tld_%s_%s', strtolower($tld), preg_replace('/[^a-z0-9]/', '', strtolower($property_name))); } - private static function propertyToAdditionalField($tld, $property, $default = null): array + private function propertyToAdditionalField($property, $default = null): array { global $_LANG; - $langvar = self::toLangVar($tld, $property['name']); + $langvar = self::toLangVar($this->tld, $property['name']); $field = [ 'Name' => $property['name'], 'LangVar' => $langvar . '_label', @@ -173,7 +173,7 @@ private static function propertyToAdditionalField($tld, $property, $default = nu $field['Type'] = 'tickbox'; } else { $field['Type'] = 'dropdown'; - $field['Options'] = self::arrayToOptions($property['values'], $property['name']); + $field['Options'] = $this->arrayToOptions($property['values'], $property['name']); } } else { $field['Type'] = 'text'; @@ -202,26 +202,20 @@ public static function getPropertyBoolValue($propertyValues, $bool) return array_intersect($bool ? ['true', 'y'] : ['false', 'n'], array_keys($propertyValues))[0]; } - private static function arrayToOptions(array $propertyValues, string $propertyName): string + private function arrayToOptions(array $propertyValues, string $propertyName): string { global $_LANG; $options = []; foreach ($propertyValues as $key => $value) { - $translation = sprintf('tld_properties_%s', preg_replace('/[^a-z0-9_]/', '', strtolower($key))); - $translationKey = sprintf( - 'tld_properties_%s_%s', + 'tld_%s_%s_%s', + strtolower($this->tld), preg_replace('/[^a-z0-9_]/', '', strtolower($propertyName)), preg_replace('/[^a-z0-9_]/', '', strtolower($key)) ); - - if (!empty($_LANG[$translationKey])) { - $value = $_LANG[$translationKey]; - } elseif (!empty($_LANG[$translation])) { // Fallback for when people used old translation keys - $value = $_LANG[$translation]; - } - $options[] = self::strip($key) . '|' . self::strip($value); + + $options[] = self::strip($key) . '|' . self::strip($_LANG[$translationKey]); } return ',' . implode(',', $options); }