User Details
- User Since
- Nov 22 2023, 04:24 (60 w, 2 d)
- Availability
- Available
Fri, Jan 10
All I did was look at the homepage and observe I saw "e. p. p" in the recent activity (and thus the translations somehow worked). That was more of a paranoia check for unintended side effects on other uses of the function, to make sure I didn't break date translation completely. You're welcome to test other UI things to make sure they're not affected if you wish.
Fix lint
Sun, Dec 29
in PhabricatorDaemonManagementWorkflow.php: "25%%%%" (maybe too many % char?)
Tue, Dec 24
I've added the existing translations repo to https://we.phorge.it/w/community_resources/ since that's trivial. I agree something better should be done.
Filed https://gitlab.wikimedia.org/repos/phabricator/extensions/-/merge_requests/44 for the downstream issue.
Dec 11 2024
Dec 5 2024
Rebase
Dec 1 2024
Add the newlline
Nov 23 2024
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".
Nov 22 2024
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.