Write PO-Revision-Date in the format the PO header is defined to use - #45
Merged
Conversation
The published site had no Vietnamese on it at all. Not less than the coverage table claimed, none: all 548 catalogs and all 1 437 reviewed strings, gone from every page, on the first deploy after apply started writing headers. apply stamps a run as 2026-08-18T03:55Z, because that is what a run is called everywhere else in this tool: in the queue, in the run= field of a provenance comment, and in the memory. PO-Revision-Date is not ISO 8601. It is specified as %Y-%m-%d %H:%M with a numeric offset, Babel's reader raises on the T and the Z, Sphinx catches that as a reading error and skips writing the .mo for that catalog, and every page in it renders in English. Nothing reports this. Sphinx logs one warning among several thousand and carries on. The build succeeds. The coverage table counts the .po files and is entirely right about every one of them. The audit passes S08, because both sides of that comparison are our own renderer and our own renderer is happy. The only place the failure is visible is the rendered HTML, which is the one thing nothing was reading. So the test for it reads the file back with Babel rather than with polib. polib parses our ISO date without complaining, which is why every test we had agreed with itself for the whole time this was broken. Babel is what Sphinx reads with, and the consumer's parser is the only one whose opinion decides whether a reader sees Vietnamese. That is worth a dev dependency. A date already in the right shape is handed back untouched, so a date written by Transifex survives a round trip through apply unchanged and only the ones this tool got wrong are rewritten.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The published site had no Vietnamese on it at all. Not less than the coverage table claimed, none: all 548 catalogs and all 1 437 reviewed strings, gone from every page, on the first deploy after apply started writing headers.
apply stamps a run as 2026-08-18T03:55Z, because that is what a run is called everywhere else in this tool: in the queue, in the run= field of a provenance comment, and in the memory. PO-Revision-Date is not ISO 8601. It is specified as %Y-%m-%d %H:%M with a numeric offset, Babel's reader raises on the T and the Z, Sphinx catches that as a reading error and skips writing the .mo for that catalog, and every page in it renders in English.
Nothing reports this. Sphinx logs one warning among several thousand and carries on. The build succeeds. The coverage table counts the .po files and is entirely right about every one of them. The audit passes S08, because both sides of that comparison are our own renderer and our own renderer is happy. The only place the failure is visible is the rendered HTML, which is the one thing nothing was reading.
So the test for it reads the file back with Babel rather than with polib. polib parses our ISO date without complaining, which is why every test we had agreed with itself for the whole time this was broken. Babel is what Sphinx reads with, and the consumer's parser is the only one whose opinion decides whether a reader sees Vietnamese. That is worth a dev dependency.
A date already in the right shape is handed back untouched, so a date written by Transifex survives a round trip through apply unchanged and only the ones this tool got wrong are rewritten.