diff --git a/scripts/symbols/import_repository_symbols.php b/scripts/symbols/import_repository_symbols.php --- a/scripts/symbols/import_repository_symbols.php +++ b/scripts/symbols/import_repository_symbols.php @@ -102,7 +102,7 @@ $repository->getPHID()); } - echo pht('Loading %s symbols...', new PhutilNumber(count($sql))), "\n"; + echo pht('Loading %s symbols...', phutil_count($sql)), "\n"; foreach (array_chunk($sql, 128) as $chunk) { queryfx( $conn_w, diff --git a/src/applications/auth/controller/config/PhabricatorAuthListController.php b/src/applications/auth/controller/config/PhabricatorAuthListController.php --- a/src/applications/auth/controller/config/PhabricatorAuthListController.php +++ b/src/applications/auth/controller/config/PhabricatorAuthListController.php @@ -109,7 +109,7 @@ 'only users with a verified email address at one of these %s '. 'allowed domain(s) will be able to register an account: %s', $domains_link, - new PhutilNumber(count($domains_value)), + phutil_count($domains_value), phutil_tag('strong', array(), implode(', ', $domains_value))); } else { $issues[] = pht( diff --git a/src/applications/auth/management/PhabricatorAuthManagementRefreshWorkflow.php b/src/applications/auth/management/PhabricatorAuthManagementRefreshWorkflow.php --- a/src/applications/auth/management/PhabricatorAuthManagementRefreshWorkflow.php +++ b/src/applications/auth/management/PhabricatorAuthManagementRefreshWorkflow.php @@ -78,7 +78,7 @@ "%s\n", pht( 'Found %s account(s) to refresh.', - new PhutilNumber(count($accounts)))); + phutil_count($accounts))); } $providers = PhabricatorAuthProvider::getAllEnabledProviders(); diff --git a/src/applications/celerity/management/CelerityManagementMapWorkflow.php b/src/applications/celerity/management/CelerityManagementMapWorkflow.php --- a/src/applications/celerity/management/CelerityManagementMapWorkflow.php +++ b/src/applications/celerity/management/CelerityManagementMapWorkflow.php @@ -18,7 +18,7 @@ $this->log( pht( 'Rebuilding %d resource source(s).', - new PhutilNumber(count($resources_map)))); + phutil_count($resources_map))); foreach ($resources_map as $name => $resources) { $this->rebuildResources($resources); diff --git a/src/applications/config/check/PhabricatorDaemonsSetupCheck.php b/src/applications/config/check/PhabricatorDaemonsSetupCheck.php --- a/src/applications/config/check/PhabricatorDaemonsSetupCheck.php +++ b/src/applications/config/check/PhabricatorDaemonsSetupCheck.php @@ -115,7 +115,7 @@ $list_section = array( pht( 'The configurations differ in the following %s way(s):', - new PhutilNumber(count($issues))), + phutil_count($issues)), phutil_tag( 'ul', array(), diff --git a/src/applications/config/check/PhabricatorPathSetupCheck.php b/src/applications/config/check/PhabricatorPathSetupCheck.php --- a/src/applications/config/check/PhabricatorPathSetupCheck.php +++ b/src/applications/config/check/PhabricatorPathSetupCheck.php @@ -111,7 +111,7 @@ $this ->newIssue('config.PATH.'.$digest) - ->setName(pht('$PATH Component Unusable')) + ->setName(pht('%s Component Unusable', '$PATH')) ->setSummary( pht( 'A component of the configured PATH can not be used by '. diff --git a/src/applications/config/view/PhabricatorSetupIssueView.php b/src/applications/config/view/PhabricatorSetupIssueView.php --- a/src/applications/config/view/PhabricatorSetupIssueView.php +++ b/src/applications/config/view/PhabricatorSetupIssueView.php @@ -387,7 +387,7 @@ array(), pht( 'PHP also loaded these %s configuration file(s):', - new PhutilNumber(count($more_loc)))); + phutil_count($more_loc))); $info[] = phutil_tag( 'pre', array(), diff --git a/src/applications/conpherence/conduit/ConpherenceUpdateThreadConduitAPIMethod.php b/src/applications/conpherence/conduit/ConpherenceUpdateThreadConduitAPIMethod.php --- a/src/applications/conpherence/conduit/ConpherenceUpdateThreadConduitAPIMethod.php +++ b/src/applications/conpherence/conduit/ConpherenceUpdateThreadConduitAPIMethod.php @@ -29,14 +29,13 @@ protected function defineErrorTypes() { return array( 'ERR_USAGE_NO_ROOM_ID' => pht( - 'You must specify a room id or room phid to query transactions '. - 'from.'), + 'You must specify a room ID or room PHID to query transactions from.'), 'ERR_USAGE_ROOM_NOT_FOUND' => pht( - 'room does not exist or logged in user can not see it.'), + 'Room does not exist or logged in user can not see it.'), 'ERR_USAGE_ONLY_SELF_REMOVE' => pht( 'Only a user can remove themselves from a room.'), 'ERR_USAGE_NO_UPDATES' => pht( - 'You must specify data that actually updates the conpherence.'), + 'You must specify data that actually updates the Conpherence.'), ); } diff --git a/src/applications/conpherence/controller/ConpherenceUpdateController.php b/src/applications/conpherence/controller/ConpherenceUpdateController.php --- a/src/applications/conpherence/controller/ConpherenceUpdateController.php +++ b/src/applications/conpherence/controller/ConpherenceUpdateController.php @@ -325,8 +325,7 @@ $remove_person = $request->getStr('remove_person'); $participants = $conpherence->getParticipants(); - $message = pht( - 'Are you sure you want to leave this room?'); + $message = pht('Are you sure you want to leave this room?'); $test_conpherence = clone $conpherence; $test_conpherence->attachParticipants(array()); if (!PhabricatorPolicyFilter::hasCapability( @@ -334,17 +333,14 @@ $test_conpherence, PhabricatorPolicyCapability::CAN_VIEW)) { if (count($participants) == 1) { - $message .= pht( - ' The room will be inaccessible forever and ever.'); + $message .= ' '.pht('The room will be inaccessible forever and ever.'); } else { - $message .= pht( - ' Someone else in the room can add you back later.'); + $message .= ' '.pht('Someone else in the room can add you back later.'); } } $body = phutil_tag( 'p', - array( - ), + array(), $message); require_celerity_resource('conpherence-update-css'); diff --git a/src/applications/conpherence/storage/ConpherenceTransaction.php b/src/applications/conpherence/storage/ConpherenceTransaction.php --- a/src/applications/conpherence/storage/ConpherenceTransaction.php +++ b/src/applications/conpherence/storage/ConpherenceTransaction.php @@ -77,14 +77,14 @@ count($rem)); } else if ($add) { $title = pht( - '%s added %d files(s).', + '%s added %s files(s).', $this->renderHandleLink($author_phid), - count($add)); + phutil_count($add)); } else { $title = pht( - '%s removed %d file(s).', + '%s removed %s file(s).', $this->renderHandleLink($author_phid), - count($rem)); + phutil_count($rem)); } return $title; break; diff --git a/src/applications/daemon/management/PhabricatorDaemonManagementWorkflow.php b/src/applications/daemon/management/PhabricatorDaemonManagementWorkflow.php --- a/src/applications/daemon/management/PhabricatorDaemonManagementWorkflow.php +++ b/src/applications/daemon/management/PhabricatorDaemonManagementWorkflow.php @@ -226,7 +226,9 @@ // Retry without sudo $console->writeOut( "%s\n", - pht('sudo command failed. Starting daemon as current user.')); + pht( + '%s command failed. Starting daemon as current user.', + 'sudo')); $this->executeDaemonLaunchCommand( $command, $daemon_script_dir, @@ -265,8 +267,9 @@ if (preg_match('/sudo: a password is required/', $stderr)) { throw new Exception( pht( - 'sudo exited with a zero exit code, but emitted output '. - 'consistent with failure under OSX.')); + '%s exited with a zero exit code, but emitted output '. + 'consistent with failure under OSX.', + 'sudo')); } } } diff --git a/src/applications/differential/customfield/DifferentialJIRAIssuesField.php b/src/applications/differential/customfield/DifferentialJIRAIssuesField.php --- a/src/applications/differential/customfield/DifferentialJIRAIssuesField.php +++ b/src/applications/differential/customfield/DifferentialJIRAIssuesField.php @@ -218,21 +218,21 @@ return pht( '%s updated JIRA issue(s): added %d %s; removed %d %s.', $xaction->renderHandleLink($author_phid), - new PhutilNumber(count($add)), + phutil_count($add), implode(', ', $add), - new PhutilNumber(count($rem)), + phutil_count($rem), implode(', ', $rem)); } else if ($add) { return pht( '%s added %d JIRA issue(s): %s.', $xaction->renderHandleLink($author_phid), - new PhutilNumber(count($add)), + phutil_count($add), implode(', ', $add)); } else if ($rem) { return pht( '%s removed %d JIRA issue(s): %s.', $xaction->renderHandleLink($author_phid), - new PhutilNumber(count($rem)), + phutil_count($rem), implode(', ', $rem)); } diff --git a/src/applications/differential/customfield/DifferentialUnitField.php b/src/applications/differential/customfield/DifferentialUnitField.php --- a/src/applications/differential/customfield/DifferentialUnitField.php +++ b/src/applications/differential/customfield/DifferentialUnitField.php @@ -125,7 +125,7 @@ )) + $groups; foreach ($groups as $result => $group) { - $count = new PhutilNumber(count($group)); + $count = phutil_count($group); switch ($result) { case ArcanistUnitTestResult::RESULT_PASS: $note[] = pht('%s Passed Test(s)', $count); diff --git a/src/applications/differential/herald/DifferentialReviewersHeraldAction.php b/src/applications/differential/herald/DifferentialReviewersHeraldAction.php --- a/src/applications/differential/herald/DifferentialReviewersHeraldAction.php +++ b/src/applications/differential/herald/DifferentialReviewersHeraldAction.php @@ -135,12 +135,12 @@ case self::DO_ADD_REVIEWERS: return pht( 'Added %s reviewer(s): %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); case self::DO_ADD_BLOCKING_REVIEWERS: return pht( 'Added %s blocking reviewer(s): %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); } } diff --git a/src/applications/differential/mail/DifferentialCreateMailReceiver.php b/src/applications/differential/mail/DifferentialCreateMailReceiver.php --- a/src/applications/differential/mail/DifferentialCreateMailReceiver.php +++ b/src/applications/differential/mail/DifferentialCreateMailReceiver.php @@ -81,14 +81,14 @@ } else { $subject = pht( 'Diff creation failed; see body for %s error(s).', - new PhutilNumber(count($errors))); + phutil_count($errors)); } $body = new PhabricatorMetaMTAMailBody(); $body->addRawSection($subject); if (count($diffs)) { $text_body = ''; $html_body = array(); - $body_label = pht('%s DIFF LINK(S)', new PhutilNumber(count($diffs))); + $body_label = pht('%s DIFF LINK(S)', phutil_count($diffs)); foreach ($diffs as $filename => $diff_uri) { $text_body .= $filename.': '.$diff_uri."\n"; $html_body[] = phutil_tag( @@ -105,7 +105,7 @@ if (count($errors)) { $body_section = new PhabricatorMetaMTAMailSection(); - $body_label = pht('%s ERROR(S)', new PhutilNumber(count($errors))); + $body_label = pht('%s ERROR(S)', phutil_count($errors)); foreach ($errors as $error) { $body_section->addFragment($error); } diff --git a/src/applications/diffusion/herald/DiffusionAuditorsHeraldAction.php b/src/applications/diffusion/herald/DiffusionAuditorsHeraldAction.php --- a/src/applications/diffusion/herald/DiffusionAuditorsHeraldAction.php +++ b/src/applications/diffusion/herald/DiffusionAuditorsHeraldAction.php @@ -68,7 +68,7 @@ case self::DO_ADD_AUDITORS: return pht( 'Added %s auditor(s): %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); } } diff --git a/src/applications/diviner/atomizer/DivinerPHPAtomizer.php b/src/applications/diviner/atomizer/DivinerPHPAtomizer.php --- a/src/applications/diviner/atomizer/DivinerPHPAtomizer.php +++ b/src/applications/diviner/atomizer/DivinerPHPAtomizer.php @@ -152,8 +152,8 @@ $atom->addWarning( pht( 'This call takes %s parameter(s), but only %s are documented.', - new PhutilNumber(count($params)), - new PhutilNumber(count($docs)))); + phutil_count($params), + phutil_count($docs))); } } diff --git a/src/applications/diviner/publisher/DivinerPublisher.php b/src/applications/diviner/publisher/DivinerPublisher.php --- a/src/applications/diviner/publisher/DivinerPublisher.php +++ b/src/applications/diviner/publisher/DivinerPublisher.php @@ -140,14 +140,14 @@ "%s\n", pht( 'Deleting %s document(s).', - new PhutilNumber(count($deleted)))); + phutil_count($deleted))); $this->deleteDocumentsByHash($deleted); $console->writeOut( "%s\n", pht( 'Creating %s document(s).', - new PhutilNumber(count($created)))); + phutil_count($created))); $this->createDocumentsByHash($created); } diff --git a/src/applications/diviner/workflow/DivinerGenerateWorkflow.php b/src/applications/diviner/workflow/DivinerGenerateWorkflow.php --- a/src/applications/diviner/workflow/DivinerGenerateWorkflow.php +++ b/src/applications/diviner/workflow/DivinerGenerateWorkflow.php @@ -69,7 +69,7 @@ '.book', '--book ')); } else { - $this->log(pht('Found %s book(s).', new PhutilNumber(count($books)))); + $this->log(pht('Found %s book(s).', phutil_count($books))); } } @@ -224,26 +224,26 @@ $this->log( pht( 'Found %s file(s) in project.', - new PhutilNumber(count($file_hashes)))); + phutil_count($file_hashes))); $this->deleteDeadAtoms($file_hashes); $atomize = $this->getFilesToAtomize($file_hashes); $this->log( pht( 'Found %s unatomized, uncached file(s).', - new PhutilNumber(count($atomize)))); + phutil_count($atomize))); $file_atomizers = $this->getAtomizersForFiles($atomize); $this->log( pht( 'Found %s file(s) to atomize.', - new PhutilNumber(count($file_atomizers)))); + phutil_count($file_atomizers))); $futures = $this->buildAtomizerFutures($file_atomizers); $this->log( pht( 'Atomizing %s file(s).', - new PhutilNumber(count($file_atomizers)))); + phutil_count($file_atomizers))); if ($futures) { $this->resolveAtomizerFutures($futures, $file_hashes); @@ -452,7 +452,7 @@ $this->log( pht( 'Found %s obsolete atom(s) in graph.', - new PhutilNumber(count($del_atoms)))); + phutil_count($del_atoms))); foreach ($del_atoms as $nhash => $shash) { $atom_cache->deleteSymbol($nhash); @@ -466,7 +466,7 @@ $this->log( pht( 'Found %s new atom(s) in graph.', - new PhutilNumber(count($new_atoms)))); + phutil_count($new_atoms))); foreach ($new_atoms as $nhash => $ignored) { $shash = $this->computeSymbolHash($nhash); @@ -505,7 +505,7 @@ $this->log( pht( 'Found %s affected atoms.', - new PhutilNumber(count($dirty_nhashes)))); + phutil_count($dirty_nhashes))); foreach ($dirty_nhashes as $nhash => $ignored) { $atom_cache->addGraph($nhash, $this->computeGraphHash($nhash)); diff --git a/src/applications/doorkeeper/option/PhabricatorAsanaConfigOptions.php b/src/applications/doorkeeper/option/PhabricatorAsanaConfigOptions.php --- a/src/applications/doorkeeper/option/PhabricatorAsanaConfigOptions.php +++ b/src/applications/doorkeeper/option/PhabricatorAsanaConfigOptions.php @@ -96,8 +96,11 @@ } $out = array(); - $out[] = pht('| Workspace ID | Workspace Name |'); - $out[] = '| ------------ | -------------- |'; + $out[] = sprintf( + '| %s | %s |', + pht('Workspace ID'), + pht('Workspace Name')); + $out[] = '| ------------ | -------------- |'; foreach ($workspaces as $workspace) { $out[] = sprintf('| `%s` | `%s` |', $workspace['id'], $workspace['name']); } diff --git a/src/applications/drydock/worker/DrydockAllocatorWorker.php b/src/applications/drydock/worker/DrydockAllocatorWorker.php --- a/src/applications/drydock/worker/DrydockAllocatorWorker.php +++ b/src/applications/drydock/worker/DrydockAllocatorWorker.php @@ -83,7 +83,9 @@ DrydockResourceStatus::STATUS_OPEN); $this->logToDrydock( - pht('Found %d Open Resource(s)', count($pool))); + pht( + 'Found %s Open Resource(s)', + phutil_count($pool))); $candidates = array(); foreach ($pool as $key => $candidate) { @@ -100,7 +102,10 @@ } } - $this->logToDrydock(pht('%d Open Resource(s) Remain', count($candidates))); + $this->logToDrydock( + pht( + '%s Open Resource(s) Remain', + phutil_count($candidates))); $resource = null; if ($candidates) { @@ -120,7 +125,9 @@ ::getAllBlueprintImplementationsForResource($type); $this->logToDrydock( - pht('Found %d Blueprints', count($blueprints))); + pht( + 'Found %s Blueprint(s)', + phutil_count($blueprints))); foreach ($blueprints as $key => $candidate_blueprint) { if (!$candidate_blueprint->isEnabled()) { @@ -130,7 +137,9 @@ } $this->logToDrydock( - pht('%d Blueprints Enabled', count($blueprints))); + pht( + '%s Blueprint(s) Enabled', + phutil_count($blueprints))); foreach ($blueprints as $key => $candidate_blueprint) { if (!$candidate_blueprint->canAllocateMoreResources($pool)) { @@ -140,7 +149,9 @@ } $this->logToDrydock( - pht('%d Blueprints Can Allocate', count($blueprints))); + pht( + '%s Blueprint(s) Can Allocate', + phutil_count($blueprints))); if (!$blueprints) { $lease->setStatus(DrydockLeaseStatus::STATUS_BROKEN); diff --git a/src/applications/files/storage/PhabricatorFile.php b/src/applications/files/storage/PhabricatorFile.php --- a/src/applications/files/storage/PhabricatorFile.php +++ b/src/applications/files/storage/PhabricatorFile.php @@ -557,7 +557,7 @@ 'Failed to fetch remote URI "%s" after following %s redirect(s) '. '(%s): %s', $uri, - new PhutilNumber(count($redirects)), + phutil_count($redirects), implode(' > ', array_keys($redirects)), $ex->getMessage()), $ex); diff --git a/src/applications/harbormaster/conduit/HarbormasterSendMessageConduitAPIMethod.php b/src/applications/harbormaster/conduit/HarbormasterSendMessageConduitAPIMethod.php --- a/src/applications/harbormaster/conduit/HarbormasterSendMessageConduitAPIMethod.php +++ b/src/applications/harbormaster/conduit/HarbormasterSendMessageConduitAPIMethod.php @@ -37,7 +37,7 @@ $unit_spec = HarbormasterBuildUnitMessage::getParameterSpec(); foreach ($unit_spec as $key => $parameter) { $type = idx($parameter, 'type'); - $type = str_replace('|', pht(' or '), $type); + $type = str_replace('|', ' '.pht('or').' ', $type); $description = idx($parameter, 'description'); $rows[] = "| `{$key}` | //{$type}// | {$description} |"; } @@ -61,7 +61,7 @@ $lint_spec = HarbormasterBuildLintMessage::getParameterSpec(); foreach ($lint_spec as $key => $parameter) { $type = idx($parameter, 'type'); - $type = str_replace('|', pht(' or '), $type); + $type = str_replace('|', ' '.pht('or').' ', $type); $description = idx($parameter, 'description'); $rows[] = "| `{$key}` | //{$type}// | {$description} |"; } diff --git a/src/applications/harbormaster/controller/HarbormasterBuildViewController.php b/src/applications/harbormaster/controller/HarbormasterBuildViewController.php --- a/src/applications/harbormaster/controller/HarbormasterBuildViewController.php +++ b/src/applications/harbormaster/controller/HarbormasterBuildViewController.php @@ -374,7 +374,7 @@ array( pht( '%s empty logs are hidden.', - new PhutilNumber(count($empty_logs))), + phutil_count($empty_logs)), ' ', javelin_tag( 'a', diff --git a/src/applications/harbormaster/controller/HarbormasterStepEditController.php b/src/applications/harbormaster/controller/HarbormasterStepEditController.php --- a/src/applications/harbormaster/controller/HarbormasterStepEditController.php +++ b/src/applications/harbormaster/controller/HarbormasterStepEditController.php @@ -223,7 +223,10 @@ 'The following variables can be used in most fields. '. 'To reference a variable, use `%s` in a field.', '${name}'); - $rows[] = pht('| Variable | Description |'); + $rows[] = sprintf( + '| %s | %s |', + pht('Variable'), + pht('Description')); $rows[] = '|---|---|'; foreach ($variables as $name => $description) { $rows[] = '| `'.$name.'` | '.$description.' |'; diff --git a/src/applications/harbormaster/herald/HarbormasterRunBuildPlansHeraldAction.php b/src/applications/harbormaster/herald/HarbormasterRunBuildPlansHeraldAction.php --- a/src/applications/harbormaster/herald/HarbormasterRunBuildPlansHeraldAction.php +++ b/src/applications/harbormaster/herald/HarbormasterRunBuildPlansHeraldAction.php @@ -52,7 +52,7 @@ case self::DO_BUILD: return pht( 'Started %s build(s): %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); } } diff --git a/src/applications/herald/action/HeraldAction.php b/src/applications/herald/action/HeraldAction.php --- a/src/applications/herald/action/HeraldAction.php +++ b/src/applications/herald/action/HeraldAction.php @@ -374,22 +374,22 @@ case self::DO_STANDARD_NO_EFFECT: return pht( 'This action has no effect on %s target(s): %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); case self::DO_STANDARD_INVALID: return pht( '%s target(s) are invalid or of the wrong type: %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); case self::DO_STANDARD_UNLOADABLE: return pht( '%s target(s) could not be loaded: %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); case self::DO_STANDARD_PERMISSION: return pht( '%s target(s) do not have permission to see this object: %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); case self::DO_STANDARD_INVALID_ACTION: return pht( diff --git a/src/applications/legalpad/herald/LegalpadRequireSignatureHeraldAction.php b/src/applications/legalpad/herald/LegalpadRequireSignatureHeraldAction.php --- a/src/applications/legalpad/herald/LegalpadRequireSignatureHeraldAction.php +++ b/src/applications/legalpad/herald/LegalpadRequireSignatureHeraldAction.php @@ -95,12 +95,12 @@ case self::DO_SIGNED: return pht( '%s document(s) are already signed: %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); case self::DO_REQUIRED: return pht( 'Required %s signature(s): %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); } } diff --git a/src/applications/maniphest/storage/ManiphestTransaction.php b/src/applications/maniphest/storage/ManiphestTransaction.php --- a/src/applications/maniphest/storage/ManiphestTransaction.php +++ b/src/applications/maniphest/storage/ManiphestTransaction.php @@ -546,23 +546,23 @@ $removed = array_diff($old, $new); if ($added && !$removed) { return pht( - '%s attached %d file(s): %s.', + '%s attached %s file(s): %s.', $this->renderHandleLink($author_phid), - count($added), + phutil_count($added), $this->renderHandleList($added)); } else if ($removed && !$added) { return pht( - '%s detached %d file(s): %s.', + '%s detached %s file(s): %s.', $this->renderHandleLink($author_phid), - count($removed), + phutil_count($removed), $this->renderHandleList($removed)); } else { return pht( - '%s changed file(s), attached %d: %s; detached %d: %s.', + '%s changed file(s), attached %s: %s; detached %s: %s.', $this->renderHandleLink($author_phid), - count($added), + phutil_count($added), $this->renderHandleList($added), - count($removed), + phutil_count($removed), $this->renderHandleList($removed)); } @@ -585,9 +585,9 @@ case self::TYPE_MERGED_FROM: return pht( - '%s merged %d task(s): %s.', + '%s merged %s task(s): %s.', $this->renderHandleLink($author_phid), - count($new), + phutil_count($new), $this->renderHandleList($new)); break; diff --git a/src/applications/maniphest/view/ManiphestTaskResultListView.php b/src/applications/maniphest/view/ManiphestTaskResultListView.php --- a/src/applications/maniphest/view/ManiphestTaskResultListView.php +++ b/src/applications/maniphest/view/ManiphestTaskResultListView.php @@ -82,7 +82,7 @@ $header = id(new PHUIHeaderView()) ->addSigil('task-group') ->setMetadata(array('priority' => head($list)->getPriority())) - ->setHeader(pht('%s (%s)', $group, new PhutilNumber(count($list)))); + ->setHeader(pht('%s (%s)', $group, phutil_count($list))); $lists[] = id(new PHUIObjectBoxView()) ->setHeader($header) diff --git a/src/applications/metamta/herald/PhabricatorMetaMTAEmailHeraldAction.php b/src/applications/metamta/herald/PhabricatorMetaMTAEmailHeraldAction.php --- a/src/applications/metamta/herald/PhabricatorMetaMTAEmailHeraldAction.php +++ b/src/applications/metamta/herald/PhabricatorMetaMTAEmailHeraldAction.php @@ -75,13 +75,13 @@ case self::DO_SEND: return pht( 'Queued email to be delivered to %s target(s): %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); case self::DO_FORCE: return pht( 'Queued email to be delivered to %s target(s), ignoring their '. 'notification preferences: %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); } } diff --git a/src/applications/multimeter/controller/MultimeterSampleController.php b/src/applications/multimeter/controller/MultimeterSampleController.php --- a/src/applications/multimeter/controller/MultimeterSampleController.php +++ b/src/applications/multimeter/controller/MultimeterSampleController.php @@ -90,7 +90,7 @@ $events_col = $this->renderGroupingLink( $group, 'id', - pht('%s Events', new PhutilNumber($row['N']))); + pht('%s Event(s)', new PhutilNumber($row['N']))); } if (isset($group['request'])) { diff --git a/src/applications/people/controller/PhabricatorPeopleDeleteController.php b/src/applications/people/controller/PhabricatorPeopleDeleteController.php --- a/src/applications/people/controller/PhabricatorPeopleDeleteController.php +++ b/src/applications/people/controller/PhabricatorPeopleDeleteController.php @@ -49,9 +49,9 @@ $form = id(new AphrontFormView()) ->setUser($admin) ->appendRemarkupInstructions( - pht( - " phabricator/ $ ./bin/remove destroy %s\n", - csprintf('%R', '@'.$user->getUsername()))); + csprintf( + " phabricator/ $ ./bin/remove destroy %R\n", + '@'.$user->getUsername())); return $this->newDialog() ->setWidth(AphrontDialogView::WIDTH_FORM) diff --git a/src/applications/pholio/view/PholioMockThumbGridView.php b/src/applications/pholio/view/PholioMockThumbGridView.php --- a/src/applications/pholio/view/PholioMockThumbGridView.php +++ b/src/applications/pholio/view/PholioMockThumbGridView.php @@ -156,7 +156,7 @@ array( 'class' => 'pholio-mock-thumb-grid-comment-count', ), - pht('%s', new PhutilNumber(count($image->getInlineComments())))); + pht('%s', phutil_count($image->getInlineComments()))); } return javelin_tag( diff --git a/src/applications/phragment/controller/PhragmentController.php b/src/applications/phragment/controller/PhragmentController.php --- a/src/applications/phragment/controller/PhragmentController.php +++ b/src/applications/phragment/controller/PhragmentController.php @@ -199,7 +199,9 @@ $alt = PhabricatorEnv::getEnvConfig('security.alternate-file-domain'); if ($alt === null) { return id(new PHUIInfoView()) - ->setTitle(pht('security.alternate-file-domain must be configured!')) + ->setTitle(pht( + '%s must be configured!', + 'security.alternate-file-domain')) ->setSeverity(PHUIInfoView::SEVERITY_ERROR) ->appendChild( phutil_tag( diff --git a/src/applications/ponder/controller/PonderQuestionViewController.php b/src/applications/ponder/controller/PonderQuestionViewController.php --- a/src/applications/ponder/controller/PonderQuestionViewController.php +++ b/src/applications/ponder/controller/PonderQuestionViewController.php @@ -292,7 +292,9 @@ $item->setObject($question); $item->addAttribute( - pht('%d Answer(s)', $question->getAnswerCount())); + pht( + '%s Answer(s)', + new PhutilNumber($question->getAnswerCount()))); $list->addItem($item); } diff --git a/src/applications/ponder/query/PonderQuestionSearchEngine.php b/src/applications/ponder/query/PonderQuestionSearchEngine.php --- a/src/applications/ponder/query/PonderQuestionSearchEngine.php +++ b/src/applications/ponder/query/PonderQuestionSearchEngine.php @@ -134,11 +134,11 @@ foreach ($questions as $question) { $color = PonderQuestionStatus::getQuestionStatusTagColor( - $question->getStatus()); + $question->getStatus()); $icon = PonderQuestionStatus::getQuestionStatusIcon( - $question->getStatus()); + $question->getStatus()); $full_status = PonderQuestionStatus::getQuestionStatusFullName( - $question->getStatus()); + $question->getStatus()); $item = new PHUIObjectItemView(); $item->setObjectName('Q'.$question->getID()); $item->setHeader($question->getTitle()); @@ -158,7 +158,9 @@ $handles[$question->getAuthorPHID()]->renderLink())); $item->addAttribute( - pht('%d Answer(s)', $question->getAnswerCount())); + pht( + '%s Answer(s)', + new PhutilNumber($question->getAnswerCount()))); if ($project_handles) { $item->addAttribute( diff --git a/src/applications/project/herald/PhabricatorProjectHeraldAction.php b/src/applications/project/herald/PhabricatorProjectHeraldAction.php --- a/src/applications/project/herald/PhabricatorProjectHeraldAction.php +++ b/src/applications/project/herald/PhabricatorProjectHeraldAction.php @@ -112,12 +112,12 @@ case self::DO_ADD_PROJECTS: return pht( 'Added %s project(s): %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); case self::DO_REMOVE_PROJECTS: return pht( 'Removed %s project(s): %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); } } diff --git a/src/applications/releeph/controller/product/ReleephProductEditController.php b/src/applications/releeph/controller/product/ReleephProductEditController.php --- a/src/applications/releeph/controller/product/ReleephProductEditController.php +++ b/src/applications/releeph/controller/product/ReleephProductEditController.php @@ -49,7 +49,7 @@ if (!$product_name) { $e_name = pht('Required'); $errors[] = - pht('Your releeph product should have a simple descriptive name.'); + pht('Your Releeph product should have a simple descriptive name.'); } if (!$trunk_branch) { diff --git a/src/applications/releeph/field/specification/ReleephDiffChurnFieldSpecification.php b/src/applications/releeph/field/specification/ReleephDiffChurnFieldSpecification.php --- a/src/applications/releeph/field/specification/ReleephDiffChurnFieldSpecification.php +++ b/src/applications/releeph/field/specification/ReleephDiffChurnFieldSpecification.php @@ -31,6 +31,7 @@ $rejections = 0; $comments = 0; $updates = 0; + foreach ($xactions as $xaction) { switch ($xaction->getTransactionType()) { case PhabricatorTransactions::TYPE_COMMENT: @@ -60,13 +61,13 @@ } else { $parts = array(); if ($rejections) { - $parts[] = pht('%d rejection(s)', $rejections); + $parts[] = pht('%s rejection(s)', new PhutilNumber($rejections)); } if ($comments) { - $parts[] = pht('%d comment(s)', $comments); + $parts[] = pht('%s comment(s)', new PhutilNumber($comments)); } if ($updates) { - $parts[] = pht('%d update(s)', $updates); + $parts[] = pht('%s update(s)', new PhutilNumber($updates)); } if (count($parts) === 0) { diff --git a/src/applications/releeph/field/specification/ReleephDiffSizeFieldSpecification.php b/src/applications/releeph/field/specification/ReleephDiffSizeFieldSpecification.php --- a/src/applications/releeph/field/specification/ReleephDiffSizeFieldSpecification.php +++ b/src/applications/releeph/field/specification/ReleephDiffSizeFieldSpecification.php @@ -55,7 +55,7 @@ $mr_changes['tests']['lines'], count($mr_changes['tests']['paths'])); foreach ($mr_changes['tests']['paths'] as $mr_test_path) { - $test_blurb .= pht("%s\n", $mr_test_path); + $test_blurb .= sprintf("%s\n", $mr_test_path); } $test_tag = javelin_tag( diff --git a/src/applications/releeph/query/ReleephBranchSearchEngine.php b/src/applications/releeph/query/ReleephBranchSearchEngine.php --- a/src/applications/releeph/query/ReleephBranchSearchEngine.php +++ b/src/applications/releeph/query/ReleephBranchSearchEngine.php @@ -182,7 +182,9 @@ $item->setStatusIcon('fa-code-fork orange'); $item->addIcon( 'fa-code-fork', - pht('%d Open Pull Request(s)', new PhutilNumber($open_count))); + pht( + '%s Open Pull Request(s)', + new PhutilNumber($open_count))); } $list->addItem($item); diff --git a/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php b/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php --- a/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php +++ b/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php @@ -172,7 +172,7 @@ pht( 'Not enough process slots to schedule the other %s '. 'repository(s) for updates yet.', - new PhutilNumber(count($queue)))); + phutil_count($queue))); } if ($futures) { diff --git a/src/applications/repository/management/PhabricatorRepositoryManagementParentsWorkflow.php b/src/applications/repository/management/PhabricatorRepositoryManagementParentsWorkflow.php --- a/src/applications/repository/management/PhabricatorRepositoryManagementParentsWorkflow.php +++ b/src/applications/repository/management/PhabricatorRepositoryManagementParentsWorkflow.php @@ -91,7 +91,7 @@ "%s\n", pht( 'Found %s total commit(s); updating...', - new PhutilNumber(count($graph)))); + phutil_count($graph))); $commit_table = id(new PhabricatorRepositoryCommit()); $commit_table_name = $commit_table->getTableName(); diff --git a/src/applications/repository/management/PhabricatorRepositoryManagementReparseWorkflow.php b/src/applications/repository/management/PhabricatorRepositoryManagementReparseWorkflow.php --- a/src/applications/repository/management/PhabricatorRepositoryManagementReparseWorkflow.php +++ b/src/applications/repository/management/PhabricatorRepositoryManagementReparseWorkflow.php @@ -264,7 +264,7 @@ 'tasks have been queued, you need to run Taskmaster daemons to '. 'execute them.'."\n\n". "QUEUEING TASKS (%s Commits):", - new PhutilNumber(count($commits)))); + phutil_count($commits))); } $progress = new PhutilConsoleProgressBar(); diff --git a/src/applications/subscriptions/herald/PhabricatorSubscriptionsHeraldAction.php b/src/applications/subscriptions/herald/PhabricatorSubscriptionsHeraldAction.php --- a/src/applications/subscriptions/herald/PhabricatorSubscriptionsHeraldAction.php +++ b/src/applications/subscriptions/herald/PhabricatorSubscriptionsHeraldAction.php @@ -163,22 +163,22 @@ return pht( 'Declined to resubscribe %s target(s) because they previously '. 'unsubscribed: %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); case self::DO_AUTOSUBSCRIBED: return pht( '%s automatically subscribed target(s) were not affected: %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); case self::DO_SUBSCRIBED: return pht( 'Added %s subscriber(s): %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); case self::DO_UNSUBSCRIBED: return pht( 'Removed %s subscriber(s): %s.', - new PhutilNumber(count($data)), + phutil_count($data), $this->renderHandleList($data)); } } diff --git a/src/applications/system/management/PhabricatorSystemRemoveDestroyWorkflow.php b/src/applications/system/management/PhabricatorSystemRemoveDestroyWorkflow.php --- a/src/applications/system/management/PhabricatorSystemRemoveDestroyWorkflow.php +++ b/src/applications/system/management/PhabricatorSystemRemoveDestroyWorkflow.php @@ -119,7 +119,7 @@ $console->writeOut( pht( 'These %s object(s) will be destroyed forever:', - new PhutilNumber(count($named_objects)))."\n\n"); + phutil_count($named_objects))."\n\n"); foreach ($named_objects as $object_name => $object) { $phid = $object->getPHID(); @@ -136,7 +136,7 @@ $ok = $console->confirm( pht( 'Are you absolutely certain you want to destroy these %s object(s)?', - new PhutilNumber(count($named_objects)))); + phutil_count($named_objects))); if (!$ok) { throw new PhutilArgumentUsageException( pht('Aborted, your objects are safe.')); @@ -160,7 +160,7 @@ "%s\n", pht( 'Permanently destroyed %s object(s).', - new PhutilNumber(count($named_objects)))); + phutil_count($named_objects))); return 0; } diff --git a/src/applications/transactions/response/PhabricatorApplicationTransactionNoEffectResponse.php b/src/applications/transactions/response/PhabricatorApplicationTransactionNoEffectResponse.php --- a/src/applications/transactions/response/PhabricatorApplicationTransactionNoEffectResponse.php +++ b/src/applications/transactions/response/PhabricatorApplicationTransactionNoEffectResponse.php @@ -32,16 +32,16 @@ $only_empty_comment = (count($xactions) == 1) && (head($xactions)->getTransactionType() == $type_comment); - $count = new PhutilNumber(count($xactions)); + $count = phutil_count($xactions); if ($ex->hasAnyEffect()) { - $title = pht('%d Action(s) With No Effect', $count); - $head = pht('Some of your %d action(s) have no effect:', $count); + $title = pht('%s Action(s) With No Effect', $count); + $head = pht('Some of your %s action(s) have no effect:', $count); $tail = pht('Apply remaining actions?'); $continue = pht('Apply Remaining Actions'); } else if ($ex->hasComment()) { $title = pht('Post as Comment'); - $head = pht('The %d action(s) you are taking have no effect:', $count); + $head = pht('The %s action(s) you are taking have no effect:', $count); $tail = pht('Do you want to post your comment anyway?'); $continue = pht('Post Comment'); } else if ($only_empty_comment) { @@ -52,8 +52,8 @@ $tail = null; $continue = null; } else { - $title = pht('%d Action(s) Have No Effect', $count); - $head = pht('The %d action(s) you are taking have no effect:', $count); + $title = pht('%s Action(s) Have No Effect', $count); + $head = pht('The %s action(s) you are taking have no effect:', $count); $tail = null; $continue = null; } diff --git a/src/applications/transactions/storage/PhabricatorApplicationTransaction.php b/src/applications/transactions/storage/PhabricatorApplicationTransaction.php --- a/src/applications/transactions/storage/PhabricatorApplicationTransaction.php +++ b/src/applications/transactions/storage/PhabricatorApplicationTransaction.php @@ -710,19 +710,19 @@ return $type_obj->getTransactionEditString( $this->renderHandleLink($author_phid), new PhutilNumber(count($add) + count($rem)), - new PhutilNumber(count($add)), + phutil_count($add), $this->renderHandleList($add), - new PhutilNumber(count($rem)), + phutil_count($rem), $this->renderHandleList($rem)); } else if ($add) { return $type_obj->getTransactionAddString( $this->renderHandleLink($author_phid), - new PhutilNumber(count($add)), + phutil_count($add), $this->renderHandleList($add)); } else if ($rem) { return $type_obj->getTransactionRemoveString( $this->renderHandleLink($author_phid), - new PhutilNumber(count($rem)), + phutil_count($rem), $this->renderHandleList($rem)); } else { return $type_obj->getTransactionPreviewString( @@ -871,21 +871,21 @@ $this->renderHandleLink($author_phid), $this->renderHandleLink($object_phid), new PhutilNumber(count($add) + count($rem)), - new PhutilNumber(count($add)), + phutil_count($add), $this->renderHandleList($add), - new PhutilNumber(count($rem)), + phutil_count($rem), $this->renderHandleList($rem)); } else if ($add) { return $type_obj->getFeedAddString( $this->renderHandleLink($author_phid), $this->renderHandleLink($object_phid), - new PhutilNumber(count($add)), + phutil_count($add), $this->renderHandleList($add)); } else if ($rem) { return $type_obj->getFeedRemoveString( $this->renderHandleLink($author_phid), $this->renderHandleLink($object_phid), - new PhutilNumber(count($rem)), + phutil_count($rem), $this->renderHandleList($rem)); } else { return pht( diff --git a/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldPHIDs.php b/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldPHIDs.php --- a/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldPHIDs.php +++ b/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldPHIDs.php @@ -131,23 +131,23 @@ '%s updated %s, added %d: %s.', $xaction->renderHandleLink($author_phid), $this->getFieldName(), - new PhutilNumber(count($add)), + phutil_count($add), $xaction->renderHandleList($add)); } else if ($rem && !$add) { return pht( '%s updated %s, removed %d: %s.', $xaction->renderHandleLink($author_phid), $this->getFieldName(), - new PhutilNumber(count($rem)), + phutil_count($rem), $xaction->renderHandleList($rem)); } else { return pht( '%s updated %s, added %d: %s; removed %d: %s.', $xaction->renderHandleLink($author_phid), $this->getFieldName(), - new PhutilNumber(count($add)), + phutil_count($add), $xaction->renderHandleList($add), - new PhutilNumber(count($rem)), + phutil_count($rem), $xaction->renderHandleList($rem)); } } diff --git a/src/infrastructure/internationalization/management/PhabricatorInternationalizationManagementExtractWorkflow.php b/src/infrastructure/internationalization/management/PhabricatorInternationalizationManagementExtractWorkflow.php --- a/src/infrastructure/internationalization/management/PhabricatorInternationalizationManagementExtractWorkflow.php +++ b/src/infrastructure/internationalization/management/PhabricatorInternationalizationManagementExtractWorkflow.php @@ -37,7 +37,7 @@ $console->writeOut( "%s\n", - pht('Found %s file(s)...', new PhutilNumber(count($futures)))); + pht('Found %s file(s)...', phutil_count($futures))); $results = array(); diff --git a/src/infrastructure/internationalization/translation/PhabricatorUSEnglishTranslation.php b/src/infrastructure/internationalization/translation/PhabricatorUSEnglishTranslation.php --- a/src/infrastructure/internationalization/translation/PhabricatorUSEnglishTranslation.php +++ b/src/infrastructure/internationalization/translation/PhabricatorUSEnglishTranslation.php @@ -32,7 +32,7 @@ '%d path(s)' => array('%d path', '%d paths'), '%d diff(s)' => array('%d diff', '%d diffs'), - '%d Answer(s)' => array('%d Answer', '%d Answers'), + '%s Answer(s)' => array('%s Answer', '%s Answers'), 'Show %d Comment(s)' => array('Show %d Comment', 'Show %d Comments'), '%s DIFF LINK(S)' => array('DIFF LINK', 'DIFF LINKS'), @@ -114,17 +114,17 @@ 'This is a binary file. It is %s bytes in length.', ), - '%d Action(s) Have No Effect' => array( + '%s Action(s) Have No Effect' => array( 'Action Has No Effect', 'Actions Have No Effect', ), - '%d Action(s) With No Effect' => array( + '%s Action(s) With No Effect' => array( 'Action With No Effect', 'Actions With No Effect', ), - 'Some of your %d action(s) have no effect:' => array( + 'Some of your %s action(s) have no effect:' => array( 'One of your actions has no effect:', 'Some of your actions have no effect:', ), @@ -139,7 +139,7 @@ 'Apply Remaining Actions', ), - 'The %d action(s) you are taking have no effect:' => array( + 'The %s action(s) you are taking have no effect:' => array( 'The action you are taking has no effect:', 'The actions you are taking have no effect:', ), @@ -550,9 +550,9 @@ ), ), - '%d comment(s)' => array('%d comment', '%d comments'), - '%d rejection(s)' => array('%d rejection', '%d rejections'), - '%d update(s)' => array('%d update', '%d updates'), + '%s comment(s)' => array('%s comment', '%s comments'), + '%s rejection(s)' => array('%s rejection', '%s rejections'), + '%s update(s)' => array('%s update', '%s updates'), 'This configuration value is defined in these %d '. 'configuration source(s): %s.' => array( @@ -562,9 +562,9 @@ 'configuration sources: %s.', ), - '%d Open Pull Request(s)' => array( - '%d Open Pull Request', - '%d Open Pull Requests', + '%s Open Pull Request(s)' => array( + '%s Open Pull Request', + '%s Open Pull Requests', ), 'Stale (%s day(s))' => array( @@ -1388,6 +1388,46 @@ 'Mail sent in the last %s days.', ), + 'Found %s Open Resource(s)' => array( + 'Found %s Open Resource', + 'Found %s Open Resources', + ), + + '%s Open Resource(s) Remain' => array( + '%s Open Resource Remain', + '%s Open Resources Remain', + ), + + 'Found %s Blueprint(s)' => array( + 'Found %s Blueprint', + 'Found %s Blueprints', + ), + + '%s Blueprint(s) Can Allocate' => array( + '%s Blueprint Can Allocate', + '%s Blueprints Can Allocate', + ), + + '%s Blueprint(s) Enabled' => array( + '%s Blueprint Enabled', + '%s Blueprints Enabled', + ), + + '%s Day(s) Ago' => array( + '%s Day Ago', + '%s Days Ago', + ), + + '%s Event(s)' => array( + '%s Event', + '%s Events', + ), + + '%s Unit(s)' => array( + '%s Unit', + '%s Units', + ), + ); } diff --git a/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementWorkflow.php b/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementWorkflow.php --- a/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementWorkflow.php +++ b/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementWorkflow.php @@ -126,7 +126,7 @@ "documentation.\n\n". "MySQL needs to copy table data to make some adjustments, so these ". "migrations may take some time.", - new PhutilNumber(count($adjustments)))); + phutil_count($adjustments))); $prompt = pht('Fix these schema issues?'); if (!phutil_console_confirm($prompt, $default_no = true)) { diff --git a/src/view/phui/PHUIHeaderView.php b/src/view/phui/PHUIHeaderView.php --- a/src/view/phui/PHUIHeaderView.php +++ b/src/view/phui/PHUIHeaderView.php @@ -128,7 +128,7 @@ } else if ($age == 1) { $when = pht('Yesterday'); } else { - $when = pht('%d Days Ago', $age); + $when = pht('%s Day(s) Ago', new PhutilNumber($age)); } $this->setStatus('fa-clock-o bluegrey', null, pht('Updated %s', $when));