User Details
- User Since
- Nov 22 2023, 04:24 (55 w, 2 d)
- Availability
- Available
Wed, Dec 11
Thu, Dec 5
Rebase
Sun, Dec 1
Add the newlline
Sat, Nov 23
https://devina.io/redos-checker says the new regex is still prone to polynomial backtracking, but that can happen only on extremely contrived input, whereas the old one was exponential on a common case.
Fix lint
Digging deeper, the problem is specific to ProjectRemarkupRule::getObjectIDPattern. That returns:
Step 2: Remove irrelevant character class exclusions:
Disentangling that monster regex, step 1:
Indeed https://devina.io/redos-checker says the aformentioned regex is exponential time worst-case
I monkeypatched the code to print preg_last_error when the problematic preg_match returns null. The error is "Backtrack limit exhausted".
Fri, Nov 22
Nov 12 2024
Aug 5 2024
Ideally strings not shown to the user would also not be wrapped in pht(...) at all to avoid wasting translator's time. This is contrary to the documentation inherited from old upstream at https://we.phorge.it/book/contrib/article/internationalization/, though,
Aug 2 2024
Jul 18 2024
I think the behavior of not setting the timezone is probably correct, actually. GetFormattedDateFromParts below already constructs a date object again with the timezone set. So I think the timezone offset is being applied twice here.
Jun 21 2024
Jun 20 2024
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.
Fix a typo
Done that. I left the technically-redundant methods where I have a lengthy comment explaining why I return en_US, since I think it's helpful to explain why that is.
Don't make unnecessary whitespace changes
Set fallback locale in base class
The current behavior if a fallback locale is not specified is to fallback to the proto-English string (English without applying pluralization). It probably does make sense, now that you bring it up, to fall back to en_US instead by default instead of doing that in every locale.
Jun 19 2024
Ce a comment
Fix lint
Jun 12 2024
Jun 8 2024
Jun 7 2024
No, it never was called anywhere. Read the HTML comment this commit deletes.
... but it turns out by concidence most of the date elements that are worth translating are already translatable from other references in the code:
// The only purpose of this function is to provide a static list of // translations which can come from PhutilTranslator::translateDate() to // allow translation extractor getting them.
I seem to have a bad habit of doing things and realizing they were stupid or I had missed something weeks to months later.
Jun 6 2024
I would be find with turning this into "your PlatformSymbols::getPlatformServerName() account" instead if that's seen as clearer but I'm not convinced the platform is necessary here at all. Opinions on that welcome.
Jun 4 2024
Fix a double space after testing
Actually do that, since I screwed up before
Update to Andre's suggestion
Jun 1 2024
May 26 2024
May 25 2024
Change commit message to reference spelling
"And complained on WMF, where this feature is disabled?" is true but misleading IMO - there was nowhere better to complain than WMF's instance since this took place after Phabricator was abandoned but before Phorge's initial release, and WMF's instance has received numerous other reports of Phabricator translation problems that were later redirected here or to old upstream.
And yes, I did read https://we.phorge.it/book/phorge/article/tone/ before filing this patch. You are welcome to berate me (and by extension Verdy_p on translatewiki.net, although they've been blocked there so the chance of them seeing anything you say is low) anyway.