Merge remote-tracking branch 'origin/develop'

This commit is contained in:
nobody 2021-11-27 07:45:47 +01:00
commit be49fed0e6
No known key found for this signature in database
GPG Key ID: 8F6DE3D614FCFD7A
132 changed files with 62389 additions and 537 deletions

View File

@ -132,7 +132,7 @@ https://cdnjs.cloudflare.com/ajax/libs/ajax-bootstrap-select/1.4.5/js/ajax-boots
https://cdnjs.cloudflare.com/ajax/libs/algoliasearch/3.35.1/algoliasearch.min.js
https://cdnjs.cloudflare.com/ajax/libs/algoliasearch/4.11.0/algoliasearch.umd.min.js
https://cdnjs.cloudflare.com/ajax/libs/alpinejs/2.8.2/alpine.js
https://cdnjs.cloudflare.com/ajax/libs/alpinejs/3.5.0/cdn.min.js
https://cdnjs.cloudflare.com/ajax/libs/alpinejs/3.5.2/cdn.min.js
https://cdnjs.cloudflare.com/ajax/libs/angucomplete-alt/3.0.0/angucomplete-alt.min.js
https://cdnjs.cloudflare.com/ajax/libs/angular-bootstrap-colorpicker/3.0.32/css/colorpicker.min.css
https://cdnjs.cloudflare.com/ajax/libs/angular-bootstrap-colorpicker/3.0.32/js/bootstrap-colorpicker-module.min.js
@ -183,7 +183,7 @@ https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.11.1/baguetteBox.min.js
https://cdnjs.cloudflare.com/ajax/libs/blazy/1.8.2/blazy.min.js
https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.7.2/bluebird.min.js
https://cdnjs.cloudflare.com/ajax/libs/bodymovin/4.13.0/bodymovin.min.js
https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.7.14/lottie.min.js
https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.8.1/lottie.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootbox.js/4.4.0/bootbox.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootbox.js/5.5.2/bootbox.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.2/bootstrap3-typeahead.min.js
@ -275,8 +275,8 @@ https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/locales/bootst
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/locales/bootstrap-datepicker.zh-TW.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-daterangepicker/2.1.27/daterangepicker.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-daterangepicker/3.1/daterangepicker.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.7.0/font/bootstrap-icons.min.css
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.7.0/font/fonts/bootstrap-icons.woff
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.7.1/font/bootstrap-icons.min.css
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.7.1/font/fonts/bootstrap-icons.woff
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.16/js/bootstrap-multiselect.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/1.1.1/js/bootstrap-multiselect.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.18/css/bootstrap-select.min.css
@ -285,8 +285,8 @@ https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/10.6.2/bootstrap-slider.
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/10.6.2/css/bootstrap-slider.min.css
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/11.0.2/bootstrap-slider.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/11.0.2/css/bootstrap-slider.min.css
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.18.3/bootstrap-table.min.css
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.18.3/bootstrap-table.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.19.1/bootstrap-table.min.css
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.19.1/bootstrap-table.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-toggle/2.2.2/css/bootstrap2-toggle.min.css
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-toggle/2.2.2/css/bootstrap-toggle.min.css
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-toggle/2.2.2/js/bootstrap2-toggle.min.js
@ -316,70 +316,71 @@ https://cdnjs.cloudflare.com/ajax/libs/d3/6.7.0/d3.min.js
https://cdnjs.cloudflare.com/ajax/libs/d3/7.1.1/d3.min.js
https://cdnjs.cloudflare.com/ajax/libs/d3-legend/2.25.6/d3-legend.min.js
https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.10.7/dayjs.min.js
https://cdnjs.cloudflare.com/ajax/libs/dexie/3.0.3/dexie.min.js
https://cdnjs.cloudflare.com/ajax/libs/dexie/3.2.0/dexie.min.js
https://cdnjs.cloudflare.com/ajax/libs/docsearch.js/2.6.3/docsearch.min.css
https://cdnjs.cloudflare.com/ajax/libs/docsearch.js/2.6.3/docsearch.min.js
https://cdnjs.cloudflare.com/ajax/libs/dojo/1.16.4/dojo.min.js
https://cdnjs.cloudflare.com/ajax/libs/drawer/3.2.2/css/drawer.min.css
https://cdnjs.cloudflare.com/ajax/libs/drawer/3.2.2/js/drawer.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/index.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/af-ZA.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/ar.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/bg.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/ca.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/cs-CZ.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/da.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/de.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/ee.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/el.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/en.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/eo.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/es.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/eu.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/fa.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/fi.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/fr.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/he.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/hr.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/hu.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/hy-AM.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/id.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/it.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/ja.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/kg.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/km.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/ko.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/ku.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/kz.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/lt.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/lv.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/mn.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/nb-NO.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/nl.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/pl.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/pt-br.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/pt.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/ro.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/ru-RU.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/sk.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/sl.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/sr.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/sv-SE.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/ta.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/th.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/tk.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/tr-TR.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/ua.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/ug-CN.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/uz-UZ.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/vi.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/zh-CN.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/locale/zh-TW.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/theme-chalk/fonts/element-icons.woff
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.6/theme-chalk/index.min.css
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/index.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/af-ZA.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/ar.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/bg.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/ca.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/cs-CZ.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/da.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/de.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/ee.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/el.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/en.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/eo.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/es.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/eu.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/fa.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/fi.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/fr.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/he.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/hr.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/hu.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/hy-AM.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/id.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/it.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/ja.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/kg.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/km.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/ko.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/ku.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/kz.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/lt.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/lv.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/mn.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/nb-NO.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/nl.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/pl.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/pt-br.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/pt.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/ro.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/ru-RU.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/sk.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/sl.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/sr.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/sv-SE.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/ta.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/th.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/tk.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/tr-TR.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/ua.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/ug-CN.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/uz-UZ.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/vi.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/zh-CN.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/locale/zh-TW.min.js
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/theme-chalk/fonts/element-icons.woff
https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/theme-chalk/index.min.css
https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.13/ember.debug.js
https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.18.2/ember.debug.js
https://cdnjs.cloudflare.com/ajax/libs/ember.js/3.28.6/ember.debug.js
https://cdnjs.cloudflare.com/ajax/libs/ember.js/4.0.0/ember.debug.js
https://cdnjs.cloudflare.com/ajax/libs/exif-js/2.3.0/exif.min.js
https://cdnjs.cloudflare.com/ajax/libs/ext-core/3.1.0/ext-core.js
https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.7/css/jquery.fancybox.min.css
@ -400,6 +401,8 @@ https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/js/all.min.js
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/webfonts/fa-brands-400.woff2
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/webfonts/fa-regular-400.woff2
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/webfonts/fa-solid-900.woff2
https://cdnjs.cloudflare.com/ajax/libs/fork-awesome/1.2.0/css/fork-awesome.min.css
https://cdnjs.cloudflare.com/ajax/libs/fork-awesome/1.2.0/fonts/forkawesome-webfont.woff2
https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.min.css
https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.woff
https://cdnjs.cloudflare.com/ajax/libs/gsap/1.20.5/easing/EasePack.min.js
@ -1133,10 +1136,10 @@ https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.5/styles/zenburn.min.cs
https://cdnjs.cloudflare.com/ajax/libs/history/4.10.1/history.min.js
https://cdnjs.cloudflare.com/ajax/libs/history/5.1.0/history.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/hls.js/0.14.17/hls.min.js
https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.0.12/hls.min.js
https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.1.1/hls.min.js
https://cdnjs.cloudflare.com/ajax/libs/hogan.js/3.0.2/hogan.min.js
https://cdnjs.cloudflare.com/ajax/libs/instantsearch.js/3.7.0/instantsearch.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/instantsearch.js/4.33.1/instantsearch.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/instantsearch.js/4.33.2/instantsearch.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/iScroll/5.2.0/iscroll.min.js
https://cdnjs.cloudflare.com/ajax/libs/jasny-bootstrap/3.1.3/css/jasny-bootstrap.min.css
https://cdnjs.cloudflare.com/ajax/libs/jasny-bootstrap/3.1.3/js/jasny-bootstrap.min.js
@ -1222,7 +1225,7 @@ https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.css
https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.js
https://cdnjs.cloudflare.com/ajax/libs/Leaflet.EasyButton/2.4.0/easy-button.min.js
https://cdnjs.cloudflare.com/ajax/libs/leaflet.markercluster/1.5.3/leaflet.markercluster.js
https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.9.42/libphonenumber-js.min.js
https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.9.43/libphonenumber-js.min.js
https://cdnjs.cloudflare.com/ajax/libs/libsodium-wrappers/0.5.4/sodium.min.js
https://cdnjs.cloudflare.com/ajax/libs/lightcase/2.5.0/css/lightcase.min.css
https://cdnjs.cloudflare.com/ajax/libs/lightcase/2.5.0/fonts/lightcase.woff
@ -1309,8 +1312,8 @@ https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/jax.js
https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js
https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.20.0/css/mdb.min.css
https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.20.0/js/mdb.min.js
https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.9.0/mdb.min.css
https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.9.0/mdb.min.js
https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.10.1/mdb.min.css
https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.10.1/mdb.min.js
https://cdnjs.cloudflare.com/ajax/libs/Modaal/0.4.4/css/modaal.min.css
https://cdnjs.cloudflare.com/ajax/libs/Modaal/0.4.4/js/modaal.min.js
https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js
@ -1403,7 +1406,7 @@ https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.14.0/umd/react-dom.productio
https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.2/umd/react-dom.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/react-redux/7.2.6/react-redux.min.js
https://cdnjs.cloudflare.com/ajax/libs/react-router/5.2.1/react-router.min.js
https://cdnjs.cloudflare.com/ajax/libs/react-router/6.0.1/react-router.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/react-router/6.0.2/react-router.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/redux/4.1.2/redux.min.js
https://cdnjs.cloudflare.com/ajax/libs/rickshaw/1.7.1/rickshaw.min.css
https://cdnjs.cloudflare.com/ajax/libs/rickshaw/1.7.1/rickshaw.min.js
@ -1613,7 +1616,7 @@ https://cdnjs.cloudflare.com/ajax/libs/slider-pro/1.6.0/js/jquery.sliderPro.min.
https://cdnjs.cloudflare.com/ajax/libs/snowplow/2.18.2/sp.min.js
https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.4.0/socket.io.min.js
https://cdnjs.cloudflare.com/ajax/libs/socket.io/3.1.3/socket.io.min.js
https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.3.2/socket.io.min.js
https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.4.0/socket.io.min.js
https://cdnjs.cloudflare.com/ajax/libs/spin.js/2.3.2/spin.min.js
https://cdnjs.cloudflare.com/ajax/libs/spin.js/3.1.0/spin.min.js
https://cdnjs.cloudflare.com/ajax/libs/spin.js/4.1.1/spin.min.js
@ -1670,9 +1673,9 @@ https://cdnjs.cloudflare.com/ajax/libs/video.js/5.20.5/video-js.min.css
https://cdnjs.cloudflare.com/ajax/libs/video.js/5.20.5/video.min.js
https://cdnjs.cloudflare.com/ajax/libs/video.js/6.13.0/video-js.min.css
https://cdnjs.cloudflare.com/ajax/libs/video.js/6.13.0/video.min.js
https://cdnjs.cloudflare.com/ajax/libs/video.js/7.16.0/video-js.min.css
https://cdnjs.cloudflare.com/ajax/libs/video.js/7.16.0/video.min.js
https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.21/vue.global.prod.js
https://cdnjs.cloudflare.com/ajax/libs/video.js/7.17.1/video-js.min.css
https://cdnjs.cloudflare.com/ajax/libs/video.js/7.17.1/video.min.js
https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.23/vue.global.prod.js
https://cdnjs.cloudflare.com/ajax/libs/vue-i18n/8.26.7/vue-i18n.min.js
https://cdnjs.cloudflare.com/ajax/libs/vue-i18n/9.1.9/vue-i18n.cjs.min.js
https://cdnjs.cloudflare.com/ajax/libs/vuex/3.6.2/vuex.min.js
@ -1721,15 +1724,15 @@ https://cdn.jsdelivr.net/npm/@findify/bundle@6.9.15/dist/styles.css
https://cdn.jsdelivr.net/npm/@findify/bundle@6.9.15/dist/vendors~components~initializer.js
https://cdn.jsdelivr.net/npm/@findify/bundle@6.9.15/dist/vendors~initializer.js
https://cdn.jsdelivr.net/npm/@findify/bundle@6.9.15/dist/vendors~sentry.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.13/dist/autocomplete.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.13/dist/bundle.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.13/dist/initializer.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.13/dist/polyfill.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.13/dist/raw.css
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.13/dist/recommendation.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.13/dist/search.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.13/dist/sentry.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.13/dist/styles.css
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.14/dist/autocomplete.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.14/dist/bundle.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.14/dist/initializer.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.14/dist/polyfill.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.14/dist/raw.css
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.14/dist/recommendation.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.14/dist/search.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.14/dist/sentry.js
https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.14/dist/styles.css
https://cdn.jsdelivr.net/npm/instantsearch.css@7.4.5/themes/algolia-min.css
https://cdn.jsdelivr.net/npm/leaflet.featuregroup.subgroup@1.0.2/dist/leaflet.featuregroup.subgroup.js
https://cdn.jsdelivr.net/npm/ngx-bootstrap@6.2.0/datepicker/bs-datepicker.css
@ -1744,8 +1747,8 @@ https://cdn.jsdelivr.net/npm/raven-js@3.27.2/dist/raven.min.js
https://cdn.jsdelivr.net/npm/react-lifecycles-compat@3.0.4/react-lifecycles-compat.min.js
https://cdn.jsdelivr.net/npm/swiper@6.8.4/swiper-bundle.min.css
https://cdn.jsdelivr.net/npm/swiper@6.8.4/swiper-bundle.min.js
https://cdn.jsdelivr.net/npm/swiper@7.2.0/swiper-bundle.min.css
https://cdn.jsdelivr.net/npm/swiper@7.2.0/swiper-bundle.min.js
https://cdn.jsdelivr.net/npm/swiper@7.3.1/swiper-bundle.min.css
https://cdn.jsdelivr.net/npm/swiper@7.3.1/swiper-bundle.min.js
https://cdn.jsdelivr.net/npm/urlize.js/urlize.js
https://cdn.jsdelivr.net/npm/vanilla-lazyload@17.5.0/dist/lazyload.min.js
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@1.6.0/dist/videojs-seek-buttons.css
@ -1754,7 +1757,7 @@ https://cdn.jsdelivr.net/npm/videojs-seek-buttons@2.2.0/dist/videojs-seek-button
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@2.2.0/dist/videojs-seek-buttons.min.js
https://cdn.jsdelivr.net/npm/vue@1.0.28/dist/vue.min.js
https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js
https://fonts.gstatic.com/s/materialicons/v114/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2
https://fonts.gstatic.com/s/materialicons/v117/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2
https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css
https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js
https://raw.githubusercontent.com/jquery-validation/jquery-validation/1.19.3/dist/jquery.validate.min.js

486
_locales/fa/messages.json Normal file
View File

@ -0,0 +1,486 @@
{
"extensionDescription": {
"message": "",
"description": "Protects you against tracking through CDNs (Content Delivery Networks) by redirecting to local resources."
},
"amountInjectedDescription": {
"message": "حجم تزریقات شبکهٔ توزیع محتوای محلّی از زمان نصب.",
"description": "Amount injected description."
},
"optionsTitle": {
"message": "ترجیحات",
"description": "Options title"
},
"showIconBadgeTitle": {
"message": "",
"description": "Show icon badge title"
},
"showIconBadgeDescription": {
"message": "",
"description": "Show icon badge description."
},
"blockMissingTitle": {
"message": "",
"description": "Block requests for missing resources title"
},
"blockMissingDescription": {
"message": "",
"description": "Block requests for missing resources description."
},
"disablePrefetchTitle": {
"message": "",
"description": "Disable prefetch title"
},
"disablePrefetchDescription": {
"message": "",
"description": "Disable prefetch description."
},
"stripMetadataTitle": {
"message": "",
"description": "Strip metadata title"
},
"stripMetadataDescription": {
"message": "",
"description": "Strip metadata description."
},
"allowlistedDomainsTitle": {
"message": "",
"description": "Deactivate LocalCDN for these domains:"
},
"allowlistedDomainsDescription": {
"message": "",
"description": "Enter domains to disable LocalCDN there. One entry per line."
},
"advancedLabel": {
"message": "",
"description": "Advanced label"
},
"generateRuleSetTitle": {
"message": "",
"description": "Generate rule sets for your adblocker"
},
"generateRuleSetDescription": {
"message": "",
"description": "In case you are using an adblocker you can generate the rules here. You have to add these rules manually in your adblocker."
},
"lastUpdate": {
"message": "",
"description": "Last update:"
},
"copyRuleSet": {
"message": "",
"description": "Text of button to copy ruleset"
},
"loggingTitle": {
"message": "",
"description": "Enable logging"
},
"loggingDescription": {
"message": "",
"description": "You can open the log with the icon in the menu. The log will be deleted when you close the browser or disable logging."
},
"featureBreaksWebsitesDescription": {
"message": "",
"description": "This feature breaks websites. Do not leave it enabled, unless you are prepared to manually add affected domains to the allow list."
},
"featureBreaksWebsitesButton": {
"message": "",
"description": "Disable"
},
"labelManipulateDOM": {
"message": "فیلتر کد منبع HTML",
"description": "Filter HTML source code"
},
"labelDonate": {
"message": "حمایت مالی",
"description": "Donate"
},
"negateHtmlFilterListTitle": {
"message": "",
"description": "Invert HTML filter"
},
"negateHtmlFilterListDescription": {
"message": "",
"description": "Enable this option to always apply the HTML filter. The domains in the list will be ignored then. If this option is disabled, the HTML filter is only applied to domains in the list."
},
"negateHtmlFilterListWarning": {
"message": "",
"description": "This function can break websites. Please note the information on the Wiki page."
},
"htmlFilterDomainsTitleExclude": {
"message": "",
"description": "Do not apply HTML filter to these domains:"
},
"htmlFilterDomainsDescription": {
"message": "",
"description": "Enter the domains to be handled or ignored by the HTML filter. One entry per line."
},
"htmlFilterDomainsTitleInclude": {
"message": "",
"description": "Apply HTML filter for these domains:"
},
"blockGoogleFontsTitle": {
"message": "مسدودیت قلم‌های گوگل",
"description": "Block Google Fonts"
},
"blockGoogleFontsDescription": {
"message": "",
"description": "If requests for missing resources are allowed, connections to \"fonts.googleapis.com\" are not blocked. Enable this option to block these requests."
},
"chooseIconStyle": {
"message": "",
"description": "Choose an icon for this extension"
},
"internalStatisticsTitle": {
"message": "",
"description": "Internal statistics"
},
"internalStatisticsDescription": {
"message": "",
"description": "No data transmission. Its all local on your device."
},
"headerStatistics": {
"message": "آمار",
"description": "Statistics. The header of a statistics page."
},
"labelToday": {
"message": "",
"description": "Statistics view for today."
},
"labelPastWeek": {
"message": "",
"description": "Statistics view for past week."
},
"labelPastMonth": {
"message": "",
"description": "Statistics view for past month."
},
"labelPastYear": {
"message": "",
"description": "Statistics view for past year."
},
"labelDelete": {
"message": "",
"description": "Button to delete all statistics data."
},
"labelAvg": {
"message": "",
"description": "Followed by a number of average injections per day within a specific period."
},
"labelInjectedFrameworks": {
"message": "",
"description": "Followed by a number of injections within a specific period."
},
"dialogConfirmDeleteStatistics": {
"message": "",
"description": "Are you sure you want to delete all the statistics?"
},
"labelDomainsAllowlistGoogleFonts": {
"message": "",
"description": "These domains are allowed to load Google Fonts. One entry per line."
},
"btnGeneral": {
"message": "",
"description": "Basic"
},
"btnAdvanced": {
"message": "",
"description": "Advanced"
},
"btnOther": {
"message": "",
"description": "Other"
},
"btnInfo": {
"message": "",
"description": "Info"
},
"headerStorageType": {
"message": "",
"description": "Storage type"
},
"labelStorageTypeLocal": {
"message": "",
"description": "Local"
},
"labelStorageTypeSync": {
"message": "",
"description": "Sync"
},
"headerImportExport": {
"message": "",
"description": "Import/Export"
},
"labelExportData": {
"message": "",
"description": "Back up to file"
},
"labelImportData": {
"message": "",
"description": "Restore from file"
},
"dialogImportSuccessful": {
"message": "",
"description": "Import successful"
},
"dialogImportFailed": {
"message": "",
"description": "Import failed"
},
"updateNotificationTitle": {
"message": "",
"description": "Notification after an update"
},
"updateNotificationNever": {
"message": "",
"description": "Never (Silent Updates)"
},
"updateNotificationOnlyRules": {
"message": "",
"description": "Only if new CDNs and rules"
},
"updateNotificationAlways": {
"message": "",
"description": "Always"
},
"websiteBroken": {
"message": "وبگاه خراب شده؟",
"description": "Website broken?"
},
"hideDonationButton": {
"message": "",
"description": "Hide donation button"
},
"betaLabel": {
"message": "",
"description": "beta"
},
"changeBadgeColorMissingResourcesTitle": {
"message": "",
"description": "Indicate missing resources on the icon"
},
"changeBadgeColorMissingResourcesDescription": {
"message": "",
"description": "Change the badge color if resources are missing."
},
"titleHelp": {
"message": "",
"description": "Help"
},
"helpIntroductionTitle": {
"message": "",
"description": "Introduction"
},
"helpHtmlFilterTitle": {
"message": "",
"description": "What is »HTML filter«?"
},
"helpRuleGeneratorTitle": {
"message": "",
"description": "Rule generator"
},
"helpWebsiteIssuesTitle": {
"message": "",
"description": "Some websites look strange or are not easy to use"
},
"helpBlockGoogleFontsTitle": {
"message": "",
"description": "Why is there a »Block Google Fonts« option?"
},
"helpStatisticsTitle": {
"message": "",
"description": "What about the statistics? Is anything transferred to any servers?"
},
"helpWhatWillBeSynchronizedTitle": {
"message": "",
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpBrowserCompatibilityTitle": {
"message": "",
"description": "Browser compatibility"
},
"helpIntroductionDescription": {
"message": "",
"description": "LocalCDN is a web browser extension that emulates Content Delivery Networks to improve your online privacy. It intercepts traffic, finds supported frameworks/libraries locally, and injects them into the website. Feel free to use the following testing utility to find out if you are properly protected. For more information read the tutorial or our Wiki pages."
},
"helpLinkTestUtility": {
"message": "",
"description": "Testing utility"
},
"helpLinkTutorial": {
"message": "",
"description": "Tutorial"
},
"helpLinkWikiPages": {
"message": "",
"description": "Wiki pages"
},
"helpHtmlFilterDescription": {
"message": "",
"description": "In most cases LocalCDN can easily replace embedded frameworks and improves privacy. In some cases the website may try to prevent this by setting certain options in the HTML source code. LocalCDN reads the HTML source code before it is displayed in the browser and removes these part (red)."
},
"helpHtmlFilterBefore": {
"message": "",
"description": "The HTML filter removes the red characters from this example:"
},
"helpHtmlFilterAfter": {
"message": "",
"description": "The result then looks like this:"
},
"helpHtmlFilterWhyTitle": {
"message": "",
"description": "Why is it necessary to remove crossorigin and integrity attributes?"
},
"helpHtmlFilterCrossorigin": {
"message": "",
"description": "The crossorigin attribute prevents the replacement because the destination does not match the requested one."
},
"helpHtmlFilterIntegrity": {
"message": "",
"description": "To save disk space and to deliver more frameworks LocalCDN upgrades a framework. An integrity tag is the hash value of a file. If the check fails, the browser wont include a framework. The integrity check will fail because the hash values for e.g. jQuery 1.10.1 and jQuery 1.12.4 are different."
},
"helpHtmlFilterErrors": {
"message": "",
"description": "Unfortunately, it sometimes happens that special characters are then displayed incorrectly. In this case you can deactivate the setting again, to display the umlauts correctly."
},
"helpRuleGeneratorDescription": {
"message": "",
"description": "If you want to automatically redirect all supported CDN connections to LocalCDN, you can add these rules to your adblocker to allow these redirections. If you do not want to add these rules, you must allow each CDN connection individually for each website."
},
"helpRuleGeneratorUblockTitle": {
"message": "",
"description": "Only uBlock Origin:"
},
"helpRuleGeneratorUblockDescription": {
"message": "",
"description": "These rules are only relevant in »medium« or »hard« mode, because it blocks all 3rd-party resources. They are not necessary in »default«, »easy« or »very-easy« mode. For more information, please visit the uBlock Origin Wiki."
},
"helpRuleGeneratorUblockTableIcon": {
"message": "",
"description": "Icon"
},
"helpRuleGeneratorUblockTableMode": {
"message": "",
"description": "Mode"
},
"helpRuleGeneratorUblockTableUseful": {
"message": "",
"description": "Rules useful"
},
"helpRuleGeneratorUblockTableDefaultEasy": {
"message": "",
"description": "Default/Easy"
},
"helpRuleGeneratorUblockTableMedium": {
"message": "",
"description": "Medium"
},
"helpRuleGeneratorUblockTableHard": {
"message": "",
"description": "Hard"
},
"helpWebsiteIssuesDescription": {
"message": "",
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesnt (yet) deliver or an SOP. A SOP (Same origin policy) is a security mechanism that determines what data the browser is allowed to load. It helps to isolate malicious documents and thus reduce possible attack vectors. This policy prevents the browser from loading the external frameworks of LocalCDN. Unfortunately there is no solution for this at the moment."
},
"helpBlockGoogleFontsDescription": {
"message": "",
"description": "LocalCDN can replace »Google Material Icons«. To catch the connection your adblocker (e.g. uBlock Origin, uMatrix or AdGuard) must allow the request. LocalCDN listens on these requests and if the query contains »Google Material Icons«, the resource will be replaced. If you uncheck the »Block requests for missing content« option, non-existent resources will be allowed to pass and »Google Fonts« will be loaded, because »Google Material Icons« and »Google Fonts« use the same domain. If you dont want this, you can block »Google Fonts« on LocalCDN."
},
"helpStatisticsDescription": {
"message": "",
"description": "Dont panic, nothing will be transmitted. It would be against all my principles. The statistics (JSON format) contains the following information: Date, CDN+counter and framework+counter. Thats all. Ive an example here:"
},
"helpStatisticsContent": {
"message": "",
"description": "The statistics contain no information about the browser, operating system, requesting website, IP addresses or any other information. Just date, CDN+counter and framework+counter. It shows you which frameworks are replaced by LocalCDNs how often and which CDNs were requested."
},
"helpStatisticsTruthTitle": {
"message": "",
"description": "How do I know thats true?"
},
"helpStatisticsTruthDescription": {
"message": "",
"description": "The extension storage can be viewed directly with the Firefox browser. Open the URL »about:debugging«, switch to »Storage« and select »Extension Storage«. Under the key »internalStatisticsData« you will find the collected data. Just copy it and put it into a JSON PrettyPrinter to make it more readable. Please note that you have to remove the first and last quotation mark and the key to it. You should be able to see this clearly in this video."
},
"helpSyncTitle": {
"message": "",
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpSyncDescription": {
"message": "",
"description": "Sync will only work if you are logged in with a Firefox account on the device and have allowed add-ons to sync in the settings. A separate sync server under your control will also work. This will synchronize most of the settings of LocalCDN across all devices."
},
"helpSyncAccount": {
"message": "",
"description": "If you dont have a sync account, nothing will be synchronized. In that case it makes no difference what type of storage you have selected."
},
"helpSyncContentNever": {
"message": "",
"description": "Things that are never synchronized:"
},
"helpNumberOfInjections": {
"message": "",
"description": "Numbers of injections"
},
"helpYes": {
"message": "",
"description": "Yes"
},
"helpNo": {
"message": "",
"description": "No"
},
"helpData": {
"message": "",
"description": "Data"
},
"helpSyncContentEver": {
"message": "",
"description": "Settings that will be synchronized:"
},
"helpIcons": {
"message": "",
"description": "Default, Light, Blue/Grey"
},
"helpSyncContentLinks": {
"message": "",
"description": "More information about Firefox Sync:"
},
"helpBrowserCompatibility": {
"message": "",
"description": "Browser compatibility"
},
"helpReplace": {
"message": "",
"description": "Replace"
},
"helpReplaceOther": {
"message": "",
"description": "Replace other resources"
},
"helpUpgradeAllResources": {
"message": "",
"description": "Upgrade all resources"
},
"helpExplanationChrome": {
"message": "",
"description": "All Chromium based Browser"
},
"helpLimitation": {
"message": "",
"description": "This is not a limitation of LocalCDN, but missing API support of Chromium based browsers."
},
"titleBadgeDefault": {
"message": "",
"description": "Default badge"
},
"titleBadgeHTMLFilter": {
"message": "",
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
}
}

View File

@ -12,11 +12,11 @@
"description": "Options title"
},
"showIconBadgeTitle": {
"message": "Näytä kohteiden määrä kuvakkeessa",
"message": "Näytä korvattujen kohteiden määrä kuvakkeessa",
"description": "Show icon badge title"
},
"showIconBadgeDescription": {
"message": "Näyttää turvattujen kohteiden määrän lisäosan kuvakkeessa.",
"message": "Näyttää korvattujen kohteiden määrän lisäosan kuvakkeessa.",
"description": "Show icon badge description."
},
"blockMissingTitle": {
@ -44,7 +44,7 @@
"description": "Strip metadata description."
},
"allowlistedDomainsTitle": {
"message": "Poista LocalDNS käytöstä näillä verkkosivuilla:",
"message": "Poista LocalCDN käytöstä näillä verkkosivuilla:",
"description": "Deactivate LocalCDN for these domains:"
},
"allowlistedDomainsDescription": {
@ -388,11 +388,11 @@
"description": "LocalCDN can replace »Google Material Icons«. To catch the connection your adblocker (e.g. uBlock Origin, uMatrix or AdGuard) must allow the request. LocalCDN listens on these requests and if the query contains »Google Material Icons«, the resource will be replaced. If you uncheck the »Block requests for missing content« option, non-existent resources will be allowed to pass and »Google Fonts« will be loaded, because »Google Material Icons« and »Google Fonts« use the same domain. If you dont want this, you can block »Google Fonts« on LocalCDN."
},
"helpStatisticsDescription": {
"message": "Ei hätää, mitään ei lähetetä eteenpäin. Se olisi vastoin kaikkia periaatteitani. Tilastotiedot (JSON-muodossa) sisältävät seuraavia tietoja: Päivämäärä, CDN+counter ja kehys+counter. Siinä kaikki. Minulla on tässä esimerkki:",
"message": "Ei hätää, mitään ei lähetetä eteenpäin. Se olisi vastoin kaikkia periaatteitani. Tilastotiedot (JSON-muodossa) sisältävät seuraavia tietoja: Päivämäärä, CDN+counter ja ohjelmistokehys+counter. Siinä kaikki. Minulla on tässä esimerkki:",
"description": "Dont panic, nothing will be transmitted. It would be against all my principles. The statistics (JSON format) contains the following information: Date, CDN+counter and framework+counter. Thats all. Ive an example here:"
},
"helpStatisticsContent": {
"message": "Tilastot eivät sisällä mitään tietoa selaimesta, käyttöjärjestelmästä, verkkosivupyynnöistä, IP-osoitteista tai mistään muusta tiedosta. Pelkästään päivämäärä, CDN+counter ja kehys+counter. Se näyttää, mitkä kehykset LocalCDN on korvannut, kuinka usein, ja mitä sisältöjenjakeluverkkoja on pyydetty.",
"message": "Tilastot eivät sisällä mitään tietoa selaimesta, käyttöjärjestelmästä, verkkosivupyynnöistä, IP-osoitteista tai mistään muusta tiedosta. Pelkästään päivämäärä, CDN+counter ja ohjelmistokehys+counter. Se näyttää, mitkä ohjelmistokehykset LocalCDN on korvannut, kuinka usein, ja mitä sisältöjenjakeluverkkoja on pyydetty.",
"description": "The statistics contain no information about the browser, operating system, requesting website, IP addresses or any other information. Just date, CDN+counter and framework+counter. It shows you which frameworks are replaced by LocalCDNs how often and which CDNs were requested."
},
"helpStatisticsTruthTitle": {
@ -400,7 +400,7 @@
"description": "How do I know thats true?"
},
"helpStatisticsTruthDescription": {
"message": "Liitännäisten tallennustilaa voi tarkastella suoraan Firefox-selaimesta. Avaa osoite »about:debugging«, siirry kohtaan »Tallennustila« ja valitse »Liitännäisten tallennustila«. Tunnuksen »internalStatisticsData« alta löydät kerätyt tiedot. Kopioi se ja lisää se JSON PrettyPrinteriin tehdäksesi siitä helpommin luettavan. Huomioithan, että sinun täytyy poistaa ensimmäinen ja viimeinen lainausmerkki ja avain siihen. Sinun tulisi nähdä tämä selkeästi tältä videolta.",
"message": "Lisäosan tallennustilaa voi tarkastella suoraan Firefox-selaimesta. Avaa osoite »about:debugging«, siirry kohtaan »Tallennustila« ja valitse »Liitännäisten tallennustila«. Tunnuksen »internalStatisticsData« alta löydät kerätyt tiedot. Kopioi se ja lisää se JSON PrettyPrinteriin tehdäksesi siitä helpommin luettavan. Huomioithan, että sinun täytyy poistaa ensimmäinen ja viimeinen lainausmerkki ja avain siihen. Sinun tulisi nähdä tämä selkeästi tältä videolta.",
"description": "The extension storage can be viewed directly with the Firefox browser. Open the URL »about:debugging«, switch to »Storage« and select »Extension Storage«. Under the key »internalStatisticsData« you will find the collected data. Just copy it and put it into a JSON PrettyPrinter to make it more readable. Please note that you have to remove the first and last quotation mark and the key to it. You should be able to see this clearly in this video."
},
"helpSyncTitle": {

View File

@ -340,7 +340,7 @@
"description": "To save disk space and to deliver more frameworks LocalCDN upgrades a framework. An integrity tag is the hash value of a file. If the check fails, the browser wont include a framework. The integrity check will fail because the hash values for e.g. jQuery 1.10.1 and jQuery 1.12.4 are different."
},
"helpHtmlFilterErrors": {
"message": "",
"message": "불행하게도, 가끔 씩 특수 문자가 잘못 표시될 수 있습니다. 이 경우 움라우트를 적절히 표시하기 위해 이 설정을 끄세요.",
"description": "Unfortunately, it sometimes happens that special characters are then displayed incorrectly. In this case you can deactivate the setting again, to display the umlauts correctly."
},
"helpRuleGeneratorDescription": {
@ -352,7 +352,7 @@
"description": "Only uBlock Origin:"
},
"helpRuleGeneratorUblockDescription": {
"message": "",
"message": "이러한 규칙들은 3자 리소스를 모두 차단하는 »medium« 또는 »hard« 모드에서만 의미가 있습니다. 이 옵션은 »default«, »easy« 또는 »very-easy« 모드에서는 필요하지 않습니다. 더 많은 정보를 보려면 uBlock Origin 위키를 참조하세요.",
"description": "These rules are only relevant in »medium« or »hard« mode, because it blocks all 3rd-party resources. They are not necessary in »default«, »easy« or »very-easy« mode. For more information, please visit the uBlock Origin Wiki."
},
"helpRuleGeneratorUblockTableIcon": {
@ -364,7 +364,7 @@
"description": "Mode"
},
"helpRuleGeneratorUblockTableUseful": {
"message": "",
"message": "유용한 규칙",
"description": "Rules useful"
},
"helpRuleGeneratorUblockTableDefaultEasy": {
@ -380,19 +380,19 @@
"description": "Hard"
},
"helpWebsiteIssuesDescription": {
"message": "",
"message": "두 가지 가능한 원인이 있습니다. LocalCDN이 제공하지 않는 프레임워크나 라이브러리를 필요로 하거나 동일 출처 정책 때문입니다. 동일 출처 정책(Same origin policy)는 어떤 데이터를 브라우저가 로드하는지 허용하는 보안 기작입니다. 이것은 악의적 문서를 격리하도록 돕고 그로써 가능한 공격 기회를 감소시킵니다. 이 정책은 브라우저가 LocalCDN의 외부 라이브러리를 로드하는 것을 방지합니다. 불행히도 현재로써는 이에 대한 해결 방법이 없습니다.",
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesnt (yet) deliver or an SOP. A SOP (Same origin policy) is a security mechanism that determines what data the browser is allowed to load. It helps to isolate malicious documents and thus reduce possible attack vectors. This policy prevents the browser from loading the external frameworks of LocalCDN. Unfortunately there is no solution for this at the moment."
},
"helpBlockGoogleFontsDescription": {
"message": "",
"message": "LocalCDN은 »Google Material Icons«을 대체 할 수 있습니다. 연결을 가로채기 위해서는 당신의 광고 차단기가 (예시:uBlock Origin, uMatrix , AdGuard) 요청을 허용해야 합니다. LocalCDN은 그러한 요청을 듣고 만약 요청이 »Google Material Icons«을 포함한다면, 리소스를 대체할 것입니다. 만약 당신이 »누락된 리소스에 대한 요청 차단« 옵션을 해제했다면,»Google Material Icons« 와 »Google 글꼴«는 같은 도메인을 사용하기 때문에 존재하지 않는 리소스는 통과되고 »Google 글꼴«은 로드될 것입니다. 만약 당신이 이것을 원하지 않는다면, 당신은 »Google 글꼴«을 LocalCDN에서 차단할 수 있습니다.",
"description": "LocalCDN can replace »Google Material Icons«. To catch the connection your adblocker (e.g. uBlock Origin, uMatrix or AdGuard) must allow the request. LocalCDN listens on these requests and if the query contains »Google Material Icons«, the resource will be replaced. If you uncheck the »Block requests for missing content« option, non-existent resources will be allowed to pass and »Google Fonts« will be loaded, because »Google Material Icons« and »Google Fonts« use the same domain. If you dont want this, you can block »Google Fonts« on LocalCDN."
},
"helpStatisticsDescription": {
"message": "",
"message": "당황하지 마세요. 재 원칙에 반대됨으로 아무것도 전송되지 않을 겁니다. 통계(JSON 형식)은 다음 정보만을 포함합니다. 날자, CDN+카운터와 프레임워크+카운터. 예시가 여기 있습니다:",
"description": "Dont panic, nothing will be transmitted. It would be against all my principles. The statistics (JSON format) contains the following information: Date, CDN+counter and framework+counter. Thats all. Ive an example here:"
},
"helpStatisticsContent": {
"message": "",
"message": "통계는 브라우저나 운영체제, 요청한 웹사이트, IP 주소와 같은 다른 어떤 정보도 포함하고 있지 않습니다. 날자, CDN+카운터, 프레임워크+카운터만을 포함합니다. 이것은 당신이 어떤 프레임워크를 LocalCDN으로 대체했으며 어떤 CDN이 얼마나 자주 요청되었는지를 보여줍니다.",
"description": "The statistics contain no information about the browser, operating system, requesting website, IP addresses or any other information. Just date, CDN+counter and framework+counter. It shows you which frameworks are replaced by LocalCDNs how often and which CDNs were requested."
},
"helpStatisticsTruthTitle": {
@ -408,27 +408,27 @@
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpSyncDescription": {
"message": "",
"message": "Sync는 당신이 파이어폭스 계정에 로그인하고 확장 기능들을 동기화 하도록 허용 했을 때만 작동합니다. 당신이 통제하는 다른 동기화 서버도 가능합니다. 이 옵션은 당신의 기기들 사이에서 대부분의 LocalCDN 설정을 동기화 할 것입니다.",
"description": "Sync will only work if you are logged in with a Firefox account on the device and have allowed add-ons to sync in the settings. A separate sync server under your control will also work. This will synchronize most of the settings of LocalCDN across all devices."
},
"helpSyncAccount": {
"message": "",
"message": "만약 당신이 sync 계정을 가지고 있지 않다면, 아무것도 동기화 되지 않을 것입니다. 그 경우 어떤 종류의 저장소를 설정하든 차이가 없습니다.",
"description": "If you dont have a sync account, nothing will be synchronized. In that case it makes no difference what type of storage you have selected."
},
"helpSyncContentNever": {
"message": "",
"message": "절대 동기화 되지 않을 것들:",
"description": "Things that are never synchronized:"
},
"helpNumberOfInjections": {
"message": "",
"message": "대체 횟수",
"description": "Numbers of injections"
},
"helpYes": {
"message": "",
"message": "",
"description": "Yes"
},
"helpNo": {
"message": "",
"message": "아니오",
"description": "No"
},
"helpData": {
@ -436,39 +436,39 @@
"description": "Data"
},
"helpSyncContentEver": {
"message": "",
"message": "동기화될 설정들:",
"description": "Settings that will be synchronized:"
},
"helpIcons": {
"message": "",
"message": "기본, 밝음, 청색/회색",
"description": "Default, Light, Blue/Grey"
},
"helpSyncContentLinks": {
"message": "",
"message": "Firefox Sync에 대한 더 많은 정보:",
"description": "More information about Firefox Sync:"
},
"helpBrowserCompatibility": {
"message": "",
"message": "브라우저 호환성",
"description": "Browser compatibility"
},
"helpReplace": {
"message": "",
"message": "대체",
"description": "Replace"
},
"helpReplaceOther": {
"message": "",
"message": "다른 리소스를 대체",
"description": "Replace other resources"
},
"helpUpgradeAllResources": {
"message": "",
"message": "모든 리소스를 업그레이드",
"description": "Upgrade all resources"
},
"helpExplanationChrome": {
"message": "",
"message": "모든 Chromium 기반 브라우저",
"description": "All Chromium based Browser"
},
"helpLimitation": {
"message": "",
"message": "이것은 LocalCDN의 한계가 아니고, Chromium 기반 브라우저들이 필요한 API를 지원하지 않기 때문입니다.",
"description": "This is not a limitation of LocalCDN, but missing API support of Chromium based browsers."
},
"titleBadgeDefault": {

View File

@ -4,7 +4,7 @@
"description": "Protects you against tracking through CDNs (Content Delivery Networks) by redirecting to local resources."
},
"amountInjectedDescription": {
"message": "Quantidade de injeções de recurso Content Delivery Network locais desde a instalação.",
"message": "Número de injeções de recursos Content Delivery Network locais desde a instalação.",
"description": "Amount injected description."
},
"optionsTitle": {
@ -12,15 +12,15 @@
"description": "Options title"
},
"showIconBadgeTitle": {
"message": "Mostrar contagem de injeções no ícone",
"message": "Mostrar número de injeções no ícone",
"description": "Show icon badge title"
},
"showIconBadgeDescription": {
"message": "Mostrar a quantidade de recursos injetados no ícone da extensão.",
"message": "Mostrar número de recursos injetados no ícone da extensão.",
"description": "Show icon badge description."
},
"blockMissingTitle": {
"message": "Bloquear pedidos por falta de recursos",
"message": "Bloquear pedidos para recursos em falta",
"description": "Block requests for missing resources title"
},
"blockMissingDescription": {
@ -36,7 +36,7 @@
"description": "Disable prefetch description."
},
"stripMetadataTitle": {
"message": "Retirar metadados dos pedidos permitidos",
"message": "Retirar meta dados dos pedidos permitidos",
"description": "Strip metadata title"
},
"stripMetadataDescription": {

486
_locales/vi/messages.json Normal file
View File

@ -0,0 +1,486 @@
{
"extensionDescription": {
"message": "Bảo vệ bạn khỏi sự theo dõi bằng các CDN (Mạng phân phối nội dung) bằng cách chuyển hướng về tài nguyên có sẵn.",
"description": "Protects you against tracking through CDNs (Content Delivery Networks) by redirecting to local resources."
},
"amountInjectedDescription": {
"message": "Số lượng mạng phân phối nội dung có sẵn được sử dụng từ khi cài đặt.",
"description": "Amount injected description."
},
"optionsTitle": {
"message": "Cài đặt",
"description": "Options title"
},
"showIconBadgeTitle": {
"message": "Hiện số lần sử dụng trên biểu tượng",
"description": "Show icon badge title"
},
"showIconBadgeDescription": {
"message": "Hiện số lần đã sử dụng tài nguyên có sẵn trên biểu tượng của chương trình mở rộng.",
"description": "Show icon badge description."
},
"blockMissingTitle": {
"message": "Chặn các yêu cầu với tài nguyên không có sẵn",
"description": "Block requests for missing resources title"
},
"blockMissingDescription": {
"message": "Huỷ bỏ yêu cầu bị chặn nếu tài nguyên cần thiết không có sẵn.",
"description": "Block requests for missing resources description."
},
"disablePrefetchTitle": {
"message": "Vô hiệu hoá nạp trước đường dẫn",
"description": "Disable prefetch title"
},
"disablePrefetchDescription": {
"message": "Ngăn những yêu cầu bị cấm để không bị lộ ra cho các mạng phân phối.",
"description": "Disable prefetch description."
},
"stripMetadataTitle": {
"message": "Loại bỏ siêu dữ liệu từ những yêu cầu được cho phép",
"description": "Strip metadata title"
},
"stripMetadataDescription": {
"message": "Xoá bỏ dữ liệu nhạy cảm từ những yêu cầu tới mạng phân phối nội dung được cho phép để tăng cường bảo mật.",
"description": "Strip metadata description."
},
"allowlistedDomainsTitle": {
"message": "Không sử dụng LocalCDN đối với những tên miền sau:",
"description": "Deactivate LocalCDN for these domains:"
},
"allowlistedDomainsDescription": {
"message": "Nhập các tên miền không sử dụng LocalCDN. Mỗi dòng một tên.",
"description": "Enter domains to disable LocalCDN there. One entry per line."
},
"advancedLabel": {
"message": "Nâng cao",
"description": "Advanced label"
},
"generateRuleSetTitle": {
"message": "Tạo luật cho trình chặn quảng cáo của bạn",
"description": "Generate rule sets for your adblocker"
},
"generateRuleSetDescription": {
"message": "Trong trường hợp bạn sử dụng trình chặn quảng cáo thì có thể tạo ra luật ở đây. Bạn phải thêm những luật này vào trình chặn quảng cáo bằng tay.",
"description": "In case you are using an adblocker you can generate the rules here. You have to add these rules manually in your adblocker."
},
"lastUpdate": {
"message": "Lần cập nhật cuối:",
"description": "Last update:"
},
"copyRuleSet": {
"message": "Sao chép",
"description": "Text of button to copy ruleset"
},
"loggingTitle": {
"message": "Kích hoạt ghi chép",
"description": "Enable logging"
},
"loggingDescription": {
"message": "Bạn có thể mở bản ghi chép từ biểu tượng trong trình đơn. Bản ghi chép sẽ bị xoá khi bạn đóng trình duyệt hoặc tắt ghi chép.",
"description": "You can open the log with the icon in the menu. The log will be deleted when you close the browser or disable logging."
},
"featureBreaksWebsitesDescription": {
"message": "Tính năng này có thể làm hỏng các trang web. Không nên bật, trừ khi bạn sẵn sàng thêm các tên miền bị ảnh hưởng vào danh sách cho phép.",
"description": "This feature breaks websites. Do not leave it enabled, unless you are prepared to manually add affected domains to the allow list."
},
"featureBreaksWebsitesButton": {
"message": "Tắt",
"description": "Disable"
},
"labelManipulateDOM": {
"message": "Lọc mã nguồn HTML",
"description": "Filter HTML source code"
},
"labelDonate": {
"message": "Quyên góp",
"description": "Donate"
},
"negateHtmlFilterListTitle": {
"message": "Đảo ngược bộ lọc HTML",
"description": "Invert HTML filter"
},
"negateHtmlFilterListDescription": {
"message": "Bật tính năng này để luôn luôn sử dụng bộ lọc HTML. Các tên miền trong danh sách khi đó sẽ bị bỏ qua. Nếu tính năng này tắt, bộ lọc HTML chỉ được sử dụng đối với các tên miền trong danh sách.",
"description": "Enable this option to always apply the HTML filter. The domains in the list will be ignored then. If this option is disabled, the HTML filter is only applied to domains in the list."
},
"negateHtmlFilterListWarning": {
"message": "Tính năng này có thể làm hỏng các trang web. Xem thông tin ở trên trang Wiki.",
"description": "This function can break websites. Please note the information on the Wiki page."
},
"htmlFilterDomainsTitleExclude": {
"message": "Không sử dụng bộ lọc HTML đối với những tên miền sau:",
"description": "Do not apply HTML filter to these domains:"
},
"htmlFilterDomainsDescription": {
"message": "Nhập các tên miền để được bộ lọc HTML áp dụng hoặc bỏ qua. Mỗi dòng một tên.",
"description": "Enter the domains to be handled or ignored by the HTML filter. One entry per line."
},
"htmlFilterDomainsTitleInclude": {
"message": "Sử dụng bộ lọc HTML đối với các tên miền sau:",
"description": "Apply HTML filter for these domains:"
},
"blockGoogleFontsTitle": {
"message": "Chặn các phông chữ Google",
"description": "Block Google Fonts"
},
"blockGoogleFontsDescription": {
"message": "Nếu các yêu cầu tới tài nguyên không có sẵn được cho phép, các kết nối tới \"fonts.googleapis.com\" sẽ không bị chặn. Bật tính năng này để chặn các yêu cầu đó.",
"description": "If requests for missing resources are allowed, connections to \"fonts.googleapis.com\" are not blocked. Enable this option to block these requests."
},
"chooseIconStyle": {
"message": "Chọn biểu tượng cho phần mở rộng",
"description": "Choose an icon for this extension"
},
"internalStatisticsTitle": {
"message": "Số liệu nội bộ",
"description": "Internal statistics"
},
"internalStatisticsDescription": {
"message": "Chức năng này hiện đang được thử nghiệm. Không chuyển giao dữ liệu. Tất cả được lưu trên thiết bị của bạn.",
"description": "No data transmission. Its all local on your device."
},
"headerStatistics": {
"message": "Số liệu",
"description": "Statistics. The header of a statistics page."
},
"labelToday": {
"message": "Hôm nay",
"description": "Statistics view for today."
},
"labelPastWeek": {
"message": "Tuần trước",
"description": "Statistics view for past week."
},
"labelPastMonth": {
"message": "Tháng trước",
"description": "Statistics view for past month."
},
"labelPastYear": {
"message": "Năm trước",
"description": "Statistics view for past year."
},
"labelDelete": {
"message": "Xoá",
"description": "Button to delete all statistics data."
},
"labelAvg": {
"message": "Trung bình (Số lần thay thế trong một ngày)",
"description": "Followed by a number of average injections per day within a specific period."
},
"labelInjectedFrameworks": {
"message": "Các bộ khung được thay thế",
"description": "Followed by a number of injections within a specific period."
},
"dialogConfirmDeleteStatistics": {
"message": "Bạn có chắc muốn xoá tất cả số liệu không?",
"description": "Are you sure you want to delete all the statistics?"
},
"labelDomainsAllowlistGoogleFonts": {
"message": "Những tên miền này được phép tải Google Fonts. Mỗi dòng một tên.",
"description": "These domains are allowed to load Google Fonts. One entry per line."
},
"btnGeneral": {
"message": "Cơ bản",
"description": "Basic"
},
"btnAdvanced": {
"message": "Nâng cao",
"description": "Advanced"
},
"btnOther": {
"message": "Khác",
"description": "Other"
},
"btnInfo": {
"message": "Thông tin",
"description": "Info"
},
"headerStorageType": {
"message": "Dạng lưu trữ",
"description": "Storage type"
},
"labelStorageTypeLocal": {
"message": "Có sẵn",
"description": "Local"
},
"labelStorageTypeSync": {
"message": "Đồng bộ hoá",
"description": "Sync"
},
"headerImportExport": {
"message": "Nhập/Xuất",
"description": "Import/Export"
},
"labelExportData": {
"message": "Lưu vào tệp",
"description": "Back up to file"
},
"labelImportData": {
"message": "Nhập từ tệp",
"description": "Restore from file"
},
"dialogImportSuccessful": {
"message": "Nhập thành công",
"description": "Import successful"
},
"dialogImportFailed": {
"message": "Nhập không thành công",
"description": "Import failed"
},
"updateNotificationTitle": {
"message": "Thông báo sau khi cập nhật",
"description": "Notification after an update"
},
"updateNotificationNever": {
"message": "Không bao giờ (Cập nhật câm)",
"description": "Never (Silent Updates)"
},
"updateNotificationOnlyRules": {
"message": "Chỉ khi có mạng phân phối nội dung và luật mới",
"description": "Only if new CDNs and rules"
},
"updateNotificationAlways": {
"message": "Luôn luôn",
"description": "Always"
},
"websiteBroken": {
"message": "Trang web bị hỏng?",
"description": "Website broken?"
},
"hideDonationButton": {
"message": "Ẩn nút quyên góp",
"description": "Hide donation button"
},
"betaLabel": {
"message": "Beta",
"description": "beta"
},
"changeBadgeColorMissingResourcesTitle": {
"message": "Hiện tài nguyên không có sẵn trên biểu tượng",
"description": "Indicate missing resources on the icon"
},
"changeBadgeColorMissingResourcesDescription": {
"message": "Thay đổi màu biểu tượng nếu tài nguyên không có sẵn.",
"description": "Change the badge color if resources are missing."
},
"titleHelp": {
"message": "Trợ giúp",
"description": "Help"
},
"helpIntroductionTitle": {
"message": "Giới thiệu",
"description": "Introduction"
},
"helpHtmlFilterTitle": {
"message": "Bộ lọc HTML là gì?",
"description": "What is »HTML filter«?"
},
"helpRuleGeneratorTitle": {
"message": "Tạo ra luật",
"description": "Rule generator"
},
"helpWebsiteIssuesTitle": {
"message": "Một vài trang web nhìn lạ hoặc khó sử dụng",
"description": "Some websites look strange or are not easy to use"
},
"helpBlockGoogleFontsTitle": {
"message": "Tại sao lại có tính năng chặn Google Fonts?",
"description": "Why is there a »Block Google Fonts« option?"
},
"helpStatisticsTitle": {
"message": "Vậy còn số liệu thì sao? Có cái gì được chuyển tới máy chủ nào không?",
"description": "What about the statistics? Is anything transferred to any servers?"
},
"helpWhatWillBeSynchronizedTitle": {
"message": "Những gì sẽ được đồng bộ hoá khi tôi chọn đồng bộ hoá làm loại lưu trữ?",
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpBrowserCompatibilityTitle": {
"message": "Tính tương thích trình duyệt",
"description": "Browser compatibility"
},
"helpIntroductionDescription": {
"message": "",
"description": "LocalCDN is a web browser extension that emulates Content Delivery Networks to improve your online privacy. It intercepts traffic, finds supported frameworks/libraries locally, and injects them into the website. Feel free to use the following testing utility to find out if you are properly protected. For more information read the tutorial or our Wiki pages."
},
"helpLinkTestUtility": {
"message": "",
"description": "Testing utility"
},
"helpLinkTutorial": {
"message": "",
"description": "Tutorial"
},
"helpLinkWikiPages": {
"message": "",
"description": "Wiki pages"
},
"helpHtmlFilterDescription": {
"message": "",
"description": "In most cases LocalCDN can easily replace embedded frameworks and improves privacy. In some cases the website may try to prevent this by setting certain options in the HTML source code. LocalCDN reads the HTML source code before it is displayed in the browser and removes these part (red)."
},
"helpHtmlFilterBefore": {
"message": "",
"description": "The HTML filter removes the red characters from this example:"
},
"helpHtmlFilterAfter": {
"message": "",
"description": "The result then looks like this:"
},
"helpHtmlFilterWhyTitle": {
"message": "",
"description": "Why is it necessary to remove crossorigin and integrity attributes?"
},
"helpHtmlFilterCrossorigin": {
"message": "",
"description": "The crossorigin attribute prevents the replacement because the destination does not match the requested one."
},
"helpHtmlFilterIntegrity": {
"message": "",
"description": "To save disk space and to deliver more frameworks LocalCDN upgrades a framework. An integrity tag is the hash value of a file. If the check fails, the browser wont include a framework. The integrity check will fail because the hash values for e.g. jQuery 1.10.1 and jQuery 1.12.4 are different."
},
"helpHtmlFilterErrors": {
"message": "",
"description": "Unfortunately, it sometimes happens that special characters are then displayed incorrectly. In this case you can deactivate the setting again, to display the umlauts correctly."
},
"helpRuleGeneratorDescription": {
"message": "",
"description": "If you want to automatically redirect all supported CDN connections to LocalCDN, you can add these rules to your adblocker to allow these redirections. If you do not want to add these rules, you must allow each CDN connection individually for each website."
},
"helpRuleGeneratorUblockTitle": {
"message": "",
"description": "Only uBlock Origin:"
},
"helpRuleGeneratorUblockDescription": {
"message": "",
"description": "These rules are only relevant in »medium« or »hard« mode, because it blocks all 3rd-party resources. They are not necessary in »default«, »easy« or »very-easy« mode. For more information, please visit the uBlock Origin Wiki."
},
"helpRuleGeneratorUblockTableIcon": {
"message": "",
"description": "Icon"
},
"helpRuleGeneratorUblockTableMode": {
"message": "",
"description": "Mode"
},
"helpRuleGeneratorUblockTableUseful": {
"message": "",
"description": "Rules useful"
},
"helpRuleGeneratorUblockTableDefaultEasy": {
"message": "",
"description": "Default/Easy"
},
"helpRuleGeneratorUblockTableMedium": {
"message": "",
"description": "Medium"
},
"helpRuleGeneratorUblockTableHard": {
"message": "",
"description": "Hard"
},
"helpWebsiteIssuesDescription": {
"message": "",
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesnt (yet) deliver or an SOP. A SOP (Same origin policy) is a security mechanism that determines what data the browser is allowed to load. It helps to isolate malicious documents and thus reduce possible attack vectors. This policy prevents the browser from loading the external frameworks of LocalCDN. Unfortunately there is no solution for this at the moment."
},
"helpBlockGoogleFontsDescription": {
"message": "",
"description": "LocalCDN can replace »Google Material Icons«. To catch the connection your adblocker (e.g. uBlock Origin, uMatrix or AdGuard) must allow the request. LocalCDN listens on these requests and if the query contains »Google Material Icons«, the resource will be replaced. If you uncheck the »Block requests for missing content« option, non-existent resources will be allowed to pass and »Google Fonts« will be loaded, because »Google Material Icons« and »Google Fonts« use the same domain. If you dont want this, you can block »Google Fonts« on LocalCDN."
},
"helpStatisticsDescription": {
"message": "",
"description": "Dont panic, nothing will be transmitted. It would be against all my principles. The statistics (JSON format) contains the following information: Date, CDN+counter and framework+counter. Thats all. Ive an example here:"
},
"helpStatisticsContent": {
"message": "",
"description": "The statistics contain no information about the browser, operating system, requesting website, IP addresses or any other information. Just date, CDN+counter and framework+counter. It shows you which frameworks are replaced by LocalCDNs how often and which CDNs were requested."
},
"helpStatisticsTruthTitle": {
"message": "",
"description": "How do I know thats true?"
},
"helpStatisticsTruthDescription": {
"message": "",
"description": "The extension storage can be viewed directly with the Firefox browser. Open the URL »about:debugging«, switch to »Storage« and select »Extension Storage«. Under the key »internalStatisticsData« you will find the collected data. Just copy it and put it into a JSON PrettyPrinter to make it more readable. Please note that you have to remove the first and last quotation mark and the key to it. You should be able to see this clearly in this video."
},
"helpSyncTitle": {
"message": "",
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpSyncDescription": {
"message": "",
"description": "Sync will only work if you are logged in with a Firefox account on the device and have allowed add-ons to sync in the settings. A separate sync server under your control will also work. This will synchronize most of the settings of LocalCDN across all devices."
},
"helpSyncAccount": {
"message": "",
"description": "If you dont have a sync account, nothing will be synchronized. In that case it makes no difference what type of storage you have selected."
},
"helpSyncContentNever": {
"message": "",
"description": "Things that are never synchronized:"
},
"helpNumberOfInjections": {
"message": "",
"description": "Numbers of injections"
},
"helpYes": {
"message": "",
"description": "Yes"
},
"helpNo": {
"message": "",
"description": "No"
},
"helpData": {
"message": "",
"description": "Data"
},
"helpSyncContentEver": {
"message": "",
"description": "Settings that will be synchronized:"
},
"helpIcons": {
"message": "",
"description": "Default, Light, Blue/Grey"
},
"helpSyncContentLinks": {
"message": "",
"description": "More information about Firefox Sync:"
},
"helpBrowserCompatibility": {
"message": "",
"description": "Browser compatibility"
},
"helpReplace": {
"message": "",
"description": "Replace"
},
"helpReplaceOther": {
"message": "",
"description": "Replace other resources"
},
"helpUpgradeAllResources": {
"message": "",
"description": "Upgrade all resources"
},
"helpExplanationChrome": {
"message": "",
"description": "All Chromium based Browser"
},
"helpLimitation": {
"message": "",
"description": "This is not a limitation of LocalCDN, but missing API support of Chromium based browsers."
},
"titleBadgeDefault": {
"message": "",
"description": "Default badge"
},
"titleBadgeHTMLFilter": {
"message": "",
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
}
}

View File

@ -62,6 +62,10 @@
# file in this extension is used and not an
# external one.
#
# google-fonts-placeholder.css This is a placeholder which is used for
# Google Fonts redirects. Only used
# when "Block Google Fonts" is enabled.
#
# /resources/*/note These files contain notes if a file has
# been renamed.
# =============================================================================
@ -738,7 +742,13 @@ third_party=()
# Find files in /resource/
while IFS= read -r -d $'\0'; do
array+=("$REPLY")
done < <(find ../resources/ -type f \( -iname "*.jsm" -or -iname "*.css" -or -iname "*.woff" -or -iname "*.woff2" \) ! -iname "fa-loader.css" ! -iname "google-material-design-icons.css" -print0)
done < <(find ../resources/ \
-type f \
\( -iname "*.jsm" -or -iname "*.css" -or -iname "*.woff" -or -iname "*.woff2" \) \
! -iname "fa-loader.css" \
! -iname "google-material-design-icons.css" \
! -iname "google-fonts-placeholder.css" \
-print0)
for i in "${array[@]}"; do

View File

@ -336,6 +336,7 @@ const IgnoredHost = {
const MathJaxFiles = {
'config/default.js': true,
'config/MML_HTMLorMML.js': true,
'config/TeX-AMS_HTML.js': true,
'config/TeX-AMS_HTML-full.js': true,
'config/TeX-AMS-MML_HTMLorMML.js': true,
'config/TeX-MML-AM_CHTML.js': true,

View File

@ -61,7 +61,7 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
// Check if the website is allowed to load Google Fonts
if (interceptor.blockGoogleFonts === true && isListed === false) {
return {
'cancel': true
'redirectUrl': chrome.runtime.getURL('resources/google-fonts-placeholder.css')
};
} else if (interceptor.blockGoogleFonts === false || isListed === true) {
return {

View File

@ -118,7 +118,7 @@ manipulateDOM._removeCrossOriginAndIntegrityAttr = function (details) {
str += decoder.decode(); // end-of-stream
// set UTF-8 in document
str = str.replace(new RegExp(`charset=["']?${charset}["']?`), 'charset="utf8"');
str = manipulateDOM._searchCharset(str, charset);
// remove crossorigin and integrity attributes
str = str.replace(/<(link|script)[^>]+>/ig, (m) => {
@ -138,6 +138,17 @@ manipulateDOM._removeCrossOriginAndIntegrityAttr = function (details) {
}
};
manipulateDOM._searchCharset = function (str, charset) {
if (str.indexOf(`charset="${charset}"`) > 0) {
return str.replace(`charset="${charset}"`, 'charset="utf8"');
} else if (str.indexOf(`charset='${charset}'`) > 0) {
return str.replace(`charset='${charset}'`, 'charset=\'utf8\'');
} else if (str.indexOf(`charset=${charset}`) > 0) {
return str.replace(`charset=${charset}`, 'charset=utf8');
} else {
return str;
}
};
/**
* Initializations

View File

@ -295,6 +295,7 @@ mappings.cdn = {
'font-awesome/{version}/css/font-awesome': resources.fontawesome,
'font-awesome/{version}/css/': resources.fontawesome5CSS,
'font-awesome/{version}/js/': resources.fontawesome5JS,
'fork-awesome/{version}/css/fork-awesome.': resources.forkawesome,
'foundicons/{version}/foundation-icons.min.css': resources.foundationIconsCSS,
'gsap/{version}/': resources.gsapBundle,
'highlight.js/{version}/': resources.highlightJS,
@ -398,6 +399,8 @@ mappings.cdn = {
'plyr/{version}/plyr.min.css': resources.plyrCSS,
'plyr/{version}/plyr.js': resources.plyrJS,
'plyr/{version}/plyr.min.js': resources.plyrJS,
'plyr/{version}/plyr.polyfilled.js': resources.plyrJS,
'plyr/{version}/plyr.polyfilled.min.js': resources.plyrJS,
'popper.js/{version}/umd/popper.min.js': resources.popperJS,
'protonet-jquery.inview/{version}/jquery.inview.': resources.protonetJqueryInview,
'pure/{version}/': resources.pureCSS,
@ -549,6 +552,7 @@ mappings.cdn = {
'@findify/bundle@{version}/dist/vendors~sentry.js': resources.findifyBundle,
'flv.js/dist/flv.min.js': resources.flvJS,
'font-awesome@{version}/css/font-awesome.': resources.fontawesome,
'fork-awesome@{version}/css/fork-awesome.': resources.forkawesome,
'hls.js/dist/hls.min.js': resources.hlsJS,
'history@{version}/umd/history.min.js': resources.history,
'hls.js@{version}': resources.hlsJS,

View File

@ -184,6 +184,9 @@ requestAnalyzer._findLocalTarget = function (resourceMappings, basePath, channel
log.append(initiator, channelHost + channelPath, '-', true);
break;
}
if (filename === 'config/TeX-AMS_HTML.js') {
filename = 'config/TeX-AMS_HTML-full.js';
}
}
targetPath = (filename.endsWith('.js')) ? `${targetPath + filename}m` : targetPath + filename;
targetPath = helpers.formatFilename(targetPath);

View File

@ -424,6 +424,10 @@ var resources = {
'fontawesomeFontsOnly': {
'path': 'resources/font-awesome/{version}/fonts/'
},
// Fork Awesome
'forkawesome': {
'path': 'resources/fork-awesome/{version}/css/fork-awesome.min.css'
},
// Foundation Icon Font Sets
'foundationIconsCSS': {
'path': 'resources/foundicons/{version}/foundation-icons.min.css'

View File

@ -223,7 +223,8 @@ shorthands.specialFiles = function (channelHost, channelPath, searchString) {
'path': `resources/exif-js/${lastVersion}/exif.min.jsm`,
'bundle': ''
};
} else if (CompleteURL.startsWith('ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js')) {
} else if (CompleteURL.startsWith('ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js') ||
CompleteURL.startsWith('code.jquery.com/jquery-latest.')) {
return {
'source': channelHost,
'versionDelivered': '1.11.2',

View File

@ -1,7 +1,7 @@
{
"manifest_version": 2,
"name": "LocalCDN",
"version": "2.6.18",
"version": "2.6.19",
"browser_specific_settings": {
"gecko": {
"id": "{b86e4813-687a-43e6-ab65-0bde4ab75758}",

View File

@ -88,6 +88,7 @@ helpers.languageIsFullySupported = function (language) {
'eo',
'es',
'et',
'fa',
'fi',
'fr',
'he',
@ -119,6 +120,7 @@ helpers.languageIsFullySupported = function (language) {
'tl',
'tr',
'uk',
'vi',
'zh_Hans',
'zh_Hant'
];

View File

@ -84,7 +84,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/alpinejs/2.')) {
return '2.8.2';
} else if (type.startsWith('/alpinejs/3.')) {
return '3.5.0';
return '3.5.2';
} else if (type.startsWith('/anchor-js/3.')) {
return '3.2.2';
} else if (type.startsWith('/anchor-js/4.')) {
@ -169,7 +169,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/bodymovin/4.')) {
return '4.13.0';
} else if (type.startsWith('/bodymovin/5.')) {
return '5.7.14';
return '5.8.1';
} else if (type.startsWith('/bootbox.js/4.')) {
return '4.4.0';
} else if (type.startsWith('/bootbox.js/5.')) {
@ -181,7 +181,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/bootstrap-datepicker/1.')) {
return '1.9.0';
} else if (type.startsWith('/bootstrap-icons/1.')) {
return '1.7.0';
return '1.7.1';
} else if (type.startsWith('/bootstrap-multiselect/0.')) {
return '0.9.16';
} else if (type.startsWith('/bootstrap-multiselect/1.')) {
@ -193,7 +193,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/bootstrap-select/1.')) {
return '1.13.18';
} else if (type.startsWith('/bootstrap-table/1.')) {
return '1.18.3';
return '1.19.1';
} else if (type.startsWith('/bootstrap-toggle/2.')) {
return '2.2.2';
} else if (type.startsWith('/bootstrap-vue/2.')) {
@ -244,7 +244,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/dayjs/1.')) {
return '1.10.7';
} else if (type.startsWith('/dexie/3.') || type.startsWith('/dexie/latest')) {
return '3.0.3';
return '3.2.0';
} else if (type.startsWith('/docsearch.js/2.')) {
return '2.6.3';
} else if (type.startsWith('/dojo/1.')) {
@ -252,7 +252,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/drawer/3.')) {
return '3.2.2';
} else if (type.startsWith('/element-ui/2.')) {
return '2.15.6';
return '2.15.7';
} else if (type.startsWith('/embedly-player/0.')) {
return '0.1.0';
} else if (type.startsWith('/ember.js/1.')) {
@ -261,6 +261,8 @@ targets.setLastVersion = function (type, version) {
return '2.18.2';
} else if (type.startsWith('/ember.js/3.')) {
return '3.28.6';
} else if (type.startsWith('/ember.js/4.')) {
return '4.0.0';
} else if (type.startsWith('/ethjs')) {
return '0.4.0';
} else if (type.startsWith('/exif-js/2.')) {
@ -272,7 +274,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/findify')) {
if (helpers.compareVersion('6.9.15', version)) return '6.9.15'; // <= 6.9.15
else if (helpers.compareVersion('6.17.0', version)) return '6.17.0'; // > 6.9.15 to <= 6.17.0
else return '7.1.13';
else return '7.1.14';
} else if (type.startsWith('/fancybox/2.')) {
return '2.1.7';
} else if (type.startsWith('/fancybox/3.')) {
@ -289,6 +291,8 @@ targets.setLastVersion = function (type, version) {
return '4.7.0';
} else if (type.startsWith('/font-awesome/5.')) {
return '5.15.4';
} else if (type.startsWith('/fork-awesome/1.')) {
return '1.2.0';
} else if (type.startsWith('/foundicons/3.')) {
return '3.0.0';
} else if (type.startsWith('/gsap/1.')) {
@ -298,7 +302,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/gsap/3.')) {
return '3.8.0';
} else if (type.startsWith('/google-material-design-icons/')) {
return 'v114';
return 'v117';
} else if (type.startsWith('/highlight.js/7.')) {
return '9.18.5';
} else if (type.startsWith('/highlight.js/8.')) {
@ -316,7 +320,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/hls.js/0.')) {
return '0.14.17';
} else if (type.startsWith('/hls.js/1.')) {
return '1.0.12';
return '1.1.1';
} else if (type.startsWith('/hogan.js/')) {
return '3.0.2';
} else if (type.startsWith('/instantsearch.css/7.')) {
@ -324,7 +328,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/instantsearch.js/3.')) {
return '3.7.0';
} else if (type.startsWith('/instantsearch.js/4.')) {
return '4.33.1';
return '4.33.2';
} else if (type.startsWith('/iScroll/5.')) {
return '5.2.0';
} else if (type.startsWith('/jets/0.')) {
@ -419,7 +423,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/leaflet.markercluster/1.')) {
return '1.5.3';
} else if (type.startsWith('/libphonenumber-js/1.')) {
return '1.9.42';
return '1.9.43';
} else if (type.startsWith('/libsodium-wrappers/0.')) {
return '0.5.4';
} else if (type.startsWith('/lightcase/2.')) {
@ -456,7 +460,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/mathjax/2.') || type.startsWith('/mathjax/latest')) {
return '2.7.5';
} else if (type.startsWith('/mdb-ui-kit/3.')) {
return '3.9.0';
return '3.10.1';
} else if (type.startsWith('/mobile/1.')) {
return '1.4.5';
} else if (type.startsWith('/Modaal/0.')) {
@ -530,7 +534,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/react-router/5.')) {
return '5.2.1';
} else if (type.startsWith('/react-router/6.')) {
return '6.0.1';
return '6.0.2';
} else if (type.startsWith('/react-side-effect/')) {
return '2.1.1';
} else if (type.startsWith('/react-lifecycles-compat/')) {
@ -571,7 +575,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/socket.io/3.')) {
return '3.1.3';
} else if (type.startsWith('/socket.io/4.')) {
return '4.3.2';
return '4.4.0';
} else if (type.startsWith('/spin.js/2.')) {
return '2.3.2';
} else if (type.startsWith('/spin.js/3.')) {
@ -597,7 +601,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/Swiper/6.')) {
return '6.8.4';
} else if (type.startsWith('/Swiper/7.') || type.startsWith('/Swiper/')) {
return '7.2.0';
return '7.3.1';
} else if (type.startsWith('/tether/1.')) {
return '1.4.7';
} else if (type.startsWith('/tooltipster/3.')) {
@ -633,13 +637,13 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/video.js/')) {
if (helpers.compareVersion('5.20.5', version)) return '5.20.5'; // <= 5.20.5
else if (helpers.compareVersion('6.13.0', version)) return '6.13.0'; // > 5.20.5 to <= 6.13.0
else return '7.16.0';
else return '7.17.1';
} else if (type.startsWith('/vue/1.')) {
return '1.0.28';
} else if (type.startsWith('/vue/2.')) {
return '2.6.14';
} else if (type.startsWith('/vue/3.')) {
return '3.2.21';
return '3.2.23';
} else if (type.startsWith('/vue-i18n/8.')) {
return '8.26.7';
} else if (type.startsWith('/vue-i18n/9.')) {
@ -674,6 +678,7 @@ targets.determineResourceName = function (filename) {
};
const ListOfFiles = {
'fork-awesome.min.css': 'Fork Awesome',
'foundation-icons.min.css': 'Foundation Icon Fonts',
'jquery.timeago.min.jsm': 'jquery-timeago',
'jquery.fittext.min.jsm': 'FitText.js',

View File

@ -27,40 +27,44 @@
<div class="release-notes-area">
<p>Updated</p>
<ul>
<li>highlight.js v11.2.0 -> v11.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/727">#727</a>)</li>
<li>socket.io v4.3.1 -> v4.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/728">#728</a>)</li>
<li>libphonenumber-js v1.9.37 -> v1.9.42 (<a href="https://codeberg.org/nobody/LocalCDN/issues/729">#729</a>)</li>
<li>Google Material Icons v109 -> v114 (<a href="https://codeberg.org/nobody/LocalCDN/issues/731">#731</a>)</li>
<li>Swiper v7.0.8 -> v7.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/737">#737</a>)</li>
<li>algoliasearch v4.10.5 -> v4.11.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/738">#738</a>)</li>
<li>bootstrap-icons v1.6.0 -> v1.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/739">#739</a>)</li>
<li>ember.js v3.28.1 -> v3.28.6 (<a href="https://codeberg.org/nobody/LocalCDN/issues/740">#740</a>)</li>
<li>findify-bundle v7.1.9 -> v7.1.13 (<a href="https://codeberg.org/nobody/LocalCDN/issues/741">#741</a>)</li>
<li>instantsearch.js v4.31.0 -> v4.33.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/742">#742</a>)</li>
<li>leaflet.markercluster v1.5.1 -> v1.5.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/743">#743</a>)</li>
<li>Chart.js v3.5.1 -> v3.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/744">#744</a>)</li>
<li>axios v0.23.0 -> v0.24.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/746">#746</a>)</li>
<li>react-redux v7.2.5 -> v7.2.6 (<a href="https://codeberg.org/nobody/LocalCDN/issues/747">#747</a>)</li>
<li>twitter-bootstrap v4.6.0 -> v4.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/748">#748</a>)</li>
<li>lightgallery v2.2.1 -> v2.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/749">#749</a>)</li>
<li>redux v4.1.1 -> v4.1.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/750">#750</a>)</li>
<li>hls.js v1.0.11 -> v1.0.12 (<a href="https://codeberg.org/nobody/LocalCDN/issues/751">#751</a>)</li>
<li>bootswatch v4.6.0 -> v4.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/753">#753</a>)</li>
<li>bootstrap-icons v1.6.1 -> v1.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/754">#754</a>)</li>
<li>history v5.0.1 -> v5.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/755">#755</a>)</li>
<li>vue v3.2.20 -> v3.2.21 (<a href="https://codeberg.org/nobody/LocalCDN/issues/756">#756</a>)</li>
<li>vue-i18n v8.26.5 -> v8.26.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/757">#757</a>)</li>
<li>react-router v6.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/758">#758</a>)</li>
<li>alpinejs v3.4.2 -> v 3.5.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/759">#759</a>)</li>
<li>Google Material Icons v114 -> v117 (<a href="https://codeberg.org/nobody/LocalCDN/issues/764">#764</a>)</li>
<li>alpinejs v3.5.0 -> v3.5.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/765">#765</a>)</li>
<li>bodymovin v5.7.14 -> v5.8.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/766">#766</a>)</li>
<li>bootstrap-table v1.18.3 -> v1.19.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/767">#767</a>)</li>
<li>hls.js v1.0.12 -> v1.1.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/768">#768</a>)</li>
<li>react-router v6.0.1 -> v6.0.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/769">#769</a>)</li>
<li>video.js v7.16.0 -> v7.17.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/770">#770</a>)</li>
<li>element-ui v2.15.6 -> v2.15.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/772">#772</a>)</li>
<li>vue v3.2.21 -> v3.2.23 (<a href="https://codeberg.org/nobody/LocalCDN/issues/773">#773</a>)</li>
<li>libphonenumber-js v1.9.42 -> v1.9.43 (<a href="https://codeberg.org/nobody/LocalCDN/issues/774">#774</a>)</li>
<li>mdb-ui-kit v3.9.0 -> v3.10.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/775">#775</a>)</li>
<li>instantsearch.js v4.33.1 -> v4.33.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/776">#776</a>)</li>
<li>bootstrap-icons v1.7.0 -> v1.7.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/777">#777</a>)</li>
<li>dexie v3.0.3 -> v3.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/778">#778</a>)</li>
<li>Swiper v7.2.0 -> v7.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/779">#779</a>)</li>
<li>socket.io v4.3.2 -> v4.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/780">#780</a>)</li>
<li>findify-bundle v7.1.13 -> v7.1.14 (<a href="https://codeberg.org/nobody/LocalCDN/issues/783">#783</a>)</li>
</ul>
<p>Mapping</p>
<ul>
<li>plyr.polyfilled.min.js -> cdnjs.cloudflare.com (<a href="https://codeberg.org/nobody/LocalCDN/issues/771">#771</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>Unused permission removed (since Firefox 86) (<a href="https://codeberg.org/nobody/LocalCDN/issues/734">#734</a>)</li>
<li>Set correct charset in HTML when HTML filter is active (<a href="https://codeberg.org/nobody/LocalCDN/issues/736">#736</a>)</li>
<li>Correct redirection for jquery-latest.js and code.jquery.com (<a href="https://codeberg.org/nobody/LocalCDN/issues/761">#761</a>)</li>
<li>Redirect to placeholder CSS file for blocked Google Fonts (<a href="https://codeberg.org/nobody/LocalCDN/issues/763">#763</a>)</li>
</ul>
<p>Added</p>
<ul>
<li>Fork Awesome v1.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/760">#760</a>)</li>
<li>i18n: Persian</li>
<li>i18n: Vietnamese</li>
<li>ember.js v4.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/781">#781</a>)</li>
<li>MathJax TeX-AMS_HTML.js -> TeX-AMS_HTML-full.js (<a href="https://codeberg.org/nobody/LocalCDN/issues/784">#784</a>)</li>
</ul>
<p>Fixed</p>
<ul>
<li>Missing icon when extension is disabled for a website (<a href="https://codeberg.org/nobody/LocalCDN/issues/752">#752</a>)</li>
<li>Incorrect insertion of the UTF8 charset in the HTML filter (<a href="https://codeberg.org/nobody/LocalCDN/issues/782">#782</a>)</li>
</ul>
</div>
<div id="generator-section">
@ -99,6 +103,44 @@
</div>
<div id="history"><span id="history-indicator">+</span> Previous Versions</div>
<div id="history-release-notes">
<p class='release-date'>2021-11-06 (v2.6.18)</p>
<p>Updated</p>
<ul>
<li>highlight.js v11.2.0 -> v11.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/727">#727</a>)</li>
<li>socket.io v4.3.1 -> v4.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/728">#728</a>)</li>
<li>libphonenumber-js v1.9.37 -> v1.9.42 (<a href="https://codeberg.org/nobody/LocalCDN/issues/729">#729</a>)</li>
<li>Google Material Icons v109 -> v114 (<a href="https://codeberg.org/nobody/LocalCDN/issues/731">#731</a>)</li>
<li>Swiper v7.0.8 -> v7.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/737">#737</a>)</li>
<li>algoliasearch v4.10.5 -> v4.11.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/738">#738</a>)</li>
<li>bootstrap-icons v1.6.0 -> v1.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/739">#739</a>)</li>
<li>ember.js v3.28.1 -> v3.28.6 (<a href="https://codeberg.org/nobody/LocalCDN/issues/740">#740</a>)</li>
<li>findify-bundle v7.1.9 -> v7.1.13 (<a href="https://codeberg.org/nobody/LocalCDN/issues/741">#741</a>)</li>
<li>instantsearch.js v4.31.0 -> v4.33.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/742">#742</a>)</li>
<li>leaflet.markercluster v1.5.1 -> v1.5.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/743">#743</a>)</li>
<li>Chart.js v3.5.1 -> v3.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/744">#744</a>)</li>
<li>axios v0.23.0 -> v0.24.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/746">#746</a>)</li>
<li>react-redux v7.2.5 -> v7.2.6 (<a href="https://codeberg.org/nobody/LocalCDN/issues/747">#747</a>)</li>
<li>twitter-bootstrap v4.6.0 -> v4.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/748">#748</a>)</li>
<li>lightgallery v2.2.1 -> v2.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/749">#749</a>)</li>
<li>redux v4.1.1 -> v4.1.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/750">#750</a>)</li>
<li>hls.js v1.0.11 -> v1.0.12 (<a href="https://codeberg.org/nobody/LocalCDN/issues/751">#751</a>)</li>
<li>bootswatch v4.6.0 -> v4.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/753">#753</a>)</li>
<li>bootstrap-icons v1.6.1 -> v1.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/754">#754</a>)</li>
<li>history v5.0.1 -> v5.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/755">#755</a>)</li>
<li>vue v3.2.20 -> v3.2.21 (<a href="https://codeberg.org/nobody/LocalCDN/issues/756">#756</a>)</li>
<li>vue-i18n v8.26.5 -> v8.26.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/757">#757</a>)</li>
<li>react-router v6.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/758">#758</a>)</li>
<li>alpinejs v3.4.2 -> v 3.5.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/759">#759</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>Unused permission removed (since Firefox 86) (<a href="https://codeberg.org/nobody/LocalCDN/issues/734">#734</a>)</li>
<li>Set correct charset in HTML when HTML filter is active (<a href="https://codeberg.org/nobody/LocalCDN/issues/736">#736</a>)</li>
</ul>
<p>Fixed</p>
<ul>
<li>Missing icon when extension is disabled for a website (<a href="https://codeberg.org/nobody/LocalCDN/issues/752">#752</a>)</li>
</ul>
<p class='release-date'>2021-10-16 (v2.6.17)</p>
<p>Updated</p>
<ul>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,4 @@
In this directory the file was renamed.
Original: ember.debug.js
Now: ember.min.js

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More