Thanks BigChimp, I always look forward to hearing your views on such things as this.
Each OS supported Language already has a numeric value (at least in Windows and I assume other OS's). So it seems to me that a simple (but long) case statement would work to select a sort method. That method could then be used by any control that needs to sort a list. The one exception that I can think of is SortNumeric, but that would be easy to add to the case statement (LangNumeric). I've experimented with this approach and it seems to work, but it's a very limited experiment because I don't know the correct Sort Order for many languages. Lazarus has a truly global user base. If we couldn't find some code that was already written that could be translated to Lazarus/FPC, I think it would not take long to collect Sort Methods from the Lazarus community to plug in to such a case statement.
And there's also the issue of activating the correct Keyboard. I do these things now, switch Keyboard and Sort Order on a control by control basis. But it took a lot of work and research, trial and error to get to this point and I'm still working on it. I know I'm not the only one that has to deal with this and I can imagine other people trying to figure this out and reinvent this same wheel.
I would love to get a chance to look at how other programming environments approach this. It's hard for me to believe that this isn't being handled in some way.
For Lazarus ListBox, ComboBox... Sorted:= true is a "one trick pony"
And the worst part is that, if it is sorting non-English, you may get different results for each control. I know this is true for Hebrew. In Hebrew, ComboBox gives a different result for the same list depending on how many times you sort it
I took a look at Win32 CompareString but I haven't figured out how to use it yet. I tried Lazarus/FPC CompareStr, but it Sorted 'ABC abc'. That wouldn't work for me. At least TStringList.CaseSensitive gives 'aA bB cC'.
I haven't posted anything to BugTracker yet because I wanted to get some input from other people to see how they feel about it. It's been a mix. The developers have a lot of things to work on so adding something to that list doesn't seem like the best thing just yet. If and when we can come up with a coherent plan/design, then maybe we could present it to them.