I have that option in some of my programs, but Locale doesn't supply a sort order, at least not in Lazarus. As I said, if I have a TStringList with Hebrew words, I get the same wrong 'Standard' Sort no matter what Locale I use. That means I have to supply a CustomSort.
( I don't know if the SortLatin is good or not )
function SortHebrew (List: TStringList; Index1, Index2: Integer): Integer;
{ Hebrew }
begin
Result := StriComp(PChar(List[Index1]), PChar(List[Index2]));
end;
function SortLatin(List: TStringList; Index1, Index2: Integer): Integer;
{UTF8Compare - Portuguese...}
begin
Result := WideCompareText(UTF8Decode(List[Index1]),UTF8Decode(List[Index2]));
end;
Edit: Also, TListBox and TComboBox don't have a CustomSort. I have to copy the Strings to a TStringList, Call a CustomSort and copy the strings back to the TListBox or TComboBox.