@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Allow PhutilTranslator::translate() to return defaults

Summary: Allow PhutilTranslator::translate() to return defaults

Test Plan: Just check some strings returned correctly.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin, Zolli, epriestley

Projects: #localization

Maniphest Tasks: T6845

Differential Revision: https://secure.phabricator.com/D11121

+30 -2
+1 -1
src/applications/base/controller/PhabricatorController.php
··· 102 102 $translation = newv($translation, array()); 103 103 PhutilTranslator::getInstance() 104 104 ->setLanguage($translation->getLanguage()) 105 - ->addTranslations($translation->getTranslations()); 105 + ->addTranslations($translation->getCleanTranslations()); 106 106 } 107 107 108 108 $preferences = $user->loadPreferences();
+1 -1
src/infrastructure/env/PhabricatorEnv.php
··· 117 117 $translation = PhabricatorEnv::newObjectFromConfig('translation.provider'); 118 118 PhutilTranslator::getInstance() 119 119 ->setLanguage($translation->getLanguage()) 120 - ->addTranslations($translation->getTranslations()); 120 + ->addTranslations($translation->getCleanTranslations()); 121 121 } 122 122 123 123 private static function buildConfigurationSourceStack() {
+28
src/infrastructure/internationalization/translation/PhabricatorTranslation.php
··· 6 6 abstract public function getName(); 7 7 abstract public function getTranslations(); 8 8 9 + 10 + /** 11 + * Return the cleaned translation array. 12 + * 13 + * @return dict<string, wild> Translation map with empty translations removed. 14 + */ 15 + public function getCleanTranslations() { 16 + return $this->clean($this->getTranslations()); 17 + } 18 + 19 + 20 + /** 21 + * Removes NULL-valued translation keys from the translation map, to prevent 22 + * echoing out empty strings. 23 + * 24 + * @param dict<string, wild> Translation map, with empty translations. 25 + * @return dict<string, wild> Map with empty translations removed. 26 + */ 27 + protected function clean(array $translation_array) { 28 + foreach ($translation_array as $key => $translation_string) { 29 + if ($translation_string === null) { 30 + unset($translation_array[$key]); 31 + } 32 + } 33 + 34 + return $translation_array; 35 + } 36 + 9 37 }