Opened 11 years ago
Closed 11 years ago
#22323 closed Bug (worksforme)
Title Filter Inproper Casing of Words With Apostrophe in Second Position
Reported by: | jenkinsbr2 | Owned by: | jenkinsbr2 |
---|---|---|---|
Component: | Template system | Version: | 1.6 |
Severity: | Normal | Keywords: | title filter |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I discovered a very minor edge case when using the title filter on words that have an apostrophe in the second position.
Ex: I'm, I'll, I'd, etc.
The current wrapper for Python's .title
uses a regex that matches [a-z]'[A-Z]
which will result in something such as I'Ll
not being corrected.
I propose simply using a non-capturing look behind such as (?<=[a-zA-Z])'[A-Z]
. While a solution with Unicode support would be nicer, as far as I can tell it's not really feasible with Python's current re
implementation. I've made this change and written an additional test that covers this edge case that I can submit as a pull request if there's no side effects I've overlooked.
This proposal has been made in the past; marking wontfix because it's almost impossible to implement.
The search for a completely accurate capitalisation is a tarpit. To pick an easy example - your scheme would break when capitalising the Italian name d'Angelo. The current scheme has known flaws, but is simple to explain, draws from a well known implementation (Python's title() method on strings). Any alternate scheme will also have flaws, but they'll be flaws of our own making, and our own responsibility to fix.