From 509c214de001036decdc89f620a359c8b45e6a4e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 7 Jan 2013 13:16:58 +0530 Subject: [PATCH] When sorting by series, use the language of the book to decide what leading articles to remove, just as is done for sorting by title --- src/calibre/library/caches.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/calibre/library/caches.py b/src/calibre/library/caches.py index 0162258764..507305528d 100644 --- a/src/calibre/library/caches.py +++ b/src/calibre/library/caches.py @@ -1106,6 +1106,7 @@ class SortKeyGenerator(object): self.library_order = tweaks['title_series_sorting'] == 'library_order' self.data = data self.string_sort_key = sort_key + self.lang_idx = field_metadata['languages']['rec_index'] def __call__(self, record): values = tuple(self.itervals(self.data[record])) @@ -1159,7 +1160,12 @@ class SortKeyGenerator(object): val = ('', 1) else: if self.library_order: - val = title_sort(val) + try: + lang = record[self.lang_idx].partition(u',')[0] + except (AttributeError, ValueError, KeyError, + IndexError, TypeError): + lang = None + val = title_sort(val, order='library_order', lang=lang) sidx_fm = self.field_metadata[name + '_index'] sidx = record[sidx_fm['rec_index']] val = (self.string_sort_key(val), sidx)