export LC_MEASUREMENT="de_DE"
export LC_MONETARY="de_DE"
export LC_PAPER="de_DE"
export LC_CTYPE=de_DE.UTF-8
export LC_MESSAGES="en_US.UTF-8"
export LC_RESPONSE="en_US.UTF-8"
export LC_TIME=en_US.UTF-8
Mix in your Swedish or Swaheli, maybe even the Vatican State: e.g. de_DE, sw_TZ, it_VA (not guaranteed ;-).Why would you do this to yourself?
But if it gets complicated I'll usually resort to Perl scripts to take care of pesky details. Sorting an associative array where the key is a string in unified form and the value is the multi-lingual target is rather easy in a script language which one is fluent in.
You can specify the sorting order per command like
LC_COLLATE="tr_TR.utf8" ls
if it differs from your system or user locale.
An alternative is to first transliterate the strings to ASCII and then sort them (but this does not preserve the sorting order of non-latin scripts).
So if you're doing it "properly", sorting strings in Czech involves understanding the etymology of every word.