HangfireIO / HangfireIO/Hangfire
The Turkish i Problem
- Dominant language
- C#
- Stars
- 10.1k
- Forks
- 1.8k
- Avg merge
- 1h 19m
- Merged PRs (30d)
- 1
Description
Hello,
I am running Hangfire on top of an ASP.NET app which has the following globalization setting:
```
```
And Hangfire fails lowercasing and uppercasing the code/words/etc.
For instance, when I look at the details of a job, a class named as `ImportSomethingJob` is displayed as:
```
var ımportSomethingJob = Activate();
ımportSomethingJob.Run()
```
As you can see the first letter of the variable is an i without a dot, which is "ı" in Turkish and is not a valid variable name for C#.
The other issue is when you are displaying the queue names. Consider a queue named as `import_something`, the "Enqueued" block display it as:
```
Queue: İMPORT_SOMETHİNG
```
As you can see, the letter i becomes "İ" which is an uppercase i. This one rather seems a CSS issue than a C# issue, since you are displaying the queue names in uppercase using CSS.
None of these are breaking issues but just wanted to provide some feedback.
Further reading:
http://haacked.com/archive/2012/07/05/turkish-i-problem-and-why-you-should-care.aspx/
https://blog.codinghorror.com/whats-wrong-with-turkey/
https://en.wikipedia.org/wiki/Dotted_and_dotless_I
http://www.moserware.com/2008/02/does-your-code-pass-turkey-test.html
http://mattryall.net/blog/2009/02/the-infamous-turkish-locale-bug
https://msdn.microsoft.com/en-us/library/dd465121
https://msdn.microsoft.com/en-us/library/ms973919.aspx
https://blogs.msdn.microsoft.com/anutthara/2005/12/05/avoiding-the-turkish-i-issue/
https://blogs.msdn.microsoft.com/qingsongyao/2009/02/13/introduce-the-turkish-i-issue/
https://msdn.microsoft.com/en-us/library/ms994325.aspx#cltsafcode_topic4
Contributor guide
Research direction
Reproduce the issue in an ASP.NET app using the tr-TR culture setting, then inspect the Hangfire job details and queue-name display described in the report. Verify that generated variable names and displayed queue names remain correct under Turkish localization without changing their intended casing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, css
- Domain
- frontend, localization
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100