diff --git a/assets/assets.json b/assets/assets.json index edbba5e5a1803..9fd1a81645120 100644 --- a/assets/assets.json +++ b/assets/assets.json @@ -424,7 +424,7 @@ "off": true, "title": "IRN: Adblock-Iran", "lang": "fa", - "contentURL": "https://raw.githubusercontent.com/farrokhi/adblock-iran/master/filter.txt", + "contentURL": "https://cdn.rawgit.com/farrokhi/adblock-iran/master/filter.txt", "supportURL": "https://github.com/farrokhi/adblock-iran" }, "ISL-0": { diff --git a/dist/description/description-fa.txt b/dist/description/description-fa.txt index b204bd8b4c5d0..1fba6ef815c7b 100644 --- a/dist/description/description-fa.txt +++ b/dist/description/description-fa.txt @@ -2,11 +2,11 @@ بررسی تصویری از کارایی این محصول: https://github.com/gorhill/uBlock/wiki/uBlock-vs.-ABP:-efficiency-compared -کاربرد: دکمه ی پاور بزرگ در پنجره برای فعال یا غیر فعال کردن uBlock برای صفحه ی جاری است. فقط برای همین سایت اعمال میشود، دکمه ی پاوری برای تمام سایت ها نیست. +روش استفاده: دکمۀ قدرت بزرگ در پنجرۀ بالاپَر برای فعال یا غیرفعال کردن دائمی یوبلاک برای وب‌سایت فعلی می‌باشد. این فقط برای همین سایت اعمال میشود، این دکمه ی قدرتی برای تمام سایت ها نیست. *** -انعطاف پذیری آن بیشتر از "ad blocker" است: همچنین می تواند فیلتر ها را از هاست میزبان، بخواند و بسازد. +انعطاف پذیری آن بیشتر از "ad blocker" است: این یکی همچنین می تواند فیلتر‌هایی را از فایل‌های هاست‌های میزبان، خوانده و بسازد. بیرون از جعبه، این لیست فیلترها بارگذاری و اجرا میشوند: diff --git a/dist/description/description-kk.txt b/dist/description/description-kk.txt new file mode 100644 index 0000000000000..0407a694837a8 --- /dev/null +++ b/dist/description/description-kk.txt @@ -0,0 +1,49 @@ +An efficient blocker: easy on memory and CPU footprint, and yet can load and enforce thousands more filters than other popular blockers out there. + +Illustrated overview of its efficiency: https://github.com/gorhill/uBlock/wiki/uBlock-vs.-ABP:-efficiency-compared + +Usage: The big power button in the popup is to permanently disable/enable uBlock for the current web site. It applies to the current web site only, it is not a global power button. + +*** + +Flexible, it's more than an "ad blocker": it can also read and create filters from hosts files. + +Out of the box, these lists of filters are loaded and enforced: + +- EasyList +- Peter Lowe’s Ad server list +- EasyPrivacy +- Malware domains + +More lists are available for you to select if you wish: + +- Fanboy’s Enhanced Tracking List +- Dan Pollock’s hosts file +- hpHosts’s Ad and tracking servers +- MVPS HOSTS +- Spam404 +- And many others + +Of course, the more filters enabled, the higher the memory footprint. Yet, even after adding Fanboy's two extra lists, hpHosts’s Ad and tracking servers, uBlock still has a lower memory footprint than other very popular blockers out there. + +Also, be aware that selecting some of these extra lists may lead to higher likelihood of web site breakage -- especially those lists which are normally used as hosts file. + +*** + +Without the preset lists of filters, this extension is nothing. So if ever you really do want to contribute something, think about the people working hard to maintain the filter lists you are using, which were made available to use by all for free. + +*** + +Еркін. +Open source with public license (GPLv3) +For users by users. + +Contributors @ Github: https://github.com/gorhill/uBlock/graphs/contributors +Contributors @ Crowdin: https://crowdin.net/project/ublock + +*** + +It's quite an early version, keep this in mind when you review. + +Project change log: +https://github.com/gorhill/uBlock/releases diff --git a/dist/description/description-no.txt b/dist/description/description-nb.txt similarity index 100% rename from dist/description/description-no.txt rename to dist/description/description-nb.txt diff --git a/platform/chromium/manifest.json b/platform/chromium/manifest.json index 8c75debe78d3a..ab31d6feddaf8 100644 --- a/platform/chromium/manifest.json +++ b/platform/chromium/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "uBlock Origin", - "version": "1.14.24", + "version": "1.15.4", "commands": { "launch-element-zapper": { diff --git a/platform/webext/vapi-webrequest.js b/platform/webext/vapi-webrequest.js index c2551ffbc366a..e25b8d164e7c9 100644 --- a/platform/webext/vapi-webrequest.js +++ b/platform/webext/vapi-webrequest.js @@ -61,46 +61,41 @@ vAPI.net.registerListeners = function() { var wrApi = browser.webRequest; // legacy Chromium understands only these network request types. - var validTypes = { - main_frame: true, - sub_frame: true, - stylesheet: true, - script: true, - image: true, - object: true, - xmlhttprequest: true, - other: true - }; + var validTypes = new Set([ + 'image', + 'main_frame', + 'object', + 'other', + 'script', + 'stylesheet', + 'sub_frame', + 'xmlhttprequest', + ]); // modern Chromium/WebExtensions: more types available. if ( wrApi.ResourceType ) { for ( let typeKey in wrApi.ResourceType ) { if ( wrApi.ResourceType.hasOwnProperty(typeKey) ) { - validTypes[wrApi.ResourceType[typeKey]] = true; + validTypes.add(wrApi.ResourceType[typeKey]); } } } var denormalizeTypes = function(aa) { if ( aa.length === 0 ) { - return Object.keys(validTypes); + return Array.from(validTypes); } - var out = []; - var i = aa.length, - type, - needOther = true; + var out = new Set(), + i = aa.length; while ( i-- ) { - type = aa[i]; - if ( validTypes[type] ) { - out.push(type); + var type = aa[i]; + if ( validTypes.has(type) ) { + out.add(type); } - if ( type === 'other' ) { - needOther = false; + if ( type === 'image' && validTypes.has('imageset') ) { + out.add('imageset'); } } - if ( needOther ) { - out.push('other'); - } - return out; + return Array.from(out); }; var punycode = self.punycode; @@ -144,7 +139,7 @@ vAPI.net.registerListeners = function() { let urls = this.onBeforeRequest.urls || ['']; let types = this.onBeforeRequest.types || undefined; if ( - (validTypes.websocket) && + (validTypes.has('websocket')) && (types === undefined || types.indexOf('websocket') !== -1) && (urls.indexOf('') === -1) ) { diff --git a/src/_locales/bn/messages.json b/src/_locales/bn/messages.json index f2f97c13088f4..e99ea6f254ea4 100644 --- a/src/_locales/bn/messages.json +++ b/src/_locales/bn/messages.json @@ -512,7 +512,7 @@ "description": "Pretty name for behind-the-scene network requests" }, "loggerCurrentTab": { - "message": "Current tab", + "message": "বর্তমান ট্যাব", "description": "Appears in the logger's tab selector" }, "logFilterPrompt": { diff --git a/src/_locales/cs/messages.json b/src/_locales/cs/messages.json index b75365c96c411..d928a65981c48 100644 --- a/src/_locales/cs/messages.json +++ b/src/_locales/cs/messages.json @@ -4,7 +4,7 @@ "description": "extension name." }, "extShortDesc": { - "message": "Konečně efektivní blokovač, který nezatěžuje CPU a paměť.", + "message": "Konečně efektivní blokovač. Nezatěžuje CPU a paměť.", "description": "this will be in the chrome web store: must be 132 characters or less" }, "dashboardName": { @@ -52,7 +52,7 @@ "description": "Message to be read by screen readers" }, "popupPowerSwitchInfo2": { - "message": "Click to enable uBlock₀ for this site.", + "message": "Kliknutím povolíte uBlock₀ pro tento web.", "description": "Message to be read by screen readers" }, "popupBlockedRequestPrompt": { @@ -96,11 +96,11 @@ "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoPopups1": { - "message": "Click to block all popups on this site", + "message": "Kliknutím zablokujete všechny popupy pro tento web", "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoPopups2": { - "message": "Zhbllokoj të gjitha dritaret automatike të faqes", + "message": "Kliknutím vypnete blokování všech popupů pro tento web", "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoLargeMedia": { @@ -108,11 +108,11 @@ "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoLargeMedia1": { - "message": "Click to block large media elements on this site", + "message": "Kliknutím zablokujete velké multimediální prvky na tomto webu", "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoLargeMedia2": { - "message": "Click to no longer block large media elements on this site", + "message": "Kliknutím vypnete blokování velkých multimediálních prvků na tomto webu", "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoCosmeticFiltering": { @@ -120,11 +120,11 @@ "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoCosmeticFiltering1": { - "message": "Click to disable cosmetic filtering on this site", + "message": "Kliknutím zakážete kosmetické filtrování na tomto webu", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoCosmeticFiltering2": { - "message": "Click to enable cosmetic filtering on this site", + "message": "Kliknutím povolíte kosmetické filtrování na tomto webu", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoRemoteFonts": { @@ -132,11 +132,11 @@ "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipNoRemoteFonts1": { - "message": "Click to block remote fonts on this site", + "message": "Kliknutím zablokujete externí\/vzdálené fonty na tomto webu", "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipNoRemoteFonts2": { - "message": "Click to no longer block remote fonts on this site", + "message": "Kliknutím vypnete blokování externích\/vzdálených fontů na tomto webu", "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipGlobalRules": { @@ -512,7 +512,7 @@ "description": "Pretty name for behind-the-scene network requests" }, "loggerCurrentTab": { - "message": "Current tab", + "message": "Aktivní list", "description": "Appears in the logger's tab selector" }, "logFilterPrompt": { diff --git a/src/_locales/fa/messages.json b/src/_locales/fa/messages.json index 342f62e0d597a..f2fd41ba3a86d 100644 --- a/src/_locales/fa/messages.json +++ b/src/_locales/fa/messages.json @@ -32,7 +32,7 @@ "description": "appears as tab name in dashboard" }, "statsPageName": { - "message": "uBlock₀ — لاگ درخواست های شبکه", + "message": "uBlock₀ — واقعه‌نگار", "description": "Title for the logger window" }, "aboutPageName": { @@ -80,7 +80,7 @@ "description": "English: Click to open the dashboard" }, "popupTipZapper": { - "message": "ورود به حالت انتخاب اشیاء", + "message": "ورود به حالت له کردن اشیاء", "description": "Tooltip for the element-zapper icon in the popup panel" }, "popupTipPicker": { @@ -88,7 +88,7 @@ "description": "English: Enter element picker mode" }, "popupTipLog": { - "message": "رفتن به لاگ درخواست", + "message": "بازکردن واقعه‌نگار", "description": "Tooltip used for the logger icon in the panel" }, "popupTipNoPopups": { @@ -104,7 +104,7 @@ "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoLargeMedia": { - "message": "تغییر وضعیت انسداد عناصر مدیای حجیم برای این سایت", + "message": "تغییر وضعیت مسدود کردن عناصر رسانه ای حجیم برای این سایت", "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoLargeMedia1": { @@ -112,7 +112,7 @@ "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoLargeMedia2": { - "message": "کلیک کنید تا دیگر عناصر رسانه ای حجیم روی این سایت مسدود نشوند", + "message": "کلیک کنید تا از این به بعد عناصر رسانه ای حجیم روی این سایت مسدود نشوند", "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoCosmeticFiltering": { @@ -128,7 +128,7 @@ "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoRemoteFonts": { - "message": "تغییر وضعیت انسداد فونت های از راه دور برای این سایت", + "message": "تغییر وضعیت انسداد فونت های راه دور برای این سایت", "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipNoRemoteFonts1": { @@ -136,11 +136,11 @@ "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipNoRemoteFonts2": { - "message": "کلیک کنید تا دیگر فونت های راه دور در این سایت مسدود نشوند", + "message": "کلیک کنید تا از این به بعد فونت های راه دور در این سایت مسدود نشوند", "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipGlobalRules": { - "message": "قوانین همگانی: این ستون برای قوانینی است که به تمامی سایت ها اعمال می شود.", + "message": "قوانین همگانی: این ستون برای قوانینی است که برای همۀ سایت ها اعمال می شوند.", "description": "Tooltip when hovering the top-most cell of the global-rules column." }, "popupTipLocalRules": { @@ -152,7 +152,7 @@ "description": "Tooltip when hovering over the padlock in the dynamic filtering pane." }, "popupTipRevertRules": { - "message": "برای برگشت تغییرات کلیک کنید.", + "message": "برای دور انداختن تغییراتی که اعمال کرده اید کلیک کنید.", "description": "Tooltip when hovering over the eraser in the dynamic filtering pane." }, "popupAnyRulePrompt": { @@ -260,7 +260,7 @@ "description": "For the tooltip of a link which gives access to advanced settings" }, "settingsPrefetchingDisabledPrompt": { - "message": "غیر فعال کردن واکشی اولیه (برای جلوگیری از هر گونه اتصال برای درخواست های شبکه مسدود شده)", + "message": "غیر فعال کردن واکشی اولیه (برای جلوگیری از هر گونه اتصال برای درخواست های مسدود شدۀ شبکه)", "description": "English: " }, "settingsHyperlinkAuditingDisabledPrompt": { @@ -268,7 +268,7 @@ "description": "English: " }, "settingsWebRTCIPAddressHiddenPrompt": { - "message": "ممنوع کردن WebRTC از افشاسازی آدرس های IP محلی", + "message": "جلوگیری کردن از WebRTC از افشاسازی آدرس های IP محلی", "description": "English: " }, "settingPerSiteSwitchGroup": { @@ -292,7 +292,7 @@ "description": "" }, "settingsNoCSPReportsPrompt": { - "message": "مسدود کردن گزارشات سیاست امنیت محتوا", + "message": "مسدود کردن براساس گزارشات سیاست امنیت محتوا", "description": "background information: https:\/\/github.com\/gorhill\/uBlock\/issues\/3150" }, "settingsStorageUsed": { @@ -332,7 +332,7 @@ "description": "English: Parse and enforce Adblock+ element hiding filters." }, "3pParseAllABPHideFiltersInfo": { - "message": "

این گزینه Adblock Plus-compatible “element hiding” filters<\/a> را تجزیه و اجرا میکند. این فیلتر ها اساساً فنی هستند، آنها اشیاء موجود در صفحه وب را که مزاحم تلقی میشوند و با موتور فیلترینگ شبکه قابل بلاک کردن نیستند را حذف میکنند.<\/p>

فعال کردن این قابلیت مصرف حافظه ی uBlock<\/i>را افزایش میدهد.<\/p>", + "message": "

این گزینه فیلترهای “مخفی‌کردن اشیا” سازگار با ادبلاک پلاس<\/a> را تجزیه و اجرا میکند. این فیلتر ها اساساً فنی هستند، آنها اشیاء موجود در صفحه وب را که مزاحم تلقی میشوند و با موتور فیلترینگ شبکه قابل بلاک کردن نیستند را حذف میکنند.<\/p>

فعال کردن این قابلیت مصرف حافظه ی uBlock را افزایش میدهد.<\/p>", "description": "Describes the purpose of the 'Parse and enforce cosmetic filters' feature." }, "3pIgnoreGenericCosmeticFilters": { @@ -396,7 +396,7 @@ "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { - "message": "یک خطای شبکه از بروزشدن منابع جلوگیری کرد.", + "message": "یک خطای شبکه از بروزشدن این منبع جلوگیری کرد.", "description": "used as a tooltip for error icon beside a list" }, "1pFormatHint": { @@ -524,7 +524,7 @@ "description": "Tooltip informaing that the input field is to set the maximum number of entries in the log" }, "loggerURLFilteringContextLabel": { - "message": "محتوی:", + "message": "زمینه:", "description": "Label for the context selector" }, "loggerURLFilteringTypeLabel": { @@ -576,7 +576,7 @@ "description": "Used in the static filtering wizard" }, "loggerStaticFilteringFinderSentence1": { - "message": "انسداد ایستا {{filter}} یاقت شد در:", + "message": "انسداد ایستا {{filter}} یافت شد در:", "description": "Below this sentence, the filter lists in which the filter was found" }, "aboutChangelog": { @@ -624,7 +624,7 @@ "description": "Message to display when an error occurred during restore" }, "aboutResetDataConfirm": { - "message": "تمام تنظیمات شده حذف و uBlock₀ دوباره راه اندازی خواهد شد.\n\nتنظیم مجدد uBlock₀ به تنظیمات کارخانه؟", + "message": "تمام تنظیمات شما حذف شده و uBlock₀ دوباره راه اندازی خواهد شد.\n\nتنظیم مجدد uBlock₀ به تنظیمات کارخانه؟", "description": "Message asking user to confirm reset" }, "errorCantConnectTo": { @@ -632,7 +632,7 @@ "description": "English: Network error: {{msg}}" }, "subscriberConfirm": { - "message": "uBlock₀: لینک زیر به لیست فیلتر ها اضافه شود؟\n\nعنوان: \"{{title}}\"\nآدرس: {{url}}", + "message": "uBlock₀: آدرس اینترنتی زیر به فهرست فیلتر های سفارشی شما اضافه شود؟\n\nعنوان: \"{{title}}\"\nآدرس: {{url}}", "description": "English: The message seen by the user to confirm subscription to a ABP filter list" }, "elapsedOneMinuteAgo": { @@ -664,7 +664,7 @@ "description": "Firefox\/Fennec-specific: Show Dashboard" }, "showNetworkLogButton": { - "message": "نمایش درخواست ثبت شبکه", + "message": "نمایش واقعه‌نگار", "description": "Firefox\/Fennec-specific: Show Logger" }, "fennecMenuItemBlockingOff": { @@ -680,7 +680,7 @@ "description": "English: Because of the following filter" }, "docblockedNoParamsPrompt": { - "message": "بدون پارامتر", + "message": "بدون پارامترها", "description": "label to be used for the parameter-less URL: https:\/\/cloud.githubusercontent.com\/assets\/585534\/9832014\/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png" }, "docblockedFoundIn": { diff --git a/src/_locales/hi/messages.json b/src/_locales/hi/messages.json index 653be5e2ce5a2..efe448d4aafe0 100644 --- a/src/_locales/hi/messages.json +++ b/src/_locales/hi/messages.json @@ -68,7 +68,7 @@ "description": "Example: 15 or 13%" }, "popupBlockedSinceInstallPrompt": { - "message": "इंस्टॉल से अब तक", + "message": "स्थापना से अब तक", "description": "English: since install" }, "popupOr": { @@ -296,11 +296,11 @@ "description": "background information: https:\/\/github.com\/gorhill\/uBlock\/issues\/3150" }, "settingsStorageUsed": { - "message": "Storage used: {{value}} bytes", + "message": "प्रचलित मैमोरी: {{value}} बाइट्स", "description": "English: Storage used: {{}} bytes" }, "settingsLastRestorePrompt": { - "message": "Last restore:", + "message": "अंतिम बहाल:", "description": "English: Last restore:" }, "settingsLastBackupPrompt": { @@ -320,11 +320,11 @@ "description": "A checkbox in the _3rd-party filters_ pane" }, "3pUpdateNow": { - "message": "अभी अपडेट करें", + "message": "अभी नवीकृत करें", "description": "A button in the in the _3rd-party filters_ pane" }, "3pPurgeAll": { - "message": "Purge all caches", + "message": "सभी अस्थायी मेमोरी को शुद्ध करे", "description": "A button in the in the _3rd-party filters_ pane" }, "3pParseAllABPHideFiltersPrompt1": { @@ -364,7 +364,7 @@ "description": "English: Malware domains" }, "3pGroupAnnoyances": { - "message": "Annoyances", + "message": "सतानेवाले विज्ञापन", "description": "The header identifying the filter lists in the category 'annoyances'" }, "3pGroupMultipurpose": { @@ -388,11 +388,11 @@ "description": "used as a tooltip for the out-of-date icon beside a list" }, "3pLastUpdate": { - "message": "Last update: {{ago}}.\nClick to force an update.", + "message": "अन्तिम अद्यातन: {{ago}}. कृत्रिम नवीकरण के लिए क्लिक की जिए", "description": "used as a tooltip for the clock icon beside a list" }, "3pUpdating": { - "message": "Updating...", + "message": "नवीकरण प्रगति में हैं...", "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { @@ -448,7 +448,7 @@ "description": "Will discard manually-edited content and exit manual-edit mode" }, "rulesImport": { - "message": "Import from file...", + "message": "फाइल से आयात करे...", "description": "" }, "rulesExport": { @@ -512,7 +512,7 @@ "description": "Pretty name for behind-the-scene network requests" }, "loggerCurrentTab": { - "message": "Current tab", + "message": "वर्तमान टैब", "description": "Appears in the logger's tab selector" }, "logFilterPrompt": { @@ -524,11 +524,11 @@ "description": "Tooltip informaing that the input field is to set the maximum number of entries in the log" }, "loggerURLFilteringContextLabel": { - "message": "Context:", + "message": "सन्दर्भ:", "description": "Label for the context selector" }, "loggerURLFilteringTypeLabel": { - "message": "प्रकार", + "message": "प्रकार:", "description": "Label for the type selector" }, "loggerURLFilteringHeader": { @@ -568,11 +568,11 @@ "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartNotImportant": { - "message": "except when", + "message": "सिवाय", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartImportant": { - "message": "even if", + "message": "भले ही", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringFinderSentence1": { @@ -580,7 +580,7 @@ "description": "Below this sentence, the filter lists in which the filter was found" }, "aboutChangelog": { - "message": "Change log", + "message": "परिवर्तन सूची", "description": "English: Change log" }, "aboutWiki": { @@ -668,11 +668,11 @@ "description": "Firefox\/Fennec-specific: Show Logger" }, "fennecMenuItemBlockingOff": { - "message": "off", + "message": "बंद", "description": "Firefox-specific: appears as 'uBlock₀ (off)'" }, "docblockedPrompt1": { - "message": "uBlock Origin has prevented the following page from loading:", + "message": "uBlock Origin ने इस पेज को चालु होने से रोका हैं:", "description": "English: uBlock₀ has prevented the following page from loading:" }, "docblockedPrompt2": { @@ -684,15 +684,15 @@ "description": "label to be used for the parameter-less URL: https:\/\/cloud.githubusercontent.com\/assets\/585534\/9832014\/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png" }, "docblockedFoundIn": { - "message": "Found in:", + "message": "इन में पायी है:", "description": "English: List of filter list names follows" }, "docblockedBack": { - "message": "Go back", + "message": "वापस जाएँ", "description": "English: Go back" }, "docblockedClose": { - "message": "Close this window", + "message": "इस विंडो को बंद करे", "description": "English: Close this window" }, "docblockedProceed": { @@ -700,11 +700,11 @@ "description": "English: Disable strict blocking for {{hostname}} ..." }, "docblockedDisableTemporary": { - "message": "Temporarily", + "message": "कुछ समय के लिए", "description": "English: Temporarily" }, "docblockedDisablePermanent": { - "message": "हमेशा", + "message": "स्थायी", "description": "English: Permanently" }, "cloudPush": { @@ -724,7 +724,7 @@ "description": "" }, "cloudDeviceNamePrompt": { - "message": "This device name:", + "message": "इस साधन का नाम:", "description": "used as a prompt for the user to provide a custom device name" }, "advancedSettingsWarning": { @@ -736,7 +736,7 @@ "description": "for generic 'Submit' buttons" }, "genericApplyChanges": { - "message": "Apply changes", + "message": "परिवर्तन लागू करें", "description": "for generic 'Apply changes' buttons" }, "genericRevert": { @@ -748,7 +748,7 @@ "description": "" }, "contextMenuTemporarilyAllowLargeMediaElements": { - "message": "Temporarily allow large media elements", + "message": "कुछ समय के लिए विशाल तत्वोंको चलने की अनुमति दे", "description": "A context menu entry, present when large media elements have been blocked on the current site" }, "dummy": { diff --git a/src/_locales/id/messages.json b/src/_locales/id/messages.json index 44965129a9635..97201ef9c761d 100644 --- a/src/_locales/id/messages.json +++ b/src/_locales/id/messages.json @@ -228,7 +228,7 @@ "description": "English: Block element" }, "settingsCollapseBlockedPrompt": { - "message": "Sembunyikan tempat elemen yang diblokir", + "message": "Sembunyikan wadah elemen yang diblokir", "description": "English: Hide placeholders of blocked elements" }, "settingsIconBadgePrompt": { diff --git a/src/_locales/it/messages.json b/src/_locales/it/messages.json index 4506d3f996566..ad4ab65ca84d1 100644 --- a/src/_locales/it/messages.json +++ b/src/_locales/it/messages.json @@ -512,7 +512,7 @@ "description": "Pretty name for behind-the-scene network requests" }, "loggerCurrentTab": { - "message": "Current tab", + "message": "Scheda corrente", "description": "Appears in the logger's tab selector" }, "logFilterPrompt": { diff --git a/src/_locales/ja/messages.json b/src/_locales/ja/messages.json index c8d3b4a9e2740..3832289bc498e 100644 --- a/src/_locales/ja/messages.json +++ b/src/_locales/ja/messages.json @@ -336,7 +336,7 @@ "description": "Describes the purpose of the 'Parse and enforce cosmetic filters' feature." }, "3pIgnoreGenericCosmeticFilters": { - "message": "要素隠蔽フィルターを無視する", + "message": "汎用的な要素隠蔽フィルターを無視する", "description": "This will cause uBO to ignore all generic cosmetic filters." }, "3pIgnoreGenericCosmeticFiltersInfo": { diff --git a/src/_locales/ka/messages.json b/src/_locales/ka/messages.json index 370a75e98ee24..522a86169472b 100644 --- a/src/_locales/ka/messages.json +++ b/src/_locales/ka/messages.json @@ -356,11 +356,11 @@ "description": "English: Ads" }, "3pGroupPrivacy": { - "message": "კონფიდენციალურობა", + "message": "პირადულობა", "description": "English: Privacy" }, "3pGroupMalware": { - "message": "მავნე დომეინები", + "message": "მავნე დომენები", "description": "English: Malware domains" }, "3pGroupAnnoyances": { @@ -408,7 +408,7 @@ "description": "English: Import and append" }, "1pExport": { - "message": "გამოტანა", + "message": "შენახვა", "description": "English: Export" }, "1pExportFilename": { @@ -436,7 +436,7 @@ "description": "This will persist temporary rules" }, "rulesEdit": { - "message": "რედაქტირება", + "message": "შეცვლა", "description": "Will enable manual-edit mode (textarea)" }, "rulesEditSave": { @@ -444,7 +444,7 @@ "description": "Will save manually-edited content and exit manual-edit mode" }, "rulesEditDiscard": { - "message": "უკუგდება", + "message": "გაუქმება", "description": "Will discard manually-edited content and exit manual-edit mode" }, "rulesImport": { @@ -508,7 +508,7 @@ "description": "Appears in the logger's tab selector" }, "logBehindTheScene": { - "message": "სცენის უკან", + "message": "ფარული მოთხოვნები", "description": "Pretty name for behind-the-scene network requests" }, "loggerCurrentTab": { @@ -636,87 +636,87 @@ "description": "English: The message seen by the user to confirm subscription to a ABP filter list" }, "elapsedOneMinuteAgo": { - "message": "a minute ago", + "message": "ერთი წუთის წინ", "description": "English: a minute ago" }, "elapsedManyMinutesAgo": { - "message": "{{value}} minutes ago", + "message": "{{value}} წუთის წინ", "description": "English: {{value}} minutes ago" }, "elapsedOneHourAgo": { - "message": "an hour ago", + "message": "ერთი საათის წინ", "description": "English: an hour ago" }, "elapsedManyHoursAgo": { - "message": "{{value}} hours ago", + "message": "{{value}} საათის წინ", "description": "English: {{value}} hours ago" }, "elapsedOneDayAgo": { - "message": "a day ago", + "message": "ერთი დღის წინ", "description": "English: a day ago" }, "elapsedManyDaysAgo": { - "message": "{{value}} days ago", + "message": "{{value}} დღის წინ", "description": "English: {{value}} days ago" }, "showDashboardButton": { - "message": "Show Dashboard", + "message": "ხელსაწყოების გვერდის ჩვენება", "description": "Firefox\/Fennec-specific: Show Dashboard" }, "showNetworkLogButton": { - "message": "Show Logger", + "message": "აღრიცხვის ჩვენება", "description": "Firefox\/Fennec-specific: Show Logger" }, "fennecMenuItemBlockingOff": { - "message": "off", + "message": "გამორთული", "description": "Firefox-specific: appears as 'uBlock₀ (off)'" }, "docblockedPrompt1": { - "message": "uBlock Origin has prevented the following page from loading:", + "message": "uBlock Origin-მა შეზღუდა მოცემული გვერდის ჩატვირთვა:", "description": "English: uBlock₀ has prevented the following page from loading:" }, "docblockedPrompt2": { - "message": "Because of the following filter", + "message": "მოცემული ფილტრიდან გამომდინარე", "description": "English: Because of the following filter" }, "docblockedNoParamsPrompt": { - "message": "without parameters", + "message": "პარამეტრების გარეშე", "description": "label to be used for the parameter-less URL: https:\/\/cloud.githubusercontent.com\/assets\/585534\/9832014\/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png" }, "docblockedFoundIn": { - "message": "Found in:", + "message": "პოვნა:", "description": "English: List of filter list names follows" }, "docblockedBack": { - "message": "Go back", + "message": "უკან დაბრუნება", "description": "English: Go back" }, "docblockedClose": { - "message": "Close this window", + "message": "ფანჯრის დახურვა", "description": "English: Close this window" }, "docblockedProceed": { - "message": "Disable strict blocking for {{hostname}}", + "message": "მკაცრი შეზღუდვის მოხსნა საიტისთვის: {{hostname}}", "description": "English: Disable strict blocking for {{hostname}} ..." }, "docblockedDisableTemporary": { - "message": "Temporarily", + "message": "დროებით", "description": "English: Temporarily" }, "docblockedDisablePermanent": { - "message": "Permanently", + "message": "მუდმივად", "description": "English: Permanently" }, "cloudPush": { - "message": "Export to cloud storage", + "message": "ღრუბლოვან საცავში შენახვა", "description": "tooltip" }, "cloudPull": { - "message": "Import from cloud storage", + "message": "ღრუბლოვანი საცავიდან გადმოტანა", "description": "tooltip" }, "cloudPullAndMerge": { - "message": "Import from cloud storage and merge with current settings", + "message": "ღრუბლოვანი საცავიდან გადმოტანა და არსებულ პარამეტრებთან მისადაგება", "description": "tooltip" }, "cloudNoData": { @@ -724,31 +724,31 @@ "description": "" }, "cloudDeviceNamePrompt": { - "message": "This device name:", + "message": "ამ მოწყობილობის დასახელება:", "description": "used as a prompt for the user to provide a custom device name" }, "advancedSettingsWarning": { - "message": "Warning! Change these advanced settings at your own risk.", + "message": "გაფრთხილება! დამატებითი პარამეტრებს ცვლილების შედეგებზე, თავად ხართ პასუხისმგებელი.", "description": "A warning to users at the top of 'Advanced settings' page" }, "genericSubmit": { - "message": "Submit", + "message": "მიღება", "description": "for generic 'Submit' buttons" }, "genericApplyChanges": { - "message": "Apply changes", + "message": "ცვლილებების მისადაგება", "description": "for generic 'Apply changes' buttons" }, "genericRevert": { - "message": "Revert", + "message": "დაბრუნება", "description": "for generic 'Revert' buttons" }, "genericBytes": { - "message": "bytes", + "message": "ბაიტი", "description": "" }, "contextMenuTemporarilyAllowLargeMediaElements": { - "message": "Temporarily allow large media elements", + "message": "დიდი მედია-ელემენტების დროებით დაშვება", "description": "A context menu entry, present when large media elements have been blocked on the current site" }, "dummy": { diff --git a/src/_locales/kk/messages.json b/src/_locales/kk/messages.json new file mode 100644 index 0000000000000..5a3f91d20c621 --- /dev/null +++ b/src/_locales/kk/messages.json @@ -0,0 +1,758 @@ +{ + "extName": { + "message": "uBlock₀", + "description": "extension name." + }, + "extShortDesc": { + "message": "Finally, an efficient blocker. Easy on CPU and memory.", + "description": "this will be in the chrome web store: must be 132 characters or less" + }, + "dashboardName": { + "message": "uBlock₀ — Dashboard", + "description": "English: uBlock₀ — Dashboard" + }, + "settingsPageName": { + "message": "Баптаулар", + "description": "appears as tab name in dashboard" + }, + "3pPageName": { + "message": "3-ші жақты сүзгілер", + "description": "appears as tab name in dashboard" + }, + "1pPageName": { + "message": "Менің сүзгілерім", + "description": "appears as tab name in dashboard" + }, + "rulesPageName": { + "message": "Менің ережелерім", + "description": "appears as tab name in dashboard" + }, + "whitelistPageName": { + "message": "Рұқсат тізімі", + "description": "appears as tab name in dashboard" + }, + "statsPageName": { + "message": "uBlock₀ — Logger", + "description": "Title for the logger window" + }, + "aboutPageName": { + "message": "Осы туралы", + "description": "appears as tab name in dashboard" + }, + "advancedSettingsPageName": { + "message": "Кеңейтілген баптаулар", + "description": "Title for the advanced settings page" + }, + "popupPowerSwitchInfo": { + "message": "Click: disable\/enable uBlock₀ for this site.\n\nCtrl+click: disable uBlock₀ only on this page.", + "description": "English: Click: disable\/enable uBlock₀ for this site.\n\nCtrl+click: disable uBlock₀ only on this page." + }, + "popupPowerSwitchInfo1": { + "message": "Click to disable uBlock₀ for this site.\n\nCtrl+click to disable uBlock₀ only on this page.", + "description": "Message to be read by screen readers" + }, + "popupPowerSwitchInfo2": { + "message": "Click to enable uBlock₀ for this site.", + "description": "Message to be read by screen readers" + }, + "popupBlockedRequestPrompt": { + "message": "сұраным блокталды", + "description": "English: requests blocked" + }, + "popupBlockedOnThisPagePrompt": { + "message": "бұл парақта", + "description": "English: on this page" + }, + "popupBlockedStats": { + "message": "{{count}} немесе {{percent}}%", + "description": "Example: 15 or 13%" + }, + "popupBlockedSinceInstallPrompt": { + "message": "орнатылғаннан бастап", + "description": "English: since install" + }, + "popupOr": { + "message": "немесе", + "description": "English: or" + }, + "popupTipDashboard": { + "message": "Open the dashboard", + "description": "English: Click to open the dashboard" + }, + "popupTipZapper": { + "message": "Enter element zapper mode", + "description": "Tooltip for the element-zapper icon in the popup panel" + }, + "popupTipPicker": { + "message": "Enter element picker mode", + "description": "English: Enter element picker mode" + }, + "popupTipLog": { + "message": "Open the logger", + "description": "Tooltip used for the logger icon in the panel" + }, + "popupTipNoPopups": { + "message": "Toggle the blocking of all popups for this site", + "description": "Tooltip for the no-popups per-site switch" + }, + "popupTipNoPopups1": { + "message": "Click to block all popups on this site", + "description": "Tooltip for the no-popups per-site switch" + }, + "popupTipNoPopups2": { + "message": "Click to no longer block all popups on this site", + "description": "Tooltip for the no-popups per-site switch" + }, + "popupTipNoLargeMedia": { + "message": "Toggle the blocking of large media elements for this site", + "description": "Tooltip for the no-large-media per-site switch" + }, + "popupTipNoLargeMedia1": { + "message": "Click to block large media elements on this site", + "description": "Tooltip for the no-large-media per-site switch" + }, + "popupTipNoLargeMedia2": { + "message": "Click to no longer block large media elements on this site", + "description": "Tooltip for the no-large-media per-site switch" + }, + "popupTipNoCosmeticFiltering": { + "message": "Toggle cosmetic filtering for this site", + "description": "Tooltip for the no-cosmetic-filtering per-site switch" + }, + "popupTipNoCosmeticFiltering1": { + "message": "Click to disable cosmetic filtering on this site", + "description": "Tooltip for the no-cosmetic-filtering per-site switch" + }, + "popupTipNoCosmeticFiltering2": { + "message": "Click to enable cosmetic filtering on this site", + "description": "Tooltip for the no-cosmetic-filtering per-site switch" + }, + "popupTipNoRemoteFonts": { + "message": "Toggle the blocking of remote fonts for this site", + "description": "Tooltip for the no-remote-fonts per-site switch" + }, + "popupTipNoRemoteFonts1": { + "message": "Click to block remote fonts on this site", + "description": "Tooltip for the no-remote-fonts per-site switch" + }, + "popupTipNoRemoteFonts2": { + "message": "Click to no longer block remote fonts on this site", + "description": "Tooltip for the no-remote-fonts per-site switch" + }, + "popupTipGlobalRules": { + "message": "Global rules: this column is for rules which apply to all sites.", + "description": "Tooltip when hovering the top-most cell of the global-rules column." + }, + "popupTipLocalRules": { + "message": "Local rules: this column is for rules which apply to the current site only.\nLocal rules override global rules.", + "description": "Tooltip when hovering the top-most cell of the local-rules column." + }, + "popupTipSaveRules": { + "message": "Click to make your changes permanent.", + "description": "Tooltip when hovering over the padlock in the dynamic filtering pane." + }, + "popupTipRevertRules": { + "message": "Click to revert your changes.", + "description": "Tooltip when hovering over the eraser in the dynamic filtering pane." + }, + "popupAnyRulePrompt": { + "message": "барлығы", + "description": "" + }, + "popupImageRulePrompt": { + "message": "суреттер", + "description": "" + }, + "popup3pAnyRulePrompt": { + "message": "3-ші жақты", + "description": "" + }, + "popup3pPassiveRulePrompt": { + "message": "3-ші жақты css\/суреттер", + "description": "" + }, + "popupInlineScriptRulePrompt": { + "message": "inline scripts", + "description": "" + }, + "popup1pScriptRulePrompt": { + "message": "1st-party scripts", + "description": "" + }, + "popup3pScriptRulePrompt": { + "message": "3rd-party scripts", + "description": "" + }, + "popup3pFrameRulePrompt": { + "message": "3rd-party frames", + "description": "" + }, + "popupHitDomainCountPrompt": { + "message": "domains connected", + "description": "appears in popup" + }, + "popupHitDomainCount": { + "message": "{{count}} out of {{total}}", + "description": "appears in popup" + }, + "pickerCreate": { + "message": "Жасау", + "description": "English: Create" + }, + "pickerPick": { + "message": "Таңдау", + "description": "English: Pick" + }, + "pickerQuit": { + "message": "Шығу", + "description": "English: Quit" + }, + "pickerPreview": { + "message": "Алдын-ала қарау", + "description": "Element picker preview mode: will cause the elements matching the current filter to be removed from the page" + }, + "pickerNetFilters": { + "message": "Network filters", + "description": "English: header for a type of filter in the element picker dialog" + }, + "pickerCosmeticFilters": { + "message": "Cosmetic filters", + "description": "English: Cosmetic filters" + }, + "pickerCosmeticFiltersHint": { + "message": "Шерту, Ctrl-шерту", + "description": "English: Click, Ctrl-click" + }, + "pickerContextMenuEntry": { + "message": "Элементті блоктау", + "description": "English: Block element" + }, + "settingsCollapseBlockedPrompt": { + "message": "Hide placeholders of blocked elements", + "description": "English: Hide placeholders of blocked elements" + }, + "settingsIconBadgePrompt": { + "message": "Show the number of blocked requests on the icon", + "description": "English: Show the number of blocked requests on the icon" + }, + "settingsTooltipsPrompt": { + "message": "Disable tooltips", + "description": "A checkbox in the Settings pane" + }, + "settingsContextMenuPrompt": { + "message": "Make use of context menu where appropriate", + "description": "English: Make use of context menu where appropriate" + }, + "settingsColorBlindPrompt": { + "message": "Color-blind friendly", + "description": "English: Color-blind friendly" + }, + "settingsCloudStorageEnabledPrompt": { + "message": "Enable cloud storage support", + "description": "" + }, + "settingsAdvancedUserPrompt": { + "message": "I am an advanced user (required reading<\/a>)", + "description": "" + }, + "settingsAdvancedUserSettings": { + "message": "advanced settings", + "description": "For the tooltip of a link which gives access to advanced settings" + }, + "settingsPrefetchingDisabledPrompt": { + "message": "Disable pre-fetching (to prevent any connection for blocked network requests)", + "description": "English: " + }, + "settingsHyperlinkAuditingDisabledPrompt": { + "message": "Disable hyperlink auditing", + "description": "English: " + }, + "settingsWebRTCIPAddressHiddenPrompt": { + "message": "Prevent WebRTC from leaking local IP addresses", + "description": "English: " + }, + "settingPerSiteSwitchGroup": { + "message": "Default behavior", + "description": "" + }, + "settingPerSiteSwitchGroupSynopsis": { + "message": "These default behaviors can be overridden on a per-site basis", + "description": "" + }, + "settingsNoCosmeticFilteringPrompt": { + "message": "Disable cosmetic filtering", + "description": "" + }, + "settingsNoLargeMediaPrompt": { + "message": "Block media elements larger than {{input:number}} kB", + "description": "" + }, + "settingsNoRemoteFontsPrompt": { + "message": "Block remote fonts", + "description": "" + }, + "settingsNoCSPReportsPrompt": { + "message": "Block CSP reports", + "description": "background information: https:\/\/github.com\/gorhill\/uBlock\/issues\/3150" + }, + "settingsStorageUsed": { + "message": "Storage used: {{value}} bytes", + "description": "English: Storage used: {{}} bytes" + }, + "settingsLastRestorePrompt": { + "message": "Last restore:", + "description": "English: Last restore:" + }, + "settingsLastBackupPrompt": { + "message": "Last backup:", + "description": "English: Last backup:" + }, + "3pListsOfBlockedHostsPrompt": { + "message": "{{netFilterCount}} network filters + {{cosmeticFilterCount}} cosmetic filters from:", + "description": "Appears at the top of the _3rd-party filters_ pane" + }, + "3pListsOfBlockedHostsPerListStats": { + "message": "{{used}} used out of {{total}}", + "description": "Appears aside each filter list in the _3rd-party filters_ pane" + }, + "3pAutoUpdatePrompt1": { + "message": "Auto-update filter lists", + "description": "A checkbox in the _3rd-party filters_ pane" + }, + "3pUpdateNow": { + "message": "Update now", + "description": "A button in the in the _3rd-party filters_ pane" + }, + "3pPurgeAll": { + "message": "Purge all caches", + "description": "A button in the in the _3rd-party filters_ pane" + }, + "3pParseAllABPHideFiltersPrompt1": { + "message": "Parse and enforce cosmetic filters", + "description": "English: Parse and enforce Adblock+ element hiding filters." + }, + "3pParseAllABPHideFiltersInfo": { + "message": "

This option enables the parsing and enforcing of Adblock Plus-compatible “element hiding” filters<\/a>. These filters are essentially cosmetic, they serve to hide elements in a web page which are deemed to be a visual nuisance, and which can't be blocked by the net request-based filtering engine.<\/p>

Enabling this feature increases uBlock₀'s memory footprint.<\/p>", + "description": "Describes the purpose of the 'Parse and enforce cosmetic filters' feature." + }, + "3pIgnoreGenericCosmeticFilters": { + "message": "Ignore generic cosmetic filters", + "description": "This will cause uBO to ignore all generic cosmetic filters." + }, + "3pIgnoreGenericCosmeticFiltersInfo": { + "message": "

Generic cosmetic filters are those cosmetic filters which are meant to apply on all web sites.

Though handled efficiently by uBlock₀, generic cosmetic filters may still contribute measurable memory and CPU overhead on some web pages, especially for large and long-lived ones.

Enabling this option will eliminate the memory and CPU overhead added to web pages as a result of handling generic cosmetic filters, and also lower the memory footprint of uBlock₀ itself.

It is recommended to enable this option on less powerful devices.", + "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." + }, + "3pListsOfBlockedHostsHeader": { + "message": "Lists of blocked hosts", + "description": "English: Lists of blocked hosts" + }, + "3pApplyChanges": { + "message": "Өзерістерді іске асыру", + "description": "English: Apply changes" + }, + "3pGroupAds": { + "message": "Жарнамалар", + "description": "English: Ads" + }, + "3pGroupPrivacy": { + "message": "Жекелік", + "description": "English: Privacy" + }, + "3pGroupMalware": { + "message": "Malware domains", + "description": "English: Malware domains" + }, + "3pGroupAnnoyances": { + "message": "Annoyances", + "description": "The header identifying the filter lists in the category 'annoyances'" + }, + "3pGroupMultipurpose": { + "message": "Multipurpose", + "description": "English: Multipurpose" + }, + "3pGroupRegions": { + "message": "Regions, languages", + "description": "English: Regions, languages" + }, + "3pGroupCustom": { + "message": "Custom", + "description": "English: Custom" + }, + "3pExternalListsHint": { + "message": "One URL per line. Lines prefixed with ‘!’ will be ignored. Invalid URLs will be silently ignored.", + "description": "English: One URL per line. Lines prefixed with ‘!’ will be ignored. Invalid URLs will be silently ignored." + }, + "3pExternalListObsolete": { + "message": "Out of date.", + "description": "used as a tooltip for the out-of-date icon beside a list" + }, + "3pLastUpdate": { + "message": "Last update: {{ago}}.\nClick to force an update.", + "description": "used as a tooltip for the clock icon beside a list" + }, + "3pUpdating": { + "message": "Updating...", + "description": "used as a tooltip for the spinner icon beside a list" + }, + "3pNetworkError": { + "message": "A network error prevented the resource from being updated.", + "description": "used as a tooltip for error icon beside a list" + }, + "1pFormatHint": { + "message": "One filter per line. A filter can be a plain hostname, or an Adblock Plus-compatible filter. Lines prefixed with ‘!’ will be ignored.", + "description": "English: One filter per line. A filter can be a plain hostname, or an Adblock Plus-compatible filter. Lines prefixed with ‘!’ will be ignored." + }, + "1pImport": { + "message": "Import and append", + "description": "English: Import and append" + }, + "1pExport": { + "message": "Export", + "description": "English: Export" + }, + "1pExportFilename": { + "message": "my-ublock-static-filters_{{datetime}}.txt", + "description": "English: my-ublock-static-filters_{{datetime}}.txt" + }, + "1pApplyChanges": { + "message": "Apply changes", + "description": "English: Apply changes" + }, + "rulesPermanentHeader": { + "message": "Permanent rules", + "description": "header" + }, + "rulesTemporaryHeader": { + "message": "Temporary rules", + "description": "header" + }, + "rulesRevert": { + "message": "Қайтару", + "description": "This will remove all temporary rules" + }, + "rulesCommit": { + "message": "Commit", + "description": "This will persist temporary rules" + }, + "rulesEdit": { + "message": "Түзету", + "description": "Will enable manual-edit mode (textarea)" + }, + "rulesEditSave": { + "message": "Сақтау", + "description": "Will save manually-edited content and exit manual-edit mode" + }, + "rulesEditDiscard": { + "message": "Елемеу", + "description": "Will discard manually-edited content and exit manual-edit mode" + }, + "rulesImport": { + "message": "Файлдан импорттау...", + "description": "" + }, + "rulesExport": { + "message": "Файлға экспорттау", + "description": "" + }, + "rulesDefaultFileName": { + "message": "my-ublock-dynamic-rules_{{datetime}}.txt", + "description": "default file name to use" + }, + "rulesHint": { + "message": "List of your dynamic filtering rules.", + "description": "English: List of your dynamic filtering rules." + }, + "rulesFormatHint": { + "message": "Rule syntax: source destination type action<\/code> (full documentation<\/a>).", + "description": "English: dynamic rule syntax and full documentation." + }, + "whitelistPrompt": { + "message": "The whitelist directives dictate on which web pages uBlock Origin should be disabled. One entry per line. Invalid directives will be silently ignored and commented out.", + "description": "English: An overview of the content of the dashboard's Whitelist pane." + }, + "whitelistImport": { + "message": "Import and append", + "description": "English: Import and append" + }, + "whitelistExport": { + "message": "Экспорт", + "description": "English: Export" + }, + "whitelistExportFilename": { + "message": "my-ublock-whitelist_{{datetime}}.txt", + "description": "English: my-ublock-whitelist_{{datetime}}.txt" + }, + "whitelistApply": { + "message": "Өзерістерді іске асыру", + "description": "English: Apply changes" + }, + "logRequestsHeaderType": { + "message": "Түрі", + "description": "English: Type" + }, + "logRequestsHeaderDomain": { + "message": "Домен", + "description": "English: Domain" + }, + "logRequestsHeaderURL": { + "message": "URL", + "description": "English: URL" + }, + "logRequestsHeaderFilter": { + "message": "Сүзгі", + "description": "English: Filter" + }, + "logAll": { + "message": "Барлығы", + "description": "Appears in the logger's tab selector" + }, + "logBehindTheScene": { + "message": "Behind the scene", + "description": "Pretty name for behind-the-scene network requests" + }, + "loggerCurrentTab": { + "message": "Current tab", + "description": "Appears in the logger's tab selector" + }, + "logFilterPrompt": { + "message": "filter log entries", + "description": "English: filter log entries" + }, + "logMaxEntriesTip": { + "message": "Maximum number of log entries", + "description": "Tooltip informaing that the input field is to set the maximum number of entries in the log" + }, + "loggerURLFilteringContextLabel": { + "message": "Context:", + "description": "Label for the context selector" + }, + "loggerURLFilteringTypeLabel": { + "message": "Түрі:", + "description": "Label for the type selector" + }, + "loggerURLFilteringHeader": { + "message": "Dynamic URL filtering", + "description": "Small header to identify the dynamic URL filtering section" + }, + "loggerStaticFilteringHeader": { + "message": "Static filtering", + "description": "Small header to identify the static filtering section" + }, + "loggerStaticFilteringSentence": { + "message": "{{action}} network requests of {{type}} {{br}}which URL address matches {{url}} {{br}}and which originates {{origin}},{{br}}{{importance}} there is a matching exception filter.", + "description": "Used in the static filtering wizard" + }, + "loggerStaticFilteringSentencePartBlock": { + "message": "Block", + "description": "Used in the static filtering wizard" + }, + "loggerStaticFilteringSentencePartAllow": { + "message": "Allow", + "description": "Used in the static filtering wizard" + }, + "loggerStaticFilteringSentencePartType": { + "message": "type “{{type}}”", + "description": "Used in the static filtering wizard" + }, + "loggerStaticFilteringSentencePartAnyType": { + "message": "any type", + "description": "Used in the static filtering wizard" + }, + "loggerStaticFilteringSentencePartOrigin": { + "message": "from “{{origin}}”", + "description": "Used in the static filtering wizard" + }, + "loggerStaticFilteringSentencePartAnyOrigin": { + "message": "from anywhere", + "description": "Used in the static filtering wizard" + }, + "loggerStaticFilteringSentencePartNotImportant": { + "message": "except when", + "description": "Used in the static filtering wizard" + }, + "loggerStaticFilteringSentencePartImportant": { + "message": "even if", + "description": "Used in the static filtering wizard" + }, + "loggerStaticFilteringFinderSentence1": { + "message": "Static filter {{filter}} found in:", + "description": "Below this sentence, the filter lists in which the filter was found" + }, + "aboutChangelog": { + "message": "Change log", + "description": "English: Change log" + }, + "aboutWiki": { + "message": "Wiki", + "description": "English: project' wiki on Github" + }, + "aboutSupport": { + "message": "Support", + "description": "A link for where to get support" + }, + "aboutCode": { + "message": "Source code (GPLv3)", + "description": "English: Source code (GPLv3)" + }, + "aboutContributors": { + "message": "Contributors", + "description": "English: Contributors" + }, + "aboutBackupDataButton": { + "message": "Back up to file", + "description": "Text for button to create a backup of all settings" + }, + "aboutBackupFilename": { + "message": "my-ublock-backup_{{datetime}}.txt", + "description": "English: my-ublock-backup_{{datetime}}.txt" + }, + "aboutRestoreDataButton": { + "message": "Restore from file...", + "description": "English: Restore from file..." + }, + "aboutResetDataButton": { + "message": "Reset to default settings...", + "description": "English: Reset to default settings..." + }, + "aboutRestoreDataConfirm": { + "message": "All your settings will be overwritten using data backed up on {{time}}, and uBlock₀ will restart.\n\nOverwrite all existing settings using backed up data?", + "description": "Message asking user to confirm restore" + }, + "aboutRestoreDataError": { + "message": "The data could not be read or is invalid", + "description": "Message to display when an error occurred during restore" + }, + "aboutResetDataConfirm": { + "message": "All your settings will be removed, and uBlock₀ will restart.\n\nReset uBlock₀ to factory settings?", + "description": "Message asking user to confirm reset" + }, + "errorCantConnectTo": { + "message": "Network error: {{msg}}", + "description": "English: Network error: {{msg}}" + }, + "subscriberConfirm": { + "message": "uBlock₀: Add the following URL to your custom filter lists?\n\nTitle: \"{{title}}\"\nURL: {{url}}", + "description": "English: The message seen by the user to confirm subscription to a ABP filter list" + }, + "elapsedOneMinuteAgo": { + "message": "a minute ago", + "description": "English: a minute ago" + }, + "elapsedManyMinutesAgo": { + "message": "{{value}} minutes ago", + "description": "English: {{value}} minutes ago" + }, + "elapsedOneHourAgo": { + "message": "an hour ago", + "description": "English: an hour ago" + }, + "elapsedManyHoursAgo": { + "message": "{{value}} hours ago", + "description": "English: {{value}} hours ago" + }, + "elapsedOneDayAgo": { + "message": "a day ago", + "description": "English: a day ago" + }, + "elapsedManyDaysAgo": { + "message": "{{value}} days ago", + "description": "English: {{value}} days ago" + }, + "showDashboardButton": { + "message": "Show Dashboard", + "description": "Firefox\/Fennec-specific: Show Dashboard" + }, + "showNetworkLogButton": { + "message": "Show Logger", + "description": "Firefox\/Fennec-specific: Show Logger" + }, + "fennecMenuItemBlockingOff": { + "message": "off", + "description": "Firefox-specific: appears as 'uBlock₀ (off)'" + }, + "docblockedPrompt1": { + "message": "uBlock Origin has prevented the following page from loading:", + "description": "English: uBlock₀ has prevented the following page from loading:" + }, + "docblockedPrompt2": { + "message": "Because of the following filter", + "description": "English: Because of the following filter" + }, + "docblockedNoParamsPrompt": { + "message": "without parameters", + "description": "label to be used for the parameter-less URL: https:\/\/cloud.githubusercontent.com\/assets\/585534\/9832014\/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png" + }, + "docblockedFoundIn": { + "message": "Found in:", + "description": "English: List of filter list names follows" + }, + "docblockedBack": { + "message": "Go back", + "description": "English: Go back" + }, + "docblockedClose": { + "message": "Close this window", + "description": "English: Close this window" + }, + "docblockedProceed": { + "message": "Disable strict blocking for {{hostname}}", + "description": "English: Disable strict blocking for {{hostname}} ..." + }, + "docblockedDisableTemporary": { + "message": "Temporarily", + "description": "English: Temporarily" + }, + "docblockedDisablePermanent": { + "message": "Permanently", + "description": "English: Permanently" + }, + "cloudPush": { + "message": "Export to cloud storage", + "description": "tooltip" + }, + "cloudPull": { + "message": "Import from cloud storage", + "description": "tooltip" + }, + "cloudPullAndMerge": { + "message": "Import from cloud storage and merge with current settings", + "description": "tooltip" + }, + "cloudNoData": { + "message": "...\n...", + "description": "" + }, + "cloudDeviceNamePrompt": { + "message": "This device name:", + "description": "used as a prompt for the user to provide a custom device name" + }, + "advancedSettingsWarning": { + "message": "Warning! Change these advanced settings at your own risk.", + "description": "A warning to users at the top of 'Advanced settings' page" + }, + "genericSubmit": { + "message": "Submit", + "description": "for generic 'Submit' buttons" + }, + "genericApplyChanges": { + "message": "Apply changes", + "description": "for generic 'Apply changes' buttons" + }, + "genericRevert": { + "message": "Revert", + "description": "for generic 'Revert' buttons" + }, + "genericBytes": { + "message": "bytes", + "description": "" + }, + "contextMenuTemporarilyAllowLargeMediaElements": { + "message": "Temporarily allow large media elements", + "description": "A context menu entry, present when large media elements have been blocked on the current site" + }, + "dummy": { + "message": "This entry must be the last one", + "description": "so we dont need to deal with comma for last entry" + } +} \ No newline at end of file diff --git a/src/_locales/nb/messages.json b/src/_locales/nb/messages.json index 0e686d8245617..364bc3df86e6f 100644 --- a/src/_locales/nb/messages.json +++ b/src/_locales/nb/messages.json @@ -344,7 +344,7 @@ "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, "3pListsOfBlockedHostsHeader": { - "message": "Lister over blokkerte verter", + "message": "Lists of blocked hosts", "description": "English: Lists of blocked hosts" }, "3pApplyChanges": { diff --git a/src/_locales/pt_BR/messages.json b/src/_locales/pt_BR/messages.json index df55c1cb2d174..ff2c5a6a2c18f 100644 --- a/src/_locales/pt_BR/messages.json +++ b/src/_locales/pt_BR/messages.json @@ -432,7 +432,7 @@ "description": "This will remove all temporary rules" }, "rulesCommit": { - "message": "Confirmar", + "message": "Aplicar", "description": "This will persist temporary rules" }, "rulesEdit": { diff --git a/src/_locales/sq/messages.json b/src/_locales/sq/messages.json index 00b980ada26a7..a2a402a1fa3e9 100644 --- a/src/_locales/sq/messages.json +++ b/src/_locales/sq/messages.json @@ -276,7 +276,7 @@ "description": "" }, "settingPerSiteSwitchGroupSynopsis": { - "message": "Këto vlera bëhen të panevojshme, sipas rastit", + "message": "Këto vlera mund të ndryshohen në bazë të faqeve", "description": "" }, "settingsNoCosmeticFilteringPrompt": { @@ -440,7 +440,7 @@ "description": "Will enable manual-edit mode (textarea)" }, "rulesEditSave": { - "message": "Ruaj", + "message": "Regjistroj", "description": "Will save manually-edited content and exit manual-edit mode" }, "rulesEditDiscard": { @@ -460,7 +460,7 @@ "description": "default file name to use" }, "rulesHint": { - "message": "Lista e rregullave tuaja për filtrimin dinamik.", + "message": "Lista e rregullave për filtrimin dinamik.", "description": "English: List of your dynamic filtering rules." }, "rulesFormatHint": { @@ -612,11 +612,11 @@ "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Kthej parametrat e mëparshëm...", + "message": "Kthej parametrat fillestarë...", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { - "message": "Të gjithë parametrat do të mbishkruhen me të dhënat e kopjuara më {{time}}, dhe uBlock₀ do të hapet përsëri.\n\nDo i mbishkruani parametrat aktualë?", + "message": "Të gjithë parametrat do të mbishkruhen me të dhënat e kopjuara më {{time}}, dhe uBlock₀ do të hapet përsëri.\n\nTë mbishkruhen parametrat aktualë?", "description": "Message asking user to confirm restore" }, "aboutRestoreDataError": { @@ -624,7 +624,7 @@ "description": "Message to display when an error occurred during restore" }, "aboutResetDataConfirm": { - "message": "Të gjithë parametrat do të fshihen dhe uBlock₀ do të hapet përsëri.\n\nDo i ktheni parametrat origjinalë?", + "message": "Të gjithë parametrat do të fshihen dhe uBlock₀ do të hapet përsëri.\n\nTë kthehen parametrat origjinalë?", "description": "Message asking user to confirm reset" }, "errorCantConnectTo": { @@ -632,7 +632,7 @@ "description": "English: Network error: {{msg}}" }, "subscriberConfirm": { - "message": "uBlock₀: Do e shtoni këtë adresën në listën e filtrave tuaj?\n\nTitulli: \"{{title}}\"\nURL: {{url}}", + "message": "uBlock₀: Të shtohet adresa në listën e filtrave tuaj?\n\nTitulli: \"{{title}}\"\nURL: {{url}}", "description": "English: The message seen by the user to confirm subscription to a ABP filter list" }, "elapsedOneMinuteAgo": { diff --git a/src/_locales/sv/messages.json b/src/_locales/sv/messages.json index b2e1b5b19ed6f..d0c2e63aa1057 100644 --- a/src/_locales/sv/messages.json +++ b/src/_locales/sv/messages.json @@ -52,7 +52,7 @@ "description": "Message to be read by screen readers" }, "popupPowerSwitchInfo2": { - "message": "Klicka för att aktivera uBlock₀ för den här webbplatsen.", + "message": "Klicka för att aktivera uBlock₀ på den här webbplatsen.", "description": "Message to be read by screen readers" }, "popupBlockedRequestPrompt": { @@ -96,11 +96,11 @@ "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoPopups1": { - "message": "Klicka för att blockera alla popup-fönster på denna sida", + "message": "Klicka för att blockera alla poppupp-fönster på den här webbplatsen", "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoPopups2": { - "message": "Klicka för att inte längre blockera alla popup-fönster på den här webbplatsen", + "message": "Klicka för att inte längre blockera alla poppupp-fönster på den här webbplatsen", "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoLargeMedia": { @@ -120,11 +120,11 @@ "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoCosmeticFiltering1": { - "message": "Klicka för att inaktivera kosmetiska filter för den här webbplatsen", + "message": "Klicka för att inaktivera kosmetiska filter på den här webbplatsen", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoCosmeticFiltering2": { - "message": "Klicka för att aktivera kosmetisk filtrering på denna sida", + "message": "Klicka för att aktivera kosmetisk filtrering på den här webbplatsen", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoRemoteFonts": { diff --git a/src/_locales/te/messages.json b/src/_locales/te/messages.json index f75ede7aa90ec..9870d807c69a2 100644 --- a/src/_locales/te/messages.json +++ b/src/_locales/te/messages.json @@ -512,7 +512,7 @@ "description": "Pretty name for behind-the-scene network requests" }, "loggerCurrentTab": { - "message": "Current tab", + "message": "ప్రస్తుత ట్యాబ్", "description": "Appears in the logger's tab selector" }, "logFilterPrompt": { diff --git a/src/_locales/tr/messages.json b/src/_locales/tr/messages.json index ca981561212c4..c68fa1c7daf1d 100644 --- a/src/_locales/tr/messages.json +++ b/src/_locales/tr/messages.json @@ -44,7 +44,7 @@ "description": "Title for the advanced settings page" }, "popupPowerSwitchInfo": { - "message": "Tıklama: uBlock₀'i bu site için devre dışı bırak\/etkinleştir.\n\nCtrl+tıklama: uBlock₀'i sadece bu sayfa için devre dışı bırak.", + "message": "Tıklama: uBlock₀'i bu site için devre dışı bırak\/etkinleştir.\n\nCtrl+tıklama: uBlock₀'i yalnızca bu sayfada devre dışı bırak.", "description": "English: Click: disable\/enable uBlock₀ for this site.\n\nCtrl+click: disable uBlock₀ only on this page." }, "popupPowerSwitchInfo1": { @@ -68,7 +68,7 @@ "description": "Example: 15 or 13%" }, "popupBlockedSinceInstallPrompt": { - "message": "yüklendiğinden beri", + "message": "kurulumdan bu yana", "description": "English: since install" }, "popupOr": { @@ -228,11 +228,11 @@ "description": "English: Block element" }, "settingsCollapseBlockedPrompt": { - "message": "Engellenen reklamların yerlerini gizle", + "message": "Engellenmiş ögelerin yertutucularını gizle", "description": "English: Hide placeholders of blocked elements" }, "settingsIconBadgePrompt": { - "message": "Engellenmiş reklam sayısını simge üzerinde göster", + "message": "Engellenen istek sayısını simge üstünde göster", "description": "English: Show the number of blocked requests on the icon" }, "settingsTooltipsPrompt": { @@ -252,7 +252,7 @@ "description": "" }, "settingsAdvancedUserPrompt": { - "message": "Deneyimli kullanıcıyım (Okunması gerekir<\/a>)", + "message": "Deneyimli kullanıcıyım (okunması gerekir<\/a>)", "description": "" }, "settingsAdvancedUserSettings": { @@ -284,7 +284,7 @@ "description": "" }, "settingsNoLargeMediaPrompt": { - "message": "Belirlenenden büyük medya ögelerini engelle {{input:number}} kB", + "message": "{{input:number}} kB'tan büyük medya ögelerini engelle", "description": "" }, "settingsNoRemoteFontsPrompt": { @@ -328,7 +328,7 @@ "description": "A button in the in the _3rd-party filters_ pane" }, "3pParseAllABPHideFiltersPrompt1": { - "message": "Kozmetik süzgeçleri incele ve uygula.", + "message": "Kozmetik süzgeçleri incele ve uygula", "description": "English: Parse and enforce Adblock+ element hiding filters." }, "3pParseAllABPHideFiltersInfo": { @@ -448,7 +448,7 @@ "description": "Will discard manually-edited content and exit manual-edit mode" }, "rulesImport": { - "message": "Dosyadan içe aktar...", + "message": "Dosyadan al...", "description": "" }, "rulesExport": { @@ -468,7 +468,7 @@ "description": "English: dynamic rule syntax and full documentation." }, "whitelistPrompt": { - "message": "Hangi alan adları için uBlock₀'in devre dışı olacağını belirten listeniz. Satır başına bir girdi. Geçersiz alan adları sessizce yok sayılır.", + "message": "Beyaz liste yönergeleri, uBlock₀'in devre dışı bırakılması gerektiği web sayfalarını belirler. Satır başına bir girdi. Geçersiz yönergeler sessizce yok sayılır ve yoruma dönüştürülür.", "description": "English: An overview of the content of the dashboard's Whitelist pane." }, "whitelistImport": { @@ -516,11 +516,11 @@ "description": "Appears in the logger's tab selector" }, "logFilterPrompt": { - "message": "günlük girişlerini süz", + "message": "günlük girdilerini süz", "description": "English: filter log entries" }, "logMaxEntriesTip": { - "message": "Maksimum günlük giriş sayısı", + "message": "En fazla günlük girdi sayısı", "description": "Tooltip informaing that the input field is to set the maximum number of entries in the log" }, "loggerURLFilteringContextLabel": { @@ -624,7 +624,7 @@ "description": "Message to display when an error occurred during restore" }, "aboutResetDataConfirm": { - "message": "Tüm ayarlarınızı silinecek, ve uBlock₀ yeniden başlayacak.\n\nuBlock₀ fabrika ayarlarına geri dönsün mü?", + "message": "Tüm ayarlarınızı silinecek, ve uBlock₀ yeniden başlayacak.\n\nuBlock₀ fabrika ayarlarına sıfırlansın mı?", "description": "Message asking user to confirm reset" }, "errorCantConnectTo": { @@ -728,7 +728,7 @@ "description": "used as a prompt for the user to provide a custom device name" }, "advancedSettingsWarning": { - "message": "Uyarı! Bu ayarları değiştirme sorumluluğu size aittir.", + "message": "Uyarı! Bu gelişmiş ayarları değiştirmenin sorumluluğu size aittir.", "description": "A warning to users at the top of 'Advanced settings' page" }, "genericSubmit": { diff --git a/src/js/cosmetic-filtering.js b/src/js/cosmetic-filtering.js index 06380d6fc1341..d634b93a105b4 100644 --- a/src/js/cosmetic-filtering.js +++ b/src/js/cosmetic-filtering.js @@ -107,7 +107,9 @@ var FilterHostname = function(s, hostname) { FilterHostname.prototype.fid = 8; FilterHostname.prototype.retrieve = function(hostname, out) { - if ( hostname.endsWith(this.hostname) ) { + if ( hostname.endsWith(this.hostname) === false ) { return; } + var i = hostname.length - this.hostname.length; + if ( i === 0 || hostname.charCodeAt(i-1) === 0x2E /* '.' */ ) { out.add(this.s); } }; diff --git a/src/js/static-net-filtering.js b/src/js/static-net-filtering.js index d228282eebffe..bf1da6f634c77 100644 --- a/src/js/static-net-filtering.js +++ b/src/js/static-net-filtering.js @@ -954,7 +954,7 @@ FilterOriginMixedSet.prototype = Object.create(FilterOrigin.prototype, { i = hostnames.length, hostname; while ( i-- ) { - hostname = hostnames[i].replace(/\./g, '\\.'); + hostname = hostnames[i]; if ( hostname.charCodeAt(0) === 0x7E /* '~' */ ) { noneOf.push(hostname.slice(1)); } else { @@ -1735,7 +1735,7 @@ FilterParser.prototype.parse = function(raw) { // Abort if type is only for unsupported types, otherwise // toggle off `unsupported` bit. if ( this.types & this.unsupportedTypeBit ) { - this.types &= ~(this.unsupportedTypeBit | this.allNetRequestTypeBits); + this.types &= ~this.unsupportedTypeBit; if ( this.types === 0 ) { this.unsupported = true; return this; diff --git a/src/js/traffic.js b/src/js/traffic.js index 9a7dbf97ba95a..456dfa8b16492 100644 --- a/src/js/traffic.js +++ b/src/js/traffic.js @@ -812,6 +812,12 @@ var filterDocument = (function() { }; return function(pageStore, details) { + // https://github.com/gorhill/uBlock/issues/3478 + var statusCode = details.statusCode || 0; + if ( statusCode !== 0 && (statusCode < 200 || statusCode >= 300) ) { + return; + } + var hostname = µb.URI.hostnameFromURI(details.url); if ( hostname === '' ) { return; } diff --git a/tools/import-crowdin.sh b/tools/import-crowdin.sh index f12a800b5ee48..06c8af6e2366f 100755 --- a/tools/import-crowdin.sh +++ b/tools/import-crowdin.sh @@ -36,6 +36,7 @@ cp $SRC/id/messages.json $DES/id/messages.json cp $SRC/it/messages.json $DES/it/messages.json cp $SRC/ja/messages.json $DES/ja/messages.json cp $SRC/ka/messages.json $DES/ka/messages.json +cp $SRC/kk/messages.json $DES/kk/messages.json cp $SRC/kn/messages.json $DES/kn/messages.json cp $SRC/ko/messages.json $DES/ko/messages.json cp $SRC/lt/messages.json $DES/lt/messages.json @@ -43,7 +44,7 @@ cp $SRC/lv/messages.json $DES/lv/messages.json cp $SRC/ml-IN/messages.json $DES/ml/messages.json cp $SRC/mr/messages.json $DES/mr/messages.json cp $SRC/ms/messages.json $DES/ms/messages.json -cp $SRC/no/messages.json $DES/nb/messages.json +cp $SRC/nb/messages.json $DES/nb/messages.json cp $SRC/nl/messages.json $DES/nl/messages.json cp $SRC/pl/messages.json $DES/pl/messages.json cp $SRC/pt-BR/messages.json $DES/pt_BR/messages.json @@ -93,6 +94,7 @@ cp $SRC/id/description.txt $DES/description-id.txt cp $SRC/it/description.txt $DES/description-it.txt cp $SRC/ja/description.txt $DES/description-ja.txt cp $SRC/ka/description.txt $DES/description-ka.txt +cp $SRC/kk/description.txt $DES/description-kk.txt cp $SRC/ko/description.txt $DES/description-ko.txt cp $SRC/kn/description.txt $DES/description-kn.txt cp $SRC/lt/description.txt $DES/description-lt.txt @@ -100,7 +102,7 @@ cp $SRC/lv/description.txt $DES/description-lv.txt cp $SRC/ml-IN/description.txt $DES/description-ml.txt cp $SRC/ms/description.txt $DES/description-ms.txt cp $SRC/mr/description.txt $DES/description-mr.txt -cp $SRC/no/description.txt $DES/description-no.txt +cp $SRC/nb/description.txt $DES/description-nb.txt cp $SRC/nl/description.txt $DES/description-nl.txt cp $SRC/pl/description.txt $DES/description-pl.txt cp $SRC/pt-BR/description.txt $DES/description-pt_BR.txt diff --git a/tools/make-opera.sh b/tools/make-opera.sh index 5dd9c91e3b4d2..7e00d3287511e 100755 --- a/tools/make-opera.sh +++ b/tools/make-opera.sh @@ -35,6 +35,7 @@ cp platform/opera/manifest.json $DES/ rm -r $DES/_locales/cv rm -r $DES/_locales/hi rm -r $DES/_locales/ka +rm -r $DES/_locales/kk rm -r $DES/_locales/mr rm -r $DES/_locales/ta