1
1
mirror of https://github.com/gorhill/uBlock.git synced 2025-10-05 21:32:39 +02:00

Compare commits

...

23 Commits

Author SHA1 Message Date
Raymond Hill
53978ce4c4 Do not clobber rightful onBeforeSuspendableRequest listener 2023-04-12 11:19:12 -04:00
Raymond Hill
6fbbf78a92 New revision for stable build 2023-04-12 11:01:12 -04:00
Raymond Hill
b9e055c0e1 More aggressively clear the unprocessed-request status
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2589
2023-04-12 10:58:42 -04:00
Raymond Hill
be794a8de5 Fix test 2023-04-12 09:52:20 -04:00
Raymond Hill
7ace3e945d New revision for stable release 2023-04-12 09:37:50 -04:00
Raymond Hill
53f540626f Import translation work from master 2023-04-12 09:33:18 -04:00
Raymond Hill
b45057b3ad Import translation work from master 2023-04-12 09:03:36 -04:00
Raymond Hill
a21cff7d14 Link the reload button to clearing the unprocessed-requests status 2023-04-11 23:29:25 -04:00
Raymond Hill
77800991d4 Clear unprocessed status of removed tabs 2023-04-11 22:41:26 -04:00
Raymond Hill
d92b3fd227 Import some translation work from master 2023-04-11 08:50:01 -04:00
Raymond Hill
a8a670eb7a Minor CSS change 2023-04-10 19:54:56 -04:00
Raymond Hill
ee2c04c21f Import translation work from master 2023-04-10 19:46:17 -04:00
Raymond Hill
9367308ce1 Import translation work from master branch 2023-04-10 19:14:03 -04:00
Raymond Hill
ec53e52a63 Replace toolbar icon tooltip with message section in panel
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2585

Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/126rn4f/yellow_toolbar_icon_exclamation_mark_badge/jfns0pc/
2023-04-10 18:41:31 -04:00
Raymond Hill
a20ecd51fe Properly detect incorrect usage of CSS combinators
Related discussion:
- https://www.reddit.com/r/uBlockOrigin/comments/12fquk4/ublock_is_on_but_im_still_getting_ads_on_this/jfpkz1g/
2023-04-10 18:41:15 -04:00
Raymond Hill
9236845c24 Add informative tooltip re. unprocessed requests at launch
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2585
2023-04-10 18:40:47 -04:00
Raymond Hill
a58f375363 New revision for stable release 2023-04-01 17:03:21 -04:00
Raymond Hill
eafd06ae15 Ignore line, do not report as error
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2560#issuecomment-1492959500
2023-04-01 13:52:04 -04:00
Raymond Hill
6341358ff5 Fix presumed network filter not being a valid network filter
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2560#issuecomment-1492959500
2023-04-01 09:24:13 -04:00
Raymond Hill
882965ca9f Clear unprocessed requests status on webNavigation reload event
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2564
2023-03-31 10:39:04 -04:00
Raymond Hill
d03bc81317 Avoid using ! toolbar icon badge when inconsequential
uBO will now verify that at least one unprocessed network requests
at launch should have been blocked in order to warn users of
unprocessed network requests through the `!` toolbar icon badge.

For example, with default filter lists, there is nothing to block
on `wikipedia.org`, and hence in this case it's not useful to
present the user with the `!` badge.

Therefore uBO will not show the badge *only* when at least one
unprocessed network requests should have been blocked had uBO been
ready when it was fired by the browser.

Related commit:
- https://github.com/gorhill/uBlock/commit/769b8da664be
2023-03-31 10:38:52 -04:00
Raymond Hill
617f5facd7 New revision for stable release 2023-03-28 10:43:13 -04:00
Raymond Hill
a3af508791 Ensure astSelectorsFromSelectorList receive expected arguments
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2554
2023-03-28 10:41:58 -04:00
78 changed files with 521 additions and 147 deletions

2
dist/version vendored
View File

@@ -1 +1 @@
1.48.0
1.48.8

View File

@@ -211,6 +211,12 @@ vAPI.Tabs = class {
this.onCreatedNavigationTargetHandler(details);
});
browser.webNavigation.onCommitted.addListener(details => {
const { frameId, tabId } = details;
if ( frameId === 0 && tabId > 0 && details.transitionType === 'reload' ) {
if ( vAPI.net && vAPI.net.hasUnprocessedRequest(tabId) ) {
vAPI.net.removeUnprocessedRequest(tabId);
}
}
this.onCommittedHandler(details);
});
browser.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
@@ -227,6 +233,9 @@ vAPI.Tabs = class {
});
}
browser.tabs.onRemoved.addListener((tabId, details) => {
if ( vAPI.net ) {
vAPI.net.removeUnprocessedRequest(tabId);
}
this.onRemovedHandler(tabId, details);
});
}
@@ -670,9 +679,7 @@ if ( webext.browserAction instanceof Object ) {
{
const browserAction = vAPI.browserAction;
const titleTemplate =
browser.runtime.getManifest().browser_action.default_title +
' ({badge})';
const titleTemplate = `${browser.runtime.getManifest().browser_action.default_title} ({badge})`;
const icons = [
{ path: { '16': 'img/icon_16-off.png', '32': 'img/icon_32-off.png' } },
{ path: { '16': 'img/icon_16.png', '32': 'img/icon_32.png' } },
@@ -772,8 +779,9 @@ if ( webext.browserAction instanceof Object ) {
const tab = await vAPI.tabs.get(tabId);
if ( tab === null ) { return; }
const hasUnprocessedRequest = vAPI.net && vAPI.net.hasUnprocessedRequest(tabId);
const { parts, state } = details;
const { badge, color } = vAPI.net && vAPI.net.hasUnprocessedRequest(tabId)
const { badge, color } = hasUnprocessedRequest
? { badge: '!', color: '#FC0' }
: details;
@@ -798,13 +806,10 @@ if ( webext.browserAction instanceof Object ) {
// - the platform does not support browserAction.setIcon(); OR
// - the rendering of the badge is disabled
if ( browserAction.setTitle !== undefined ) {
browserAction.setTitle({
tabId: tab.id,
title: titleTemplate.replace(
'{badge}',
state === 1 ? (badge !== '' ? badge : '0') : 'off'
)
});
const title = titleTemplate.replace('{badge}',
state === 1 ? (badge !== '' ? badge : '0') : 'off'
);
browserAction.setTitle({ tabId: tab.id, title });
}
if ( vAPI.contextMenu instanceof Object ) {
@@ -1183,7 +1188,7 @@ vAPI.Net = class {
this.deferredSuspendableListener = undefined;
this.listenerMap = new WeakMap();
this.suspendDepth = 0;
this.unprocessedTabs = new Set();
this.unprocessedTabs = new Map();
browser.webRequest.onBeforeRequest.addListener(
details => {
@@ -1244,15 +1249,23 @@ vAPI.Net = class {
this.onUnprocessedRequest(details);
}
setSuspendableListener(listener) {
for ( const [ tabId, requests ] of this.unprocessedTabs ) {
let i = requests.length;
while ( i-- ) {
const r = listener(requests[i]);
if ( r === undefined || r.cancel === false ) {
requests.splice(i, 1);
}
}
if ( requests.length !== 0 ) { continue; }
this.unprocessedTabs.delete(tabId);
}
if ( this.unprocessedTabs.size !== 0 ) {
this.deferredSuspendableListener = listener;
listener = details => {
const { tabId, type } = details;
if ( type === 'main_frame' && this.unprocessedTabs.has(tabId) ) {
this.unprocessedTabs.delete(tabId);
if ( this.unprocessedTabs.size === 0 ) {
this.suspendableListener = this.deferredSuspendableListener;
this.deferredSuspendableListener = undefined;
if ( this.removeUnprocessedRequest(tabId) ) {
return this.suspendableListener(details);
}
}
@@ -1277,16 +1290,32 @@ vAPI.Net = class {
return actualListener;
}
onUnprocessedRequest(details) {
if ( details.tabId === -1 ) { return; }
const { tabId } = details;
if ( tabId === -1 ) { return; }
if ( this.unprocessedTabs.size === 0 ) {
vAPI.setDefaultIcon('-loading', '!');
}
this.unprocessedTabs.add(details.tabId);
let requests = this.unprocessedTabs.get(tabId);
if ( requests === undefined ) {
this.unprocessedTabs.set(tabId, (requests = []));
}
requests.push(Object.assign({}, details));
}
hasUnprocessedRequest(tabId) {
return this.unprocessedTabs.size !== 0 &&
this.unprocessedTabs.has(tabId);
}
// https://github.com/uBlockOrigin/uBlock-issues/issues/2589
// - Aggressively clear the unprocessed-request status of all tabs as
// soon as there is a call to clear for one tab.
removeUnprocessedRequest() {
this.unprocessedTabs.clear();
if ( this.deferredSuspendableListener === undefined ) { return true; }
if ( this.unprocessedTabs.size !== 0 ) { return false; }
this.suspendableListener = this.deferredSuspendableListener;
this.deferredSuspendableListener = undefined;
return true;
}
suspendOneRequest() {
}
unsuspendAllRequests() {

View File

@@ -1263,6 +1263,10 @@
"message": "Click to load",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "اضغط للتحميل",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "يجب أن يكون هذا الإدخال آخر واحد",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Yükləmək üçün düyməyə bas",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Націсніце, каб загрузіць",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Немагчыма фільтраваць належным чынам пры запуску браўзера.\nАбнавіце старонку, каб забяспечыць належнае фільтраванне.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Щракнете, за да се зареди",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Не може да се филтрира правилно при стартиране на браузъра.\nПрезаредете страницата, за да се уверите, че филтрирането е правилно.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Това поле трябва да бъде последното",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "লোড করতে টিপ দাও",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Kliknite za učitavanje",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Ova stavka mora biti posljednja",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Clic per carregar",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "No s'ha pogut filtrar correctament en iniciar el navegador.\nTorneu a carregar la pàgina per garantir un filtratge correcte",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Aquesta entrada ha de ser l'última",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -900,7 +900,7 @@
"description": "First paragraph of 'Documentation' section in Support pane"
},
"supportS2H": {
"message": "Otázky a podpora",
"message": "Dotazy a hlášení",
"description": "Header of 'Questions and support' section in Support pane"
},
"supportS2P1": {
@@ -1263,6 +1263,10 @@
"message": "Klik pro načtení",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Click to load",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Ку ҫыру юлашки пулмалла",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Klik for at indlæse",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Kunne ikke filtrere korrekt ved browserstart.\nGenindlæs siden for at sikre korrekt filtrering",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Denne post skal være den sidste",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -168,7 +168,7 @@
"description": "Tooltip for the no-cosmetic-filtering per-site switch"
},
"popupTipNoRemoteFonts": {
"message": "Externe Schriftarten für diese Website erlauben/blockieren",
"message": "Externe Schriftarten für diese Website zulassen/blockieren",
"description": "Tooltip for the no-remote-fonts per-site switch"
},
"popupTipNoRemoteFonts1": {
@@ -404,7 +404,7 @@
"description": "Section for controlling advanced-user settings"
},
"settingsAdvancedSynopsis": {
"message": "Funktionen, die nur für technisch versierte Benutzer geeignet sind",
"message": "Funktionen, die nur für technisch Versierte bestimmt sind",
"description": "Description of section controlling advanced-user settings"
},
"settingsAdvancedUserSettings": {
@@ -712,7 +712,7 @@
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinAllowed": {
"message": "erlaubt",
"message": "zugelassen",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinModified": {
@@ -788,7 +788,7 @@
"description": "Used in the static filtering wizard"
},
"loggerStaticFilteringSentencePartAllow": {
"message": "erlauben",
"message": "zulassen",
"description": "Used in the static filtering wizard"
},
"loggerStaticFilteringSentencePartType": {
@@ -916,7 +916,7 @@
"description": "First paragraph of 'Filter issues' section in Support pane"
},
"supportS3P2": {
"message": "<b>Wichtig:</b> Vermeiden Sie andere ähnliche Blocker zusammen mit uBlock Origin zu verwenden, da dies bei einigen Websites zu Filterproblemen führen kann.",
"message": "<b>Wichtig:</b> Vermeiden Sie es, andere ähnliche Blocker zusammen mit uBlock Origin zu verwenden, da dies bei einigen Websites zu Filterproblemen führen kann.",
"description": "Second paragraph of 'Filter issues' section in Support pane"
},
"supportS3P3": {
@@ -1212,7 +1212,7 @@
"description": "An entry in the browser's contextual menu"
},
"contextMenuTemporarilyAllowLargeMediaElements": {
"message": "Große Medienelemente temporär erlauben",
"message": "Große Medienelemente temporär zulassen",
"description": "A context menu entry, present when large media elements have been blocked on the current site"
},
"contextMenuViewSource": {
@@ -1263,6 +1263,10 @@
"message": "Zum Laden anklicken",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Beim Start des Browsers konnte nicht richtig gefiltert werden.\nBitte die Seite neu laden, um ein korrektes Filtern zu gewährleisten.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Dieser Eintrag muss der letzte sein",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Κάντε κλικ για φόρτωση",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Δεν ήταν δυνατό το σωστό φιλτράρισμα κατά την εκκίνηση του προγράμματος περιήγησης.\nΦορτώστε ξανά τη σελίδα για να διασφαλίσετε το σωστό φιλτράρισμα",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Αυτή η καταχώρηση θα πρέπει να είναι τελευταία",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1265,6 +1265,10 @@
"message": "Click to load",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Click to load",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Alklaku por ŝarĝi",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Clic para cargar",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "No se puede filtrar correctamente al iniciar el navegador.\nRecarga la página para garantizar el filtrado correcto.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Esta entrada debe ser la última",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Klõpsa laadimiseks",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Veebilehitseja avamisel nurjus filtreerimine.\nÕige filtreerimise tagab veebilehe uuesti laadimine.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "See sisestus peab olema viimane",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Sakatu kargatzeko",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "برای بازکردن کلیک نمایید",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "این باید آخرین مطلب باشد",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Lataa painamalla tästä",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Suodatus ei onnistunut selaimen käynnistyessä kunnolla.\nLataa sivu uudelleen varmistaaksesi kunnollisen suodatuksen.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Tämän on oltava viimeinen merkintä",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1216,7 +1216,7 @@
"description": "A context menu entry, present when large media elements have been blocked on the current site"
},
"contextMenuViewSource": {
"message": "Tingnan ang source…",
"message": "Tingnan ang source code…",
"description": "A context menu entry, to view the source code of the target resource"
},
"shortcutCapturePlaceholder": {
@@ -1263,6 +1263,10 @@
"message": "Pindutin upang i-load",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Dapat mahuli ang entry na ito",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Cliquez pour charger",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Échec du filtrage au lancement du navigateur. Rechargez la page pour assurer un filtrage correct.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Klik om te laden",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Koe net goed filterje by starten fan browser.\nFernij de side foar in goede filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Click to load",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Click to load",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Esta ten que ser a derradeira entrada",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Click to load",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -456,7 +456,7 @@
"description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature."
},
"3pSuspendUntilListsAreLoaded": {
"message": "השהה פעילות רשת עד לסיום טעינת כל רשימות הסינון",
"message": "השהיית פעילות רשת עד לסיום טעינת כל רשימות הסינון",
"description": "A checkbox in the 'Filter lists' pane"
},
"3pListsOfBlockedHostsHeader": {
@@ -976,7 +976,7 @@
"description": "An entry in the widget used to select the type of issue"
},
"supportS6Select1Option4": {
"message": " קיימות סוגיות 'פרטיות'",
"message": " קיימות בעיות הקשורות לפרטיות",
"description": "An entry in the widget used to select the type of issue"
},
"supportS6Select1Option5": {
@@ -988,7 +988,7 @@
"description": "An entry in the widget used to select the type of issue"
},
"supportS6Checkbox1": {
"message": "תיוג עמוד המרשתת כ־לב\"ל ((<a href=\"https://wikipedia.org/wiki/Not_safe_for_work\">'לא בטוח לעבודה'</a>)",
"message": "תיוג דף האינטרנט כ־לב\"ל ((<a href=\"https://wikipedia.org/wiki/Not_safe_for_work\">'לא בטוח לעבודה'</a>)",
"description": "A checkbox to use for NSFW sites"
},
"supportRedact": {
@@ -1216,7 +1216,7 @@
"description": "A context menu entry, present when large media elements have been blocked on the current site"
},
"contextMenuViewSource": {
"message": "צפה בקוד המקור...",
"message": "צפייה בקוד המקור...",
"description": "A context menu entry, to view the source code of the target resource"
},
"shortcutCapturePlaceholder": {
@@ -1263,6 +1263,10 @@
"message": "לחץ על מנת לטעון",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "ערך זה חייב להיות האחרון",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1216,7 +1216,7 @@
"description": "A context menu entry, present when large media elements have been blocked on the current site"
},
"contextMenuViewSource": {
"message": "View source code…",
"message": "स्रोत कोड देखें",
"description": "A context menu entry, to view the source code of the target resource"
},
"shortcutCapturePlaceholder": {
@@ -1263,6 +1263,10 @@
"message": "लोड करने के लिए क्लिक करें",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Kliknite za pokretanje",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Nije moguće pravilno filtrirati pri pokretanju \npreglednika.\nPonovno učitajte stranicu kako biste osigurali \nispravno filtriranje",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Ova stavka mora biti posljednja",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Kattints a betöltéshez",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Ez a bejegyzés utolsó kell hogy legyen",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1216,7 +1216,7 @@
"description": "A context menu entry, present when large media elements have been blocked on the current site"
},
"contextMenuViewSource": {
"message": "View source code…",
"message": "Դիտել աղբյուրի կոդը…",
"description": "A context menu entry, to view the source code of the target resource"
},
"shortcutCapturePlaceholder": {
@@ -1263,6 +1263,10 @@
"message": "Կտտացրեք՝ բեռնելու համար",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Klik untuk memuat",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Entri ini harus menjadi yang terakhir",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Clicca per caricare",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Non è stato possibile filtrare correttamente all'avvio del browser.\nRicaricare la pagina per garantire un filtraggio corretto",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "クリックして読み込む",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "ブラウザー起動時に正しくフィルターできませんでした。\nページを再読み込みしてください。",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "დაწკაპეთ ჩასატვირთად",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "სათანადოდ ვერ გაიფილტრა ბრაუზერის ჩართვისას.\nახლიდან გახსენით გვერდი უკეთ გასაფილტრად.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -56,7 +56,7 @@
"description": "appears as tab name in dashboard"
},
"supportPageName": {
"message": "Support",
"message": "Қолдау",
"description": "appears as tab name in dashboard"
},
"assetViewerPageName": {
@@ -124,71 +124,71 @@
"description": "English: Enter element picker mode"
},
"popupTipLog": {
"message": "Open the logger",
"message": "Журналды ашу",
"description": "Tooltip used for the logger icon in the panel"
},
"popupTipReport": {
"message": "Report an issue on this website",
"message": "Осы вебсайттағы мәселе жайлы хабарлау",
"description": "Tooltip used for the 'chat' icon in the panel"
},
"popupTipNoPopups": {
"message": "Toggle the blocking of all popups for this site",
"message": "Осы сайт үшін барлық попаптарды бұғаттау",
"description": "Tooltip for the no-popups per-site switch"
},
"popupTipNoPopups1": {
"message": "Click to block all popups on this site",
"message": "Мына сайттағы барлық қалқымалы терезелерді бұғаттау үшін басыңыз",
"description": "Tooltip for the no-popups per-site switch"
},
"popupTipNoPopups2": {
"message": "Click to no longer block all popups on this site",
"message": "Мына сайттағы барлық қалқымалы терезелерді бұғаттамау үшін басыңыз",
"description": "Tooltip for the no-popups per-site switch"
},
"popupTipNoLargeMedia": {
"message": "Toggle the blocking of large media elements for this site",
"message": "Мына сайттағы үлкен медиа элементтерді бұғаттауын қосу/сөндіру",
"description": "Tooltip for the no-large-media per-site switch"
},
"popupTipNoLargeMedia1": {
"message": "Click to block large media elements on this site",
"message": "Мына сайттағы үлкен медиа элементтерді бұғаттауын қосу үшін басыңыз",
"description": "Tooltip for the no-large-media per-site switch"
},
"popupTipNoLargeMedia2": {
"message": "Click to no longer block large media elements on this site",
"message": "Мына сайттағы үлкен медиа элементтерді бұғаттауын өшіру үшін басыңыз",
"description": "Tooltip for the no-large-media per-site switch"
},
"popupTipNoCosmeticFiltering": {
"message": "Toggle cosmetic filtering for this site",
"message": "Осы сайт үшін косметикалық сүзуді қосу/өшіру",
"description": "Tooltip for the no-cosmetic-filtering per-site switch"
},
"popupTipNoCosmeticFiltering1": {
"message": "Click to disable cosmetic filtering on this site",
"message": "Мына сайт үшін косметикалық сүзуді өшіру үшін басыңыз",
"description": "Tooltip for the no-cosmetic-filtering per-site switch"
},
"popupTipNoCosmeticFiltering2": {
"message": "Click to enable cosmetic filtering on this site",
"message": "Мына сайт үшін косметикалық сүзуді қосу үшін басыңыз",
"description": "Tooltip for the no-cosmetic-filtering per-site switch"
},
"popupTipNoRemoteFonts": {
"message": "Toggle the blocking of remote fonts for this site",
"message": "Осы сайт үшін қашықтан қосылған қаріптерді қосу/өшіру",
"description": "Tooltip for the no-remote-fonts per-site switch"
},
"popupTipNoRemoteFonts1": {
"message": "Click to block remote fonts on this site",
"message": "Мына сайттағы қашықтан қосылған қаріптерді бұғаттау үшін басыңыз",
"description": "Tooltip for the no-remote-fonts per-site switch"
},
"popupTipNoRemoteFonts2": {
"message": "Click to no longer block remote fonts on this site",
"message": "Мына сайттағы қашықтан қосылған қаріптерді бұғаттамау үшін басыңыз",
"description": "Tooltip for the no-remote-fonts per-site switch"
},
"popupTipNoScripting1": {
"message": "Click to disable JavaScript on this site",
"message": "Осы сайт үшін JavaScript-ты өшіру үшін басыңыз",
"description": "Tooltip for the no-scripting per-site switch"
},
"popupTipNoScripting2": {
"message": "Click to no longer disable JavaScript on this site",
"message": "Осы сайт үшін JavaScript-ты өшірмеу үшін басыңыз",
"description": "Tooltip for the no-scripting per-site switch"
},
"popupNoPopups_v2": {
"message": "Pop-up windows",
"message": "Қалқымалы терезелер",
"description": "Caption for the no-popups per-site switch"
},
"popupNoLargeMedia_v2": {
@@ -1263,6 +1263,10 @@
"message": "Click to load",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Click to load",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "불러오려면 클릭하기",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "브라우저 시작 시 필터링을 제대로 수행할 수 없습니다.\n정확한 필터링을 위해 페이지를 새로고침해주세요.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Click to load",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Klikšķināt, lai ielādētu",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Nevarēja pienācīgi aizturēt pārlūka palaišanas laikā.\nJāpārlādē lapa, lai nodrošinātu pienācīgu aizturēšanu.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Šim ierakstam ir jābūt pēdējam",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Click to load",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "ലോഡുചെയ്യാൻ ക്ലിക്കുചെയ്യുക",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Click to load",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Klik untuk memuatkan",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Klikk for å laste",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Kan ikke filtrere riktig ved nettleseroppstart.\nLast siden på nytt for å sikre riktig filtrering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Klik om te laden",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Kon niet goed filteren bij starten van browser.\nVernieuw de pagina voor een goede filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Clicatz per cargar",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -68,7 +68,7 @@
"description": "Title for the advanced settings page"
},
"popupPowerSwitchInfo": {
"message": "Kliknij, aby włączyć/wyłączyć uBlock₀ na tej witrynie.\n\nKliknij z wciśniętym klawiszem Ctrl, aby włączyć/wyłączyć uBlock₀ tylko na tej stronie.",
"message": "Kliknij, aby wyłączyć uBlock₀ dla tej witryny.\n\nKliknij z wciśniętym klawiszem Ctrl,\naby wyłączyć uBlock₀ tylko dla tej strony.",
"description": "English: Click: disable/enable uBlock₀ for this site.\n\nCtrl+click: disable uBlock₀ only on this page."
},
"popupPowerSwitchInfo1": {
@@ -216,11 +216,11 @@
"description": "Label to be used to hide popup panel sections"
},
"popupTipGlobalRules": {
"message": "Reguły globalne. W tej kolumnie znajdują się reguły stosowane na wszystkich witrynach.",
"message": "Reguły globalne:\nW tej kolumnie znajdują się reguły stosowane na wszystkich witrynach.",
"description": "Tooltip when hovering the top-most cell of the global-rules column."
},
"popupTipLocalRules": {
"message": "Reguły lokalne. W tej kolumnie znajdują się reguły stosowane tylko na bieżącej witrynie.\nReguły lokalne zastępują reguły globalne.",
"message": "Reguły lokalne:\nW tej kolumnie znajdują się reguły stosowane tylko na bieżącej witrynie.\nReguły lokalne zastępują reguły globalne.",
"description": "Tooltip when hovering the top-most cell of the local-rules column."
},
"popupTipSaveRules": {
@@ -1263,6 +1263,10 @@
"message": "Kliknij, aby załadować",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Podczas uruchamiania przeglądarki nie można prawidłowo filtrować.\nAby zapewnić prawidłowe filtrowanie, wczytaj ponownie stronę.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Ten wpis musi być ostatni",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -128,7 +128,7 @@
"description": "Tooltip used for the logger icon in the panel"
},
"popupTipReport": {
"message": "Reportar um problema com este website",
"message": "Relatar um problema com este site",
"description": "Tooltip used for the 'chat' icon in the panel"
},
"popupTipNoPopups": {
@@ -904,11 +904,11 @@
"description": "Header of 'Questions and support' section in Support pane"
},
"supportS2P1": {
"message": "Respostas a perguntas e outros tipos de suporte de ajuda são fornecidas no subreddit <code>/r/uBlockOrigin</code>.",
"message": "Respostas a perguntas e outros tipos de suporte são fornecidos no subreddit <code>/r/uBlockOrigin</code>.",
"description": "First paragraph of 'Questions and support' section in Support pane"
},
"supportS3H": {
"message": "Problemas de filtro/website está quebrado",
"message": "Problemas de filtro/site está quebrado",
"description": "Header of 'Filter issues' section in Support pane"
},
"supportS3P1": {
@@ -928,7 +928,7 @@
"description": "Header of 'Bug report' section in Support pane"
},
"supportS4P1": {
"message": "Relate problemas do próprio uBlock Origin no <span data-url=\"https://github.com/uBlockOrigin/uAssets/issues?q=is%3Aissue\">rastreador de problemas do <code>uBlockOrigin/uBlock-issue</code></span>. <u>Requer uma conta do GitHub.</u>",
"message": "Relate problemas com o próprio uBlock Origin no <span data-url=\"https://github.com/uBlockOrigin/uBlock-issues/issues?q=is%3Aissue\"> rastreador de problemas<code>uBlockOrigin/uBlock-issue</code></span>. <u>Requer uma conta GitHub.</u>",
"description": "First paragraph of 'Bug report' section in Support pane"
},
"supportS5H": {
@@ -1263,6 +1263,10 @@
"message": "Clique para carregar",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Não foi possível filtrar corretamente na inicialização do navegador.\nRecarregue a página para garantir a filtragem adequada",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Esta entrada deve ser a última",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -12,11 +12,11 @@
"description": "English: uBlock₀ — Dashboard"
},
"dashboardUnsavedWarning": {
"message": "Aviso! Tem alterações não guardadas",
"message": "Atenção! Tem alterações não guardadas",
"description": "A warning in the dashboard when navigating away from unsaved changes"
},
"dashboardUnsavedWarningStay": {
"message": "Ficar",
"message": "Permanecer",
"description": "Label for button to prevent navigating away from unsaved changes"
},
"dashboardUnsavedWarningIgnore": {
@@ -492,7 +492,7 @@
"description": "English: Multipurpose"
},
"3pGroupRegions": {
"message": "Regiões, idiomas",
"message": "Regiões e idiomas",
"description": "English: Regions, languages"
},
"3pGroupCustom": {
@@ -780,7 +780,7 @@
"description": "Small header to identify the static filtering section"
},
"loggerStaticFilteringSentence": {
"message": "{{action}} pedidos de rede de {{type}} {{br}}cujo endereço URL corresponde a {{url}} {{br}}e que origina {{origin}},{{br}}{{importance}} um filtro de exceção correspondente.",
"message": "{{action}} pedidos de rede de {{type}} {{br}}cujo endereço URL corresponde a {{url}} {{br}}e que origina {{origin}},{{br}}{{importance}} existe um filtro de exceção correspondente.",
"description": "Used in the static filtering wizard"
},
"loggerStaticFilteringSentencePartBlock": {
@@ -824,7 +824,7 @@
"description": "Message to show when a filter cannot be found in any filter lists"
},
"loggerSettingDiscardPrompt": {
"message": "Entradas do registador que não preenchem todas as três condições abaixo irão ser automaticamente descartadas:",
"message": "Entradas do registador que não preenchem todas as três condições abaixo serão automaticamente descartadas:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
@@ -912,15 +912,15 @@
"description": "Header of 'Filter issues' section in Support pane"
},
"supportS3P1": {
"message": "Relatar problemas de filtros com websites específicos para o <span data-url=\"https://github.com/uBlockOrigin/uAssets/issues?q=is%3Aissue\">controlador de problemas <code>uBlockOrigin/uAssets</code></span>. <u>Requer uma conta GitHub.</u>",
"message": "Relate problemas de filtros com websites específicos para o <span data-url=\"https://github.com/uBlockOrigin/uAssets/issues?q=is%3Aissue\">controlador de problemas <code>uBlockOrigin/uAssets</code></span>. <u>Requer uma conta GitHub.</u>",
"description": "First paragraph of 'Filter issues' section in Support pane"
},
"supportS3P2": {
"message": "<b>Importante:</b> Evite a utilização de outros bloqueadores com propósitos semelhantes juntamente com uBlock Origin, uma vez que isto pode causar problemas com filtros em websites específicos.",
"message": "<b>Importante:</b> evite a utilização de outros bloqueadores com propósitos semelhantes juntamente com o uBlock Origin, dado que isto pode causar problemas com filtros em websites específicos.",
"description": "Second paragraph of 'Filter issues' section in Support pane"
},
"supportS3P3": {
"message": "<b>Dicas:</b> Certifique-se de que as suas listas de filtros estão atualizadas. <span data-url=\"logger-ui.html#_\">O registador</span> é a ferramenta principal para diagnosticar problemas relacionados com filtros.",
"message": "<b>Dicas:</b> certifique-se de que as suas listas de filtros estão atualizadas. <span data-url=\"logger-ui.html#_\">O registador</span> é a ferramenta principal para diagnosticar problemas relacionados com filtros.",
"description": "Third paragraph of 'Filter issues' section in Support pane"
},
"supportS4H": {
@@ -928,7 +928,7 @@
"description": "Header of 'Bug report' section in Support pane"
},
"supportS4P1": {
"message": "Relatar problemas com o uBlock Origin para <span data-url=\"https://github.com/uBlockOrigin/uBlock-issues/issues?q=is%3Aissue\">controlador de problemas <code>uBlockOrigin/uBlock-issue</code></span>. <u>Requer uma conta GitHub.</u>",
"message": "Relate problemas com o próprio uBlock Origin para o <span data-url=\"https://github.com/uBlockOrigin/uBlock-issues/issues?q=is%3Aissue\">controlador de problemas <code>uBlockOrigin/uBlock-issue</code></span>. <u>Requer uma conta GitHub.</u>",
"description": "First paragraph of 'Bug report' section in Support pane"
},
"supportS5H": {
@@ -940,7 +940,7 @@
"description": "First paragraph of 'Troubleshooting Information' section in Support pane"
},
"supportS5P2": {
"message": "<b>Importante:</b> A informação potencialmente privada ou sensível é redigida por predefinição. A informação redigida pode tornar mais difícil a resolução de um problema.",
"message": "<b>Importante:</b> a informação potencialmente privada ou sensível é redigida por predefinição. A informação redigida pode tornar mais difícil a resolução de um problema.",
"description": "Second paragraph of 'Troubleshooting Information' section in Support pane"
},
"supportS6H": {
@@ -980,7 +980,7 @@
"description": "An entry in the widget used to select the type of issue"
},
"supportS6Select1Option5": {
"message": "Falha quando uBlock Origin é ativado",
"message": "Falha quando o uBlock Origin é ativado",
"description": "An entry in the widget used to select the type of issue"
},
"supportS6Select1Option6": {
@@ -988,7 +988,7 @@
"description": "An entry in the widget used to select the type of issue"
},
"supportS6Checkbox1": {
"message": "Rotular a página web como “NSFW” (<a href=\"https://pt.wikipedia.org/wiki/Not_safe_for_work\">“Não seguro para o trabalho”</a>)",
"message": "Rotular a página web como “NSFW” (<a href=\"https://wikipedia.org/wiki/Not_safe_for_work\">“Não seguro para o trabalho”</a>)",
"description": "A checkbox to use for NSFW sites"
},
"supportRedact": {
@@ -1124,7 +1124,7 @@
"description": "Used in the strict-blocking page"
},
"docblockedPrompt2": {
"message": "Por causa do seguinte filtro:",
"message": "Devido ao seguinte filtro:",
"description": "Used in the strict-blocking page"
},
"docblockedNoParamsPrompt": {
@@ -1216,7 +1216,7 @@
"description": "A context menu entry, present when large media elements have been blocked on the current site"
},
"contextMenuViewSource": {
"message": "Ver fonte…",
"message": "Ver código fonte…",
"description": "A context menu entry, to view the source code of the target resource"
},
"shortcutCapturePlaceholder": {
@@ -1263,6 +1263,10 @@
"message": "Clique para carregar",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Não foi possível filtrar adequadamente no arranque do navegador.\nRecarregue a página para assegurar uma filtragem adequada.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Esta entrada deve ser a última",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Apasă pentru a încărca",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Aceasta intrare trebuie sa fie ultima",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Нажмите, чтобы загрузить",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Не удалось выполнить фильтрацию при запуске браузера.\nПерезагрузите страницу, чтобы обеспечить фильтрацию.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Эта запись должна быть последней",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "පූරණයට ඔබන්න",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Kliknite pre načítanie",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Pri spustení prehliadača sa nepodarilo správne filtrovať.\nZnova načítajte stránku, aby ste zaistili správne filtrovanie",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Kliknite za prikaz",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Codso isbeddelada",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -84,7 +84,7 @@
"description": "English: requests blocked"
},
"popupBlockedOnThisPagePrompt": {
"message": "te kjo faqja",
"message": "te kjo faqe",
"description": "English: on this page"
},
"popupBlockedStats": {
@@ -100,7 +100,7 @@
"description": "English: or"
},
"popupBlockedOnThisPage_v2": {
"message": "Te kjo faqja janë bllokuar",
"message": "Te kjo faqe janë bllokuar",
"description": "For the new mobile-friendly popup design"
},
"popupBlockedSinceInstall_v2": {
@@ -320,7 +320,7 @@
"description": "English: Hide placeholders of blocked elements"
},
"settingsIconBadgePrompt": {
"message": "Shfaq te ikona numrin e kërkesave të bllokuara",
"message": "Shfaq ikonë numrin e kërkesave të bllokuara",
"description": "English: Show the number of blocked requests on the icon"
},
"settingsTooltipsPrompt": {
@@ -356,7 +356,7 @@
"description": "Checkbox to let user access advanced, technical features"
},
"settingsPrefetchingDisabledPrompt": {
"message": "Çaktivizoj kërkesat paraprake (për të evituar çdo lidhje me kërkesat e bllokuara)",
"message": "Çaktivizoj kërkesat paraprake (për të mos pasur lidhje me kërkesat e bllokuara)",
"description": "English: "
},
"settingsHyperlinkAuditingDisabledPrompt": {
@@ -452,11 +452,11 @@
"description": "This will cause uBO to ignore all generic cosmetic filters."
},
"3pIgnoreGenericCosmeticFiltersInfo": {
"message": "Filtrat kozmetikë jospecifikë janë filtra të cilët aplikohen për të gjitha faqet e internetit. Me aktivizimin e këtij opsioni ulet ngarkesa e memories dhe procesorit.\n\nKy opsion rekomandohet për aparatet kompjuterike jo shumë të shpejta.",
"message": "Filtrat kozmetikë jospecifikë janë filtra aplikohen për të gjitha faqet e internetit. Me aktivizimin e këtij opsioni ulet ngarkesa e memories dhe procesorit.\n\nKy opsion rekomandohet për aparatet kompjuterike jo shumë të shpejta.",
"description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature."
},
"3pSuspendUntilListsAreLoaded": {
"message": "Pezulloj aktivitetin derisa të jenë gati të gjitha listat e filtrave",
"message": "Pezulloj aktivitetin deri kur të jenë gati të gjitha listat",
"description": "A checkbox in the 'Filter lists' pane"
},
"3pListsOfBlockedHostsHeader": {
@@ -468,7 +468,7 @@
"description": "English: Apply changes"
},
"3pGroupDefault": {
"message": "Lokalë",
"message": "Lokale",
"description": "Header for the uBlock filters section in 'Filter lists pane'"
},
"3pGroupAds": {
@@ -496,7 +496,7 @@
"description": "English: Regions, languages"
},
"3pGroupCustom": {
"message": "Personalizoj",
"message": "Personale",
"description": "English: Custom"
},
"3pImport": {
@@ -824,7 +824,7 @@
"description": "Message to show when a filter cannot be found in any filter lists"
},
"loggerSettingDiscardPrompt": {
"message": "Do të fshihen automatikisht zërat në regjistër që nuk plotësojnë këto tri kushte:",
"message": "Zërat në regjistër do të fshihen automatikisht kur nuk plotësojnë këto tri kushte:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
@@ -844,7 +844,7 @@
"description": "A logger setting"
},
"loggerSettingHideColumnsPrompt": {
"message": "Fsheh shtyllat:",
"message": "Shtyllat e fshehura:",
"description": "Logger settings: a sentence to describe the purpose of the checkboxes below"
},
"loggerSettingHideColumnTime": {
@@ -916,7 +916,7 @@
"description": "First paragraph of 'Filter issues' section in Support pane"
},
"supportS3P2": {
"message": "<b>Vërejtje:</b> uBlock Origin nuk duhet përdorur njëkohësisht me aplikacionet e ngjashme bllokuese, pasi filtrat mund të shfaqin probleme.",
"message": "<b>Kujdes:</b> uBlock Origin nuk duhet përdorur njëkohësisht me aplikacionet e ngjashme bllokuese, pasi filtrat mund të shfaqin probleme.",
"description": "Second paragraph of 'Filter issues' section in Support pane"
},
"supportS3P3": {
@@ -940,7 +940,7 @@
"description": "First paragraph of 'Troubleshooting Information' section in Support pane"
},
"supportS5P2": {
"message": "<b>Vërejtje:</b> Informacionet me sfond privat dhe delikat censurohen automatikisht. Informacioni i censuruar mund ta vështirësojë zgjidhjen e problemit.",
"message": "<b>Kujdes:</b> Informacionet me sfond privat dhe delikat censurohen automatikisht. Informacioni i censuruar mund ta vështirësojë zgjidhjen e problemit.",
"description": "Second paragraph of 'Troubleshooting Information' section in Support pane"
},
"supportS6H": {
@@ -1263,6 +1263,10 @@
"message": "Klikoni për ta hapur",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Filtrimi është i paplotë pas hapjes së shfletuesit.\nFreskoni faqen për ta filtruar siç duhet.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Кликните за учитавање",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -40,7 +40,7 @@
"description": "appears as tab name in dashboard"
},
"whitelistPageName": {
"message": "Pålitliga webbplatser",
"message": "Betrodda webbplatser",
"description": "appears as tab name in dashboard"
},
"shortcutsPageName": {
@@ -68,11 +68,11 @@
"description": "Title for the advanced settings page"
},
"popupPowerSwitchInfo": {
"message": "Klick: inaktivera/aktivera uBlock₀ för denna webbplats.\n\nCtrl+klick: inaktivera uBlock₀ endast för denna sida.",
"message": "Klick: inaktivera/aktivera uBlock₀ för denna webbplats.\n\nCtrl+klick: inaktivera uBlock₀ enbart på denna sida.",
"description": "English: Click: disable/enable uBlock₀ for this site.\n\nCtrl+click: disable uBlock₀ only on this page."
},
"popupPowerSwitchInfo1": {
"message": "Klicka för att inaktivera uBlock₀ för denna webbplats.\n\nCtrl+klicka för att inaktivera uBlock₀ enbart för denna sida.",
"message": "Klicka för att inaktivera uBlock₀ för denna webbplats.\n\nCtrl+klicka för att inaktivera uBlock₀ enbart denna sida.",
"description": "Message to be read by screen readers"
},
"popupPowerSwitchInfo2": {
@@ -104,7 +104,7 @@
"description": "For the new mobile-friendly popup design"
},
"popupBlockedSinceInstall_v2": {
"message": "Blockerad sedan installationen",
"message": "Blockerat sedan installationen",
"description": "For the new mobile-friendly popup design"
},
"popupDomainsConnected_v2": {
@@ -192,7 +192,7 @@
"description": "Caption for the no-popups per-site switch"
},
"popupNoLargeMedia_v2": {
"message": "Stora mediaelement",
"message": "Stora medieelement",
"description": "Caption for the no-large-media per-site switch"
},
"popupNoCosmeticFiltering_v2": {
@@ -224,7 +224,7 @@
"description": "Tooltip when hovering the top-most cell of the local-rules column."
},
"popupTipSaveRules": {
"message": "Klicka för att göra ändringarna permanenta.",
"message": "Klicka för att göra dina ändringar permanenta.",
"description": "Tooltip when hovering over the padlock in the dynamic filtering pane."
},
"popupTipRevertRules": {
@@ -312,7 +312,7 @@
"description": "English: Click, Ctrl-click"
},
"pickerContextMenuEntry": {
"message": "Blockera element...",
"message": "Blockera element",
"description": "An entry in the browser's contextual menu"
},
"settingsCollapseBlockedPrompt": {
@@ -356,7 +356,7 @@
"description": "Checkbox to let user access advanced, technical features"
},
"settingsPrefetchingDisabledPrompt": {
"message": "Inaktivera förhandshämtning (för att förhindra anslutningar av blockerade förfrågningar)",
"message": "Inaktivera förhandshämtning (för att förhindra anslutning av blockerade nätverksförfrågningar)",
"description": "English: "
},
"settingsHyperlinkAuditingDisabledPrompt": {
@@ -396,7 +396,7 @@
"description": "background information: https://github.com/gorhill/uBlock/issues/3150"
},
"settingsUncloakCnamePrompt": {
"message": "Visa CNAME-poster",
"message": "Ta fram kanoniska namn",
"description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513"
},
"settingsAdvanced": {
@@ -404,7 +404,7 @@
"description": "Section for controlling advanced-user settings"
},
"settingsAdvancedSynopsis": {
"message": "Funktioner som endast är lämpliga för tekniska användare.",
"message": "Funktioner som endast är lämpliga för tekniska användare",
"description": "Description of section controlling advanced-user settings"
},
"settingsAdvancedUserSettings": {
@@ -500,7 +500,7 @@
"description": "English: Custom"
},
"3pImport": {
"message": "Importera...",
"message": "Importera",
"description": "The label for the checkbox used to import external filter lists"
},
"3pExternalListsHint": {
@@ -520,7 +520,7 @@
"description": "used as a tooltip for the clock icon beside a list"
},
"3pUpdating": {
"message": "Uppdaterar...",
"message": "Uppdaterar",
"description": "used as a tooltip for the spinner icon beside a list"
},
"3pNetworkError": {
@@ -576,7 +576,7 @@
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"rulesImport": {
"message": "Importera från fil...",
"message": "Importera från fil",
"description": ""
},
"rulesExport": {
@@ -624,7 +624,7 @@
"description": "English: Export"
},
"whitelistExportFilename": {
"message": "mina-ublock-pålitliga-webbplatser_{{datetime}}.txt",
"message": "mina-ublock-betrodda-webbplatser_{{datetime}}.txt",
"description": "The default filename to use for import/export purpose"
},
"whitelistApply": {
@@ -880,7 +880,7 @@
"description": "Label for radio-button to pick export text format"
},
"supportOpenButton": {
"message": "Öppen",
"message": "Öppna",
"description": "Text for button which open an external webpage in Support pane"
},
"supportReportSpecificButton": {
@@ -912,7 +912,7 @@
"description": "Header of 'Filter issues' section in Support pane"
},
"supportS3P1": {
"message": "Rapportera filterproblem med specifika webbplatser till <span data-url=\"https://github.com/uBlockOrigin/uAssets/issues?q=is%3Aissue\"><code>uBlockOrigin/uAssets</code> issue tracker</span>. <u>Kräver ett GitHub-konto.</u>",
"message": "Rapportera filterproblem med specifika webbplatser till <span data-url=\"https://github.com/uBlockOrigin/uAssets/issues?q=is%3Aissue\"><code>uBlockOrigin/uAssets</code> problemhanteringssystemet</span>. <u>Kräver ett GitHub-konto.</u>",
"description": "First paragraph of 'Filter issues' section in Support pane"
},
"supportS3P2": {
@@ -956,7 +956,7 @@
"description": "Label for the URL of the page"
},
"supportS6Select1": {
"message": "Webbsidan...",
"message": "Webbsidan",
"description": "Label for widget to select type of issue"
},
"supportS6Select1Option0": {
@@ -984,7 +984,7 @@
"description": "An entry in the widget used to select the type of issue"
},
"supportS6Select1Option6": {
"message": "Öppnar oönskade flikar och fönster",
"message": "Öppnar oönskade flikar eller fönster",
"description": "An entry in the widget used to select the type of issue"
},
"supportS6Checkbox1": {
@@ -1040,7 +1040,7 @@
"description": "Shown in the About pane"
},
"aboutBackupDataButton": {
"message": "Säkerhetskopiera till fil...",
"message": "Säkerhetskopiera till fil",
"description": "Text for button to create a backup of all settings"
},
"aboutBackupFilename": {
@@ -1048,11 +1048,11 @@
"description": "English: my-ublock-backup_{{datetime}}.txt"
},
"aboutRestoreDataButton": {
"message": "Återställ från fil...",
"message": "Återställ från fil",
"description": "English: Restore from file..."
},
"aboutResetDataButton": {
"message": "Återställ till standardinställningarna...",
"message": "Återställ till standardinställningarna",
"description": "English: Reset to default settings..."
},
"aboutRestoreDataConfirm": {
@@ -1176,7 +1176,7 @@
"description": "tooltip"
},
"cloudNoData": {
"message": "...\n...",
"message": "…\n…",
"description": ""
},
"cloudDeviceNamePrompt": {
@@ -1204,11 +1204,11 @@
"description": ""
},
"contextMenuBlockElementInFrame": {
"message": "Blockera element i ramar...",
"message": "Blockera element i ramar",
"description": "An entry in the browser's contextual menu"
},
"contextMenuSubscribeToList": {
"message": "Prenumerera på filterlista...",
"message": "Prenumerera på filterlista",
"description": "An entry in the browser's contextual menu"
},
"contextMenuTemporarilyAllowLargeMediaElements": {
@@ -1232,7 +1232,7 @@
"description": "Label for buttons used to copy something to the clipboard"
},
"genericSelectAll": {
"message": "Markera alla",
"message": "Markera allt",
"description": "Label for buttons used to select all text in editor"
},
"toggleCosmeticFiltering": {
@@ -1263,6 +1263,10 @@
"message": "Klicka för att ladda",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Det gick inte att filtrera ordentligt vid webbläsarstart.\nLadda om sidan för att säkerställa korrekt filtrering.\n",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Bofya kupakia",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "ஏற்ற கிளிக் செய்க",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "లోడ్ చేయడానికి క్లిక్ చేయండి",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "ఇది అంతిమంగా వుండాల్సిన నమోదు",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "คลิกเพื่อโหลด",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -168,15 +168,15 @@
"description": "Tooltip for the no-cosmetic-filtering per-site switch"
},
"popupTipNoRemoteFonts": {
"message": "Bu site için uzak yazıtiplerini engellemeyi aç/kapat",
"message": "Bu site için uzak yazı tiplerini engellemeyi aç/kapat",
"description": "Tooltip for the no-remote-fonts per-site switch"
},
"popupTipNoRemoteFonts1": {
"message": "Bu sitede uzak yazıtiplerini engellemek için tıklayın",
"message": "Bu sitede uzak yazı tiplerini engellemek için tıklayın",
"description": "Tooltip for the no-remote-fonts per-site switch"
},
"popupTipNoRemoteFonts2": {
"message": "Bu sitede uzak yazıtiplerini artık engellememek için tıklayın",
"message": "Bu sitede uzak yazı tiplerini artık engellememek için tıklayın",
"description": "Tooltip for the no-remote-fonts per-site switch"
},
"popupTipNoScripting1": {
@@ -348,7 +348,7 @@
"description": "Label for checkbox to pick an accent color"
},
"settingsCloudStorageEnabledPrompt": {
"message": "Bulut depo desteğini etkinleştir",
"message": "Bulut depolama desteğini etkinleştir",
"description": ""
},
"settingsAdvancedUserPrompt": {
@@ -384,7 +384,7 @@
"description": ""
},
"settingsNoRemoteFontsPrompt": {
"message": "Uzak yazıtiplerini engelle",
"message": "Uzak yazı tiplerini engelle",
"description": ""
},
"settingsNoScriptingPrompt": {
@@ -468,7 +468,7 @@
"description": "English: Apply changes"
},
"3pGroupDefault": {
"message": "Yerel",
"message": "Yerleşik",
"description": "Header for the uBlock filters section in 'Filter lists pane'"
},
"3pGroupAds": {
@@ -1164,15 +1164,15 @@
"description": "Button text to navigate to the blocked page"
},
"cloudPush": {
"message": "Bulut depoya aktar",
"message": "Bulut depolamaya aktar",
"description": "tooltip"
},
"cloudPull": {
"message": "Bulut depodan al",
"message": "Bulut depolamadan içe aktar",
"description": "tooltip"
},
"cloudPullAndMerge": {
"message": "Bulut depodan al ve şu anki ayarlarla birleştir",
"message": "Bulut depolamadan içe aktar ve şu anki ayarlarla birleştir",
"description": "tooltip"
},
"cloudNoData": {
@@ -1263,6 +1263,10 @@
"message": "Yüklemek için tıkla",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Tarayıcıılışında düzgün filtreleme yapılamadı.\nDüzgün filtreleme için sayfayı yenileyin.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Bu girdi en sonda olmalıdır",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -136,7 +136,7 @@
"description": "Tooltip for the no-popups per-site switch"
},
"popupTipNoPopups1": {
"message": "Натисніть для блокування всіх спливних вікон на цьому сайті",
"message": "Натисніть, щоб заблокувати всі спливні вікна на цьому сайті",
"description": "Tooltip for the no-popups per-site switch"
},
"popupTipNoPopups2": {
@@ -180,11 +180,11 @@
"description": "Tooltip for the no-remote-fonts per-site switch"
},
"popupTipNoScripting1": {
"message": "Натисніть для вимкнення JavaScript на цьому сайті",
"message": "Натисніть, щоб повністю вимкнути JavaScript на цьому сайті",
"description": "Tooltip for the no-scripting per-site switch"
},
"popupTipNoScripting2": {
"message": "Натисніть для скасування вимкнення JavaScript на цьому сайті",
"message": "Натисніть, щоб скасувати вимкнення JavaScript на цьому сайті",
"description": "Tooltip for the no-scripting per-site switch"
},
"popupNoPopups_v2": {
@@ -452,7 +452,7 @@
"description": "This will cause uBO to ignore all generic cosmetic filters."
},
"3pIgnoreGenericCosmeticFiltersInfo": {
"message": "Загальні косметичні фільтри - це ті косметичні фільтри, які призначені для застосування на всіх веб-сайтах. Увімкнення цієї опції усуне навантаження на пам'ять і процесор, що додається до веб-сторінок у результаті обробки загальних косметичних фільтрів.\n\nРекомендується вмикати цю опцію на менш потужних пристроях.",
"message": "Загальні косметичні фільтри це ті косметичні фільтри, які призначені для застосування на всіх вебсайтах. Увімкнення цієї опції усуне навантаження на пам'ять і процесор, що додається до вебсторінок у результаті обробки загальних косметичних фільтрів.\n\nРадимо вмикати цю опцію на менш потужних пристроях.",
"description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature."
},
"3pSuspendUntilListsAreLoaded": {
@@ -1263,6 +1263,10 @@
"message": "Натисніть, щоб завантажити",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Неможливо правильно фільтрувати під час запуску браузера.\nПерезапустіть сторінку для гарантії правильного фільтрування",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Цей запис має бути останнім",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Click to load",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "This entry must be the last one",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "Bấm để tải",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering.",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "Đây là mục cuối",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -964,7 +964,7 @@
"description": "An entry in the widget used to select the type of issue"
},
"supportS6Select1Option1": {
"message": "显示广告或清除后的残留",
"message": "显示广告或广告残留",
"description": "An entry in the widget used to select the type of issue"
},
"supportS6Select1Option2": {
@@ -988,7 +988,7 @@
"description": "An entry in the widget used to select the type of issue"
},
"supportS6Checkbox1": {
"message": "将该网页标记为<a href=\"https://wikipedia.org/wiki/Not_safe_for_work\">“NSFW”公众场所不宜阅览)</a>",
"message": "将该网页标记为 “NSFW”<a href=\"https://wikipedia.org/wiki/Not_safe_for_work\">“工作场所不宜</a>",
"description": "A checkbox to use for NSFW sites"
},
"supportRedact": {
@@ -1028,7 +1028,7 @@
"description": "Link text to uBO's own filter lists repo"
},
"aboutDependencies": {
"message": "外部依赖( GPLv3 协议兼容",
"message": "外部依赖(兼容 GPLv3 协议):",
"description": "Shown in the About pane"
},
"aboutCDNs": {
@@ -1263,6 +1263,10 @@
"message": "单击以加载",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "无法在浏览器启动时正常过滤。\n重新加载此页面以确保正常过滤。",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "此条目必须是最后一个",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -1263,6 +1263,10 @@
"message": "點擊以載入",
"description": "Message used in frame placeholders"
},
"unprocessedRequestTooltip": {
"message": "無法在瀏覽器啟動的時候正確過濾。\n請重新載入頁面來確保過濾正確。",
"description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally"
},
"dummy": {
"message": "此條目須為最後一個",
"description": "so we dont need to deal with comma for last entry"

View File

@@ -202,7 +202,7 @@ body.needSave #revertRules {
margin-top: 6px;
text-align: center;
}
body.mobile.no-tooltips .toolRibbon .tool {
:root.mobile.no-tooltips .toolRibbon .tool {
font-size: 1.6em;
}
@@ -228,6 +228,26 @@ body.mobile.no-tooltips .toolRibbon .tool {
visibility: visible;
}
#unprocessedRequestWarning {
align-items: center;
background-color: #fc0;
color: rgb(var(--ink-80));
stroke: rgb(var(--ink-80));
display: none;
font-size: var(--font-size-smaller);
padding: var(--popup-gap-thin);
}
:root.warn #unprocessedRequestWarning {
display: flex;
}
#unprocessedRequestWarning > .dismiss {
flex-shrink: 0;
width: calc(var(--font-size) - 2px);
}
#unprocessedRequestWarning > .dismiss > svg {
width: 100%;
}
#moreOrLess {
column-gap: 0;
display: grid;

View File

@@ -496,9 +496,10 @@ const popupDataFromTabId = function(tabId, tabTitle) {
popupPanelDisabledSections: µbhs.popupPanelDisabledSections,
popupPanelLockedSections: µbhs.popupPanelLockedSections,
popupPanelHeightMode: µbhs.popupPanelHeightMode,
tabId: tabId,
tabTitle: tabTitle,
tooltipsDisabled: µbus.tooltipsDisabled
tabId,
tabTitle,
tooltipsDisabled: µbus.tooltipsDisabled,
hasUnprocessedRequest: vAPI.net && vAPI.net.hasUnprocessedRequest(tabId),
};
if ( µbhs.uiPopupConfig !== 'unset' ) {
@@ -617,6 +618,11 @@ const onMessage = function(request, sender, callback) {
let response;
switch ( request.what ) {
case 'dismissUnprocessedRequest':
vAPI.net.removeUnprocessedRequest(request.tabId);
µb.updateToolbarIcon(request.tabId, 0b110);
break;
case 'hasPopupContentChanged': {
const pageStore = µb.pageStoreFromTabId(request.tabId);
const lastModified = pageStore ? pageStore.contentLastModified : 0;

View File

@@ -133,7 +133,9 @@ const hashFromPopupData = function(reset = false) {
if ( reset ) {
cachedPopupHash = hash;
}
dom.cl.toggle(dom.body, 'needReload', hash !== cachedPopupHash);
dom.cl.toggle(dom.body, 'needReload',
hash !== cachedPopupHash || popupData.hasUnprocessedRequest === true
);
};
/******************************************************************************/
@@ -604,6 +606,9 @@ const renderPopup = function() {
total ? Math.min(total, 99).toLocaleString() : ''
);
// Unprocesseed request(s) warning
dom.cl.toggle(dom.root, 'warn', popupData.hasUnprocessedRequest === true);
dom.cl.toggle(dom.html, 'colorBlind', popupData.colorBlindFriendly === true);
setGlobalExpand(popupData.firewallPaneMinimized === false, true);
@@ -618,6 +623,18 @@ const renderPopup = function() {
/******************************************************************************/
dom.on('.dismiss', 'click', ( ) => {
messaging.send('popupPanel', {
what: 'dismissUnprocessedRequest',
tabId: popupData.tabId,
}).then(( ) => {
popupData.hasUnprocessedRequest = false;
dom.cl.remove(dom.root, 'warn');
});
});
/******************************************************************************/
// https://github.com/gorhill/uBlock/issues/2889
// Use tooltip for ARIA purpose.
@@ -1066,6 +1083,18 @@ const setFirewallRuleHandler = function(ev) {
/******************************************************************************/
const reloadTab = function(bypassCache = false) {
// Premptively clear the unprocessed-requests status since we know for sure
// the page is being reloaded in this code path.
if ( popupData.hasUnprocessedRequest === true ) {
messaging.send('popupPanel', {
what: 'dismissUnprocessedRequest',
tabId: popupData.tabId,
}).then(( ) => {
popupData.hasUnprocessedRequest = false;
dom.cl.remove(dom.root, 'warn');
});
}
messaging.send('popupPanel', {
what: 'reloadTab',
tabId: popupData.tabId,

View File

@@ -103,6 +103,7 @@ const initializeTabs = async ( ) => {
const tabs = await vAPI.tabs.query({ url: '<all_urls>' });
for ( const tab of tabs ) {
if ( tab.discarded === true ) { continue; }
if ( tab.status === 'unloaded' ) { continue; }
const { id, url } = tab;
µb.tabContextManager.commit(id, url);
µb.bindTabToPageStore(id, 'tabCommitted', tab);
@@ -118,21 +119,23 @@ const initializeTabs = async ( ) => {
tabIds.push(id);
}
}
const results = await Promise.all(toCheck);
for ( let i = 0; i < results.length; i++ ) {
const result = results[i];
if ( result.length === 0 || result[0] !== true ) { continue; }
// Inject declarative content scripts programmatically.
for ( const contentScript of manifest.content_scripts ) {
for ( const file of contentScript.js ) {
vAPI.tabs.executeScript(tabIds[i], {
file: file,
allFrames: contentScript.all_frames,
runAt: contentScript.run_at
});
// We do not want to block on content scripts injection
Promise.all(toCheck).then(results => {
for ( let i = 0; i < results.length; i++ ) {
const result = results[i];
if ( result.length === 0 || result[0] !== true ) { continue; }
// Inject declarative content scripts programmatically.
for ( const contentScript of manifest.content_scripts ) {
for ( const file of contentScript.js ) {
vAPI.tabs.executeScript(tabIds[i], {
file: file,
allFrames: contentScript.all_frames,
runAt: contentScript.run_at
});
}
}
}
}
});
};
/******************************************************************************/
@@ -462,6 +465,9 @@ if ( selfieIsValid !== true ) {
// This can be used to defer filtering decision-making.
µb.readyToFilter = true;
// Initialize internal state with maybe already existing tabs.
await initializeTabs();
// Start network observers.
webRequest.start();
@@ -472,9 +478,6 @@ webRequest.start();
// as possible ensure minimal memory usage baseline.
lz4Codec.relinquish();
// Initialize internal state with maybe already existing tabs.
initializeTabs();
// https://github.com/chrisaljoudi/uBlock/issues/184
// Check for updates not too far in the future.
io.addObserver(µb.assetObserver.bind(µb));

View File

@@ -1123,7 +1123,9 @@ export class AstFilterParser {
if ( tail !== 0 ) {
this.linkRight(prev, tail);
}
this.validateNet();
if ( this.astType === AST_TYPE_NETWORK ) {
this.validateNet();
}
return this.throwHeadNode(head);
}
@@ -2966,6 +2968,7 @@ class ExtSelectorCompiler {
if ( parts === undefined ) { return; }
if ( this.astHasType(parts, 'Error') ) { return; }
if ( this.astHasType(parts, 'Selector') === false ) { return; }
if ( this.astIsValidSelectorList(parts) === false ) { return; }
if (
this.astHasType(parts, 'ProceduralSelector') === false &&
this.astHasType(parts, 'ActionSelector') === false
@@ -3348,6 +3351,7 @@ class ExtSelectorCompiler {
}
astSelectorsFromSelectorList(args) {
if ( Array.isArray(args) === false ) { return; }
if ( args.length < 3 ) { return; }
if ( args[0].data instanceof Object === false ) { return; }
if ( args[0].data.type !== 'SelectorList' ) { return; }

View File

@@ -62,6 +62,9 @@
<a href="logger-ui.html#_" class="fa-icon tool enabled" target="uBOLogger" tabindex="0" data-i18n-title="popupTipLog">list-alt<span class="caption" data-i18n="popupTipLog"></span></a>
<a href="dashboard.html" class="fa-icon tool enabled" target="uBODashboard" tabindex="0" data-i18n-title="popupTipDashboard">cogs<span class="caption" data-i18n="popupTipDashboard"></span></a>
</div>
<div id="unprocessedRequestWarning">
<span data-i18n="unprocessedRequestTooltip"></span><span class="dismiss"><svg viewBox="0 0 20 20"><path d="M0,0 20,20M0,20 20,0" /></svg></span>
</div>
<hr data-more="f">
<div class="itemRibbon" data-more="f">
<span data-i18n="popupVersion"></span><span id="version"></span>