File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ import os
66import sys
77import getopt
88import fnmatch
9+ import locale
910import xdg .DesktopEntry as dentry
1011import xdg .Exceptions as exc
1112import xdg .BaseDirectory as bd
@@ -431,7 +432,10 @@ def sortedcategories(applist):
431432 categories = []
432433 for e in applist :
433434 categories .append (e .category )
434- categories = sorted (set (categories ))
435+ categories = sorted (
436+ set (categories ),
437+ key = lambda category : locale .strxfrm (category .decode ())
438+ )
435439 return categories
436440
437441
@@ -485,7 +489,13 @@ def menu(ico_paths=True):
485489 except exc .ParsingError :
486490 pass
487491
488- sortedapplist = sorted (applist , key = attrgetter ('category' , 'app.name' ))
492+ sortedapplist = sorted (
493+ applist ,
494+ key = lambda entry : (
495+ locale .strxfrm (entry .category .decode ()),
496+ locale .strxfrm (entry .app .name .decode ()),
497+ )
498+ )
489499
490500 menu = []
491501 for c in sortedcategories (applist ):
@@ -925,4 +935,5 @@ def openbox():
925935
926936
927937if __name__ == "__main__" :
938+ locale .setlocale (locale .LC_COLLATE , '' )
928939 main (sys .argv [1 :])
You can’t perform that action at this time.
0 commit comments