Page MenuHomePhabricator

D11121.id26714.diff
No OneTemporary

D11121.id26714.diff

diff --git a/src/applications/base/controller/PhabricatorController.php b/src/applications/base/controller/PhabricatorController.php
--- a/src/applications/base/controller/PhabricatorController.php
+++ b/src/applications/base/controller/PhabricatorController.php
@@ -102,7 +102,7 @@
$translation = newv($translation, array());
PhutilTranslator::getInstance()
->setLanguage($translation->getLanguage())
- ->addTranslations($translation->getTranslations());
+ ->addTranslations($translation->getCleanTranslation());
}
$preferences = $user->loadPreferences();
diff --git a/src/infrastructure/env/PhabricatorEnv.php b/src/infrastructure/env/PhabricatorEnv.php
--- a/src/infrastructure/env/PhabricatorEnv.php
+++ b/src/infrastructure/env/PhabricatorEnv.php
@@ -117,7 +117,7 @@
$translation = PhabricatorEnv::newObjectFromConfig('translation.provider');
PhutilTranslator::getInstance()
->setLanguage($translation->getLanguage())
- ->addTranslations($translation->getTranslations());
+ ->addTranslations($translation->getCleanTranslation());
}
private static function buildConfigurationSourceStack() {
diff --git a/src/infrastructure/internationalization/translation/PhabricatorTranslation.php b/src/infrastructure/internationalization/translation/PhabricatorTranslation.php
--- a/src/infrastructure/internationalization/translation/PhabricatorTranslation.php
+++ b/src/infrastructure/internationalization/translation/PhabricatorTranslation.php
@@ -6,4 +6,30 @@
abstract public function getName();
abstract public function getTranslations();
+ /**
+ * Return the cleand translation array
+ *
+ * @return array
+ */
+ public function getCleanTranslation() {
+ return $this->clean($this->getTranslations());
+ }
+
+ /**
+ * Removes NULL values translation key from the translation to prevent
+ * echoing out empty strings.
+ *
+ * @param array $translation_array the translation array to be cleaned
+ * @return mixed
+ */
+ protected function clean($translation_array) {
+ foreach ($translation_array as $key => $translation_string) {
+ if ($translation_string === null) {
+ unset($translation_array[$key]);
+ }
+ }
+
+ return $translation_array;
+ }
+
}

File Metadata

Mime Type
text/plain
Expires
Mon, Apr 7, 1:37 AM (1 d, 15 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7386851
Default Alt Text
D11121.id26714.diff (2 KB)

Event Timeline