From 0b4f31bd8aba77c5ee84ce46a095480bb821e9bf Mon Sep 17 00:00:00 2001 From: gorhill Date: Fri, 27 Jan 2017 13:44:52 -0500 Subject: [PATCH] fix #2344 --- assets/assets.json | 2 +- src/js/storage.js | 7 +++---- src/js/utils.js | 12 ++++++++++++ 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/assets/assets.json b/assets/assets.json index e8dc9cd56..305d1b6cd 100644 --- a/assets/assets.json +++ b/assets/assets.json @@ -529,7 +529,7 @@ "group": "regions", "off": true, "title": "RUS: RU AdList (Дополнительная региональная подписка)", - "lang": "ru", + "lang": "be ru uk", "contentURL": "https://easylist-downloads.adblockplus.org/advblock.txt", "supportURL": "https://forums.lanik.us/viewforum.php?f=102" }, diff --git a/src/js/storage.js b/src/js/storage.js index f914c0452..346728208 100644 --- a/src/js/storage.js +++ b/src/js/storage.js @@ -430,8 +430,7 @@ /******************************************************************************/ µBlock.autoSelectRegionalFilterLists = function(lists) { - var lang = self.navigator.language.slice(0, 2), - selectedListKeys = [ this.userFiltersPath ], + var selectedListKeys = [ this.userFiltersPath ], list; for ( var key in lists ) { if ( lists.hasOwnProperty(key) === false ) { continue; } @@ -440,7 +439,7 @@ selectedListKeys.push(key); continue; } - if ( list.lang === lang ) { + if ( this.matchCurrentLanguage(list.lang) ) { selectedListKeys.push(key); list.off = false; } @@ -1135,7 +1134,7 @@ if ( details.entry.content === 'filters' ) { if ( details.entry.off !== true || - self.navigator.language.startsWith(details.entry.lang) + this.matchCurrentLanguage(details.entry.lang) ) { this.saveSelectedFilterLists([ details.assetKey ], true); } diff --git a/src/js/utils.js b/src/js/utils.js index 04c9a3e41..e7834c3de 100644 --- a/src/js/utils.js +++ b/src/js/utils.js @@ -245,3 +245,15 @@ }; /******************************************************************************/ + +// https://github.com/gorhill/uBlock/issues/2344 + +µBlock.matchCurrentLanguage = function(s) { + if ( typeof s !== 'string' ) { return false; } + if ( this.matchCurrentLanguage.reLang === undefined ) { + this.matchCurrentLanguage.reLang = new RegExp('\\b' + self.navigator.language.slice(0, 2) + '\\b'); + } + return this.matchCurrentLanguage.reLang.test(s); +}; + +/******************************************************************************/