Use sentence case for summary labels - #4617
Merged
Merged
Conversation
str.title() title-cased every label word, which is wrong outside
English: it turned the Ukrainian "Ім'я хоста" into "Ім'Я Хоста" and
broke acronyms ("NTP" -> "Ntp"). The source strings and their
translations are already written with the correct casing.
Capitalize only the first letter of each label instead.
svartkanin
reviewed
Jul 12, 2026
| value = '\n '.join(str(val) for val in value) | ||
|
|
||
| table.add_row(label.title(), f': {value}') | ||
| table.add_row(_sentence_case(label), f': {value}') |
Contributor
Author
There was a problem hiding this comment.
The problem is that .title() is exactly what breaks the summary. It upper-cases the letter after every non-alpha character, not just spaces, so it mangles anything that is not plain English words:
- Ukrainian: "Ім'я хоста" becomes "Ім'Я Хоста" (capital after the apostrophe)
- acronyms: "Automatic time sync (NTP)" becomes "Automatic Time Sync (Ntp)"
The label strings and their translations are already written with the correct casing, so re-casing them per word is wrong for every locale, English included. Capitalizing just the first letter keeps Mirrors and repositories reading as sentence case while leaving NTP and translated strings intact. That is the whole point of this PR, so switching back to .title() would reintroduce the bug.
Collaborator
There was a problem hiding this comment.
Apologies I clearly didn't read the description carefully enough
svartkanin
approved these changes
Jul 14, 2026
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 install summary title-cased every label with str.title(). That is wrong for any language other than English: in Ukrainian "Ім'я хоста" rendered as "Ім'Я Хоста", and even in English acronyms broke ("Automatic time sync (NTP)" became "(Ntp)").
The label strings and their translations are already written with the correct casing, so there is no need to re-case them per word. Capitalize only the first letter of the label instead. English labels now read as sentence case (Mirrors and repositories), matching how the source strings are written.