Page MenuHomePhorge

Some messages that support PLURAL are not detected as such by the i18n string extractor
Open, Needs TriagePublic

Description

For example https://translatewiki.net/wiki/Phabricator:phabricator-project-a33e8622b0241f8a/qqq / https://phabricator.wikimedia.org/source/phabricator/browse/wmf%252Fstable/src//applications/project/edge/PhabricatorProjectMemberOfProjectEdgeType.php$34

Edge types like that one are a common one, and hardest to fix (because the method itself is passed a PhutilNumber as an argument where as the extractor uses Xhpast and is only smart enough to detect a direct call). There are a few others where a number just isn't wrapped in a PhutilNumber, or a count call needs to be in phutil_count.

Event Timeline

From an attempt I made to fix this before running out of motivation (this lists all parameters that vary on number in the US English translation but the i18n extractor thinks they don't)

WARNING  /applications/calendar/notifications/PhabricatorCalendarNotificationEngine.php:269: missing PhutilNumber call?
WARNING  /applications/config/check/PhabricatorExtraConfigSetupCheck.php:72: missing PhutilNumber call?
WARNING  /applications/config/view/PhabricatorSetupIssueView.php:58: missing PhutilNumber call?
WARNING  /applications/config/view/PhabricatorSetupIssueView.php:73: missing PhutilNumber call?
WARNING  /applications/config/view/PhabricatorSetupIssueView.php:316: missing PhutilNumber call?
WARNING  /applications/config/view/PhabricatorSetupIssueView.php:321: missing PhutilNumber call?
WARNING  /applications/config/view/PhabricatorSetupIssueView.php:347: missing PhutilNumber call?
WARNING  /applications/config/view/PhabricatorSetupIssueView.php:390: missing PhutilNumber call?
WARNING  /applications/config/view/PhabricatorSetupIssueView.php:397: missing PhutilNumber call?
WARNING  /applications/config/view/PhabricatorSetupIssueView.php:524: missing PhutilNumber call?
WARNING  /applications/config/view/PhabricatorSetupIssueView.php:578: missing PhutilNumber call?
WARNING  /applications/conpherence/xaction/ConpherenceThreadParticipantsTransaction.php:74: missing PhutilNumber call?
WARNING  /applications/conpherence/xaction/ConpherenceThreadParticipantsTransaction.php:80: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionDependedOnByRevisionEdgeType.php:36: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionDependedOnByRevisionEdgeType.php:48: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionDependedOnByRevisionEdgeType.php:78: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionDependedOnByRevisionEdgeType.php:92: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionDependsOnRevisionEdgeType.php:39: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionDependsOnRevisionEdgeType.php:51: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionDependsOnRevisionEdgeType.php:81: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionDependsOnRevisionEdgeType.php:95: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionHasCommitEdgeType.php:34: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionHasCommitEdgeType.php:46: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionHasReviewerEdgeType.php:18: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionHasReviewerEdgeType.php:30: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionHasReviewerEdgeType.php:61: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionHasReviewerEdgeType.php:75: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionHasTaskEdgeType.php:33: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionHasTaskEdgeType.php:45: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionHasTaskEdgeType.php:76: missing PhutilNumber call?
WARNING  /applications/differential/edge/DifferentialRevisionHasTaskEdgeType.php:90: missing PhutilNumber call?
WARNING  /applications/differential/mail/DifferentialCreateMailReceiver.php:75: missing PhutilNumber call?
WARNING  /applications/differential/render/DifferentialChangesetHTMLRenderer.php:523: missing PhutilNumber call?
WARNING  /applications/differential/render/DifferentialChangesetHTMLRenderer.php:525: missing PhutilNumber call?
WARNING  /applications/differential/render/DifferentialChangesetHTMLRenderer.php:529: missing PhutilNumber call?
WARNING  /applications/differential/render/DifferentialChangesetHTMLRenderer.php:531: missing PhutilNumber call?
WARNING  /applications/differential/render/DifferentialChangesetHTMLRenderer.php:556: missing PhutilNumber call?
WARNING  /applications/differential/render/DifferentialChangesetHTMLRenderer.php:558: missing PhutilNumber call?
WARNING  /applications/differential/render/DifferentialChangesetHTMLRenderer.php:562: missing PhutilNumber call?
WARNING  /applications/differential/render/DifferentialChangesetHTMLRenderer.php:564: missing PhutilNumber call?
WARNING  /applications/differential/storage/DifferentialTransaction.php:593: missing PhutilNumber call?
WARNING  /applications/differential/storage/DifferentialTransaction.php:597: missing PhutilNumber call?
WARNING  /applications/diffusion/edge/DiffusionCommitHasRevisionEdgeType.php:34: missing PhutilNumber call?
WARNING  /applications/diffusion/edge/DiffusionCommitHasRevisionEdgeType.php:46: missing PhutilNumber call?
WARNING  /applications/diffusion/edge/DiffusionCommitHasTaskEdgeType.php:33: missing PhutilNumber call?
WARNING  /applications/diffusion/edge/DiffusionCommitHasTaskEdgeType.php:45: missing PhutilNumber call?
WARNING  /applications/diffusion/edge/DiffusionCommitHasTaskEdgeType.php:76: missing PhutilNumber call?
WARNING  /applications/diffusion/edge/DiffusionCommitHasTaskEdgeType.php:90: missing PhutilNumber call?
WARNING  /applications/diffusion/edge/DiffusionCommitRevertedByCommitEdgeType.php:22: missing PhutilNumber call?
WARNING  /applications/diffusion/edge/DiffusionCommitRevertedByCommitEdgeType.php:34: missing PhutilNumber call?
WARNING  /applications/diffusion/edge/DiffusionCommitRevertedByCommitEdgeType.php:64: missing PhutilNumber call?
WARNING  /applications/diffusion/edge/DiffusionCommitRevertedByCommitEdgeType.php:78: missing PhutilNumber call?
WARNING  /applications/diffusion/edge/DiffusionCommitRevertsCommitEdgeType.php:25: missing PhutilNumber call?
WARNING  /applications/diffusion/edge/DiffusionCommitRevertsCommitEdgeType.php:37: missing PhutilNumber call?
WARNING  /applications/diffusion/edge/DiffusionCommitRevertsCommitEdgeType.php:67: missing PhutilNumber call?
WARNING  /applications/diffusion/edge/DiffusionCommitRevertsCommitEdgeType.php:81: missing PhutilNumber call?
WARNING  /applications/legalpad/edge/LegalpadObjectNeedsSignatureEdgeType.php:17: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskDependedOnByTaskEdgeType.php:32: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskDependedOnByTaskEdgeType.php:44: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskDependedOnByTaskEdgeType.php:74: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskDependedOnByTaskEdgeType.php:88: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskDependsOnTaskEdgeType.php:37: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskDependsOnTaskEdgeType.php:49: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskDependsOnTaskEdgeType.php:79: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskDependsOnTaskEdgeType.php:93: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskHasCommitEdgeType.php:33: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskHasCommitEdgeType.php:45: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskHasCommitEdgeType.php:76: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskHasCommitEdgeType.php:90: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskHasMockEdgeType.php:21: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskHasMockEdgeType.php:33: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskHasRevisionEdgeType.php:33: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskHasRevisionEdgeType.php:45: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskHasRevisionEdgeType.php:76: missing PhutilNumber call?
WARNING  /applications/maniphest/edge/ManiphestTaskHasRevisionEdgeType.php:90: missing PhutilNumber call?
WARNING  /applications/owners/xaction/PhabricatorOwnersPackageOwnersTransaction.php:54: missing PhutilNumber call?
WARNING  /applications/owners/xaction/PhabricatorOwnersPackageOwnersTransaction.php:60: missing PhutilNumber call?
WARNING  /applications/pholio/edge/PholioMockHasTaskEdgeType.php:21: missing PhutilNumber call?
WARNING  /applications/pholio/edge/PholioMockHasTaskEdgeType.php:33: missing PhutilNumber call?
WARNING  /applications/pholio/xaction/PholioImageFileTransaction.php:61: missing PhutilNumber call?
WARNING  /applications/pholio/xaction/PholioImageFileTransaction.php:67: missing PhutilNumber call?
WARNING  /applications/phortune/controller/account/PhortuneAccountOverviewController.php:116: missing PhutilNumber call?
WARNING  /applications/phortune/edge/PhortuneAccountHasMemberEdgeType.php:17: missing PhutilNumber call?
WARNING  /applications/phortune/edge/PhortuneAccountHasMemberEdgeType.php:29: missing PhutilNumber call?
WARNING  /applications/phortune/edge/PhortuneMerchantHasMemberEdgeType.php:17: missing PhutilNumber call?
WARNING  /applications/phortune/edge/PhortuneMerchantHasMemberEdgeType.php:29: missing PhutilNumber call?
WARNING  /applications/project/edge/PhabricatorProjectMemberOfProjectEdgeType.php:22: missing PhutilNumber call?
WARNING  /applications/project/edge/PhabricatorProjectMemberOfProjectEdgeType.php:34: missing PhutilNumber call?
WARNING  /applications/project/edge/PhabricatorProjectObjectHasProjectEdgeType.php:24: missing PhutilNumber call?
WARNING  /applications/project/edge/PhabricatorProjectObjectHasProjectEdgeType.php:36: missing PhutilNumber call?
WARNING  /applications/project/edge/PhabricatorProjectObjectHasProjectEdgeType.php:67: missing PhutilNumber call?
WARNING  /applications/project/edge/PhabricatorProjectObjectHasProjectEdgeType.php:81: missing PhutilNumber call?
WARNING  /applications/project/edge/PhabricatorProjectProjectHasMemberEdgeType.php:22: missing PhutilNumber call?
WARNING  /applications/project/edge/PhabricatorProjectProjectHasMemberEdgeType.php:34: missing PhutilNumber call?
WARNING  /applications/project/edge/PhabricatorProjectProjectHasMemberEdgeType.php:64: missing PhutilNumber call?
WARNING  /applications/project/edge/PhabricatorProjectProjectHasMemberEdgeType.php:78: missing PhutilNumber call?
WARNING  /applications/project/storage/PhabricatorProjectTransaction.php:108: missing PhutilNumber call?
WARNING  /applications/project/storage/PhabricatorProjectTransaction.php:120: missing PhutilNumber call?
WARNING  /applications/project/xaction/PhabricatorProjectSlugsTransaction.php:56: missing PhutilNumber call?
WARNING  /applications/project/xaction/PhabricatorProjectSlugsTransaction.php:62: missing PhutilNumber call?
WARNING  /applications/project/xaction/PhabricatorProjectSlugsTransaction.php:90: missing PhutilNumber call?
WARNING  /applications/project/xaction/PhabricatorProjectSlugsTransaction.php:97: missing PhutilNumber call?
WARNING  /applications/repository/worker/PhabricatorRepositoryPushMailWorker.php:77: missing PhutilNumber call?
WARNING  /applications/repository/worker/PhabricatorRepositoryPushMailWorker.php:108: missing PhutilNumber call?
WARNING  /applications/subscriptions/engineextension/PhabricatorSubscriptionsCurtainExtension.php:98: missing PhutilNumber call?
WARNING  /applications/subscriptions/view/SubscriptionListStringBuilder.php:67: missing PhutilNumber call?
WARNING  /applications/transactions/edges/PhabricatorObjectHasContributorEdgeType.php:22: missing PhutilNumber call?
WARNING  /applications/transactions/edges/PhabricatorObjectHasContributorEdgeType.php:34: missing PhutilNumber call?
WARNING  /applications/transactions/edges/PhabricatorObjectHasWatcherEdgeType.php:21: missing PhutilNumber call?
WARNING  /applications/transactions/edges/PhabricatorObjectHasWatcherEdgeType.php:33: missing PhutilNumber call?
WARNING  /applications/transactions/edges/PhabricatorObjectHasWatcherEdgeType.php:63: missing PhutilNumber call?
WARNING  /applications/transactions/edges/PhabricatorObjectHasWatcherEdgeType.php:77: missing PhutilNumber call?
WARNING  /applications/transactions/response/PhabricatorApplicationTransactionNoEffectResponse.php:38: missing PhutilNumber call?
WARNING  /applications/transactions/response/PhabricatorApplicationTransactionNoEffectResponse.php:39: missing PhutilNumber call?
WARNING  /applications/transactions/response/PhabricatorApplicationTransactionNoEffectResponse.php:44: missing PhutilNumber call?
WARNING  /applications/transactions/response/PhabricatorApplicationTransactionNoEffectResponse.php:55: missing PhutilNumber call?
WARNING  /applications/transactions/response/PhabricatorApplicationTransactionNoEffectResponse.php:56: missing PhutilNumber call?
WARNING  /applications/transactions/storage/PhabricatorApplicationTransaction.php:1042: missing PhutilNumber call?
WARNING  /applications/transactions/storage/PhabricatorApplicationTransaction.php:1053: missing PhutilNumber call?
WARNING  /infrastructure/diff/view/PHUIDiffTableOfContentsItemView.php:140: missing PhutilNumber call?
WARNING  /infrastructure/edges/type/PhabricatorEdgeType.php:66: missing PhutilNumber call?
WARNING  /infrastructure/edges/type/PhabricatorEdgeType.php:78: missing PhutilNumber call?
WARNING  /infrastructure/edges/type/PhabricatorEdgeType.php:109: missing PhutilNumber call?
WARNING  /infrastructure/edges/type/PhabricatorEdgeType.php:123: missing PhutilNumber call?

Not all of these should be fixed in the obvious way, or even can be.