From 89ab2f67d7b81d90d918c6e74775bdbb6f14dc34 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Thu, 7 Oct 2021 16:34:59 -0700 Subject: [PATCH] GenericWorkflowMessage - Document `$tokenContext[locale]` --- .../GenericWorkflowMessage.php | 4 ++ .../Traits/LocalizationTrait.php | 50 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 Civi/WorkflowMessage/Traits/LocalizationTrait.php diff --git a/Civi/WorkflowMessage/GenericWorkflowMessage.php b/Civi/WorkflowMessage/GenericWorkflowMessage.php index 0c072a485e..05ba1cc7ee 100644 --- a/Civi/WorkflowMessage/GenericWorkflowMessage.php +++ b/Civi/WorkflowMessage/GenericWorkflowMessage.php @@ -15,6 +15,7 @@ namespace Civi\WorkflowMessage; use Civi\Schema\Traits\MagicGetterSetterTrait; use Civi\WorkflowMessage\Traits\AddressingTrait; use Civi\WorkflowMessage\Traits\FinalHelperTrait; +use Civi\WorkflowMessage\Traits\LocalizationTrait; use Civi\WorkflowMessage\Traits\ReflectiveWorkflowTrait; /** @@ -44,6 +45,9 @@ class GenericWorkflowMessage implements WorkflowMessageInterface { // Implement setTo(), setReplyTo(), etc use AddressingTrait; + // Implement setLocale(), etc + use LocalizationTrait; + /** * WorkflowMessage constructor. * diff --git a/Civi/WorkflowMessage/Traits/LocalizationTrait.php b/Civi/WorkflowMessage/Traits/LocalizationTrait.php new file mode 100644 index 0000000000..51aa90503f --- /dev/null +++ b/Civi/WorkflowMessage/Traits/LocalizationTrait.php @@ -0,0 +1,50 @@ +locale; + } + + /** + * @param string|null $locale + * @return $this + */ + public function setLocale(?string $locale) { + $this->locale = $locale; + return $this; + } + + protected function validateExtra_localization(&$errors) { + $allLangs = \CRM_Core_I18n::languages(); + if ($this->locale !== NULL && !isset($allLangs[$this->locale])) { + $errors[] = [ + 'severity' => 'error', + 'fields' => ['locale'], + 'name' => 'badLocale', + 'message' => ts('The given locale is not valid (%1)', [json_encode($this->locale)]), + ]; + } + } + +} -- 2.25.1