godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.15k stars 97 forks source link

Make GDScript's `to_upper()` method convert eszett to capital eszett instead of SS #10848

Open Radio-inactive opened 4 weeks ago

Radio-inactive commented 4 weeks ago

Describe the project you are working on

N/A

Describe the problem or limitation you are having in your project

The .to_upper() method is converting ß (eszett) into SS.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

the .to_upper() method should convert ß into ẞ (capital eszett).

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

for letter in word: if letter == 'ß': letter = 'ẞ';

If this enhancement will not be used often, can it be worked around with a few lines of script?

All ß in the string can be replaced by ẞ before converting.

Is there a reason why this should be core and not an add-on in the asset library?

While using SS is technically not gramatically incorrect, using the capital eszett is the more modern and a little more correct thing to do.

bruvzg commented 4 weeks ago

Case conversion is determined by the Unicode standard, we can't randomly change it, it will result in inconsistent results unexpected by other software:

# The German es-zed is special--the normal mapping is to SS.
# Note: the titlecase should never occur in practice. It is equal to titlecase(uppercase(<es-zed>))

00DF; 00DF; 0053 0073; 0053 0053; # LATIN SMALL LETTER SHARP S

From https://www.unicode.org/Public/UNIDATA/SpecialCasing.txt

Radio-inactive commented 4 weeks ago

Ah, I see. I wonder, would it break things if just the behavior of the Uppercase toggle of labels would be adjusted? As far as I know that one is mostly visual. Though given that this is a very specific and minor issue I'd understand if it's deemed not worth the effort.