Page MenuHomePhabricator

Phabricator translate export script should not overwrite manual edits to qqq.json
Open, MediumPublicBUG REPORT

Description

The script used to export source strings from Phabricator currently regenerates qqq.json from scratch, overwriting any manual changes to it. it should instead merge any manual documentation added with the autogenerated source code links, so translators' work isn't lost.

Event Timeline

Relevant lost manual changes seem to be: (more to be added)

  • Phabricator:phabricator-dashboard-f090ac2cb105c374/qqq
  • Phabricator:phabricator-dashboard-d17905b641dd0f65/qqq
  • Phabricator:phabricator-dashboard-da227ed17ec0523e/qqq
  • Phabricator:phabricator-dashboard-73c224acd36d069c/qqq
  • Phabricator:phabricator-dashboard-82eee5c89a71d8e2/qqq
  • Phabricator:phabricator-dashboard-269c97f627841615/qqq
  • Phabricator:phabricator-daemon-04f6b3ea183eb9d7/qqq
  • Phabricator:phabricator-badges-4e0fa4378f156cad/qqq
  • Phabricator:phabricator-system-58bf20abc8cfcd7f/qqq
  • Phabricator:phabricator-search-30f1108cae2d98e7/qqq
  • Phabricator:phabricator-settings-17063c506b81a46c/qqq
  • Phabricator:phabricator-search-b3c8a1c8fb291e4e/qqq
  • Phabricator:phabricator-search-5a9d607553a86d6a/qqq
  • Phabricator:phabricator-search-d0517071aa376e79/qqq
  • Phabricator:phabricator-search-a8ad860c15810cce/qqq
  • Phabricator:phabricator-transactions-bf7127e7ac1ea9cb/qqq
  • Phabricator:phabricator-typeahead-20ff1176780f707c/qqq
  • Phabricator:phabricator-typeahead-20ff1176780f707c/qqq
  • Phabricator:phabricator-transactions-c4cd6dd815cee2f2/qqq
  • Phabricator:phabricator-uiexample-5256fffffb868a37/qqq
  • Phabricator:phabricator-uiexample-e9c45563358e813f/qqq
  • Phabricator:phabricator-uiexample-d523ebbd10146cdf/qqq
  • Phabricator:phabricator-audit-d8de960f1cc3d44b/qqq (although this is a FIXME that really shouldn't be in qqq)
  • Phabricator:phabricator-almanac-6f4d949c6d80d44c/qqq
  • Phabricator:phabricator-almanac-be09a63bd1995e99/qqq ‎
  • Phabricator:phabricator-almanac-6bb011630498ca8e/qqq
  • Phabricator:phabricator-almanac-0449e1003dd0cdd9/qqq
  • Phabricator:arcanist-core-a088d68b013c592f/qqq (although this is also a FIXME)
  • Phabricator:arcanist-core-fa6af6e97d010a98/qqq (also with a FIXME)
  • Phabricator:arcanist-core-f4f4473df8cb59f0/qqq
  • Phabricator:arcanist-core-d8529a820aceba6f/qqq (also with a FIXME)
  • Phabricator:arcanist-core-63a43ac29738b6e5/qqq
  • Phabricator:arcanist-core-96e8155732e8324a/qqq
  • Phabricator:arcanist-core-76c4989f582907ef/qqq
  • Phabricator:arcanist-core-92b04844ad1da148/qqq
  • Phabricator:arcanist-core-9dad5c584f3c8b05/qqq
  • Phabricator:arcanist-core-1c542e79c9b4257e/qqq
  • Phabricator:arcanist-core-3119f17b3b50c21d/qqq (with a FIXME)
  • Phabricator:arcanist-core-5434e8be1aaa81b6/qqq
  • Phabricator:arcanist-core-65640c6577c9c724/qqq
  • Phabricator:arcanist-core-2da600bf94048431/qqq
  • Phabricator:arcanist-core-600982cf9c0c41e1/qqq
  • Phabricator:arcanist-core-4d4ce41fb9b4f16e/qqq
  • Phabricator:arcanist-core-68f78c0175cbee1e/qqq
  • Phabricator:arcanist-core-658d3e491eabcbd6/qqq
  • Phabricator:arcanist-core-9b02d9974c14e623/qqq (also with a FIXME)
  • Phabricator:arcanist-core-5e600d46ea8aa7ce/qqq
  • Phabricator:arcanist-core-3a7b8e3fb7aa607f/qqq (with a FIXME)
  • Phabricator:arcanist-core-35785569a60097e8/qqq
  • Phabricator:arcanist-core-5d95fc59f87385d4/qqq
  • Phabricator:arcanist-core-6d422d91ea64367d/qqq
  • Phabricator:arcanist-core-3cf5b9e22e344f3e/qqq (with a FIXME)
  • Phabricator:arcanist-core-629369eadf6dbb7e/qqq
  • Phabricator:arcanist-core-408d94384216f890/qqq
  • Phabricator:arcanist-core-680e8f2c0312525d/qqq
  • Phabricator:arcanist-core-9197c7b7c329a97d/qqq
  • Phabricator:arcanist-core-4f3b1df2728ef42a/qqq
  • Phabricator:arcanist-core-4e6302ed03494c90/qqq
  • Phabricator:arcanist-core-66898864b47fde77/qqq
  • Phabricator:arcanist-core-52ab900cbaceef7e/qqq
  • Phabricator:arcanist-core-529541bb390c7615/qqq
  • Phabricator:arcanist-core-58b63e273b964039/qqq
  • Phabricator:arcanist-core-2206e514a77b4292/qqq
  • Phabricator:arcanist-core-668aa437cfe310b0/qqq
  • Phabricator:arcanist-core-51327aef9866e85e/qqq
  • Phabricator:arcanist-core-62ea6ada6437b101/qqq
  • Phabricator:arcanist-core-5166d497779c53cf/qqq
  • Phabricator:arcanist-core-5dba577e13051429/qqq
  • Phabricator:arcanist-core-5baa61e4c9b93f3f/qqq
  • Phabricator:phabricator-config-2b4ca27129e4dd07/qqq
  • Phabricator:phabricator-differential-8cbaabee6d1d8f69/qqq (this message should be marked as ignored)
  • Phabricator:phabricator-differential-cd93f1c57563b888/qqq (with a FIXME)
  • Phabricator:phabricator-diviner-03d15fc7d961504b/qqq
  • Phabricator:phabricator-diffusion-04bf1775bdb5d5e2/qqq (this message should be marked as optional)
  • Phabricator:phabricator-diffusion-2dabb8334b6cbbc1/qqq
  • Phabricator:phabricator-metamta-d08f88df745fa795/qqq
  • Phabricator:phabricator-meta-0eb5ed506e4923c2/qqq
  • Phabricator:phabricator-nuance-f7de96f78a638b66/qqq
  • Phabricator:phabricator-nuance-ca3cf977ec6a09e1/qqq
  • Phabricator:phabricator-phortune-1ffa30ed75a540ac/qqq
  • Phabricator:phabricator-phortune-1ffa30ed75a540ac/qqq
  • Phabricator:phabricator-phortune-7619303af92ae939/qqq
  • Phabricator:phabricator-phortune-559ef5544c825815/qqq (should probably be marked as ignored, or at least optional)
  • Phabricator:phabricator-phortune-4d08ec58743327ba/qqq (same)
  • Phabricator:phabricator-phortune-66c40b692e3d80cf/qqq (with a FIXME)
  • Phabricator:phabricator-policy-29cfbeec9a497809/qqq (with a FIXME)
  • Phabricator:phabricator-policy-056cfca86add4e51/qqq (with a FIXME)
  • Phabricator:phabricator-policy-9adc651e3690b15a/qqq (although the changes don't look constructive to me)
  • Phabricator:phabricator-policy-0bb2e1d44d97441b/qqq (with a FIXME)
  • Phabricator:phabricator-repository-9120423983b0359c/qqq
  • Phabricator:phabricator-repository-0aa6d1dab7584fcc/qqq
  • Phabricator:phabricator-repository-f51e156239117e8e/qqq
  • Phabricator:phabricator-repository-da9a875447235025/qqq
  • Phabricator:phabricator-repository-5e9b60f69165f32f/qqq

Plus a bunch of arcanist cases where someone manually added a link to the code. I'll file another task for (and fix) that soon so the arcanist ones also have a link.

Phabricator:phabricator-audit-d8de960f1cc3d44b/qqq (although this is a FIXME that really shouldn't be in qqq)

This is T312053 -> https://we.phorge.it/T15267 and was resolved (and the same update that lost this change fixed the typo)

Phabricator:arcanist-core-a088d68b013c592f/qqq (although this is also a FIXME)
Phabricator:arcanist-core-d8529a820aceba6f/qqq (also with a FIXME)
Phabricator:phabricator-policy-29cfbeec9a497809/qqq (with a FIXME)
Phabricator:phabricator-policy-056cfca86add4e51/qqq (with a FIXME)
Phabricator:phabricator-policy-0bb2e1d44d97441b/qqq

This is T312047, which was closed as invalid. It may be worth revisiting what is going on here.

Phabricator:arcanist-core-fa6af6e97d010a98/qqq (also with a FIXME)
Phabricator:arcanist-core-3119f17b3b50c21d/qqq (with a FIXME)
Phabricator:arcanist-core-9b02d9974c14e623/qqq (also with a FIXME)
Phabricator:arcanist-core-3a7b8e3fb7aa607f/qqq (with a FIXME)

This is https://translatewiki.net/wiki/Thread:Support/About_Phabricator:arcanist-core-3119f17b3b50c21d/en. I don't think it was upstreamed anywhere, but looking at the code myself this (and a bunch of other messages from the same file) should probably be marked ignored since they seem to be tests of the infrastructure not real messages.

Phabricator:arcanist-core-3cf5b9e22e344f3e/qqq (with a FIXME)

This is T312052 -> https://we.phorge.it/T15268 and was resolved.

Phabricator:phabricator-differential-cd93f1c57563b888/qqq (with a FIXME)

This is T312051 -> https://we.phorge.it/T15269 and was resolved.

Phabricator:phabricator-phortune-66c40b692e3d80cf/qqq (with a FIXME)

This is T313656 -> https://we.phorge.it/T15429 and was resolved.

Plus the following from the October 2021 export:

  • Phabricator:phabricator-policy-83423c198b6099ed/qqq
  • Phabricator:phabricator-files-170fd7e84a1b2f97/qqq
  • Phabricator:phabricator-project-745b5a481804f444/qqq
  • Phabricator:phabricator-core-e2bcda84facb3954/qqq
  • Phabricator:phabricator-core-e9b450d14bc2363d/qqq
  • Phabricator:phabricator-core-e782e7728e490d1a/qqq

I can't effectively review the older exports because they were inconsistent with eachother about whether to linkify the files so every single message shows as changed.

The current system is not sustainable. I've been scanning over the qqq changes, but there are thousands (because basically every qqq message changed due to file numbers changing), which make local changes hard to spot. All locals changes need merging manually by hand (e.g. edit the pages manually after overwriting to manually add local bits back) because the phabricator scripts fully overwrite the qqq files.

Even Gettext file format would be better here, because it provides a the file references in a way that conflict with regular message documentation.

Change 975392 had a related patch set uploaded (by Pppery; author: Pppery):

[phabricator/translations@wmf/stable] Merge in changes to qqq.json rather than overwriting them

https://gerrit.wikimedia.org/r/975392

Change 975438 had a related patch set uploaded (by Pppery; author: Pppery):

[phabricator/translations@wmf/stable] Undo qqq.json overwrites

https://gerrit.wikimedia.org/r/975438

Aklapper triaged this task as Medium priority.Sun, Apr 21, 3:32 PM
Aklapper moved this task from To Triage to Misc on the Phabricator board.