On machines where the current culture is set to Turkish, case conversion of identifiers result in the letter I being lowercased to the dotless-i (ı) variant instead of i.
I noticed that the code uses culture-specific ToLower(), ToUpper() instead of ToLowerInvariant(), ToUpperInvariant()
Generated docker-compose.yml causes issues with docker compose due to non-English letters not being allowed.
This does not appear to break the tool for now, and it can be remedied with a simple search and replace.
Generated docker-compose.yaml
Generated appsettings.json
Steps to reproduce
If you are on Windows, install the Language pack for Turkish and set just the Regional format to Turkish.
Or you can just add these lines to the Program.cs of craftsman:
On machines where the current culture is set to Turkish, case conversion of identifiers result in the letter
I
being lowercased to the dotless-i (ı
) variant instead ofi
.I noticed that the code uses culture-specific
ToLower()
,ToUpper()
instead ofToLowerInvariant()
,ToUpperInvariant()
Generated docker-compose.yml causes issues with docker compose due to non-English letters not being allowed.
This does not appear to break the tool for now, and it can be remedied with a simple search and replace.
Generated docker-compose.yaml
Generated appsettings.json
Steps to reproduce
If you are on Windows, install the Language pack for Turkish and set just the Regional format to Turkish. Or you can just add these lines to the Program.cs of craftsman:
Have a ProjectName/ContextName/DatabaseName and/or Entity/Property name that begins with the letter
I
such as Ingredients.Further technical details
Craftsman version (
dotnet tool list -g
): 0.26.4Similar issues in other projects
https://github.com/CommunityToolkit/dotnet/issues/230