Compare commits
1011 Commits
Author | SHA1 | Date |
---|---|---|
nobody | 8721187041 | |
nobody | f837f25fc8 | |
nobody | 4084de55f9 | |
nobody | a96083edde | |
nobody | 65332b7f72 | |
nobody | b05c6f32f6 | |
nobody | e8aa70388c | |
nobody | 1e139ab4ec | |
nobody | 06a2cc23f4 | |
nobody | 1d21ac9df9 | |
nobody | a969444418 | |
nobody | 97225dd407 | |
nobody | 81c86691f7 | |
nobody | 6fcd4c4c40 | |
nobody | e83c46e8cf | |
nobody | 0e63dcdb5e | |
nobody | dc29d11199 | |
nobody | 66fd209e1c | |
nobody | 83dabec042 | |
nobody | 50a9d64c02 | |
nobody | 8157d958db | |
nobody | 03fa7bb6f7 | |
nobody | c83b20ab2d | |
soya_daizu | 5caea0ad8d | |
nobody | 6b4f0d123c | |
nobody | de76247809 | |
nobody | 41cafee9d0 | |
nobody | 13a9effa1c | |
nobody | 4dca8e10b1 | |
nobody | ac99dcc8ed | |
nobody | 6e9f91c48c | |
nobody | 2590d7d752 | |
nobody | 6bf65227fc | |
nobody | 5ea490e3b5 | |
nobody | bb54f5279a | |
nobody | e5a8ebe21b | |
nobody | 843b7dfc16 | |
nobody | 6297948747 | |
nobody | f28440bd6b | |
nobody | 2b73a6834d | |
nobody | 758d1f0b91 | |
nobody | c4a2461152 | |
nobody | 96bf18ad4d | |
nobody | b44598b721 | |
KiralFox | f2fc21e88f | |
109247019824 | 7b93578b88 | |
大王叫我来巡山 | 5c8de03f34 | |
Linerly | 608a36ec18 | |
Oğuz Ersen | 839d36e635 | |
gallegonovato | 3c9f4cec10 | |
nobody | 5915ced72f | |
nobody | c4f6c3c798 | |
nobody | 1cd95ef863 | |
nobody | e04c723de5 | |
nobody | c3a821c32a | |
nobody | e87b40e6b9 | |
nobody | 8db699e210 | |
nobody | 0f4464cb3a | |
nobody | 2efaf25bb6 | |
nobody | f785cd77b9 | |
nobody | c82f28ca38 | |
nobody | 3314bdbceb | |
nobody | a6e01541ca | |
nobody | ace529316c | |
nobody | 3dcc7025e3 | |
nobody | ab082579dc | |
nobody | e2bd8ce3fa | |
nobody | 8cddef7544 | |
nobody | 34cb76848d | |
nobody | 870b08ba36 | |
nobody | d5e06b9b10 | |
nobody | b5fc4e089e | |
nobody | 3d658a2794 | |
nobody | 8fa3d016a1 | |
nobody | 6b684648a9 | |
nobody | 7aeb646773 | |
nobody | 4e841ab637 | |
nobody | 5b24cdc412 | |
nobody | 225905ca68 | |
nobody | 4d38d04e17 | |
nobody | fbd89e2d82 | |
Hosted Weblate | 68032c280b | |
nobody | 5df53e2ea2 | |
nobody | fb5a3f779b | |
nobody | 1211a9c43a | |
nobody | 71f358392c | |
nobody | 4e8cd7127f | |
nobody | cc9dacbde6 | |
Limfjorden | 542a255d48 | |
nobody | ce6e48ca7b | |
nobody | 50f2e0ff38 | |
nobody | 354e519ae9 | |
nobody | e04d7e4d1d | |
nobody | df7c1dbbf6 | |
nobody | ca44b4a129 | |
nobody | ed2b87b4b4 | |
nobody | 74dea23e1d | |
nobody | 008db469fe | |
nobody | 9fd7296288 | |
nobody | e3ba1c8c32 | |
nobody | 773beb1697 | |
nobody | 5efa34e932 | |
nobody | b98d1fd753 | |
nobody | cf2cae09e4 | |
nobody | 1be054976b | |
nobody | 76a887af61 | |
nobody | 9096750ba2 | |
nobody | 16aed7ebc0 | |
nobody | 0e0bd4172e | |
nobody | 760c083f29 | |
nobody | 9bedf3e9d7 | |
nobody | 4a3eea0833 | |
nobody | bf1a6757e6 | |
nobody | 536cf185b5 | |
nobody | 856a849ebb | |
nobody | eec43134f8 | |
nobody | 6a76aa6cf1 | |
nobody | 21dbfe807e | |
nobody | c4cb8b2b6b | |
nobody | 353dde8cff | |
nobody | 35b8e79403 | |
nobody | 06c9f62631 | |
nobody | e2ff54ce18 | |
nobody | e38e56a473 | |
nobody | 093f9253e8 | |
nobody | f99b07a6fd | |
nobody | 47afb3e614 | |
nobody | c637d1b56e | |
nobody | e277722b22 | |
nobody | 9f7c007dea | |
nobody | e311d0c10c | |
nobody | b4438878d1 | |
nobody | 5a0ce65cb9 | |
nobody | 2f9bdcd6c0 | |
nobody | 1ee3575390 | |
nobody | 88be389f55 | |
nobody | a059ea04bd | |
nobody | 986ce46187 | |
nobody | 1cd7e033fe | |
nobody | ed51d96de8 | |
nobody | c8cc450ce8 | |
nobody | a73b3dbd14 | |
nobody | bab22c90f2 | |
nobody | f2be418a43 | |
nobody | afb82f6ebc | |
nobody | e420da1243 | |
nobody | e906cdcd59 | |
nobody | 8a58c9ca79 | |
nobody | 057c9465eb | |
nobody | 062a90bbdb | |
nobody | 6123be7478 | |
nobody | aab9b4da5a | |
Сергій | 1cb91d6525 | |
nobody | b510485127 | |
Сергій | fe0c0c4f13 | |
nobody | 223bf0bfd9 | |
nobody | 1cae1377e6 | |
nobody | 9bf1a27824 | |
nobody | 1c7511f63e | |
nobody | b45b7dace3 | |
nobody | 5678f07e27 | |
nobody | a8c01e1308 | |
nobody | 01c9d77805 | |
nobody | 8bd3e38836 | |
nobody | 4f88928573 | |
nobody | cb9783a109 | |
nobody | 945e841986 | |
nobody | c6583298f6 | |
nobody | bad9334a5b | |
nobody | 8d18fd35ba | |
nobody | de1450dec7 | |
nobody | 881b142f27 | |
Codefoxy Ch | c87010e4d0 | |
nobody | d86cfe9442 | |
nobody | 44137332e5 | |
nobody | b9bfdb41fb | |
nobody | ce32d63913 | |
nobody | 1d5ec6cae0 | |
nobody | ee0626a234 | |
nobody | ba026ff85f | |
nobody | f5fe905889 | |
nobody | a42c8b360a | |
nobody | 920adb917a | |
nobody | eebd7895bc | |
nobody | e66966d8eb | |
nobody | 65dce2b6ee | |
nobody | d0712af389 | |
nobody | cbb8f629fc | |
nobody | 3a346eeba8 | |
nobody | 05d5e79c2e | |
nobody | f60b1c8f2e | |
nobody | 93cefdd8c0 | |
nobody | 20c14f7314 | |
ssantos | adf2f920b5 | |
nobody | b14c05dc04 | |
nobody | 4c54e2a762 | |
nobody | 89c57ff9e6 | |
nobody | 56ecaf2d53 | |
nobody | b1ec5d5d39 | |
nobody | 7ad4e150d3 | |
Hosted Weblate | 93d2baa1d4 | |
nobody | 48514d88c7 | |
Hosted Weblate | c23316bb4a | |
nobody | 8506836438 | |
Hosted Weblate | bd111fde5e | |
nobody | f9c4c9565a | |
Hosted Weblate | 3aa71cac17 | |
nobody | d892019132 | |
Hosted Weblate | c43502d5ee | |
nobody | d5ea9a6803 | |
Hosted Weblate | d26e5e1b19 | |
nobody | 4ff68f9f1a | |
Hosted Weblate | 528097ca9e | |
nobody | dbe41243c1 | |
Hosted Weblate | fa02ef26b1 | |
nobody | a7abed1733 | |
Hosted Weblate | 1e8b6d5612 | |
nobody | c1e8c21c9d | |
Hosted Weblate | e92c93f93f | |
nobody | e6db5fbb3a | |
Hosted Weblate | cab28434cc | |
nobody | 38760450bd | |
Hosted Weblate | c71b2b0280 | |
nobody | 58eb759634 | |
Hosted Weblate | fe2d94d5ce | |
nobody | 769cbb2dc5 | |
Hosted Weblate | b3d1d693a3 | |
nobody | ddb71f0c39 | |
Hosted Weblate | 52166c8f45 | |
nobody | e5d5b9630f | |
Hosted Weblate | da05536e1e | |
nobody | 34ed86a71b | |
Hosted Weblate | b884e6f9e2 | |
nobody | bee3ebd6cd | |
Hosted Weblate | 92a07dd6e2 | |
nobody | 9cde8f9fe0 | |
Hosted Weblate | d164bbc949 | |
nobody | 338c26e4ae | |
nobody | 4f2a4fc30e | |
nobody | 009b750a06 | |
nobody | c57d7f6452 | |
nobody | 0ba43c3056 | |
Kamil Rumanuel Rukola | 2d5b390856 | |
soya_daizu | da144adc70 | |
Kryštof Černý | ecf6a71c4c | |
Kryštof Černý | d7e5fec58a | |
Hosted Weblate | b42f841c9f | |
nobody | 5a14513500 | |
nobody | bd2822bd90 | |
nobody | d0a256a32d | |
nobody | 8fed3842a8 | |
nobody | 8f81e24a1a | |
kotatsuyaki | 0f98e8aa56 | |
kotatsuyaki | 246812556d | |
nobody | 8d8eb32649 | |
nobody | 4c2966ee46 | |
nobody | 98d3f41958 | |
nobody | 2382d0add9 | |
nobody | c6c12a7769 | |
Hosted Weblate | 54401122ae | |
nobody | 118ca803df | |
Hosted Weblate | 8bb88fd180 | |
nobody | 1c2a023e39 | |
Kamil Rumanuel Rukola | 7270d315d4 | |
nobody | 82f965837d | |
nobody | 41fa0e0bf7 | |
nobody | ec2ef9f5b1 | |
TotalImportance8529 | b2999fd35b | |
HexagonCDN | 6f9a15c511 | |
nobody | 2150a4fec3 | |
nobody | 0a4d916724 | |
nobody | b7a0a80491 | |
nobody | 9e4189d39c | |
Hosted Weblate | dc3f755b1e | |
nobody | b81c37436d | |
Hosted Weblate | 9aaea6fec8 | |
nobody | 9870062917 | |
Hosted Weblate | a27a7f651a | |
nobody | b45d1fe177 | |
Hosted Weblate | 8c7e313a57 | |
nobody | e454470d68 | |
nobody | 186f16fccb | |
Hosted Weblate | 04c54914d6 | |
nobody | 499fc567b8 | |
Hosted Weblate | a8d6c394a4 | |
nobody | 2b99571f58 | |
Hosted Weblate | d8dc505b6b | |
nobody | c84806d415 | |
Hosted Weblate | 012782e11c | |
nobody | 57ee4680a7 | |
Hosted Weblate | c7b38a2c31 | |
nobody | 42dd025d0b | |
Hosted Weblate | e36461250b | |
nobody | 181fc6e609 | |
Hosted Weblate | 6064f182ed | |
nobody | e549adf010 | |
Hosted Weblate | 91ade03190 | |
nobody | 314c90394d | |
Hosted Weblate | d2c597effb | |
nobody | 96686d19db | |
HexagonCDN | 3893b82113 | |
nobody | 63d36a71ff | |
nobody | a00b2465f4 | |
nobody | bcf4a87a4a | |
nobody | 964a18d9e4 | |
nobody | 4c3c61d786 | |
nobody | 39e696e280 | |
nobody | 8f2150cd85 | |
Jouni | 9189f073db | |
Jouni | 8433efd6cd | |
Jouni | 59e3c28601 | |
nobody | 96f86f766f | |
nobody | 822192dcbb | |
nobody | 5ee66f2a99 | |
nobody | e5e4482853 | |
nobody | db18a578da | |
nobody | e4a73d1c7f | |
nobody | f05588d463 | |
nobody | 5ae6873808 | |
nobody | e3748ac2be | |
nobody | db62663c04 | |
nobody | 72d3cb8116 | |
nobody | 25abef5ad2 | |
nobody | 4bf8b20546 | |
nobody | bfb0e3d14f | |
nobody | b60b56fd24 | |
nobody | 7920fd8028 | |
nobody | 2fb3c4c0e0 | |
nobody | 1fb7935004 | |
nobody | 7682e60ed4 | |
nobody | 87bc85eba2 | |
Hosted Weblate | abfb0d04b2 | |
nobody | 8503c84a72 | |
Eric | e950b00ee5 | |
Džiugas J | f86f4ec02f | |
Kryštof Černý | 91799e4c7d | |
ovl-1 | 8631045996 | |
fresh | 92fc011f9c | |
nobody | 9a7021beaf | |
nobody | bdc9bded2d | |
nobody | 9c4ccd057c | |
nobody | a532c1b492 | |
nobody | 02619969d4 | |
nobody | a391c6ec35 | |
nobody | 1babd7ea9d | |
nobody | 86dda9e518 | |
nobody | 99eaabbc1c | |
nobody | d1d22630e2 | |
nobody | 5e7a454b7f | |
nobody | ad1b2decf2 | |
nobody | 920510d226 | |
nobody | a66e7ceb21 | |
nobody | 2e36dde703 | |
Hosted Weblate | a993b7dcb5 | |
nobody | a2f3611d03 | |
Sergio Varela | 811940152a | |
nobody | 1f479f0952 | |
nobody | 985687c9cd | |
nobody | 2589b0711c | |
nobody | 5c72f18cd1 | |
nobody | d8058660d0 | |
nobody | 85b7cf9b27 | |
nobody | 2280a0dd9c | |
gallegonovato | 025659ae1b | |
nobody | d8d48265d5 | |
109247019824 | 55fefd12b9 | |
XieyilinMain | cc500ea8e0 | |
Oskari Lavinto | c103a85dbf | |
Oğuz Ersen | dc7c93339b | |
Joel D'Silva | 240626ee00 | |
Linerly | f4ef988e98 | |
nobody | a74897d4fd | |
nobody | d77b319ff7 | |
nobody | 708e36ea91 | |
nobody | 13b22d22d9 | |
nobody | 68b66e85dc | |
nobody | 42ca858662 | |
nobody | 21543aaef5 | |
nobody | 98d538e782 | |
nobody | 9ee35bfc21 | |
nobody | ac82ae02f1 | |
nobody | 4b5eb20d18 | |
nobody | 6c10849dfd | |
nobody | 3340312140 | |
nobody | 14c07db07d | |
nobody | f009e7ff10 | |
nobody | 54478e1c72 | |
nobody | 461633aca2 | |
nobody | c663202e57 | |
nobody | 4c3298469d | |
nobody | 3c97891967 | |
nobody | 9933db9e38 | |
Hosted Weblate | 95053fb179 | |
nobody | 96843e89d3 | |
Hosted Weblate | 1d95dd2507 | |
nobody | 411d671c6a | |
nobody | 4de268cbcd | |
nobody | bcc7ceda05 | |
nobody | 8353df88c3 | |
nobody | c420cc06ad | |
nobody | 22798f0861 | |
nobody | c2e493491d | |
nobody | 3ed8fa8b9a | |
nobody | 4ed77703f1 | |
nobody | 6823a8a58a | |
nobody | ab3cf83fc9 | |
nobody | 7ba3e3a39b | |
nobody | 940fe6afe0 | |
nobody | 5189f4de83 | |
nobody | 70810502a7 | |
nobody | 1f5263d012 | |
nobody | e41684bbec | |
nobody | 6f651b0ed8 | |
nobody | 74aa60647a | |
nobody | 1954508c40 | |
nobody | 2e60111d97 | |
nobody | db7f93becd | |
nobody | 410d35d4d7 | |
nobody | 55a2878f20 | |
nobody | a799f6ae8f | |
nobody | a09c0099bd | |
nobody | 8aaffc1072 | |
nobody | 57479fb236 | |
nobody | 5fbdccb321 | |
nobody | 87c6f2e30f | |
nobody | 04f3311fd1 | |
ovl-1 | b7c014c053 | |
Milo Ivir | e5dcd8724b | |
Džiugas J | c00963be54 | |
soya_daizu | 2bb837d6b6 | |
109247019824 | 488cc9ff81 | |
HexagonCDN | 81d8b25664 | |
Linerly | aa01daed75 | |
Oskari Lavinto | af866b062c | |
Oğuz Ersen | 3ab8b3f4bd | |
Joel D'Silva | d172b59447 | |
The RedBurn | 42e09e67f5 | |
gallegonovato | 62e14ef6de | |
nobody | 70859e8c08 | |
nobody | a4408dcf77 | |
nobody | a9926ed1e7 | |
nobody | 64dedf48b1 | |
nobody | c55ca7728c | |
nobody | d2df52e518 | |
nobody | 1ea0187f54 | |
nobody | 25a4c4153f | |
nobody | dd514ca735 | |
Hosted Weblate | 10d74a1d18 | |
nobody | fc134259e8 | |
Joel D'Silva | 6ad8fe087f | |
Linerly | de81d2050d | |
Oğuz Ersen | ac3528075e | |
gallegonovato | 864409439f | |
109247019824 | e86927cbfc | |
nobody | 369e4cd393 | |
nobody | 1a1f739d87 | |
nobody | 5d50eb9804 | |
nobody | 6414526be1 | |
nobody | 0619da368a | |
nobody | 189ab3b8cc | |
nobody | 8e91bbcb9e | |
nobody | 2bb256418b | |
nobody | d24ddbc8be | |
nobody | 4b3c7f4717 | |
nobody | 659a7aad90 | |
nobody | 28024053e7 | |
nobody | 0f7d7bc314 | |
nobody | 69720cb7ec | |
nobody | 079751eab4 | |
nobody | 8f58bc9424 | |
nobody | 9d67cfd885 | |
nobody | 936de4be31 | |
nobody | a95bf09e09 | |
nobody | 0af7a02812 | |
nobody | d1c5103abe | |
nobody | 296d066d2f | |
nobody | 6b4c22296b | |
nobody | 27d891944f | |
nobody | 9c8fdb6eb2 | |
nobody | 2378c056c5 | |
nobody | 69e4a882f2 | |
nobody | 1834ee94f0 | |
nobody | 377cffa572 | |
nobody | 8ea621233b | |
nobody | bf42ccf8ff | |
nobody | e65faf6053 | |
nobody | 9113abeddf | |
nobody | 5e869e0e48 | |
nobody | 8b7a43aee3 | |
nobody | 58fc0f48d2 | |
nobody | d7629b6393 | |
nobody | 22d5b0ab30 | |
nobody | 503091cb9e | |
nobody | 67c533fa20 | |
nobody | 9e4ac95c7c | |
nobody | 69f262b31c | |
nobody | afe2109307 | |
nobody | fb9c420ae9 | |
nobody | 800d6e14e4 | |
nobody | 15a8ce79cf | |
nobody | adf7e9af8c | |
nobody | 05470b0c15 | |
nobody | ffc06d61df | |
nobody | 7f63411375 | |
nobody | a9773bfa91 | |
nobody | 6e109e5f44 | |
nobody | e124f5d47c | |
nobody | 4d6ce2148e | |
nobody | eecd3b7be9 | |
nobody | 76dc71739d | |
nobody | f970a14bc7 | |
nobody | 9b10892227 | |
nobody | 3d9a8b1ff3 | |
nobody | d801b2aed7 | |
nobody | 14f96d9bbd | |
nobody | 9587b64efd | |
nobody | 9a9c839e7e | |
soya_daizu | ffdc109570 | |
nobody | d16b2d90ec | |
nobody | b8eb639b8c | |
nobody | 0d97d18c74 | |
nobody | 92b2abf04e | |
nobody | 358dc875d2 | |
nobody | 8960c6ee9f | |
nobody | 596f4e9fbf | |
nobody | fef6dcf5f3 | |
nobody | fb5708e880 | |
nobody | b9af867d43 | |
nobody | abb08156c8 | |
nobody | 2d92693ca3 | |
nobody | cfafe97443 | |
nobody | fea7d82e13 | |
nobody | 37b79442b5 | |
nobody | fcedc6b6b4 | |
nobody | f1169b25fc | |
nobody | a442481b9e | |
nobody | 91b260b286 | |
nobody | cc84af41b3 | |
nobody | e9d684c63f | |
nobody | 1a32921dd9 | |
nobody | 752ccddb6e | |
nobody | 5630997a55 | |
nobody | 54a29732c0 | |
nobody | da6ca5f0db | |
nobody | d60bc761ae | |
nobody | fa43aed7e9 | |
nobody | 91635ad561 | |
nobody | 4df4d74e1e | |
nobody | dbecacb3d1 | |
nobody | d11e215d8e | |
nobody | 24ff16393a | |
nobody | bcdad12bca | |
nobody | f924b5ac87 | |
nobody | bbbe8632fd | |
nobody | edcccdc704 | |
nobody | 0df3cfc104 | |
nobody | 024590a750 | |
nobody | 84de6a7eb5 | |
nobody | ba6f848cea | |
nobody | be808fc93a | |
nobody | 96459db914 | |
nobody | 8947cc165f | |
nobody | cc4a310d72 | |
Hosted Weblate | 14c7c8eff4 | |
nobody | a3cdb74505 | |
Hosted Weblate | 165a8dd552 | |
nobody | db12249bef | |
Hosted Weblate | 2c054fb70b | |
nobody | 0756cd03be | |
Hosted Weblate | 4d208f33c2 | |
nobody | 0a4b344ee4 | |
Hosted Weblate | dcdf33cbf6 | |
nobody | caa9031736 | |
Hosted Weblate | ddf8d3cfa8 | |
nobody | 59bfbccf1f | |
Hosted Weblate | 5183bb3a90 | |
nobody | 5d95d1e6cd | |
109247019824 | 4eb2a23c9d | |
nobody | 9000ed8942 | |
nobody | c254695e0f | |
nobody | 3e3582f0bc | |
nobody | c72584a99a | |
nobody | b15c251711 | |
nobody | 033bd7505e | |
nobody | 42c7df9f91 | |
nobody | 94ccae0d48 | |
nobody | 07900f39fc | |
nobody | 2a1cd4725a | |
nobody | 71375854bc | |
nobody | fa0e546f92 | |
nobody | 268b027925 | |
nobody | 8bbeebd2fe | |
nobody | 7e6a460d68 | |
nobody | 3107de0baf | |
nobody | 6d42aebc58 | |
nobody | b9bf900990 | |
nobody | c4fe930f9a | |
nobody | 47d187e0b1 | |
nobody | 9c503dab6c | |
nobody | d88821c0d9 | |
nobody | 1fe502ed21 | |
nobody | a2331a3f23 | |
nobody | 708018daad | |
nobody | 3396c25885 | |
nobody | 63db74e703 | |
nobody | f9a7fab74d | |
nobody | 469145b293 | |
nobody | ef9a275de9 | |
nobody | d2f9cdfac5 | |
nobody | 3d2529e72c | |
nobody | 2c206a2d2e | |
nobody | b906e8fff5 | |
nobody | 071a5e8974 | |
nobody | 72f3096c5c | |
nobody | 7c2f0b9054 | |
nobody | 449c054c50 | |
nobody | f234defa2a | |
nobody | ce353908fd | |
Hosted Weblate | 205594e044 | |
nobody | fedd35553d | |
Hosted Weblate | 729339407f | |
nobody | b07b0e6196 | |
Hosted Weblate | 5ee613beb9 | |
nobody | 98b3262bb5 | |
Hosted Weblate | 4317512601 | |
nobody | 08b2d3d0c3 | |
Hosted Weblate | d382a4acdd | |
nobody | 8ffc7f161c | |
Hosted Weblate | c8bced0a18 | |
nobody | e10ff953d4 | |
Hosted Weblate | 62afde206a | |
nobody | 2fdaa4dd80 | |
Hosted Weblate | 9fa55028d6 | |
nobody | 493f8765c2 | |
Hosted Weblate | 28c4516501 | |
nobody | abc8561093 | |
vcrgr | 6117a9582f | |
Hosted Weblate | cbbc95efc6 | |
nobody | bb4f50dc4e | |
Hosted Weblate | f0db72f410 | |
nobody | 34561a72b5 | |
Hosted Weblate | bae385131d | |
nobody | 1c28c70109 | |
Hosted Weblate | 51c891d8e9 | |
nobody | 03dad51141 | |
Hosted Weblate | daf6cb1798 | |
nobody | 4db952c676 | |
Hosted Weblate | ba40a7070f | |
nobody | 6b8d5fb4e2 | |
Hosted Weblate | fc54ebd367 | |
nobody | 2473acf355 | |
Hosted Weblate | 5c5ddab6af | |
nobody | 8f0b805748 | |
Hosted Weblate | 4eddf0c5f4 | |
nobody | a5ae06d562 | |
Hosted Weblate | a78ed5cdcc | |
nobody | 85f9073652 | |
Hosted Weblate | 4f5f507330 | |
nobody | d4b7f3ed8a | |
Hosted Weblate | 15f18d21c0 | |
nobody | c77f871d2e | |
wordpure | 48fedb1bdd | |
nobody | d2d4cd74b7 | |
nobody | a78dc36877 | |
nobody | 21d7791004 | |
nobody | b347c6ddb5 | |
nobody | fc400a77b6 | |
nobody | 810687c50c | |
nobody | f408b92b9c | |
nobody | eb07933187 | |
nobody | 72c512b648 | |
nobody | 7ec0a5dc90 | |
nobody | ab17c1d5c1 | |
nobody | 4947e003da | |
nobody | a33b28127e | |
nobody | cb29353ea7 | |
nobody | 124a0e4ed7 | |
nobody | 450e8759f6 | |
nobody | 7b72bf9b08 | |
nobody | 8a7fd53ebf | |
nobody | 0a90078b53 | |
nobody | 4d37de3fe3 | |
nobody | fd8ba606ae | |
nobody | d37501cbb7 | |
nobody | 6bed933f35 | |
nobody | f6e9085dde | |
nobody | 605c8f4f8e | |
nobody | 849d942fee | |
nobody | feac596052 | |
nobody | 171bbb0dba | |
nobody | e7ed6f621b | |
Hosted Weblate | 2fa732f6bd | |
nobody | f81f9fe233 | |
Hosted Weblate | c6102b4252 | |
nobody | 956591f852 | |
Hosted Weblate | d34b10bacc | |
nobody | 95fcb36a0b | |
Hosted Weblate | d32fd5be35 | |
nobody | b51820b66a | |
Small Ku | 3a88ea1ff5 | |
nobody | f3e3a3a0e0 | |
nobody | 53f076f1f8 | |
nobody | 9c80f9e758 | |
nobody | 8a775a96e8 | |
nobody | 5baa696437 | |
nobody | 329257aba5 | |
nobody | dcda699d31 | |
nobody | bfd7853bfc | |
nobody | 14a64eed70 | |
nobody | 03f70b23e0 | |
nobody | 1f5fa54087 | |
nobody | a65ec8cbb4 | |
nobody | 60bc3ba1d9 | |
nobody | 9194675fa6 | |
nobody | bc3f53e81b | |
nobody | 4a0379f97e | |
nobody | e0c4793fc6 | |
nobody | d61f4896b1 | |
nobody | 46d39d959b | |
nobody | ee888f7d87 | |
nobody | cef242e465 | |
nobody | 158cc99575 | |
nobody | e67b6715ec | |
nobody | 4de7637259 | |
nobody | 9dfdfb79d4 | |
nobody | 415ba7ed8a | |
nobody | 298335d881 | |
Hosted Weblate | e434aef75e | |
nobody | 22fddd114a | |
Hosted Weblate | d6987e7f3c | |
nobody | abf1528efb | |
Hosted Weblate | f6d2ff1755 | |
nobody | 75f6ccfe3a | |
Hosted Weblate | d6d38903a4 | |
nobody | 44cf42d839 | |
RainSlide | 9ccb17006e | |
nobody | 5312bbc8aa | |
nobody | 8a30ea7321 | |
nobody | 5b030ddabc | |
nobody | e3191f180b | |
nobody | d135fe1f4d | |
nobody | 057590a16d | |
nobody | 3566499d5d | |
nobody | a0613896a7 | |
nobody | 05a9a617e4 | |
nobody | 3c71651f99 | |
nobody | 7b11ca98ad | |
nobody | 592a1437bc | |
nobody | 3630b02dd9 | |
nobody | 1ab265f08f | |
nobody | 230742f800 | |
nobody | cbc92a2e87 | |
Hosted Weblate | f429a5cc75 | |
nobody | 9b744464c7 | |
HexagonCDN | 7f0a79d589 | |
nobody | d4b3ab01ab | |
nobody | 3b339bc34a | |
nobody | 0d97357901 | |
nobody | 503f5c935e | |
nobody | 7f0f4e871d | |
nobody | 03e3c26fd6 | |
nobody | bce1f15562 | |
nobody | 8d3c93ca4e | |
nobody | 43fddbffcd | |
nobody | 24cd4f4c0d | |
nobody | 14db93dfbe | |
nobody | f29490b654 | |
nobody | d720699b91 | |
nobody | 024f7bd850 | |
nobody | ece55170b6 | |
nobody | 7fced3db0d | |
nobody | cc3bf6f923 | |
nobody | 4849165a65 | |
nobody | bfba663e4c | |
nobody | c6d7bd5c8c | |
nobody | a91a4c3c33 | |
nobody | cce8e51018 | |
nobody | f9992007cc | |
nobody | 6e11a9a469 | |
nobody | af27965d1f | |
nobody | 24dd4ea41a | |
nobody | 6ecbcf1007 | |
nobody | 3eec741435 | |
nobody | 6eaac02657 | |
nobody | c28a893e38 | |
nobody | a708b35798 | |
nobody | 6d5cea78f3 | |
nobody | 954f78a6bd | |
nobody | 8f075aaaa4 | |
nobody | bbcb6a3cd8 | |
nobody | fcb204c8f3 | |
nobody | b2e4d0dce8 | |
nobody | 5fa31e781f | |
Hosted Weblate | 52fd4adc56 | |
nobody | bc1c9f3aef | |
Hosted Weblate | d6dcc71087 | |
nobody | 84c65a310b | |
HexagonCDN | c2055ba308 | |
nobody | 0418b83a47 | |
nobody | 95df4e8afd | |
nobody | cbd17e7e07 | |
nobody | 3d76b53bba | |
nobody | d18cd6f98c | |
nobody | d4beca1905 | |
nobody | 958fda3ab6 | |
nobody | 0ab8fab186 | |
nobody | dac5b69e52 | |
nobody | 2d75448e66 | |
nobody | 2caed0b644 | |
nobody | 247c6ede5a | |
nobody | 3073ceec1a | |
nobody | 12d1313ef8 | |
nobody | a5ed931b51 | |
nobody | 2a0b03ac51 | |
nobody | c149ab0fff | |
nobody | 7d5fefbba6 | |
nobody | 190dec1045 | |
nobody | 366fee286a | |
nobody | 809e96bb41 | |
nobody | 299ecfd566 | |
nobody | 20c140798c | |
nobody | aa94989a4f | |
nobody | f4444b8d1f | |
nobody | 301463dd87 | |
nobody | 079a2e68ea | |
nobody | 2dc8c14086 | |
nobody | d8f6587a14 | |
nobody | d4020b89fd | |
nobody | 94ec2422a6 | |
nobody | 0465b630d1 | |
nobody | c9d2eb85ce | |
nobody | f8433d8de2 | |
nobody | 937d8f513a | |
nobody | 5f68ff3fc0 | |
nobody | a6cf311595 | |
nobody | da5e6adc3c | |
nobody | 4c45d6415a | |
nobody | 8d373c32cf | |
nobody | 6e2af9ff2f | |
nobody | 680e405177 | |
nobody | 073dd31ad1 | |
nobody | 42ecd530e9 | |
nobody | 2d165773ad | |
nobody | d210f5855a | |
nobody | b322eac6c0 | |
nobody | 21e9882718 | |
nobody | 3b67310eb2 | |
Hosted Weblate | 22f736a459 | |
nobody | e7c0d8da54 | |
Hosted Weblate | affbf67f32 | |
nobody | f33ad5e39b | |
nobody | 66319206ea | |
Hosted Weblate | 3fb721c5b8 | |
nobody | b91bbf995d | |
nobody | e57393c792 | |
nobody | dfbb2c99c0 | |
nobody | 6dce868163 | |
nobody | 6b0c090df0 | |
nobody | 0699a6427c | |
nobody | 942caec500 | |
nobody | bda7613960 | |
nobody | 018bcaf92e | |
nobody | 50907aac34 | |
nobody | d7b5f792b8 | |
nobody | 1e50594187 | |
nobody | 738f09d241 | |
nobody | a7b7d0cdde | |
nobody | c3b351bbb0 | |
nobody | 8951ed446b | |
nobody | e48bafb918 | |
nobody | 5d15117579 | |
nobody | 2fdec18803 | |
nobody | f687a39f1d | |
nobody | 559917d000 | |
nobody | f3d22bb011 | |
nobody | 96df6b7d5d | |
nobody | ed1f21af44 | |
nobody | f3ee6098d3 | |
nobody | da9224c551 | |
nobody | 879bb06826 | |
nobody | ff56635af3 | |
nobody | 1df2ae77a3 | |
nobody | 814aeedcd0 | |
nobody | a2b4eac090 | |
Hosted Weblate | 9ffd8ed3b9 | |
nobody | 40907a36fd | |
Hosted Weblate | fc6d660e87 | |
nobody | b98fcba497 | |
Hosted Weblate | 532d6a3f81 | |
nobody | 284a5cedc6 | |
Hosted Weblate | 8df49c9337 | |
nobody | ebbc834b28 | |
Hosted Weblate | 57062c1f2a | |
nobody | f672b612c7 | |
Hosted Weblate | 3eaf271f1f | |
nobody | 52e5793a03 | |
Hosted Weblate | 1845c8f910 | |
nobody | 5e191a5a8c | |
nobody | 697d451a2c | |
nobody | ad3f094c05 | |
nobody | 4f55408ce2 | |
Sky Black | 45745e4534 | |
Hosted Weblate | 19f1598525 | |
nobody | 26f9b4e05f | |
nobody | a8fd61a781 | |
nobody | d4d33c1c2e | |
109247019824 | 733eb053c7 | |
109247019824 | f7e550c09e | |
nobody | f8550a4797 | |
Hosted Weblate | a40a3b69d8 | |
109247019824 | 5458579be5 | |
nobody | 9b782c18c8 | |
nobody | 9930b763ec | |
nobody | 541cb7c10c | |
nobody | 17cdab001b | |
nobody | b6d45fb242 | |
nobody | d47cc73fcc | |
nobody | 547035b5d7 | |
nobody | cfdca52ef2 | |
Hosted Weblate | 373d35dd14 | |
nobody | 2a97803cc8 | |
nobody | 9a3b8a5907 | |
nobody | f4f0d828c9 | |
nobody | 6f3bf7e745 | |
nobody | d2f2036e93 | |
nobody | 1d8d067032 | |
nobody | 78a088c8ef | |
nobody | dcebef9c6b | |
nobody | 6e8e3c878e | |
nobody | 3f25d63d1c | |
nobody | a9f9c8298c | |
nobody | 9a53b183b9 | |
nobody | 839d19c7e7 | |
nobody | 3f41aa60ce | |
Hosted Weblate | dea2a1a399 | |
HexagonCDN | f8066e95f1 | |
109247019824 | b450fc19d6 | |
nobody | 9c101535cb | |
nobody | 7424f58a1e | |
nobody | d101257a23 | |
109247019824 | 15e460aba4 | |
nobody | 04513d25d8 | |
nobody | faa52a78d9 | |
nobody | a4a21be941 | |
nobody | 0bd350c51f | |
nobody | b66253c7b9 | |
nobody | 1832844c90 | |
nobody | 68ceba46b4 | |
nobody | f42dc24b7e | |
nobody | 125f4eac8a | |
109247019824 | 3346fa3868 | |
109247019824 | ec02050a5d | |
nobody | de082281a0 | |
nobody | 8bd9b2523d | |
Hosted Weblate | 8e1ebc8acc | |
nobody | 8c7565d625 | |
109247019824 | 7985f08421 | |
nobody | ad45bc1593 | |
nobody | 814d3092af | |
nobody | dbc0cd3fc1 | |
nobody | a2d6582f93 | |
nobody | 9de63c9434 | |
nobody | c15ba89ede | |
nobody | 1b946b5975 | |
nobody | a9501a6982 | |
nobody | 1594107e26 | |
nobody | a857bc6e9e | |
nobody | 78694fa3dc | |
nobody | af814d24f9 | |
nobody | b559a541fd | |
nobody | 924b8c523a | |
nobody | d3b54501d5 | |
nobody | 1e11e037c2 | |
nobody | 3e89222ebd | |
nobody | 7c33822caa | |
nobody | 761d0d5e06 | |
nobody | 7354af3b24 | |
nobody | 703438ce0b | |
nobody | c5a519a733 | |
nobody | c6f7e92deb | |
nobody | cacd5e71c4 | |
nobody | 3cdf61477a | |
nobody | 6259887e6b | |
nobody | f2cc4bb2b8 | |
nobody | a94d670991 | |
nobody | e5b88f4ee6 | |
nobody | b6efaee447 | |
nobody | e439318c4c | |
nobody | 63f57b3e27 | |
nobody | 75a07008d3 | |
nobody | c9871dcaac | |
nobody | 0e5f68e781 | |
nobody | e2bf2a5a87 | |
nobody | aea9209104 | |
nobody | 9e55e4cd38 | |
nobody | 5201ade286 | |
nobody | faeeed76c2 | |
nobody | 1a1118fbea | |
nobody | edd7e4effe | |
nobody | c84942d7c1 | |
nobody | cbc41da55e | |
nobody | 05e7485a90 | |
nobody | c1fad6a122 | |
nobody | 2a596d5dfd | |
nobody | 95de8b0ac6 | |
nobody | 0c70518904 | |
nobody | f4a311bfce | |
nobody | a0b1245b59 | |
nobody | 870d68232f | |
nobody | 260710b699 | |
nobody | 6031492401 |
|
@ -33,6 +33,8 @@
|
|||
"BadgeSettingMissingResource": true,
|
||||
"BadResources": true,
|
||||
"LogString": true,
|
||||
"BlockedRequestMethods": true,
|
||||
"GoogleDomains": true,
|
||||
|
||||
"fileGuard": true,
|
||||
"files": true,
|
||||
|
|
|
@ -2,9 +2,11 @@
|
|||
|
||||
The following is a set of guidelines for contributing to LocalCDN.
|
||||
|
||||
Pull requests via codeberg are the best way to contribute, and are always welcome. Pull requests are an easy way to add frameworks and update resources. Feel free to suggest changes to this or any other document in a pull request as well.
|
||||
Pull requests via codeberg are the best way to contribute, and are always welcome. Pull requests are an easy way to add frameworks and update resources. Feel free to suggest changes to this or any other document in a pull request as well.
|
||||
|
||||
Please note the two-branch structure of this extension. The "develop" branch is where the next release is being produced, while "main" holds the current release. Target all pull requests to the develop branch.
|
||||
Please note the two-branch structure of this extension. The "develop" branch is where the next release is being produced, while "main" holds the current release. Target all pull requests to the develop branch.
|
||||
|
||||
I would be happy if you would implement one of the requested features. These feature requests have the label PR welcome, see [here](https://codeberg.org/nobody/LocalCDN/issues?q=&labels=74391).
|
||||
|
||||
## Content
|
||||
* [Guidelines](#guidelines)
|
||||
|
|
|
@ -1,16 +1,13 @@
|
|||
## Please read this text carefully(!)
|
||||
## Please read the following points carefully(!). This is not a template or a form. These are just a few tips before you create a ticket. Please delete all text and describe the problem.
|
||||
|
||||
* Only Firefox: Does the website work after you activate the HTML filter?
|
||||
|
||||
* Is there already an existing issue? (Search for the URL, e.g. "codeberg.org" or "localcdn.org")
|
||||
* Is there already an existing issue? (e.g. search for the URL of the website)
|
||||
|
||||
* For the most common problems and solutions I have created an online tool. Please test the broken website there: https://www.localcdn.org/test/check
|
||||
|
||||
## If none of the points apply
|
||||
* write the URL in the title
|
||||
* one or two screenshots can be helpful
|
||||
* Check the FAQs: https://codeberg.org/nobody/LocalCDN/wiki
|
||||
|
||||
## Please delete this text(!)
|
||||
## and describe the problem
|
||||
|
||||
Thank you for your understanding
|
||||
## If none of the above points have helped, then
|
||||
* Write the URL of the website in the title, for example
|
||||
* Describe the problem as detailed as possible (maybe one or two screenshots can be helpful)
|
||||
|
|
|
@ -70,7 +70,7 @@ In some cases, LocalCDN is not allowed to replace requested resources because th
|
|||
|
||||
## Contributing Code
|
||||
|
||||
Suggestions in the form of **Issues**, and contributions in the form of **Merge Requests**, are highly welcome.
|
||||
Suggestions in the form of **Issues**, and contributions in the form of **Merge/Pull Requests**, are highly welcome.
|
||||
|
||||
## Installation
|
||||
|
||||
|
|
1793
THIRD_PARTY.txt
1793
THIRD_PARTY.txt
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"extensionDescription": {
|
||||
"message": "يحميك من التتبع عبر شبكات توصيل المحتوى (CDNs) عن طريق إعادة التوجيه إلى موارد محليَّة.",
|
||||
"message": "يحميك من التتبع عبر شبكات توصيل المحتوى (CDNs) عن طريق إعادة التوجيه إلى موارد محلية.",
|
||||
"description": "Protects you against tracking through CDNs (Content Delivery Networks) by redirecting to local resources."
|
||||
},
|
||||
"amountInjectedDescription": {
|
||||
|
@ -159,6 +159,10 @@
|
|||
"message": "العام الماضي",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "حذف",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -364,7 +368,7 @@
|
|||
"description": "Mode"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableUseful": {
|
||||
"message": "قواعد مفيدة",
|
||||
"message": "قواعد مفيدةقواعد مفيدة",
|
||||
"description": "Rules useful"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableDefaultEasy": {
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "شارة المورد غير المتوفر",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
"extensionDescription": {
|
||||
"message": "Защитава ви от следене чрез свободна, централизирана доставка на съдържание.",
|
||||
"message": "Предпазва от проследяване от мрежите за доставка на съдържание като пренасочва заявките им към местни ресурси.",
|
||||
"description": "Protects you against tracking through CDNs (Content Delivery Networks) by redirecting to local resources."
|
||||
},
|
||||
"amountInjectedDescription": {
|
||||
"message": "Количество на местни вмъквания на ресурси от началото на инсталацията.",
|
||||
"message": "Брой използвани местни ресурси от инсталирането до момента.",
|
||||
"description": "Amount injected description."
|
||||
},
|
||||
"optionsTitle": {
|
||||
|
@ -12,23 +12,23 @@
|
|||
"description": "Options title"
|
||||
},
|
||||
"showIconBadgeTitle": {
|
||||
"message": "Показване на броя на вмъкванията в иконката",
|
||||
"message": "Показване на броя използвани местни ресурси в иконката",
|
||||
"description": "Show icon badge title"
|
||||
},
|
||||
"showIconBadgeDescription": {
|
||||
"message": "Показване на броя на вмъкнатите ресурси в иконката на разширението.",
|
||||
"message": "Показва броя на използваните местни ресурси в иконката на разширението.",
|
||||
"description": "Show icon badge description."
|
||||
},
|
||||
"blockMissingTitle": {
|
||||
"message": "Блокиране на заявки за липсващи ресурси",
|
||||
"message": "Спиране на заявки към липсващи ресурси",
|
||||
"description": "Block requests for missing resources title"
|
||||
},
|
||||
"blockMissingDescription": {
|
||||
"message": "Отмяна на прехванатата заявка, ако изисквания ресурс не е наличен на местно ниво.",
|
||||
"message": "Спира прехванатите заявки за ресурси, които не са налични на местно ниво.",
|
||||
"description": "Block requests for missing resources description."
|
||||
},
|
||||
"disablePrefetchTitle": {
|
||||
"message": "Изключване на предварителното извличане на препратки",
|
||||
"message": "Изключване на предварителното зареждане на препратки",
|
||||
"description": "Disable prefetch title"
|
||||
},
|
||||
"disablePrefetchDescription": {
|
||||
|
@ -36,19 +36,19 @@
|
|||
"description": "Disable prefetch description."
|
||||
},
|
||||
"stripMetadataTitle": {
|
||||
"message": "Премахване на метаданните от разрешени заявки",
|
||||
"message": "Премахване на описателните данни от разрешените заявки",
|
||||
"description": "Strip metadata title"
|
||||
},
|
||||
"stripMetadataDescription": {
|
||||
"message": "Изтриване на чувствителни данни от допустимите заявки от МДС за подобряване на неприкосновеността.",
|
||||
"message": "Премахва чувствителната информация от разрешените заявки към мрежи за доставка на съдържание с цел подобряване на поверителността.",
|
||||
"description": "Strip metadata description."
|
||||
},
|
||||
"allowlistedDomainsTitle": {
|
||||
"message": "Деактивиране на LocalCDN за тези домейни:",
|
||||
"message": "Изключване на LocalCDN за следните домейни:",
|
||||
"description": "Deactivate LocalCDN for these domains:"
|
||||
},
|
||||
"allowlistedDomainsDescription": {
|
||||
"message": "Въведете домейни, които да се добавят в белия списък. Отделете стойностите с точка и запетая.",
|
||||
"message": "Въведете домейните, на които добавката LocalCDN да бъде изключена. По един на ред.",
|
||||
"description": "Enter domains to disable LocalCDN there. One entry per line."
|
||||
},
|
||||
"advancedLabel": {
|
||||
|
@ -56,15 +56,15 @@
|
|||
"description": "Advanced label"
|
||||
},
|
||||
"generateRuleSetTitle": {
|
||||
"message": "ГенерАко е активирано, няма да получавате никаква информация за нови функции в LocalCDN. Това включва информация за новите правила uBlock / uMatrix.ирайте набори от правила за uBlock или uMatrix",
|
||||
"message": "Извеждане на набори от правила за системи за спиране на реклами",
|
||||
"description": "Generate rule sets for your adblocker"
|
||||
},
|
||||
"generateRuleSetDescription": {
|
||||
"message": "Ако ползвате uBlock Origin или uMatrix тук може да генерирате правила. Трябва да ги добавите ръчно в uBlock Origin или uMatrix.",
|
||||
"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": "Последено обновление:",
|
||||
"message": "Последено обновяване:",
|
||||
"description": "Last update:"
|
||||
},
|
||||
"copyRuleSet": {
|
||||
|
@ -72,415 +72,459 @@
|
|||
"description": "Text of button to copy ruleset"
|
||||
},
|
||||
"loggingTitle": {
|
||||
"message": "Включване на логване в конзолата на браузъра",
|
||||
"message": "Поддържане на дневник",
|
||||
"description": "Enable logging"
|
||||
},
|
||||
"loggingDescription": {
|
||||
"message": "Отворете \"конзола на браузъра\" ( CTRL + SHIFT + J ), за да се покажат липсващите ресурси.",
|
||||
"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": "Тази функционалност чупи уебсайтове. Не включвайте, освен ако не сте готови ръчно да включвате засегнатите домейни.",
|
||||
"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": "Изключи",
|
||||
"message": "Изключване",
|
||||
"description": "Disable"
|
||||
},
|
||||
"labelManipulateDOM": {
|
||||
"message": "Филтриране на HTML изходния код",
|
||||
"message": "Филтриране изходния код на HTML",
|
||||
"description": "Filter HTML source code"
|
||||
},
|
||||
"labelDonate": {
|
||||
"message": "Дари",
|
||||
"message": "Даряване",
|
||||
"description": "Donate"
|
||||
},
|
||||
"negateHtmlFilterListTitle": {
|
||||
"message": "Инвертиране на HTML филтрите",
|
||||
"message": "Обръщане на филтрите на HTML",
|
||||
"description": "Invert HTML filter"
|
||||
},
|
||||
"negateHtmlFilterListDescription": {
|
||||
"message": "",
|
||||
"message": "Когато е отметнато филтрите за HTML винаги се прилагат. Домейните в този списък ще бъдат пропускани. Ако не е отметнато филтрите ще бъдат прилагани само към домейните от списъка.",
|
||||
"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": "Тази функционалност може да счупи уебсайтове. Моля запознайте се с информацията в wiki страницата.",
|
||||
"message": "Тази функция ще бъде причината някои страници да изглеждат странно или да не работят нормално. Повече информация ще намерите в документацията.",
|
||||
"description": "This function can break websites. Please note the information on the Wiki page."
|
||||
},
|
||||
"htmlFilterDomainsTitleExclude": {
|
||||
"message": "Не прилагай HTML филтри за тези домейни:",
|
||||
"message": "Филтрите за HTML да не бъдат прилагани към следните домейни:",
|
||||
"description": "Do not apply HTML filter to these domains:"
|
||||
},
|
||||
"htmlFilterDomainsDescription": {
|
||||
"message": "",
|
||||
"message": "Въведете домейните, на които да бъдат прилагани или не филтри за HTML. По един на ред.",
|
||||
"description": "Enter the domains to be handled or ignored by the HTML filter. One entry per line."
|
||||
},
|
||||
"htmlFilterDomainsTitleInclude": {
|
||||
"message": "",
|
||||
"message": "Филтрите за HTML да бъдат прилагани към следните домейни:",
|
||||
"description": "Apply HTML filter for these domains:"
|
||||
},
|
||||
"blockGoogleFontsTitle": {
|
||||
"message": "",
|
||||
"message": "Спиране на шрифтове от Гугъл",
|
||||
"description": "Block Google Fonts"
|
||||
},
|
||||
"blockGoogleFontsDescription": {
|
||||
"message": "",
|
||||
"message": "Ако заявките за липсващи ресурси са разрешени, връзките към „fonts.googleapis.com“ не се спират. Ако е отметнато тези заявки ще бъдат спирани.",
|
||||
"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": "",
|
||||
"message": "Изберете пиктограма за разширението",
|
||||
"description": "Choose an icon for this extension"
|
||||
},
|
||||
"internalStatisticsTitle": {
|
||||
"message": "",
|
||||
"message": "Вътрешна статистика",
|
||||
"description": "Internal statistics"
|
||||
},
|
||||
"internalStatisticsDescription": {
|
||||
"message": "",
|
||||
"message": "Тази възможност е в експериментална фаза. Няма предаване на данни. Всичко е на устройството.",
|
||||
"description": "No data transmission. It’s all local on your device."
|
||||
},
|
||||
"headerStatistics": {
|
||||
"message": "",
|
||||
"message": "Статистика",
|
||||
"description": "Statistics. The header of a statistics page."
|
||||
},
|
||||
"labelToday": {
|
||||
"message": "",
|
||||
"message": "Днес",
|
||||
"description": "Statistics view for today."
|
||||
},
|
||||
"labelPastWeek": {
|
||||
"message": "",
|
||||
"message": "Миналата седмица",
|
||||
"description": "Statistics view for past week."
|
||||
},
|
||||
"labelPastMonth": {
|
||||
"message": "",
|
||||
"message": "Миналия месец",
|
||||
"description": "Statistics view for past month."
|
||||
},
|
||||
"labelPastYear": {
|
||||
"message": "",
|
||||
"message": "Миналата година",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "Всички",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "",
|
||||
"message": "Премахване",
|
||||
"description": "Button to delete all statistics data."
|
||||
},
|
||||
"labelAvg": {
|
||||
"message": "",
|
||||
"message": "Средно (замествания на ден)",
|
||||
"description": "Followed by a number of average injections per day within a specific period."
|
||||
},
|
||||
"labelInjectedFrameworks": {
|
||||
"message": "",
|
||||
"message": "Използвани местни софтуерни рамки",
|
||||
"description": "Followed by a number of injections within a specific period."
|
||||
},
|
||||
"dialogConfirmDeleteStatistics": {
|
||||
"message": "",
|
||||
"message": "Сигурни ли сте, че желаете цялата статистика да бъде премахната?",
|
||||
"description": "Are you sure you want to delete all the statistics?"
|
||||
},
|
||||
"labelDomainsAllowlistGoogleFonts": {
|
||||
"message": "",
|
||||
"message": "Въведете домейните, на които да се зареждат шрифтове от Гугъл. По един на ред.",
|
||||
"description": "These domains are allowed to load Google Fonts. One entry per line."
|
||||
},
|
||||
"btnGeneral": {
|
||||
"message": "",
|
||||
"message": "Основни",
|
||||
"description": "Basic"
|
||||
},
|
||||
"btnAdvanced": {
|
||||
"message": "",
|
||||
"message": "Разширени",
|
||||
"description": "Advanced"
|
||||
},
|
||||
"btnOther": {
|
||||
"message": "",
|
||||
"message": "Други",
|
||||
"description": "Other"
|
||||
},
|
||||
"btnInfo": {
|
||||
"message": "",
|
||||
"message": "Информация",
|
||||
"description": "Info"
|
||||
},
|
||||
"headerStorageType": {
|
||||
"message": "",
|
||||
"message": "Вид на хранилището",
|
||||
"description": "Storage type"
|
||||
},
|
||||
"labelStorageTypeLocal": {
|
||||
"message": "",
|
||||
"message": "Местно",
|
||||
"description": "Local"
|
||||
},
|
||||
"labelStorageTypeSync": {
|
||||
"message": "",
|
||||
"message": "Синхронизирано",
|
||||
"description": "Sync"
|
||||
},
|
||||
"headerImportExport": {
|
||||
"message": "",
|
||||
"message": "Внасяне/изнасяне",
|
||||
"description": "Import/Export"
|
||||
},
|
||||
"labelExportData": {
|
||||
"message": "",
|
||||
"message": "Резервно копие във файл",
|
||||
"description": "Back up to file"
|
||||
},
|
||||
"labelImportData": {
|
||||
"message": "",
|
||||
"message": "Възстановяване от файл",
|
||||
"description": "Restore from file"
|
||||
},
|
||||
"dialogImportSuccessful": {
|
||||
"message": "",
|
||||
"message": "Внасянето е успешно",
|
||||
"description": "Import successful"
|
||||
},
|
||||
"dialogImportFailed": {
|
||||
"message": "",
|
||||
"message": "Грешка при изнасяне",
|
||||
"description": "Import failed"
|
||||
},
|
||||
"updateNotificationTitle": {
|
||||
"message": "",
|
||||
"message": "Известие след обновяване",
|
||||
"description": "Notification after an update"
|
||||
},
|
||||
"updateNotificationNever": {
|
||||
"message": "",
|
||||
"message": "Никога (безшумно обновяване)",
|
||||
"description": "Never (Silent Updates)"
|
||||
},
|
||||
"updateNotificationOnlyRules": {
|
||||
"message": "",
|
||||
"message": "Само при добавени мрежи и нови правила",
|
||||
"description": "Only if new CDNs and rules"
|
||||
},
|
||||
"updateNotificationAlways": {
|
||||
"message": "",
|
||||
"message": "Винаги",
|
||||
"description": "Always"
|
||||
},
|
||||
"websiteBroken": {
|
||||
"message": "",
|
||||
"message": "„Счупена“ страница?",
|
||||
"description": "Website broken?"
|
||||
},
|
||||
"hideDonationButton": {
|
||||
"message": "",
|
||||
"message": "Скриване на бутона за дарение",
|
||||
"description": "Hide donation button"
|
||||
},
|
||||
"betaLabel": {
|
||||
"message": "",
|
||||
"message": "Бета",
|
||||
"description": "beta"
|
||||
},
|
||||
"changeBadgeColorMissingResourcesTitle": {
|
||||
"message": "",
|
||||
"message": "Отбелязване на липсващите ресурси в иконата",
|
||||
"description": "Indicate missing resources on the icon"
|
||||
},
|
||||
"changeBadgeColorMissingResourcesDescription": {
|
||||
"message": "",
|
||||
"message": "При липсващи ресурси цвета на иконата се променя.",
|
||||
"description": "Change the badge color if resources are missing."
|
||||
},
|
||||
"titleHelp": {
|
||||
"message": "",
|
||||
"message": "Помощ",
|
||||
"description": "Help"
|
||||
},
|
||||
"helpIntroductionTitle": {
|
||||
"message": "",
|
||||
"message": "Въведение",
|
||||
"description": "Introduction"
|
||||
},
|
||||
"helpHtmlFilterTitle": {
|
||||
"message": "",
|
||||
"message": "Какво е „филтър за HTML“?",
|
||||
"description": "What is »HTML filter«?"
|
||||
},
|
||||
"helpRuleGeneratorTitle": {
|
||||
"message": "",
|
||||
"message": "Генератор за правила",
|
||||
"description": "Rule generator"
|
||||
},
|
||||
"helpWebsiteIssuesTitle": {
|
||||
"message": "",
|
||||
"message": "Някои страници изглеждат странно или са трудни за използване",
|
||||
"description": "Some websites look strange or are not easy to use"
|
||||
},
|
||||
"helpBlockGoogleFontsTitle": {
|
||||
"message": "",
|
||||
"message": "Защо има „Спиране на шрифтове от Гугъл“?",
|
||||
"description": "Why is there a »Block Google Fonts« option?"
|
||||
},
|
||||
"helpStatisticsTitle": {
|
||||
"message": "",
|
||||
"message": "Ами статистиките? Какво и къде се изпраща?",
|
||||
"description": "What about the statistics? Is anything transferred to any servers?"
|
||||
},
|
||||
"helpWhatWillBeSynchronizedTitle": {
|
||||
"message": "",
|
||||
"message": "Какво ще бъде синхронизирано ако избера „Синхронизирано“ за хранилище?",
|
||||
"description": "What will be synchronized when I select »sync« as storage type?"
|
||||
},
|
||||
"helpBrowserCompatibilityTitle": {
|
||||
"message": "",
|
||||
"message": "Съвместимост с мрежови четци",
|
||||
"description": "Browser compatibility"
|
||||
},
|
||||
"helpIntroductionDescription": {
|
||||
"message": "",
|
||||
"message": "LocalCDN е разширение, което емулира мрежи за доставка на съдържание, за да подобри поверителността ви в мрежата. То прихваща трафика, намира местно наличните софтуерни рамки/библиотеки и ги предоставя за използване от страницата. Чувствайте се свободни да използвате следния инструмент за изпробване, за да разберете дали сте защитени. За повече информация прочетете ръководството или документацията.",
|
||||
"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": "",
|
||||
"message": "Проверка за работоспособност",
|
||||
"description": "Testing utility"
|
||||
},
|
||||
"helpLinkTutorial": {
|
||||
"message": "",
|
||||
"message": "Самоучител",
|
||||
"description": "Tutorial"
|
||||
},
|
||||
"helpLinkWikiPages": {
|
||||
"message": "",
|
||||
"message": "Документация",
|
||||
"description": "Wiki pages"
|
||||
},
|
||||
"helpHtmlFilterDescription": {
|
||||
"message": "",
|
||||
"message": "В повечето случаи LocalCDN може лесно да замени използваните софтуерни рамки и да подобри поверителността. В някои случаи страницатс може да се опита да предотврати това чрез задаване на определени атрибути в изходния код на HTML. LocalCDN чете изходния код на HTML преди да бъде показан и премахва тази атрибути (в червено).",
|
||||
"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": "",
|
||||
"message": "Филтрите за HTML премахват червените знаци от примера:",
|
||||
"description": "The HTML filter removes the red characters from this example:"
|
||||
},
|
||||
"helpHtmlFilterAfter": {
|
||||
"message": "",
|
||||
"message": "Резултатът ще изглежда така:",
|
||||
"description": "The result then looks like this:"
|
||||
},
|
||||
"helpHtmlFilterWhyTitle": {
|
||||
"message": "",
|
||||
"message": "Защо е необходимо да се премахнат атрибутите crossorigin и integrity?",
|
||||
"description": "Why is it necessary to remove crossorigin and integrity attributes?"
|
||||
},
|
||||
"helpHtmlFilterCrossorigin": {
|
||||
"message": "",
|
||||
"message": "Атрибутът crossorigin предотвратява замяната, тъй като целта не съвпада с търсената.",
|
||||
"description": "The crossorigin attribute prevents the replacement because the destination does not match the requested one."
|
||||
},
|
||||
"helpHtmlFilterIntegrity": {
|
||||
"message": "",
|
||||
"message": "За да се спести дисково пространство, и за да се доставят повече софтуерни рамки, LocalCDN винаги използва последното им издание. Етикетът за цялост е отпечатък от съдържанието на даден файл. Ако проверката е неуспешна, четецът няма да използва дадения файл. Проверката за цялост, например на jQuery 1.10.1 и jQuery 1.12.4. ще бъде неуспешна, защото отпечатъците са различни.",
|
||||
"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 won‘t 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": {
|
||||
"message": "",
|
||||
"message": "Ако искате заявките към поддържаните мрежи за доставка на съдържание (МДС) автоматично да бъдат пренасочвани към LocalCDN, можете да добавите тези правила към приложението за спиране на реклами, за да разрешите тези пренасочвания. Ако не искате да добавяте тези правила, трябва да разрешавате всяка заява МДС поотделно за всяка страница.",
|
||||
"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": "",
|
||||
"message": "Само uBlock Origin:",
|
||||
"description": "Only uBlock Origin:"
|
||||
},
|
||||
"helpRuleGeneratorUblockDescription": {
|
||||
"message": "",
|
||||
"message": "Тези правила са приложими само в режимите „Междинен“ и „Тежък“, тъй като спират всички ресурси на трети страни. Не са необходими в режимите „Стандартен“ и „Лек“. За повече информация посетете документацията на 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": {
|
||||
"message": "",
|
||||
"message": "Пиктограма",
|
||||
"description": "Icon"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableMode": {
|
||||
"message": "",
|
||||
"message": "Режим",
|
||||
"description": "Mode"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableUseful": {
|
||||
"message": "",
|
||||
"message": "Полезни ли са правилата",
|
||||
"description": "Rules useful"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableDefaultEasy": {
|
||||
"message": "",
|
||||
"message": "Стандартен/лек",
|
||||
"description": "Default/Easy"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableMedium": {
|
||||
"message": "",
|
||||
"message": "Междинен",
|
||||
"description": "Medium"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableHard": {
|
||||
"message": "",
|
||||
"message": "Тежък",
|
||||
"description": "Hard"
|
||||
},
|
||||
"helpWebsiteIssuesDescription": {
|
||||
"message": "",
|
||||
"message": "Има две възможни причини: Или има заявка за софтуерна рамка / библиотека, която LocalCDN (все още) не предоставя, или SOP (Same origin policy - политика за същия произход). Това е механизъм за сигурност, който определя какви данни е позволено да се зареждат от мрежовия четец. Този механизъм помага да се изолират злонамерени документи и по този начин да се намалят възможните вектори за атака. Тази политика не позволява да бъдат зареждани софтуерните рамки / библиотеките от LocalCDN. За съжаление за момента няма решение за този проблем.",
|
||||
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesn‘t (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 може да замести материалните икони от Гугъл. За да бъде прехваната заявката, добавката за спиране на реклами (напр. uBlock Origin, uMatrix или AdGuard) трябва да я разреши. LocalCDN слуша за тезт заявки и ако тя е за материални икони от Гугъл, ресурсът ще бъде заменен. Ако махнете отметката „Спиране на заявки към липсващи ресурси“, несъществуващите ресурси ще бъдат допуснати и шрифтове от Гугъл ще бъдат достъпни, защото материалните икони и шрифтовете от Гугъл използват един и същ домейн. Ако не искате това да е така, можете да спрете шрифтовете от Гугъл в 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 don‘t want this, you can block »Google Fonts« on LocalCDN."
|
||||
},
|
||||
"helpStatisticsDescription": {
|
||||
"message": "",
|
||||
"message": "Не се паникьосвайте, нищо не се изпраща никъде. Това би било против всички мои принципи. Статистиката (под формата на JSON) съдържа следната информация: дата, брояч на мрежа за доставка на съдържание и брояч на софтуерна рамка. Това е всичко. Ето пример:",
|
||||
"description": "Don‘t 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. That‘s all. I‘ve an example here:"
|
||||
},
|
||||
"helpStatisticsContent": {
|
||||
"message": "",
|
||||
"message": "Статистиката не съдържа информация за мрежовия четец, операционната система, страницата, от която идва заявката, IP адреси или друга информация. Само дата, брояч на мрежа за доставка на съдържание (МДС) и брояч на софтуерни рамки. Статистиката показва кои софтуерни рамки са заменени от LocalCDN колко често и кои МДС са били поискани.",
|
||||
"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": "",
|
||||
"message": "Как да разбера, че това наистина е така?",
|
||||
"description": "How do I know that‘s true?"
|
||||
},
|
||||
"helpStatisticsTruthDescription": {
|
||||
"message": "",
|
||||
"message": "Хранилището на разширението може да бъде разгледано директно във Firefox. Отворете адреса „about:debugging“, намерете добавката, натиснете бутона „Инспектиране“, от горната лента изберете „Хранилище“ и от там изберете „Хранилище на разширението“. Под ключа \"internalStatisticsData\" ще намерите събраните данни.",
|
||||
"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": "",
|
||||
"message": "Какво ще бъде синхронизирано ако избера „Синхронизирано“ за хранилище?",
|
||||
"description": "What will be synchronized when I select »sync« as storage type?"
|
||||
},
|
||||
"helpSyncDescription": {
|
||||
"message": "",
|
||||
"message": "Синхронизацията ще работи само ако сте влезли във Firefox Account на устройството и сте разрешили синхронизирането на добавките в настройките. Отделен сървър за синхронизиране под ваш контрол също ще работи. По такъв начин ще бъдат синхронизирани повечето от настройките на 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 don‘t 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": {
|
||||
"message": "",
|
||||
"message": "Данни",
|
||||
"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": "Всички четци на основата на Хромиум",
|
||||
"description": "All Chromium based Browser"
|
||||
},
|
||||
"helpLimitation": {
|
||||
"message": "",
|
||||
"message": "Това не е ограничение на добавката LocalCDN, а липсваща поддръжка на ППИ от мрежовите четци на основата на Хромиум.",
|
||||
"description": "This is not a limitation of LocalCDN, but missing API support of Chromium based browsers."
|
||||
},
|
||||
"titleBadgeDefault": {
|
||||
"message": "",
|
||||
"message": "Стандартна пиктограма",
|
||||
"description": "Default badge"
|
||||
},
|
||||
"titleBadgeHTMLFilter": {
|
||||
"message": "",
|
||||
"message": "Пиктограма за филтър на HTML",
|
||||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Пиктограма за липсващ или спрян ресурс",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Спрян",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Липсващ",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Няма права",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Достъпва данните ви за всички страници",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Не забранявайте това право. LocalCDN се нуждае от него, за да определя и пренасочва заявките към МДС.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Защо разширението се нуждае от тези права?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN трябва да знае кои заявки идват от страниците, за да ги пренасочва или спира. С въвеждането на издание 3 на Манифеста (MV3) това право е незадължително.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Липсващи права",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Разрешаване",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Подробности",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "L'any passat",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Suprimeix",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Falta la insígnia de recursos",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -128,7 +128,7 @@
|
|||
"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": "Vyberte si ikonu pro toto rozšíření",
|
||||
"message": "Vybraná ikona tohoto rozšíření",
|
||||
"description": "Choose an icon for this extension"
|
||||
},
|
||||
"internalStatisticsTitle": {
|
||||
|
@ -159,6 +159,10 @@
|
|||
"message": "Minulý rok",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Smazat",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -204,7 +208,7 @@
|
|||
"description": "Local"
|
||||
},
|
||||
"labelStorageTypeSync": {
|
||||
"message": "Synchronizovat",
|
||||
"message": "Synchronizované",
|
||||
"description": "Sync"
|
||||
},
|
||||
"headerImportExport": {
|
||||
|
@ -328,15 +332,15 @@
|
|||
"description": "The result then looks like this:"
|
||||
},
|
||||
"helpHtmlFilterWhyTitle": {
|
||||
"message": "",
|
||||
"message": "Proč je nutné odstranit atributy crossorigin a integrity?",
|
||||
"description": "Why is it necessary to remove crossorigin and integrity attributes?"
|
||||
},
|
||||
"helpHtmlFilterCrossorigin": {
|
||||
"message": "",
|
||||
"message": "Atribut crossorigin brání nahrazení, protože cíl neodpovídá požadovanému.",
|
||||
"description": "The crossorigin attribute prevents the replacement because the destination does not match the requested one."
|
||||
},
|
||||
"helpHtmlFilterIntegrity": {
|
||||
"message": "",
|
||||
"message": "Chcete-li ušetřit místo na disku a dodat více rámců LocalCDN upgraduje rámec. Značka integrity je hash hodnotou souboru. Pokud se kontrola nezdaří, prohlížeč nebude obsahovat framework. Kontrola integrity se nezdaří, protože hodnoty hash pro např. jQuery 1.10.1 a jQuery 1.12.4 se liší.",
|
||||
"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 won‘t 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": {
|
||||
|
@ -344,7 +348,7 @@
|
|||
"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": "",
|
||||
"message": "Pokud chcete automaticky přesměrovat všechna podporovaná připojení k CDN do LocalCDN, můžete přidat tato pravidla do vašeho blokovače reklam pro povolení těchto přesměrování. Pokud pravidla nechcete přidat, musíte povolit každé CDN zvlášť na každé webové stránce.",
|
||||
"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": {
|
||||
|
@ -352,7 +356,7 @@
|
|||
"description": "Only uBlock Origin:"
|
||||
},
|
||||
"helpRuleGeneratorUblockDescription": {
|
||||
"message": "",
|
||||
"message": "Tato pravidla jsou relevantní pouze ve »středním« nebo »těžkém« režimu, protože blokuje veškeré zdroje třetích stran. Nejsou potřeba ve »výchozím«, »jednoduchém« nebo »velmi jednoduchém« režimu. Pro více informací navštivte Wiki 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,11 +368,11 @@
|
|||
"description": "Mode"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableUseful": {
|
||||
"message": "",
|
||||
"message": "Týká se",
|
||||
"description": "Rules useful"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableDefaultEasy": {
|
||||
"message": "",
|
||||
"message": "Výchozí/lehký",
|
||||
"description": "Default/Easy"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableMedium": {
|
||||
|
@ -376,23 +380,23 @@
|
|||
"description": "Medium"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableHard": {
|
||||
"message": "",
|
||||
"message": "Přísný",
|
||||
"description": "Hard"
|
||||
},
|
||||
"helpWebsiteIssuesDescription": {
|
||||
"message": "",
|
||||
"message": "Jsou tu dvě možné příčiny: buď požadovaný framework/knihovna není (zatím) poskytována LocalCDN nebo SOP. SOP (Same origin policy) je bezpečnostní mechanizmus, který určuje, jaká data může prohlížeč načíst. Pomáhá izolovat zákeřné dokumenty a snižuje tím možné způsoby útoku. Tato zásada znemožňuje prohlížeči načíst externí frameworky LocalCDN. Bohužel to v současnosti nemá žádné řešení.",
|
||||
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesn‘t (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 může nahradit »Google Material Icons«. Chcete-li zachytit připojení, váš blokátor reklam (např. uBlock Origin, uMatrix nebo AdGuard) musí požadavek povolit. LocalCDN naslouchá těmto požadavkům a pokud dotaz obsahuje »Google Material Icons«, zdroj bude nahrazen. Pokud zrušíte zaškrtnutí možnosti »Blokovat požadavky na chybějící obsah«, bude povolen průchod neexistujícím zdrojům a načte se »Google Fonts«, protože »Google Material Icons« a »Google Fonts« používají stejnou doménu. Pokud si to nepřejete, můžete zablokovat »Google Fonts« na 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 don‘t want this, you can block »Google Fonts« on LocalCDN."
|
||||
},
|
||||
"helpStatisticsDescription": {
|
||||
"message": "",
|
||||
"message": "Nepanikařte, nic nebude přeneseno. Bylo by to proti všem mým zásadám. Statistiky (formát JSON) obsahují následující informace: datum, CDN+počítadlo a framework+počítadlo. To je vše, tady je příklad:",
|
||||
"description": "Don‘t 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. That‘s all. I‘ve an example here:"
|
||||
},
|
||||
"helpStatisticsContent": {
|
||||
"message": "",
|
||||
"message": "Statistiky neobsahují informace o prohlížeči, operačním systému, webové stránce, IP adrese ani jiné informace. Jen datum, CDN+počítadlo a framework+počítadlo. Ukazují vám frameworky, které byly nahrazeny LocalCDN, a jak často a které CDN byly vyžádány.",
|
||||
"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,27 +404,27 @@
|
|||
"description": "How do I know that‘s true?"
|
||||
},
|
||||
"helpStatisticsTruthDescription": {
|
||||
"message": "",
|
||||
"message": "Úložiště rozšíření lze zobrazit přímo v prohlížeči Firefox. Otevřete URL »about:debugging«, přepněte na »Úložiště« a zvolte »Extension Storage«. Pod klíčem »internalStatisticsData« najdete shromážděná data. Stačí jej zkopírovat a vložit do tiskárny JSON PrettyPrinter, aby byl čitelnější. Vezměte prosím na vědomí, že musíte odstranit první a poslední uvozovky a klíč k nim. V tomto videu byste to měli jasně vidět.",
|
||||
"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": "",
|
||||
"message": "Co bude synchronizováno, když vyberu »synchronizovaný« typ úložiště?",
|
||||
"description": "What will be synchronized when I select »sync« as storage type?"
|
||||
},
|
||||
"helpSyncDescription": {
|
||||
"message": "",
|
||||
"message": "Synchronizace bude fungovat pouze pokud jste přihlášeni Firefox účtem ve vašem zařízení a dovolili jste synchronizaci nastavení doplňků. Zvláštní server pro synchronizaci pod vaší kontrolou bude též fungovat. Bude se synchronizovat většina nastavení LocalCDN napříč všemi zařízeními.",
|
||||
"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": "Pokud nemáte účet pro synchronizaci, nic nebude synchronizováno. V tomto případě nemá výběr vliv.",
|
||||
"description": "If you don‘t 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": "Položky, které nikdy nebudou synchronizovány:",
|
||||
"description": "Things that are never synchronized:"
|
||||
},
|
||||
"helpNumberOfInjections": {
|
||||
"message": "",
|
||||
"message": "Počet vložení",
|
||||
"description": "Numbers of injections"
|
||||
},
|
||||
"helpYes": {
|
||||
|
@ -440,7 +444,7 @@
|
|||
"description": "Settings that will be synchronized:"
|
||||
},
|
||||
"helpIcons": {
|
||||
"message": "",
|
||||
"message": "Výchozí, světlá, modrá/šedá",
|
||||
"description": "Default, Light, Blue/Grey"
|
||||
},
|
||||
"helpSyncContentLinks": {
|
||||
|
@ -456,31 +460,71 @@
|
|||
"description": "Replace"
|
||||
},
|
||||
"helpReplaceOther": {
|
||||
"message": "",
|
||||
"message": "Nahradit ostatní zdroje",
|
||||
"description": "Replace other resources"
|
||||
},
|
||||
"helpUpgradeAllResources": {
|
||||
"message": "",
|
||||
"message": "Nahradit všechny zdroje",
|
||||
"description": "Upgrade all resources"
|
||||
},
|
||||
"helpExplanationChrome": {
|
||||
"message": "",
|
||||
"message": "Všechny prohlížeče založené na Chromiu",
|
||||
"description": "All Chromium based Browser"
|
||||
},
|
||||
"helpLimitation": {
|
||||
"message": "",
|
||||
"message": "Toto není omezení LocalCDN, ale chybějící API v prohlížečích založených na Chromiu.",
|
||||
"description": "This is not a limitation of LocalCDN, but missing API support of Chromium based browsers."
|
||||
},
|
||||
"titleBadgeDefault": {
|
||||
"message": "",
|
||||
"message": "Výchozí odznak",
|
||||
"description": "Default badge"
|
||||
},
|
||||
"titleBadgeHTMLFilter": {
|
||||
"message": "",
|
||||
"message": "Odznak HTML filtru",
|
||||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Odznak chybějících nebo blokovaných zdrojů",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Zablokovaných",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Chybějících",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Oprávnění odebráno",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Přistupovat k vašim datům pro všechny webové stránky",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Prosíme, nezakazujte toto oprávnění. LocalCDN potřebuje toto oprávnění pro detekci a přesměrování požadavků na CDN.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Proč toto rozšíření potřebuje toto oprávnění?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN potřebuje znát, které požadavky jsou vytvořeny webovou stránkou pro jejich přesměrování nebo blokování. Po představení MV3 je toto oprávnění volitelné.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Chybějící oprávnění",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Povolit",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Další informace",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Sidste år",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Slette",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -188,7 +192,7 @@
|
|||
"description": "Advanced"
|
||||
},
|
||||
"btnOther": {
|
||||
"message": "Anden",
|
||||
"message": "Andet",
|
||||
"description": "Other"
|
||||
},
|
||||
"btnInfo": {
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Manglende ressourcemærke",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Letztes Jahr",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "Alles",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Löschen",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Symbol für fehlende Resourcen",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Symbol für fehlende oder blockierte Ressourcen",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Geblockt",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Fehlend",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Berechtigung entzogen",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Auf Ihre Daten für alle Websites zugreifen",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Bitte deaktiviere diese Berechtigung nicht. LocalCDN braucht diese Berechtigung, um Anfragen an CDNs zu erkennen und umzuleiten.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Warum braucht diese Erweiterung diese Berechtigung?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN muss wissen, welche Anfragen von einer Website ausgelöst werden, um sie umzuleiten oder zu blockieren. Mit der Einführung von MV3 wird dieses Recht als optionales Recht gelistet.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Fehlende Berechtigung",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Erlauben",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Weitere Informationen",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Τον προηγούμενο χρόνο",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Διαγραφή",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Εικονίδιο ανύπαρκτου πόρου",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Εικονίδιο ανύπαρκτου ή αποκλεισμένου πόρου",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Αποκλεισμένο",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Ανύπαρκτο",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Ανάκληση άδειας",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Πρόσβαση στα δεδομένα σας σε όλους τους ιστότοπους",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Παρακαλώ μην ανακαλέσετε την άδεια. Το LocalCDN τη χρειάζεται για την ανίχνευση και την ανακατεύθυνση των αιτημάτων στα CDN.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Γιατί η επέκταση αυτή χρειάζεται αυτή την άδεια;",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "Το LocalCDN χρειάζεται να γνωρίζει τι αιτήσεις δημιουργούνται από έναν ιστότοπο, για την ανακατεύθυνση ή την αποκλεισμό του. Με την παρουσίαση του MV3, η άδεια αυτή θεωρείται προαιρετική.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Ανύπαρκτη άδεια",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Επίτρεψε",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Περισσότερες πληροφορίες",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Last year",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "All",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Delete",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Missing resource badge",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Missing or blocked resource badge",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Blocked",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Missing",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Permission revoked",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Access your data for all websites",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Why does this extension need this permission?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Missing permission",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Allow",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "More info",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Last year",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "All",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Delete",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Missing resource badge",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Missing or blocked resource badge",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Blocked",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Missing",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Permission revoked",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Access your data for all websites",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Why does this extension need this permission?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Missing permission",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Allow",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "More info",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Last year",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "All",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Delete",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Missing resource badge",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Missing or blocked resource badge",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Blocked",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Missing",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Permission revoked",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Access your data for all websites",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Why does this extension need this permission?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Missing permission",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Allow",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "More info",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Lasta jaro",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Forviŝi",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -292,7 +296,7 @@
|
|||
"description": "What about the statistics? Is anything transferred to any servers?"
|
||||
},
|
||||
"helpWhatWillBeSynchronizedTitle": {
|
||||
"message": "",
|
||||
"message": "Kio estos sinkronigita kiam mi elektas \"sinkronigi\" kiel stokotipo?",
|
||||
"description": "What will be synchronized when I select »sync« as storage type?"
|
||||
},
|
||||
"helpBrowserCompatibilityTitle": {
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Insigno pri mankantaj resursoj",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"extensionDescription": {
|
||||
"message": "Le protege contra el rastreo de CDN (Redes de entrega de contenido) mediante la redirección a recursos locales.",
|
||||
"message": "Protege contra el rastreo a través de CDN (Redes de entrega de contenido) mediante la redirección a recursos locales.",
|
||||
"description": "Protects you against tracking through CDNs (Content Delivery Networks) by redirecting to local resources."
|
||||
},
|
||||
"amountInjectedDescription": {
|
||||
|
@ -159,6 +159,10 @@
|
|||
"message": "Último año",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "Todo",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Eliminar",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Icono en recursos que faltan",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Credencial del recurso ausente o bloqueado",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Bloqueado",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Desaparecido",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Permiso retirado",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Accede a tus datos para todos los sitios web",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Por favor, no deshabilites el permiso. LocalCDN necesita el permiso para detectar y redirigir las solicitudes a CDN.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "¿Por qué necesita esta extensión este permiso?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN necesita saber qué peticiones crea una página web para redirigirlas o bloquearlas. Con la introducción de MV3, este permiso aparece como opcional.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Falta el permiso",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Permitir",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Más información",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Viimane aasta",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Kustuta",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Iaz",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Ezabatu",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Ikonoa falta diren baliabideetan",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Baliabidearen kredentziala ez dago edo blokeatuta dago",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Blokeatuta",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Ez dago",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Baimena erretiratuta",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Sartu zure webgune guztietarako datuetan",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Mesedez, ez desgaitu baimena. LocalCDN-k baimena behar du eskaerak detektatzeko eta CDN-ra bideratzeko.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Zergatik behar du hedapen honek baimen hau?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN-k jakin behar du weborri batek zer eskaera sortzen dituen horiek bideratzeko edo blokeatzeko. MV3-rekin, baimen hau aukerakoa da.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Baimena falta da",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Baimendu",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Informazio gehiago",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Viime vuosi",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Poista",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Puuttuvan resurssin kuvake",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Puuttuva tai estetty resurssimerkki",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Estetty",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Puuttuu",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Käyttöoikeus mitätöity",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Käytä dataasi kaikilta sivustoilta",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Älä poista tätä käyttöoikeutta. LocalCDN tarvitsee sitä pyyntöjen tunnistukseen ja uudelleenohjaukseen jakeluverkoille.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Miksi laajennus tarvitsee tämän käyttöoikeuden?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN:n tarvitsee tietää mitkä pyynnöt ovat verkkosivuston luomia ohjatakseen tai estääksen ne. MV3-rajapintaan siirtymisen seurauksena tämä käyttöoikeus näytetään valinnaisena.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Riittämättömät käyttöoikeudet",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Salli",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Lisätietoja",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "L’année dernière",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Supprimer",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Badge de ressource manquante",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Badge de ressource manquante ou bloquée",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Bloqués",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Manquants",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "שנה שעברה",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "מחיקה",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Prošle godine",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Izbriši",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -192,7 +196,7 @@
|
|||
"description": "Other"
|
||||
},
|
||||
"btnInfo": {
|
||||
"message": "Podaci",
|
||||
"message": "Informacije",
|
||||
"description": "Info"
|
||||
},
|
||||
"headerStorageType": {
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Nedostaje značka resursa",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Nedostajuća ili blokirana značka resursa",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Blokirano",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Nedostaje",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Múlt év",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Törlés",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -284,55 +288,55 @@
|
|||
"description": "Some websites look strange or are not easy to use"
|
||||
},
|
||||
"helpBlockGoogleFontsTitle": {
|
||||
"message": "",
|
||||
"message": "Miért van »Google Betűtipusok blokkolása « opció?",
|
||||
"description": "Why is there a »Block Google Fonts« option?"
|
||||
},
|
||||
"helpStatisticsTitle": {
|
||||
"message": "",
|
||||
"message": "Mi van a statisztikákkal? Van ami elküldődik bármilyen szerverre?",
|
||||
"description": "What about the statistics? Is anything transferred to any servers?"
|
||||
},
|
||||
"helpWhatWillBeSynchronizedTitle": {
|
||||
"message": "",
|
||||
"message": "Mi lesz szinkronizálva, ha a »Szinkronizálás« opciót választom tárhely típusnak?",
|
||||
"description": "What will be synchronized when I select »sync« as storage type?"
|
||||
},
|
||||
"helpBrowserCompatibilityTitle": {
|
||||
"message": "",
|
||||
"message": "Böngésző kompatibilitás",
|
||||
"description": "Browser compatibility"
|
||||
},
|
||||
"helpIntroductionDescription": {
|
||||
"message": "",
|
||||
"message": "A LocalCDN egy webböngésző kiegészítő, ami utánozza tartalom kiszolgálói hálózatokat, hogy jobbá tegye az online magánszférát. Felfogja a forgalmat, és megtalálja a támogatott keresztrendszereket/könyvtárakat helyileg, és beinjektálja ezeket a weboldalba. Nyugodtan használd a következő tesztelő eszközt, hogy kiderüljön tényleg védett vagy. Több információért olvasd el a tutorialt, vagy a Wiki oldalainkat.",
|
||||
"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": "",
|
||||
"message": "Tesztelőeszköz",
|
||||
"description": "Testing utility"
|
||||
},
|
||||
"helpLinkTutorial": {
|
||||
"message": "",
|
||||
"message": "Bemutató",
|
||||
"description": "Tutorial"
|
||||
},
|
||||
"helpLinkWikiPages": {
|
||||
"message": "",
|
||||
"message": "Wiki oldalak",
|
||||
"description": "Wiki pages"
|
||||
},
|
||||
"helpHtmlFilterDescription": {
|
||||
"message": "",
|
||||
"message": "A legtöbb esetben LocalCDN egyszerűen helyettesíti a beágyazott keretrendszereket, és jobbá teszi a magánszférát. Más esetekben a weboldal megpróbálhatja megakadályozni ezt a HTML forráskódban levő bizonyos opciókkal. LocalCDN beolvassa a HTML forráskódot mielőtt megjelenik a böngészőben, és eltávolítja ezeket a részeket (piros).",
|
||||
"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": "",
|
||||
"message": "A HTML filter ami letörli a pirosbkaraktereket mint ebben a bemutatóban:",
|
||||
"description": "The HTML filter removes the red characters from this example:"
|
||||
},
|
||||
"helpHtmlFilterAfter": {
|
||||
"message": "",
|
||||
"message": "Így fog ki nézni:",
|
||||
"description": "The result then looks like this:"
|
||||
},
|
||||
"helpHtmlFilterWhyTitle": {
|
||||
"message": "",
|
||||
"message": "Miért szükséges eltávolítani a kereszteredtű- és sérthetetlenségtulajdonságokat?",
|
||||
"description": "Why is it necessary to remove crossorigin and integrity attributes?"
|
||||
},
|
||||
"helpHtmlFilterCrossorigin": {
|
||||
"message": "",
|
||||
"message": "A kereszteredetű tulajdonság megakadályozza a helyettesítést, mert a címzett nem egyezett a kérttel.",
|
||||
"description": "The crossorigin attribute prevents the replacement because the destination does not match the requested one."
|
||||
},
|
||||
"helpHtmlFilterIntegrity": {
|
||||
|
@ -348,7 +352,7 @@
|
|||
"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": "",
|
||||
"message": "Csak uBlock Origin:",
|
||||
"description": "Only uBlock Origin:"
|
||||
},
|
||||
"helpRuleGeneratorUblockDescription": {
|
||||
|
@ -356,11 +360,11 @@
|
|||
"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": "",
|
||||
"message": "Ikon",
|
||||
"description": "Icon"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableMode": {
|
||||
"message": "",
|
||||
"message": "Mód",
|
||||
"description": "Mode"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableUseful": {
|
||||
|
@ -368,15 +372,15 @@
|
|||
"description": "Rules useful"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableDefaultEasy": {
|
||||
"message": "",
|
||||
"message": "Alapértelmezett/Könnyű",
|
||||
"description": "Default/Easy"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableMedium": {
|
||||
"message": "",
|
||||
"message": "Közepes",
|
||||
"description": "Medium"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableHard": {
|
||||
"message": "",
|
||||
"message": "Nehéz",
|
||||
"description": "Hard"
|
||||
},
|
||||
"helpWebsiteIssuesDescription": {
|
||||
|
@ -396,7 +400,7 @@
|
|||
"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": "",
|
||||
"message": "Honnan tudom, hogy igaz?",
|
||||
"description": "How do I know that‘s true?"
|
||||
},
|
||||
"helpStatisticsTruthDescription": {
|
||||
|
@ -404,7 +408,7 @@
|
|||
"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": "",
|
||||
"message": "Mi lesz szinkronizálva, ha kiválsztom a »sync« tároló tipúsnak?",
|
||||
"description": "What will be synchronized when I select »sync« as storage type?"
|
||||
},
|
||||
"helpSyncDescription": {
|
||||
|
@ -416,71 +420,111 @@
|
|||
"description": "If you don‘t 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": "Dolgok amik soha nem lesznek szinkronizálva:",
|
||||
"description": "Things that are never synchronized:"
|
||||
},
|
||||
"helpNumberOfInjections": {
|
||||
"message": "",
|
||||
"message": "Injekciók száma",
|
||||
"description": "Numbers of injections"
|
||||
},
|
||||
"helpYes": {
|
||||
"message": "",
|
||||
"message": "Igen",
|
||||
"description": "Yes"
|
||||
},
|
||||
"helpNo": {
|
||||
"message": "",
|
||||
"message": "Nem",
|
||||
"description": "No"
|
||||
},
|
||||
"helpData": {
|
||||
"message": "",
|
||||
"message": "Adat",
|
||||
"description": "Data"
|
||||
},
|
||||
"helpSyncContentEver": {
|
||||
"message": "",
|
||||
"message": "Beállítások amik szinkronizálva lesznek:",
|
||||
"description": "Settings that will be synchronized:"
|
||||
},
|
||||
"helpIcons": {
|
||||
"message": "",
|
||||
"message": "Alapértelmezett, Világos, Kék/Szürke",
|
||||
"description": "Default, Light, Blue/Grey"
|
||||
},
|
||||
"helpSyncContentLinks": {
|
||||
"message": "",
|
||||
"message": "Meg több információ Firefox Sync-ről:",
|
||||
"description": "More information about Firefox Sync:"
|
||||
},
|
||||
"helpBrowserCompatibility": {
|
||||
"message": "",
|
||||
"message": "Böngésző kompatibilitás",
|
||||
"description": "Browser compatibility"
|
||||
},
|
||||
"helpReplace": {
|
||||
"message": "",
|
||||
"message": "Helyettesítsd",
|
||||
"description": "Replace"
|
||||
},
|
||||
"helpReplaceOther": {
|
||||
"message": "",
|
||||
"message": "Helyettesíts más erőforrásokat",
|
||||
"description": "Replace other resources"
|
||||
},
|
||||
"helpUpgradeAllResources": {
|
||||
"message": "",
|
||||
"message": "Frissítsd az összes erőforrást",
|
||||
"description": "Upgrade all resources"
|
||||
},
|
||||
"helpExplanationChrome": {
|
||||
"message": "",
|
||||
"message": "Összes Chromium-alapú böngésző",
|
||||
"description": "All Chromium based Browser"
|
||||
},
|
||||
"helpLimitation": {
|
||||
"message": "",
|
||||
"message": "Ez nem a LocalCDN korlátozása hanem, a Chromium-alapú böngészőknek egy hiányzó API támogatása.",
|
||||
"description": "This is not a limitation of LocalCDN, but missing API support of Chromium based browsers."
|
||||
},
|
||||
"titleBadgeDefault": {
|
||||
"message": "",
|
||||
"message": "Alapértelmezett jelvény",
|
||||
"description": "Default badge"
|
||||
},
|
||||
"titleBadgeHTMLFilter": {
|
||||
"message": "",
|
||||
"message": "HTML szűrő jelvény",
|
||||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Hiányzó erőforrás jelvény",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Tahun lalu",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "Semua",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Hapus",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Kehilangan lencana sumber daya",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Lecana sumber daya hilang atau diblokir",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Diblokir",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Hilang",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Perizinan ditolak",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Akses semua data Anda untuk semua situs web",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Jangan nonaktifkan izinnya. LocalCDN memerlukan izin untuk mendeteksi dan mengalihkan permintaan ke CDN.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Mengapa ekstensi ini memerlukan izin ini?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN perlu tahu permintaan mana yang dibuat oleh sebuah situs web untuk mengalihkan atau memblokirnya. Dengan adanya MV3, perizinan ini diterapkan sebagai izin opsional.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Izin belum ada",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Perbolehkan",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Info lebih lanjut",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Ultimo anno",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Elimina",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Badge risorse mancanti",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Badge risorse mancanti o bloccate",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Bloccate",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Mancanti",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Autorizzazione revocata",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Non disabilitare l'autorizzazione. LocalCDN ha bisogno dell'autorizzazione per rilevare e reindirizzare le richieste a CDNs.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Perche questa estensione necessita di questa autorizzazione?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN ha bisogno di sapere quali richieste sono create da un sito web per reindirizzarle o bloccarle. Con l'introduzione di MV3, questa autorizzazione è elencata come facoltativa.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Autorizzazione mancante",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Consenti",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Più informazioni",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "昨年",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "すべて",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "削除",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -324,7 +328,7 @@
|
|||
"description": "The HTML filter removes the red characters from this example:"
|
||||
},
|
||||
"helpHtmlFilterAfter": {
|
||||
"message": "するとソースコードは次のようになります:",
|
||||
"message": "削除後のソースコードは次のようになります:",
|
||||
"description": "The result then looks like this:"
|
||||
},
|
||||
"helpHtmlFilterWhyTitle": {
|
||||
|
@ -336,7 +340,7 @@
|
|||
"description": "The crossorigin attribute prevents the replacement because the destination does not match the requested one."
|
||||
},
|
||||
"helpHtmlFilterIntegrity": {
|
||||
"message": "ディスク容量を最小限に抑えながらもより多くのフレームワークを配信できるようにするため、LocalCDNではフレームワークのアップグレードをしています。整合性タグとは、ファイルのハッシュ値のことです。これのチェックが失敗すると、ブラウザはフレームワークを使用してくれません。例えばjQuery 1.10.1とjQuery 1.12.4はハッシュ値が異なるため、整合性チェックは失敗します。",
|
||||
"message": "また、ディスク容量を最小限に抑えながらより多くのフレームワークを配信できるようにするため、LocalCDNではフレームワークのアップグレードをしています。integrity属性にはファイルのハッシュ値が記述されています。これの整合性チェックが失敗すると、ブラウザはフレームワークを使用してくれません。例えばjQuery 1.10.1とjQuery 1.12.4ではハッシュ値が異なるため、整合性チェックが失敗してしまいます。",
|
||||
"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 won‘t 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": {
|
||||
|
@ -380,7 +384,7 @@
|
|||
"description": "Hard"
|
||||
},
|
||||
"helpWebsiteIssuesDescription": {
|
||||
"message": "原因は2つ考えられます: LocalCDNが(まだ)提供していないフレームワーク/ライブラリが含まれているからか、もしくはSOPを必要としているからです。SOP(Same Origin Policy)とは、データをブラウザが読み込んでも良いかどうかを決定するセキュリティメカニズムのことです。これにより悪意のあるファイルを隔離することで、攻撃される可能性を減らすことができます。ですがこのポリシーはLocalCDNが外部のフレームワークを読み込むことを妨げてしまいます。残念ながら、現時点ではこの問題に対する解決策はありません。",
|
||||
"message": "原因は2つ考えられます: LocalCDNが(まだ)提供していないフレームワーク/ライブラリが含まれているからか、もしくはSOPを必要としているからです。SOP(Same Origin Policy)とは、データをブラウザが読み込んでも良いかどうかを決定するセキュリティメカニズムのことです。これにより悪意のあるファイルを隔離することで、攻撃される可能性を減らすことができます。ですが、このポリシーはLocalCDNが外部のフレームワークを読み込むことを妨げてしまいます。残念ながら、現時点ではこの問題に対する解決策はありません。",
|
||||
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesn‘t (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": {
|
||||
|
@ -388,7 +392,7 @@
|
|||
"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 don‘t want this, you can block »Google Fonts« on LocalCDN."
|
||||
},
|
||||
"helpStatisticsDescription": {
|
||||
"message": "心配ご無用、データが送信されるようなことはありません。それは私のすべての原則に反します。統計情報(JSON形式)には次のような情報が含まれています: 日付、CDN+使用回数、フレームワーク+使用回数、たったそれだけです。以下がその例になります:",
|
||||
"message": "ご安心ください。データが外部に送信されるようなことはありません。そのような行為は私のすべての理念に反しています。統計情報(JSON形式)には、日付、CDNとその使用回数、フレームワークとその使用回数のみが含まれます。以下がその例です:",
|
||||
"description": "Don‘t 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. That‘s all. I‘ve an example here:"
|
||||
},
|
||||
"helpStatisticsContent": {
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "リソース不足時のバッジ",
|
||||
"description": "Missing resource badge"
|
||||
"message": "リソース不足・ブロック時のバッジ",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "ブロック済み",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "不足",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "権限が拒否されました",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "すべてのウェブサイトの保存されたデータへのアクセス",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "権限は無効にしないでください。LocalCDNがCDNへのリクエストを検出してリダイレクトするにはこの権限が必要です。",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "なぜこの拡張機能はこの権限が必要なのですか?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDNはリクエストをリダイレクトまたはブロックするために、ウェブサイトが発するリクエストを知る必要があります。MV3の導入により、この権限はオプションの権限として記載されています。",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "権限の不足",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "許可",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "詳細",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "ಕಳೆದ ವರ್ಷ",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "ಅಳಿಸಿ",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "작년",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "삭제",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "누락된 리소스 배지",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"extensionDescription": {
|
||||
"message": "Schützt virun Tracking duerch \"gratis\" Content Delivery Networks.",
|
||||
"message": "Protects you against tracking through CDNs (Content Delivery Networks) by redirecting to local resources.",
|
||||
"description": "Protects you against tracking through CDNs (Content Delivery Networks) by redirecting to local resources."
|
||||
},
|
||||
"amountInjectedDescription": {
|
||||
|
@ -32,7 +32,7 @@
|
|||
"description": "Disable prefetch title"
|
||||
},
|
||||
"disablePrefetchDescription": {
|
||||
"message": "Verhënnert, dass onerlaabten Ressourcen entgéint den aneren Astellungen trotzdeem ugefuerdert\/erofgeluede ginn.",
|
||||
"message": "Verhënnert, dass onerlaabten Ressourcen entgéint den aneren Astellungen trotzdeem ugefuerdert/erofgeluede ginn.",
|
||||
"description": "Disable prefetch description."
|
||||
},
|
||||
"stripMetadataTitle": {
|
||||
|
@ -159,6 +159,10 @@
|
|||
"message": "",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Praeitus Metus",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Ištrinti",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Trūksta ištekliaus ženklelio",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Trūksta arba užblokuotas ištekliaus ženklelio/-is",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Užblokuota",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Nerasta",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Leidimai atsiimti",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Pasiekite visus savo duomenis, visuose tinklapiuose",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Prašome neuždrausti šio leidimo. „LocalCDN“ reikalauja jo, kad aptiktų ir peradresuotų užklausas į „CDN'us“.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Kodėl šiam plėtiniui reikia šio leidimo?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "„LocalCDN“ reikia žinoti, kurie tinklapio prašymai reikalajaumi, kad peradresuotų ar blokuotų jį. Su „MV3“, šis leidimas yra žymimas, kaip pasirinktinis.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Trūksta leidimo",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Leisti",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Daugiau informacijos",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "കഴിഞ്ഞ വർഷം",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "ഇല്ലാതാക്കുക",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Siste år",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Slett",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Manglende ressurs-tellermerke",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Manglende/blokkert ressurs-tellermerke",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Blokkert",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Manglende",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Manglende tillatelse",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Tillat",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Mer info",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Afgelopen jaar",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Verwijderen",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "ontbrekende middelen icoon",
|
||||
"description": "Missing resource badge"
|
||||
"message": "ontbrekende of geblokkeerde middelen icoon",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Geblokkeerd",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Ontbreekt",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Ostatni rok",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Usuń",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Plakietka brakującego zasobu",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Zablokowane",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Brakujące",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Ano passado",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Apagar",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Emblema de recurso ausente",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Ícone de recurso ausente ou bloqueado",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Bloqueado",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Ausente",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Permissão revogada",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Acede os seus dados em todos os sites",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Por favor, não desative a permissão. O LocalCDN precisa dessa permissão para detetar e redirecionar os pedidos para os CDNs.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Por que esta extensão precisa dessa permissão?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "O LocalCDN precisa saber quais pedidos são criados por um site para bloqueá-lo ou redirecioná-lo. Com a introdução do MV3, essa permissão é mostrada como opcional.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Permissão ausente",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Permitir",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Mais informações",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Ano passado",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Excluir",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Ícone de recursos ausentes",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Ícone de recurso ausente ou bloqueado",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Bloqueado",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Ausente",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Permissão revogada",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Acesse seus dados em todos os sites",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Por favor, não desative a permissão. O LocalCDN precisa dessa permissão para detectar e redirecionar os pedidos para os CDNs.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Por que esta extensão precisa dessa permissão?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "O LocalCDN precisa saber quais pedidos são criados por um site para bloqueá-lo ou redirecioná-lo. Com a introdução do MV3, essa permissão é mostrada como opcional.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Permissão ausente",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Permitir",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Mais informações",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Último ano",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Eliminar",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Contador de recursos em falta",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Anul trecut",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Ștergeți",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Insignă lipsă resursă",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "За год",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Очистить",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Значок отсутствующих ресурсов",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Значок отсутствующих или заблокированных ресурсов",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Заблокировано",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Отсутствует",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Отменять разрешение",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Доступ к данным для всех веб-сайтов",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Пожалуйста, не отключайте это разрешение. LocalCDN необходимо разрешение для обнаружения и перенаправления запросов к CDN.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Зачем расширению нужно это разрешение?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN должен знать, какие запросы создает тот или иной сайт, чтобы перенаправить или блокировать его. С введением MV3 это разрешение включено в список опциональных.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Отсутствующее разрешение",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Разрешение",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Дополнительная информация",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Posledný rok",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Vymazať",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -256,11 +260,11 @@
|
|||
"description": "beta"
|
||||
},
|
||||
"changeBadgeColorMissingResourcesTitle": {
|
||||
"message": "",
|
||||
"message": "Označenie chýbajúcich zdrojov na ikone",
|
||||
"description": "Indicate missing resources on the icon"
|
||||
},
|
||||
"changeBadgeColorMissingResourcesDescription": {
|
||||
"message": "",
|
||||
"message": "Zmena farby odznaku, ak chýbajú zdroje.",
|
||||
"description": "Change the badge color if resources are missing."
|
||||
},
|
||||
"titleHelp": {
|
||||
|
@ -272,7 +276,7 @@
|
|||
"description": "Introduction"
|
||||
},
|
||||
"helpHtmlFilterTitle": {
|
||||
"message": "",
|
||||
"message": "Čo je to »HTML filter«?",
|
||||
"description": "What is »HTML filter«?"
|
||||
},
|
||||
"helpRuleGeneratorTitle": {
|
||||
|
@ -280,11 +284,11 @@
|
|||
"description": "Rule generator"
|
||||
},
|
||||
"helpWebsiteIssuesTitle": {
|
||||
"message": "",
|
||||
"message": "Niektoré stránky vyzerajú divne alebo sa ťažko používajú",
|
||||
"description": "Some websites look strange or are not easy to use"
|
||||
},
|
||||
"helpBlockGoogleFontsTitle": {
|
||||
"message": "",
|
||||
"message": "Prečo existuje možnosť \"Blokovať písma Google\"?",
|
||||
"description": "Why is there a »Block Google Fonts« option?"
|
||||
},
|
||||
"helpStatisticsTitle": {
|
||||
|
@ -292,7 +296,7 @@
|
|||
"description": "What about the statistics? Is anything transferred to any servers?"
|
||||
},
|
||||
"helpWhatWillBeSynchronizedTitle": {
|
||||
"message": "",
|
||||
"message": "Čo bude synchronizované ak vyberiem »sync« ako typ úložiska?",
|
||||
"description": "What will be synchronized when I select »sync« as storage type?"
|
||||
},
|
||||
"helpBrowserCompatibilityTitle": {
|
||||
|
@ -300,7 +304,7 @@
|
|||
"description": "Browser compatibility"
|
||||
},
|
||||
"helpIntroductionDescription": {
|
||||
"message": "",
|
||||
"message": "LocalCDN je rozšírenie webového prehliadača, ktoré emuluje siete na doručovanie obsahu s cieľom zlepšiť vaše súkromie online. Zachytáva prevádzku, lokálne vyhľadáva podporované rámce/knižnice a vkladá ich do webovej stránky. Neváhajte a použite nasledujúci testovací nástroj, aby ste zistili, či ste správne chránení. Ďalšie informácie nájdete v návode alebo na našich stránkach Wiki.",
|
||||
"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": {
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Förra året",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Radera",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -284,11 +288,11 @@
|
|||
"description": "Some websites look strange or are not easy to use"
|
||||
},
|
||||
"helpBlockGoogleFontsTitle": {
|
||||
"message": "",
|
||||
"message": "Varför finns det ett »Block Google Fonts« alternativ?",
|
||||
"description": "Why is there a »Block Google Fonts« option?"
|
||||
},
|
||||
"helpStatisticsTitle": {
|
||||
"message": "",
|
||||
"message": "Hur är det kring statistik? Är det något som förflyttas till någon server?",
|
||||
"description": "What about the statistics? Is anything transferred to any servers?"
|
||||
},
|
||||
"helpWhatWillBeSynchronizedTitle": {
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,530 @@
|
|||
{
|
||||
"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": "",
|
||||
"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. It’s 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."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"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 won‘t 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 doesn‘t (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 don‘t want this, you can block »Google Fonts« on LocalCDN."
|
||||
},
|
||||
"helpStatisticsDescription": {
|
||||
"message": "",
|
||||
"description": "Don‘t 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. That‘s all. I‘ve 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 that‘s 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 don‘t 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 or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
|
@ -159,6 +159,10 @@
|
|||
"message": "",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -481,6 +485,46 @@
|
|||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Geçen yıl",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "Tümü",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Sil",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Eksik kaynak rozeti",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Eksik veya engellenen kaynak rozeti",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Engellendi",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Eksik",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "İzin iptal edildi",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Tüm web siteleri için verilerinize erişim",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Lütfen izni devre dışı bırakmayın. LocalCDN, istekleri algılamak ve CDN'lere yönlendirmek için izne ihtiyaç duyar.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Bu uzantı neden bu izne ihtiyaç duyuyor?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN, yönlendirmek veya engellemek için bir web sitesi tarafından hangi isteklerin oluşturulduğunu bilmelidir. MV3'ün gelmesiyle birlikte bu izin isteğe bağlı bir izin olarak listelendi.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Eksik izin",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "İzin ver",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Daha fazla bilgi",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "Останнього року",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Видалити",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Значок відсутніх ресурсів",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Значок відсутнього або заблокованого ресурсу",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Заблоковано",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Відсутній",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Дозвіл відкликано",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Доступ до ваших даних для всіх вебсайтів",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Будь ласка, не вимикайте цей дозвіл. LocalCDN потрібен цей дозвіл, щоб виявляти і перенаправляти запити на CDN.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Навіщо цьому розширенню потрібен цей дозвіл?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN має знати, які запити створює вебсайт, щоб перенаправляти або блокувати їх. З впровадженням MV3 цей дозвіл вказано як необов'язковий.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Відсутній дозвіл",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Дозволити",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Докладніше",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -80,7 +80,7 @@
|
|||
"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.",
|
||||
"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": {
|
||||
|
@ -159,6 +159,10 @@
|
|||
"message": "Năm ngoái",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "Xoá",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -360,7 +364,7 @@
|
|||
"description": "Icon"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableMode": {
|
||||
"message": "Chế Độ",
|
||||
"message": "Chế độ",
|
||||
"description": "Mode"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableUseful": {
|
||||
|
@ -380,7 +384,7 @@
|
|||
"description": "Hard"
|
||||
},
|
||||
"helpWebsiteIssuesDescription": {
|
||||
"message": "Có hai nguyên nhân có thể xảy ra: Hoặc do framework/thư viện được yêu cầu nhưng LocalCDN chưa phân phối hoặc do SOP. SOP (Viết tắt của từ tiếng Anh \"Same origin policy\" dịch tạm là \"Điều khoản đồng nguồn\") là một cơ chế bảo mật quyết định dữ liệu nào mà trình duyệt được phép tải. Nó giúp cách ly các tài liệu độc hại, từ đó làm giảm thiểu các nguy cơ tấn công có thể xảy ra. Điều khoản này ngăn chặn các trình duyệt tải các framework bên ngoài của LocalCDN. Không may, hiện nay chưa có giải pháp cho vấn đề này.",
|
||||
"message": "Có hai nguyên nhân có thể xảy ra: Do framework/thư viện được yêu cầu nhưng LocalCDN chưa phân phối hoặc do SOP. SOP (Viết tắt của từ tiếng Anh \"Same-origin policy\" tạm dịch là \"Điều khoản cùng nguồn gốc\") là một cơ chế bảo mật quyết định dữ liệu nào mà trình duyệt được phép tải. Nó giúp cách ly các tài liệu độc hại, từ đó làm giảm thiểu các nguy cơ tấn công có thể xảy ra. Điều khoản này ngăn chặn các trình duyệt tải các framework bên ngoài của LocalCDN. Không may, hiện nay chưa có giải pháp cho vấn đề này.",
|
||||
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesn‘t (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": {
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "Biểu tượng cho tài nguyên bị thiếu",
|
||||
"description": "Missing resource badge"
|
||||
"message": "Biểu tượng cho tài nguyên bị thiếu hoặc bị chặn",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "Đã bị chặn",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "Không có sẵn",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "Đã thu hồi quyền",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "Truy cập dữ liệu của bạn cho tất cả website",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "Xin đừng tắt quyền đi. LocalCDN cần có quyền này để tìm thấy và chuyển hướng các yêu cầu tới CDN.",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "Tại sao tiện ích mở rộng này cần quyền này?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN cần biết trang web tạo ra yêu cầu nào để chuyển hướng hoặc chặn nó. Với sự ra đời của MV3, quyền này được liệt kê dưới dạng quyền tùy chọn.",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "Quyền bị thiếu",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "Cho phép",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "Thêm thông tin",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,11 +20,11 @@
|
|||
"description": "Show icon badge description."
|
||||
},
|
||||
"blockMissingTitle": {
|
||||
"message": "阻止缺失资源的请求",
|
||||
"message": "阻止对缺失资源的请求",
|
||||
"description": "Block requests for missing resources title"
|
||||
},
|
||||
"blockMissingDescription": {
|
||||
"message": "如果请求的资源在本地不可用,则取消当前被拦截的请求。",
|
||||
"message": "如果所需的资源在本地不可用,则取消拦截的请求。",
|
||||
"description": "Block requests for missing resources description."
|
||||
},
|
||||
"disablePrefetchTitle": {
|
||||
|
@ -112,7 +112,7 @@
|
|||
"description": "Do not apply HTML filter to these domains:"
|
||||
},
|
||||
"htmlFilterDomainsDescription": {
|
||||
"message": "输入 HTML 过滤器要处理或忽略的域名,每行一个。",
|
||||
"message": "输入要由 HTML 过滤器处理或忽略处理的域名,一行一个。",
|
||||
"description": "Enter the domains to be handled or ignored by the HTML filter. One entry per line."
|
||||
},
|
||||
"htmlFilterDomainsTitleInclude": {
|
||||
|
@ -128,7 +128,7 @@
|
|||
"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": "选择一个此扩展程序的图标",
|
||||
"message": "选择扩展程序的图标",
|
||||
"description": "Choose an icon for this extension"
|
||||
},
|
||||
"internalStatisticsTitle": {
|
||||
|
@ -159,6 +159,10 @@
|
|||
"message": "去年",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "全部",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "删除",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -176,7 +180,7 @@
|
|||
"description": "Are you sure you want to delete all the statistics?"
|
||||
},
|
||||
"labelDomainsAllowlistGoogleFonts": {
|
||||
"message": "允许以下域名加载 Google Fonts,每行一个。",
|
||||
"message": "允许以下域名加载 Google Fonts,一行一个。",
|
||||
"description": "These domains are allowed to load Google Fonts. One entry per line."
|
||||
},
|
||||
"btnGeneral": {
|
||||
|
@ -272,7 +276,7 @@
|
|||
"description": "Introduction"
|
||||
},
|
||||
"helpHtmlFilterTitle": {
|
||||
"message": "什么是 »HTML 过滤器«?",
|
||||
"message": "什么是 »HTML 过滤器«?",
|
||||
"description": "What is »HTML filter«?"
|
||||
},
|
||||
"helpRuleGeneratorTitle": {
|
||||
|
@ -300,7 +304,7 @@
|
|||
"description": "Browser compatibility"
|
||||
},
|
||||
"helpIntroductionDescription": {
|
||||
"message": "LocalCDN 是一个 web 浏览器扩展,模拟内容交付网络,以改善您的在线隐私。它拦截流量,在本地找到支持的框架/库,并将它们注入网站。请随意使用下面的测试实用程序来确定您是否得到了适当的保护。欲了解更多信息,请阅读教程或我们的维基页面。",
|
||||
"message": "LocalCDN 是一个用于本地模拟内容交付网络(CDN)的网页浏览器扩展,可以改善您的在线隐私。它能够拦截请求,找出本地支持的框架/库,并将它们注入网站,从而避免向内容交付网络发出请求。请随意使用下面的测试实用程序来确定您是否真正得到保护。欲了解更多信息,请阅读教程,或浏览我们的维基页面。",
|
||||
"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": {
|
||||
|
@ -328,15 +332,15 @@
|
|||
"description": "The result then looks like this:"
|
||||
},
|
||||
"helpHtmlFilterWhyTitle": {
|
||||
"message": "为何必需删除交叉起源和完整性属性?",
|
||||
"message": "为何必须删除 crossorigin 和 integrity 这两个属性?",
|
||||
"description": "Why is it necessary to remove crossorigin and integrity attributes?"
|
||||
},
|
||||
"helpHtmlFilterCrossorigin": {
|
||||
"message": "crossorigin 属性阻止替换,因为目标与请求的目标不匹配。",
|
||||
"message": "crossorigin 属性会阻止替换请求,因为被替换请求的目标来源(origin)与原始请求的目标来源不匹配。",
|
||||
"description": "The crossorigin attribute prevents the replacement because the destination does not match the requested one."
|
||||
},
|
||||
"helpHtmlFilterIntegrity": {
|
||||
"message": "为了节省磁盘空间和交付更多的框架,LocalCDN 升级了一个框架。完整性标记是文件的散列值。如果检查失败,浏览器将不包含框架。完整性检查将失败,因为例如 jQuery 1.10.1和 jQuery 1.12.4的散列值是不同的。",
|
||||
"message": "为了节省磁盘空间,交付更多的框架,LocalCDN 会使用更新版本的框架来代替略旧版本的相同框架。完整性标记是文件的哈希值(hash),正常情况下,只有两个文件完全相同,它们的哈希值才会相同。如果框架的完整性检查失败,浏览器将拒绝包含框架。综合上述情况,完整性检查的确会失败,因为例如 jQuery 1.10.1 和 jQuery 1.12.4 的哈希值是不同的。",
|
||||
"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 won‘t 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": {
|
||||
|
@ -380,7 +384,7 @@
|
|||
"description": "Hard"
|
||||
},
|
||||
"helpWebsiteIssuesDescription": {
|
||||
"message": "有两个可能的原因:要么是需要一个框架/库,但 LocalCDN (还)没有交付,要么是一个 SOP 。SOP (同源策略)是一种安全机制,它决定了浏览器允许加载哪些数据。它有助于隔离恶意文档,从而减少可能的攻击向量。此策略阻止浏览器加载其外部框架。不幸的是,目前没有解决办法。",
|
||||
"message": "有两个可能的原因:要么是 LocalCDN(还)没有包含某个需要的框架或库,要么是被 SOP(同源策略)屏蔽了。同源策略是一种用于确定浏览器可以加载哪些数据的安全机制。它有助于隔离恶意文档,从而减少可能的攻击向量。此策略会阻止浏览器从 LocalCDN 加载其外部框架。不幸的是,目前对此还没有解决办法。",
|
||||
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesn‘t (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": {
|
||||
|
@ -404,7 +408,7 @@
|
|||
"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": "有哪些东西会被同步,当我选择 »同步« 作为存储类型?",
|
||||
"message": "当我选择 »同步« 作为存储类型时,有哪些东西会被同步?",
|
||||
"description": "What will be synchronized when I select »sync« as storage type?"
|
||||
},
|
||||
"helpSyncDescription": {
|
||||
|
@ -480,7 +484,47 @@
|
|||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "缺失资源的徽章",
|
||||
"description": "Missing resource badge"
|
||||
"message": "缺失或被禁用的资源的标记",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "被禁用的",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "缺失的",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "已撤消权限",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "访问所有网站的数据",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "请不要禁用此权限。LocalCDN 需要此权限来检测并重定向到 CDN 的请求。",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "此扩展为何需要这个权限?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN 需要知道哪些请求是由网站所创建以重定向或拦截它。MV3 规范中此权限被列为可选项。",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "缺失权限",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "允许",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "更多信息",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@
|
|||
"message": "去年",
|
||||
"description": "Statistics view for past year."
|
||||
},
|
||||
"labelAll": {
|
||||
"message": "全部",
|
||||
"description": "Statistics view over the whole time range"
|
||||
},
|
||||
"labelDelete": {
|
||||
"message": "刪除",
|
||||
"description": "Button to delete all statistics data."
|
||||
|
@ -256,11 +260,11 @@
|
|||
"description": "beta"
|
||||
},
|
||||
"changeBadgeColorMissingResourcesTitle": {
|
||||
"message": "用圖示表明資源缺失",
|
||||
"message": "用圖標表示缺失資源",
|
||||
"description": "Indicate missing resources on the icon"
|
||||
},
|
||||
"changeBadgeColorMissingResourcesDescription": {
|
||||
"message": "若資源缺失則改變圖章顏色。",
|
||||
"message": "若缺失資源則改變圖章顏色。",
|
||||
"description": "Change the badge color if resources are missing."
|
||||
},
|
||||
"titleHelp": {
|
||||
|
@ -296,11 +300,11 @@
|
|||
"description": "What will be synchronized when I select »sync« as storage type?"
|
||||
},
|
||||
"helpBrowserCompatibilityTitle": {
|
||||
"message": "瀏覽器相容性",
|
||||
"message": "瀏覽器兼容性",
|
||||
"description": "Browser compatibility"
|
||||
},
|
||||
"helpIntroductionDescription": {
|
||||
"message": "LocalCDN 是一個模仿內容傳遞網路來進一步保障您隱私的瀏覽器附加元件。他將會攔截流量,在本機尋找支援的框架/資料庫,並將其注入網站。",
|
||||
"message": "LocalCDN 是一款會以模仿內容分發網絡的方式,進一步保障您隱私的擴充功能。它將會攔截流量,以本機支援的框架/程式庫注入網站取以代之。您可以使用以下測試工具檢查您是否已受到適當的保護。欲知詳情,請瀏覽教程或 Wiki 頁面。",
|
||||
"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": {
|
||||
|
@ -316,7 +320,7 @@
|
|||
"description": "Wiki pages"
|
||||
},
|
||||
"helpHtmlFilterDescription": {
|
||||
"message": "在大多數情況下,LocalCDN 可以輕鬆替換嵌入式框架並提高隱私性。 在某些情況下,網站可能會嘗試通過在 HTML 源代碼中設置某些選項來防止這種情況發生。 LocalCDN 在 HTML 源代碼顯示在瀏覽器中之前讀取它並刪除這些部分(紅色)。",
|
||||
"message": "在大多數情況下,LocalCDN 可以輕鬆替換嵌入式框架並保護隱私。 在某些情況下,網站可能會嘗試通過在 HTML 源始碼中設置某些選項來防止這種情況發生。 LocalCDN 會在瀏覽器中顯示 HTML 源始碼之前讀取並刪除這些部分(紅色)。",
|
||||
"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": {
|
||||
|
@ -332,15 +336,15 @@
|
|||
"description": "Why is it necessary to remove crossorigin and integrity attributes?"
|
||||
},
|
||||
"helpHtmlFilterCrossorigin": {
|
||||
"message": "",
|
||||
"message": "crossorigin 屬性阻止替換,因爲目標與請求的目標不匹配。",
|
||||
"description": "The crossorigin attribute prevents the replacement because the destination does not match the requested one."
|
||||
},
|
||||
"helpHtmlFilterIntegrity": {
|
||||
"message": "",
|
||||
"message": "為了節省磁碟空間並分發更多框架,LocalCDN 會升級取代相容的舊框架。如果瀏覽器完整性檢查失敗,將不會使用框架。檔案的完整性以雜湊值標記,而框架升級後,完整性檢查將會失敗,如 jQuery 1.10.1 和 jQuery 1.12.4 兩者的雜湊值是不同的。",
|
||||
"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 won‘t 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,11 +356,11 @@
|
|||
"description": "Only uBlock Origin:"
|
||||
},
|
||||
"helpRuleGeneratorUblockDescription": {
|
||||
"message": "",
|
||||
"message": "這些規則只適用於 »Medium« 或 »Hard« 模式,因為它們會阻擋所有第三方資源。在 »Default«、»Easy« 或 »Very-easy« 模式下則不是必需的。有關更多信息,請瀏覽 uBlock Origin Wiki。",
|
||||
"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": "",
|
||||
"message": "圖示",
|
||||
"description": "Icon"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableMode": {
|
||||
|
@ -364,11 +368,11 @@
|
|||
"description": "Mode"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableUseful": {
|
||||
"message": "",
|
||||
"message": "需要規則",
|
||||
"description": "Rules useful"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableDefaultEasy": {
|
||||
"message": "",
|
||||
"message": "預設/簡易",
|
||||
"description": "Default/Easy"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableMedium": {
|
||||
|
@ -376,71 +380,71 @@
|
|||
"description": "Medium"
|
||||
},
|
||||
"helpRuleGeneratorUblockTableHard": {
|
||||
"message": "",
|
||||
"message": "困難",
|
||||
"description": "Hard"
|
||||
},
|
||||
"helpWebsiteIssuesDescription": {
|
||||
"message": "",
|
||||
"message": "這有兩個可能的原因:因為頁面需要一個LocalCDN尚不支援的函式庫,或是因為同源策略。同源策略(Same origin policy)是一個瀏覽器用來區分資料是否允許被載入的安全機制。同源機制幫助我們區分有害的檔案,藉此減少潛在的攻擊媒介。這個策略會阻止瀏覽器從LocalCDN載入一些外部的框架。不幸的是,目前並沒有針對這個問題的解決方法。",
|
||||
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesn‘t (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 Fonts字體會被載入,因為Google Material Icons與Google Fonts使用同一個域名。如果您不希望如此,您可以使用LocalCDN阻擋Google Fonts。",
|
||||
"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 don‘t want this, you can block »Google Fonts« on LocalCDN."
|
||||
},
|
||||
"helpStatisticsDescription": {
|
||||
"message": "",
|
||||
"message": "無須擔心,我不會傳送任何隱私,不會違背原則。統計數據(JSON格式)僅包含:日期、CDN+使用次數、框架+使用次數。範例:",
|
||||
"description": "Don‘t 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. That‘s all. I‘ve 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": {
|
||||
"message": "",
|
||||
"message": "我要如何查證這説法?",
|
||||
"description": "How do I know that‘s true?"
|
||||
},
|
||||
"helpStatisticsTruthDescription": {
|
||||
"message": "",
|
||||
"message": "Firefox 瀏覽器可直接檢視擴充功能儲存空間。開啟 URL »about:debugging«,切換到 »儲存空間« 並選擇 »擴充套件儲存空間«。在鍵值 »internalStatisticsData« 下便是已收集的資料。只需複製它並放入 JSON PrettyPrinter 中,便可更易閲讀當中的資訊。請注意,您必須刪除首尾的引號及其鍵值。詳細過程可在以下影片中觀看。",
|
||||
"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": "",
|
||||
"message": "選擇 »同步« 儲存類型時,同步了什麼?",
|
||||
"description": "What will be synchronized when I select »sync« as storage type?"
|
||||
},
|
||||
"helpSyncDescription": {
|
||||
"message": "",
|
||||
"message": "只有當您在裝置上使用 Firefox 帳戶登入並在設定中允許擴充套件同步設定同步才會起作用,您控制下的單獨同步伺服器也可以工作,這將在所有裝置上同步 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": "如果您沒有同步帳戶,則不會同步任何內容。在這種情況下,您選擇什麼儲存的類型都沒有區別。",
|
||||
"description": "If you don‘t 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": {
|
||||
"message": "",
|
||||
"message": "資料",
|
||||
"description": "Data"
|
||||
},
|
||||
"helpSyncContentEver": {
|
||||
"message": "",
|
||||
"message": "會被同步的設定:",
|
||||
"description": "Settings that will be synchronized:"
|
||||
},
|
||||
"helpIcons": {
|
||||
"message": "",
|
||||
"message": "預設、淺色、藍色/灰色",
|
||||
"description": "Default, Light, Blue/Grey"
|
||||
},
|
||||
"helpSyncContentLinks": {
|
||||
|
@ -448,7 +452,7 @@
|
|||
"description": "More information about Firefox Sync:"
|
||||
},
|
||||
"helpBrowserCompatibility": {
|
||||
"message": "",
|
||||
"message": "瀏覽器相容性",
|
||||
"description": "Browser compatibility"
|
||||
},
|
||||
"helpReplace": {
|
||||
|
@ -460,27 +464,67 @@
|
|||
"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": {
|
||||
"message": "",
|
||||
"message": "預設標籤",
|
||||
"description": "Default badge"
|
||||
},
|
||||
"titleBadgeHTMLFilter": {
|
||||
"message": "",
|
||||
"message": "HTML 過濾器標籤",
|
||||
"description": "HTML filter badge"
|
||||
},
|
||||
"titleBadgeMissingResource": {
|
||||
"message": "",
|
||||
"description": "Missing resource badge"
|
||||
"message": "資源標籤遺失或被阻止",
|
||||
"description": "Missing or blocked resources badge"
|
||||
},
|
||||
"counterBlocked": {
|
||||
"message": "阻止的",
|
||||
"description": "Blocked"
|
||||
},
|
||||
"counterMissing": {
|
||||
"message": "遺失的",
|
||||
"description": "Missing"
|
||||
},
|
||||
"permissionRevokedHeader": {
|
||||
"message": "權限被撤銷",
|
||||
"description": "Permission revoked"
|
||||
},
|
||||
"permissionRevokedPermissionName": {
|
||||
"message": "存取您在所有網站上的數據",
|
||||
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
|
||||
},
|
||||
"permissionRevokedDescription": {
|
||||
"message": "請勿停用該權限。 LocalCDN 需要該權限偵測請求並將請求重新導向到 CDN 。",
|
||||
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
|
||||
},
|
||||
"helpWhyThisPermission": {
|
||||
"message": "為什麼這個擴充需要這個權限?",
|
||||
"description": "Why does this extension need this permission?"
|
||||
},
|
||||
"helpPermissionDescription": {
|
||||
"message": "LocalCDN 需要知道網站創建了哪些請求來重定向或封鎖它。隨著MV3的引入,該權限被列為可選權限。",
|
||||
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
|
||||
},
|
||||
"permissionMissing": {
|
||||
"message": "缺少權限",
|
||||
"description": "Missing permission"
|
||||
},
|
||||
"permissionAllow": {
|
||||
"message": "允許",
|
||||
"description": "Allow"
|
||||
},
|
||||
"permissionMoreInfo": {
|
||||
"message": "更多資訊",
|
||||
"description": "More info"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,21 +53,40 @@
|
|||
# All files in the directory /resources/
|
||||
#
|
||||
# Exceptions:
|
||||
# /resources/*/note
|
||||
# /resources/google-material-design-icons/google-material-design-icons.css
|
||||
# 1) /resources/google-material-design-icons/google-material-design-icons.css
|
||||
# 2) /resources/google-fonts-placeholder.css
|
||||
# 3) /resources/*/note
|
||||
# 4) /resources/blocked/*
|
||||
# 5) /resources/mathjax/2.7.5/latest.jsm
|
||||
#
|
||||
# =============================================================================
|
||||
# WHY ARE THESE FILES EXCLUDED?
|
||||
# google-material-design-icons.css This is a separate file so that the WOFF2
|
||||
# file in this extension is used and not an
|
||||
# external one.
|
||||
|
||||
# 1) /resources/google-material-design-icons/google-material-design-icons.css
|
||||
# This is a separate file so that the WOFF2 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.
|
||||
# 2) /resources/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.
|
||||
# 3) /resources/*/note
|
||||
# These files contain notes if a file has been renamed.
|
||||
#
|
||||
# 4) /resources/blocked/*
|
||||
# This folder contains files which will be displayed if the direct CDN
|
||||
# call is blocked. (https://codeberg.org/nobody/LocalCDN/issues/1050)
|
||||
#
|
||||
# 5) /resources/mathjax/2.7.5/latest.jsm
|
||||
# This file would request the latest version number of Mathjax from a
|
||||
# CDN API (e.g. https://api.cdnjs.com/libraries/mathjax?fields=version)
|
||||
# Based on this version number, all further resources will be reloaded
|
||||
# from this CDN. The reloading of resources would be intercepted or
|
||||
# prevented by LocalCDN anyway. To prevent requests to the CDN API when
|
||||
# this file will be requested by a website, it has been modified. This
|
||||
# audit script would overwrite my changes or declare them as errors,
|
||||
# so this file is excluded.
|
||||
# (https://codeberg.org/nobody/LocalCDN/issues/1194)
|
||||
# =============================================================================
|
||||
|
||||
|
||||
|
@ -413,12 +432,8 @@ function check_resource() {
|
|||
# CREATE URLs
|
||||
# =============================================================================
|
||||
function create_url() {
|
||||
if [ "$folder" = "angular-stripe-checkout" ]; then
|
||||
url="$JSDELIVR/npm/angular-stripe-checkout@$version/angular-stripe-checkout.min.js"
|
||||
elif [ "$folder" = "ethjs" ]; then
|
||||
if [ "$folder" = "ethjs" ]; then
|
||||
url="$JSDELIVR/npm/ethjs@$version/dist/ethjs.min.js"
|
||||
elif [ "$folder" = "findify-bundle" ]; then
|
||||
url="$JSDELIVR/npm/@findify/bundle@$version/dist/$subfile"
|
||||
elif [ "$folder" = "react-lifecycles-compat" ]; then
|
||||
url="$JSDELIVR/npm/react-lifecycles-compat@$version/react-lifecycles-compat.min.js"
|
||||
elif [ "$folder" = "react-side-effect" ]; then
|
||||
|
@ -523,7 +538,11 @@ function create_url() {
|
|||
if [ "$jfile" = "mdb-ui-kit.min.css" ]; then
|
||||
url="$CLOUDFLARE/$folder/$version/mdb.min.css"
|
||||
elif [ "$jfile" = "mdb-ui-kit.min.js" ]; then
|
||||
url="$CLOUDFLARE/$folder/$version/mdb.min.js"
|
||||
if [ "$version" = "3.11.0" ] || [ "$version" = "4.4.0" ] || [ "$version" = "5.0.0" ] || [ "$version" = "6.4.2" ]; then
|
||||
url="$CLOUDFLARE/$folder/$version/mdb.min.js"
|
||||
else
|
||||
url="$CLOUDFLARE/$folder/$version/mdb.es.min.js"
|
||||
fi
|
||||
fi
|
||||
elif [ "$folder" = "Modaal" ]; then
|
||||
if [ "$jfile" = "modaal.min.css" ]; then
|
||||
|
@ -595,8 +614,6 @@ function create_url() {
|
|||
else
|
||||
url="$NETDNA_BOOTSTRAPCDN/$folder/$version/js/bootstrap.min.js"
|
||||
fi
|
||||
elif [ "$folder" = "webcomponentsjs" ]; then
|
||||
url="$CLOUDFLARE/$folder/2.6.0/webcomponents-loader.min.js"
|
||||
elif [ "$folder" = "vue-i18n" ] && [[ "$version" != 8* ]]; then
|
||||
url="$CLOUDFLARE/$folder/$version/vue-i18n.cjs.min.js"
|
||||
elif [ "$path" = "../resources/twitter-bootstrap/fonts/glyphicons-halflings-regular.woff2" ]; then
|
||||
|
@ -643,10 +660,8 @@ function create_url() {
|
|||
elif [ "$folder" = "semantic-ui" ]; then
|
||||
relativpath=$(echo -e "$path" | awk -F"../$folder/$version" '{print $NF}')
|
||||
url="$CLOUDFLARE/$folder/$version/$relativpath"
|
||||
elif [ "$folder" = "Chart.js" ] && [ "$version" != "2.9.4" ]; then
|
||||
url="$JSDELIVR/npm/chart.js@$version/dist/chart.min.js"
|
||||
elif [ "$folder" = "angular-ui-select" ] && [ "$version" = "0.19.8" ]; then
|
||||
url="$JSDELIVR/npm/ui-select@$version/dist/select.min.js"
|
||||
elif [ "$folder" = "Chart.js" ] && [ "$version" = "2.9.4" ] && [ "$jfile" = "chart.min.js" ]; then
|
||||
url="$CLOUDFLARE/$folder/$version/Chart.bundle.min.js"
|
||||
elif [ "$folder" = "plyr" ]; then
|
||||
if [ "$jfile" = "plyr.min.js" ]; then
|
||||
url="$JSDELIVR/npm/plyr@$version/dist/plyr.min.js"
|
||||
|
@ -718,6 +733,18 @@ function create_url() {
|
|||
url="$CLOUDFLARE/$folder/$version/moment-with-langs.min.js"
|
||||
elif [ "$folder" = "react-intl" ]; then
|
||||
url="$JSDELIVR/npm/react-intl@$version/react-intl.iife.min.js"
|
||||
elif [ "$folder" = "in-view" ]; then
|
||||
url="$JSDELIVR/npm/in-view@$version/dist/in-view.min.js"
|
||||
elif [ "$folder" = "knockout" ] && [ "$version" = "3.5.1" ];then
|
||||
url="$CLOUDFLARE/$folder/$version/knockout-latest.min.js"
|
||||
elif [ "$folder" = "vue-router" ] && [ "$version" = "3.6.5" ];then
|
||||
url="$CLOUDFLARE/$folder/$version/vue-router.min.js"
|
||||
elif [ "$folder" = "ScrollMagic" ] && [ "$jfile" != "ScrollMagic.min.js" ];then
|
||||
url="$CLOUDFLARE/$folder/$version/plugins/$jfile"
|
||||
elif [ "$folder" = "redux" ] && [ "$version" != "4.2.1" ];then
|
||||
url="$CLOUDFLARE/$folder/$version/redux.legacy-esm.min.js"
|
||||
elif [ "$folder" = "supabase-js" ]; then
|
||||
url="$UNPKG/@supabase/supabase-js@$version/dist/umd/supabase.js"
|
||||
# --------------------------------------------------------------------------
|
||||
else
|
||||
if [ "$subfile" = "$jfile" ]; then
|
||||
|
@ -763,6 +790,8 @@ done < <(find ../resources/ \
|
|||
! -iname "fa-loader.css" \
|
||||
! -iname "google-material-design-icons.css" \
|
||||
! -iname "google-fonts-placeholder.css" \
|
||||
-not -path "../resources/blocked/*" \
|
||||
-not -path "../resources/mathjax/*/latest.jsm" \
|
||||
-print0)
|
||||
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ const MessageResponse = {
|
|||
const Resource = {
|
||||
'MAPPING_EXPRESSION': /\.map$/i,
|
||||
'VERSION_EXPRESSION': /(?:\d{1,2}\.){1,3}\d{1,2}(?:-\d)?|latest/,
|
||||
'SINGLE_NUMBER_EXPRESSION': /^\D+@?\d.*$/,
|
||||
'SINGLE_NUMBER_EXPRESSION': /\D+@?\d{1,2}\D*/,
|
||||
'MATHJAX': /\/\w.*(?:\d{1,2}\.){1,3}\d{1,2}(?:-\d)?\/|\/(mathjax\/)?latest\//,
|
||||
'TINYMCE': /\/\w.*(?:\d{1,2}\.){1,3}\d{1,2}(?:-\d)?\//,
|
||||
'VERSION_PLACEHOLDER': '{version}'
|
||||
|
@ -148,7 +148,7 @@ const SettingDefaults = {
|
|||
[Setting.INTERNAL_STATISTICS_DATA]: {},
|
||||
[Setting.DEFAULT_RANGE_STATISTIC]: 'week',
|
||||
[Setting.LAST_MAPPING_UPDATE]: '2020-01-01',
|
||||
[Setting.NEGATE_HTML_FILTER_LIST]: false,
|
||||
[Setting.NEGATE_HTML_FILTER_LIST]: true,
|
||||
[Setting.SELECTED_ICON]: 'Default',
|
||||
[Setting.SHOW_ICON_BADGE]: true,
|
||||
[Setting.STORAGE_TYPE]: 'local',
|
||||
|
@ -173,6 +173,15 @@ const WebRequest = {
|
|||
'EXTRA_HEADERS': 'extraHeaders'
|
||||
};
|
||||
|
||||
const BlockedRequestMethods = {
|
||||
'POST': true,
|
||||
'HEAD': true,
|
||||
'PUT': true,
|
||||
'DELETE': true,
|
||||
'TRACE': true,
|
||||
'OPTIONS': true,
|
||||
};
|
||||
|
||||
const WebRequestType = {
|
||||
'MAIN_FRAME': 'main_frame',
|
||||
'SUB_FRAME': 'sub_frame',
|
||||
|
@ -262,7 +271,14 @@ const Regex = {
|
|||
'FONT_AWESOME_WITH_CODE': /use\.fontawesome\.com\/[a-z0-9]{10}\.(js|css)/,
|
||||
'FONT_AWESOME_FONTS_ONLY': /\/font-?awesome\/(?:\d{1,2}\.){1,3}\d{1,2}\/fonts\//,
|
||||
'BOOTSTRAP_FONTS_ONLY': /\/bootstrap\/(?:\d{1,2}\.){1,3}\d{1,2}\/fonts\//,
|
||||
'ROCKET_LOADER': /ajax\.cloudflare\.com\/cdn-cgi\/scripts\/[a-zA-Z0-9]{8}\/cloudflare-static\/rocket-loader\.min\.js/
|
||||
'ROCKET_LOADER': /ajax\.cloudflare\.com\/cdn-cgi\/scripts\/[a-zA-Z0-9]{8}\/cloudflare-static\/rocket-loader\.min\.js/,
|
||||
'TWITTER_BOOTSTRAP_ALPHA_BETA': /-(alpha|beta).?\d?/,
|
||||
'INTERNAL_STATISTICS_DATA': /((2\d)\d{2})-(0[1-9]|1[012])-(0[1-9]|[12]\d|3[01])/,
|
||||
'DOMAIN': /[a-z0-9]+([-.]{1}[a-z0-9]+)*\.[a-z]{2,24}/,
|
||||
'INTERNAL_RESOURCES': /resources\/[0-9a-z.-]+\/((?:\d{1,2}\.){1,3}\d{1,2})?.*\.(css|jsm)/,
|
||||
'ISO_DATE': /((2\d)\d{2})-(0[1-9]|1[012])-(0[1-9]|[12]\d|3[01])/,
|
||||
'HEX_COLOR': /#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/,
|
||||
'DOCSIFY': /docsify@(?:\d{1,2}\.){0,3}\d{1,2}(?:-\d)?$/,
|
||||
};
|
||||
|
||||
const MaterialIcons = {
|
||||
|
@ -336,6 +352,7 @@ const IgnoredHost = {
|
|||
* https://codeberg.org/nobody/LocalCDN/issues/75
|
||||
*/
|
||||
const MathJaxFiles = {
|
||||
'latest.js': true,
|
||||
'config/default.js': true,
|
||||
'config/MML_HTMLorMML.js': true,
|
||||
'config/TeX-AMS_CHTML.js': true,
|
||||
|
@ -408,7 +425,9 @@ const MathJaxFiles = {
|
|||
const MathJax3Files = {
|
||||
'es5/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff': true,
|
||||
'es5/output/chtml/fonts/woff-v2/MathJax_Zero.woff': true,
|
||||
'es5/tex-chtml.js': true,
|
||||
'es5/tex-mml-chtml.js': true,
|
||||
'es5/tex-svg.js': true,
|
||||
|
||||
};
|
||||
/**
|
||||
|
@ -427,12 +446,266 @@ const BadResources = {
|
|||
|
||||
const LogString = {
|
||||
'PREFIX': '[ LocalCDN ]',
|
||||
'FONT_AWESOME': 'Font Awesome is not fully supported by your browser.',
|
||||
'NOT_SUPPORTED': 'is not fully supported by your browser.',
|
||||
'GOOGLE_MATERIAL_ICONS': 'Google Material Icons are not fully supported by your browser.',
|
||||
'YANDEX': 'Workaround. Disable LocalCDN if website and CDN are the same',
|
||||
'REPLACED_RESOURCE': 'Replaced resource:',
|
||||
'MISSING_RESOURCE': 'Missing resource:',
|
||||
'EVIL_RESOURCE_BLOCKED': 'Evil resource blocked:',
|
||||
'NON_GET_REQUEST_BLOCKED': 'Non-GET-Request blocked',
|
||||
'IFRAME': 'Possible iframe request:',
|
||||
};
|
||||
|
||||
/**
|
||||
* https://codeberg.org/nobody/LocalCDN/issues/1560
|
||||
*/
|
||||
const GoogleDomains = {
|
||||
'google.com': true,
|
||||
'youtube.com': true,
|
||||
'ytimg.com': true,
|
||||
'withgoogle.com': true,
|
||||
'withyoutube.com': true,
|
||||
'google.ws': true,
|
||||
'google.vu': true,
|
||||
'google.vg': true,
|
||||
'google.tt': true,
|
||||
'google.to': true,
|
||||
'google.tn': true,
|
||||
'google.tm': true,
|
||||
'google.tl': true,
|
||||
'google.tk': true,
|
||||
'google.tg': true,
|
||||
'google.td': true,
|
||||
'google.st': true,
|
||||
'google.sr': true,
|
||||
'google.so': true,
|
||||
'google.sn': true,
|
||||
'google.sm': true,
|
||||
'google.sk': true,
|
||||
'google.si': true,
|
||||
'google.sh': true,
|
||||
'google.se': true,
|
||||
'google.sc': true,
|
||||
'google.rw': true,
|
||||
'google.ru': true,
|
||||
'google.rs': true,
|
||||
'google.ro': true,
|
||||
'google.pt': true,
|
||||
'google.ps': true,
|
||||
'google.pn': true,
|
||||
'google.pl': true,
|
||||
'google.nu': true,
|
||||
'google.nr': true,
|
||||
'google.no': true,
|
||||
'google.nl': true,
|
||||
'google.ne': true,
|
||||
'google.mw': true,
|
||||
'google.mv': true,
|
||||
'google.mu': true,
|
||||
'google.ms': true,
|
||||
'google.mn': true,
|
||||
'google.ml': true,
|
||||
'google.mk': true,
|
||||
'google.mg': true,
|
||||
'google.me': true,
|
||||
'google.md': true,
|
||||
'google.lv': true,
|
||||
'google.lu': true,
|
||||
'google.lt': true,
|
||||
'google.lk': true,
|
||||
'google.li': true,
|
||||
'google.la': true,
|
||||
'google.kz': true,
|
||||
'google.ki': true,
|
||||
'google.kg': true,
|
||||
'google.jo': true,
|
||||
'google.je': true,
|
||||
'google.it': true,
|
||||
'google.is': true,
|
||||
'google.iq': true,
|
||||
'google.io': true,
|
||||
'google.im': true,
|
||||
'google.ie': true,
|
||||
'google.hu': true,
|
||||
'google.ht': true,
|
||||
'google.hr': true,
|
||||
'google.hn': true,
|
||||
'google.gy': true,
|
||||
'google.gr': true,
|
||||
'google.gp': true,
|
||||
'google.gm': true,
|
||||
'google.gl': true,
|
||||
'google.gg': true,
|
||||
'google.gf': true,
|
||||
'google.ge': true,
|
||||
'google.ga': true,
|
||||
'google.fr': true,
|
||||
'google.fm': true,
|
||||
'google.fi': true,
|
||||
'google.es': true,
|
||||
'google.ee': true,
|
||||
'google.dz': true,
|
||||
'google.dm': true,
|
||||
'google.dk': true,
|
||||
'google.dj': true,
|
||||
'google.de': true,
|
||||
'google.cz': true,
|
||||
'google.cv': true,
|
||||
'google.com.vn': true,
|
||||
'google.com.vc': true,
|
||||
'google.com.uy': true,
|
||||
'google.com.ua': true,
|
||||
'google.com.tw': true,
|
||||
'google.com.tr': true,
|
||||
'google.com.tj': true,
|
||||
'google.com.sv': true,
|
||||
'google.com.sl': true,
|
||||
'google.com.sg': true,
|
||||
'google.com.sb': true,
|
||||
'google.com.sa': true,
|
||||
'google.com.qa': true,
|
||||
'google.com.py': true,
|
||||
'google.com.pr': true,
|
||||
'google.com.pk': true,
|
||||
'google.com.ph': true,
|
||||
'google.com.pg': true,
|
||||
'google.com.pe': true,
|
||||
'google.com.pa': true,
|
||||
'google.com.om': true,
|
||||
'google.com.np': true,
|
||||
'google.com.ni': true,
|
||||
'google.com.ng': true,
|
||||
'google.com.nf': true,
|
||||
'google.com.na': true,
|
||||
'google.com.my': true,
|
||||
'google.com.mx': true,
|
||||
'google.com.mt': true,
|
||||
'google.com.mm': true,
|
||||
'google.com.ly': true,
|
||||
'google.com.lc': true,
|
||||
'google.com.lb': true,
|
||||
'google.com.kw': true,
|
||||
'google.com.kh': true,
|
||||
'google.com.jm': true,
|
||||
'google.com.hk': true,
|
||||
'google.com.gt': true,
|
||||
'google.com.gi': true,
|
||||
'google.com.gh': true,
|
||||
'google.com.fj': true,
|
||||
'google.com.et': true,
|
||||
'google.com.eg': true,
|
||||
'google.com.ec': true,
|
||||
'google.com.do': true,
|
||||
'google.com.cy': true,
|
||||
'google.com.cu': true,
|
||||
'google.com.co': true,
|
||||
'google.com.bz': true,
|
||||
'google.com.br': true,
|
||||
'google.com.bo': true,
|
||||
'google.com.bn': true,
|
||||
'google.com.bh': true,
|
||||
'google.com.bd': true,
|
||||
'google.com.au': true,
|
||||
'google.com.ar': true,
|
||||
'google.com.ai': true,
|
||||
'google.com.ag': true,
|
||||
'google.com.af': true,
|
||||
'google.co.zw': true,
|
||||
'google.co.zm': true,
|
||||
'google.co.za': true,
|
||||
'google.co.vi': true,
|
||||
'google.co.ve': true,
|
||||
'google.co.uz': true,
|
||||
'google.co.uk': true,
|
||||
'google.co.ug': true,
|
||||
'google.co.tz': true,
|
||||
'google.co.th': true,
|
||||
'google.co.pn': true,
|
||||
'google.co.nz': true,
|
||||
'google.co.mz': true,
|
||||
'google.co.ma': true,
|
||||
'google.co.ls': true,
|
||||
'google.co.kr': true,
|
||||
'google.co.ke': true,
|
||||
'google.co.jp': true,
|
||||
'google.co.in': true,
|
||||
'google.co.il': true,
|
||||
'google.co.id': true,
|
||||
'google.co.cr': true,
|
||||
'google.co.ck': true,
|
||||
'google.co.bw': true,
|
||||
'google.co.ao': true,
|
||||
'google.cn': true,
|
||||
'google.cm': true,
|
||||
'google.cl': true,
|
||||
'google.ci': true,
|
||||
'google.ch': true,
|
||||
'google.cg': true,
|
||||
'google.cf': true,
|
||||
'google.cd': true,
|
||||
'google.cc': true,
|
||||
'google.cat': true,
|
||||
'google.ca': true,
|
||||
'google.by': true,
|
||||
'google.bt': true,
|
||||
'google.bs': true,
|
||||
'google.bj': true,
|
||||
'google.bi': true,
|
||||
'google.bg': true,
|
||||
'google.bf': true,
|
||||
'google.be': true,
|
||||
'google.ba': true,
|
||||
'google.az': true,
|
||||
'google.at': true,
|
||||
'google.as': true,
|
||||
'google.am': true,
|
||||
'google.al': true,
|
||||
'google.ae': true,
|
||||
'google.ad': true,
|
||||
'google.ac': true,
|
||||
'g.cn': true,
|
||||
'yt.be': true,
|
||||
'youtubegaming.com': true,
|
||||
'youtubeeducation.com': true,
|
||||
'youtube-nocookie.com': true,
|
||||
'youtu.be': true,
|
||||
'igoogle.com': true,
|
||||
'gooogle.com': true,
|
||||
'goolge.com': true,
|
||||
'googlr.com': true,
|
||||
'googlesyndication.com': true,
|
||||
'googlesource.com': true,
|
||||
'googlescholar.com': true,
|
||||
'googlepagecreator.com': true,
|
||||
'googlemembers.com': true,
|
||||
'googlemember.com': true,
|
||||
'googlemaps.com': true,
|
||||
'googlemail.com': true,
|
||||
'googleearth.com': true,
|
||||
'googlee.com': true,
|
||||
'googledrive.com': true,
|
||||
'googlecommerce.com': true,
|
||||
'googlecode.com': true,
|
||||
'googlebot.com': true,
|
||||
'googlearth.com': true,
|
||||
'googleapps.com': true,
|
||||
'googleapis.com': true,
|
||||
'googleanalytics.com': true,
|
||||
'googleadservices.com': true,
|
||||
'google.org': true,
|
||||
'google.net': true,
|
||||
'google-analytics.com': true,
|
||||
'googl.com': true,
|
||||
'googil.com': true,
|
||||
'googel.com': true,
|
||||
'goo.gl': true,
|
||||
'gogole.com': true,
|
||||
'gogle.com': true,
|
||||
'gmail.com': true,
|
||||
'ggoogle.com': true,
|
||||
'g.co': true,
|
||||
'android.com': true,
|
||||
'developer.android.com': true,
|
||||
};
|
||||
|
||||
// Supported charsets for TextDecoder()
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
* File Guard
|
||||
*/
|
||||
|
||||
var fileGuard = {};
|
||||
let fileGuard = {};
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* Interceptor
|
||||
*/
|
||||
|
||||
var interceptor = {};
|
||||
let interceptor = {};
|
||||
|
||||
|
||||
/**
|
||||
|
@ -31,12 +31,32 @@ var interceptor = {};
|
|||
*/
|
||||
|
||||
interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
|
||||
let validCandidate, targetDetails, targetDomain, isGoogleFont, isGoogleMaterialIcons, initiatorDomain, isListed;
|
||||
let validCandidate, targetDetails, targetDomain, isGoogleFont, isGoogleMaterialIcons, initiatorDomain, isListed,
|
||||
iframe, isGoogleDomain;
|
||||
|
||||
iframe = '';
|
||||
if (tab.url !== requestDetails.originUrl) {
|
||||
console.log(`${LogString.PREFIX} ${LogString.IFRAME} ${tab.url} -> ${requestDetails.originUrl}`);
|
||||
iframe = requestDetails.originUrl;
|
||||
}
|
||||
|
||||
if (requestDetails['type'] === WebRequestType.MAIN_FRAME &&
|
||||
helpers.checkAllowlisted(
|
||||
helpers.extractDomainFromUrl(tab.url, true),
|
||||
requestAnalyzer.allowlistedDomains
|
||||
)) {
|
||||
return {
|
||||
'cancel': false
|
||||
};
|
||||
}
|
||||
|
||||
targetDetails = requestAnalyzer.getLocalTarget(requestDetails, tab.url);
|
||||
if (targetDetails['result'] === 'blocked') {
|
||||
let source, resource;
|
||||
source = helpers.extractDomainFromUrl(tab.url, true);
|
||||
resource = tab.url;
|
||||
return {
|
||||
'redirectUrl': chrome.runtime.getURL('resources/blocked/index.html')
|
||||
'redirectUrl': chrome.runtime.getURL(`resources/blocked/index.html?source=${source}&resource=${resource}`)
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -44,6 +64,15 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
|
|||
tabIdentifier, targetDetails
|
||||
};
|
||||
|
||||
// Block POST, HEAD, PUT, DELETE, TRACE, OPTIONS
|
||||
if (BlockedRequestMethods[requestDetails.method]) {
|
||||
console.warn(`${LogString.PREFIX} ${LogString.NON_GET_REQUEST_BLOCKED}`);
|
||||
log.append(tab.url, requestDetails.url, LogString.NON_GET_REQUEST_BLOCKED, true, iframe);
|
||||
return {
|
||||
'cancel': true
|
||||
};
|
||||
}
|
||||
|
||||
validCandidate = requestAnalyzer.isValidCandidate(requestDetails, tab);
|
||||
if (!validCandidate) {
|
||||
return {
|
||||
|
@ -53,7 +82,7 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
|
|||
|
||||
if (interceptor._isBadResource(requestDetails.url)) {
|
||||
console.log(`${LogString.PREFIX} ${LogString.EVIL_RESOURCE_BLOCKED} ${requestDetails.url}`);
|
||||
log.append(tab.url, requestDetails.url, '-', true);
|
||||
log.append(tab.url, requestDetails.url, '-', true, iframe);
|
||||
return {
|
||||
'cancel': true
|
||||
};
|
||||
|
@ -66,11 +95,21 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
|
|||
if (BrowserType.FIREFOX && isGoogleFont && !isGoogleMaterialIcons) {
|
||||
initiatorDomain = helpers.extractDomainFromUrl(tab.url, true);
|
||||
isListed = helpers.checkAllowlisted(initiatorDomain, interceptor.allowedDomainsGoogleFonts);
|
||||
isGoogleDomain = helpers.isGoogleDomain(initiatorDomain);
|
||||
// Check if the website is allowed to load Google Fonts
|
||||
if (interceptor.blockGoogleFonts === true && isListed === false) {
|
||||
if (interceptor.blockGoogleFonts === true && isListed === false && isGoogleDomain === false) {
|
||||
console.log(`${LogString.PREFIX} Google fonts blocked ${requestDetails.url}`);
|
||||
log.append(tab.url, requestDetails.url, '-', true, iframe);
|
||||
interceptor._handleMissingCandidate(requestDetails.url, tabIdentifier);
|
||||
++stateManager.tabs[tabIdentifier].blocked;
|
||||
return {
|
||||
'redirectUrl': chrome.runtime.getURL('resources/google-fonts-placeholder.css')
|
||||
};
|
||||
} else if (isGoogleDomain === true) {
|
||||
console.log(`${LogString.PREFIX} Google fonts allowed, because Google Website ${initiatorDomain}`);
|
||||
return {
|
||||
'cancel': false
|
||||
};
|
||||
} else if (interceptor.blockGoogleFonts === false || isListed === true) {
|
||||
return {
|
||||
'cancel': false
|
||||
|
@ -85,6 +124,9 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
|
|||
return interceptor._handleMissingCandidate(requestDetails.url, tabIdentifier);
|
||||
}
|
||||
|
||||
console.log(`${LogString.PREFIX} ${LogString.REPLACED_RESOURCE} ${targetDetails.path}`);
|
||||
log.append(tab.url, requestDetails.url, targetDetails.path, false, iframe);
|
||||
|
||||
return {
|
||||
'redirectUrl': chrome.runtime.getURL(targetDetails.path + fileGuard.secret)
|
||||
};
|
||||
|
@ -96,13 +138,17 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
|
|||
*/
|
||||
|
||||
interceptor._handleMissingCandidate = function (requestUrl, tabIdentifier) {
|
||||
let requestUrlSegments, injectionCount, missingCount;
|
||||
let requestUrlSegments, injectionCount, missingCount, blockedCount;
|
||||
|
||||
if (stateManager.showIconBadge === true) {
|
||||
injectionCount = Object.keys(stateManager.tabs[tabIdentifier].injections).length || 0;
|
||||
missingCount = stateManager.tabs[tabIdentifier].missing || 0;
|
||||
blockedCount = stateManager.tabs[tabIdentifier].blocked || 0;
|
||||
|
||||
injectionCount = injectionCount + missingCount + blockedCount;
|
||||
|
||||
if (stateManager.changeBadgeColorMissingResources === true) {
|
||||
missingCount = stateManager.tabs[tabIdentifier].missing || 0;
|
||||
if (missingCount > 0 && injectionCount === 0) {
|
||||
if (injectionCount === 0) {
|
||||
wrappers.setBadgeText(tabIdentifier, injectionCount);
|
||||
wrappers.setBadgeColoring(tabIdentifier, BadgeSettingMissingResource.TYPE);
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* Main
|
||||
*/
|
||||
|
||||
var main = {};
|
||||
let main = {};
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
* Manipulate DOM
|
||||
*/
|
||||
|
||||
var manipulateDOM = {};
|
||||
let manipulateDOM = {};
|
||||
|
||||
|
||||
/**
|
||||
|
@ -86,8 +86,8 @@ manipulateDOM._removeCrossOriginAndIntegrityAttr = function (details) {
|
|||
charsetMatch = htmlHead.match(/<meta.*charset=["']?([^>"'\/]+)["'].*[>\/]/i) || 'utf8';
|
||||
}
|
||||
|
||||
if (EncodingTypes[charsetMatch[1].toLowerCase()] !== undefined) {
|
||||
charset = charsetMatch[1];
|
||||
if (EncodingTypes[charsetMatch[1].toLowerCase().trim()] !== undefined) {
|
||||
charset = charsetMatch[1].trim();
|
||||
} else {
|
||||
// If charset is unclear, then use ASCII by default.
|
||||
// Other charsets are mostly tagged in the header or HTML source code.
|
||||
|
|
112
core/mappings.js
112
core/mappings.js
|
@ -23,7 +23,7 @@
|
|||
* Mappings
|
||||
*/
|
||||
|
||||
var mappings = {};
|
||||
let mappings = {};
|
||||
|
||||
/*
|
||||
* Date of last update.
|
||||
|
@ -64,7 +64,6 @@ mappings.cdn = {
|
|||
'mootools/{version}/mootools-core': resources.mootools,
|
||||
'prototype/{version}/prototype.': resources.prototypeJS,
|
||||
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
|
||||
'swfobject/{version}/swfobject.': resources.swfobject,
|
||||
'webfont/{version}/webfont.': resources.webfontloader,
|
||||
'webfont/{version}/webfontloader.js': resources.webfontloader,
|
||||
'webfont/1/webfont.js': resources.webfontloader
|
||||
|
@ -104,10 +103,15 @@ mappings.cdn = {
|
|||
'angular-ui-bootstrap/{version}/ui-bootstrap-tpls.': resources.angularUiBootstrapTPLS,
|
||||
'angular-ui-bootstrap/{version}/ui-bootstrap.min.js': resources.angularUiBootstrap,
|
||||
'angular-ui-router/{version}/angular-ui-router.': resources.angularUiRouter,
|
||||
'angular-ui-select/{version}/select.': resources.angularJsUiSelect,
|
||||
'angular-ui-utils/{version}/angular-ui-utils.': resources.angularUiUtils,
|
||||
'angularjs-slider/{version}/rzslider.': resources.angularJSslider,
|
||||
'angular.js/{version}/angular.': resources.angular,
|
||||
'angular.js/{version}/angular-animate.': resources.angularAnimate,
|
||||
'angular.js/{version}/angular-cookies.': resources.angularCookies,
|
||||
'angular.js/{version}/angular-loader.': resources.angularLoader,
|
||||
'angular.js/{version}/angular-resource.': resources.angularResource,
|
||||
'angular.js/{version}/angular-route.': resources.angularRoute,
|
||||
'angular.js/{version}/angular-sanitize.': resources.angularSanitize,
|
||||
'angular.js/{version}/angular-touch.': resources.angularTouch,
|
||||
'angular-animate/{version}/angular-animate': resources.angularAnimate,
|
||||
'angular-aria/{version}/angular-aria': resources.angularAria,
|
||||
'angular-cookies/{version}/angular-cookies': resources.angularCookies,
|
||||
|
@ -246,6 +250,10 @@ mappings.cdn = {
|
|||
'bootstrap-slider/{version}/css/bootstrap-slider.min.css': resources.bootstrapSliderCSS,
|
||||
'bootstrap-slider/{version}/css/bootstrap-slider.css': resources.bootstrapSliderCSS,
|
||||
'bootstrap-slider/{version}/bootstrap-slider.min.js': resources.bootstrapSliderJS,
|
||||
'bootstrap-table/{version}/bootstrap-table.min.js': resources.bootstrapTableJS,
|
||||
'bootstrap-table/{version}/bootstrap-table.js': resources.bootstrapTableJS,
|
||||
'bootstrap-table/{version}/bootstrap-table.min.css': resources.bootstrapTableCSS,
|
||||
'bootstrap-table/{version}/bootstrap-table.css': resources.bootstrapTableCSS,
|
||||
'bootstrap-toggle/{version}/js/bootstrap-toggle.': resources.bootstrapToggleJS,
|
||||
'bootstrap-toggle/{version}/js/bootstrap2-toggle.': resources.bootstrap2ToggleJS,
|
||||
'bootstrap-toggle/{version}/css/bootstrap-toggle.': resources.bootstrapToggleCSS,
|
||||
|
@ -261,6 +269,7 @@ mappings.cdn = {
|
|||
'bootstrap/{version}/bootstrap.js': resources.bootstrapJS,
|
||||
'bootstrap/{version}/bootstrap.min.css': resources.bootstrapCSS,
|
||||
'bootstrap/{version}/bootstrap.css': resources.bootstrapCSS,
|
||||
'bootswatch/{version}/flatly/': resources.bootswatchFlatly,
|
||||
'bowser/{version}/': resources.bowserJS,
|
||||
'bower-angular-translate/{version}/angular-translate.': resources.angularTranslate,
|
||||
'bower-angular-translate-loader-partial/{version}/angular-translate-loader-partial.': resources.angularTranslateLoaderPartial,
|
||||
|
@ -287,7 +296,7 @@ mappings.cdn = {
|
|||
'cookieconsent2/{version}/cookieconsent.css': resources.cookieconsent2CSS,
|
||||
'corejs-typeahead/{version}/typeahead.bundle.': resources.corejsTypeahead,
|
||||
'd3/{version}/d3.min.js': resources.d3JS,
|
||||
'd3-legend/{version}/d3-legend.': resources.d3legend,
|
||||
'datatables/{version}/': resources.datatables,
|
||||
'dayjs/{version}/dayjs.': resources.dayjs,
|
||||
'dexie/{version}/dexie.': resources.dexie,
|
||||
'docsearch.js/{version}/docsearch.min.js': resources.docsearchJS,
|
||||
|
@ -296,8 +305,6 @@ mappings.cdn = {
|
|||
'docsearch.js/{version}/docsearch.css': resources.docsearchCSS,
|
||||
'docsify/{version}/docsify.min.js': resources.docsify,
|
||||
'docsify/{version}/docsify.js': resources.docsify,
|
||||
'drawer/{version}/js/drawer.min.js': resources.drawerJS,
|
||||
'drawer/{version}/css/drawer.min.css': resources.drawerCSS,
|
||||
'dygraph/{version}/dygraph': resources.dygraph,
|
||||
'element-ui/{version}/': resources.elementUI,
|
||||
'ext-core/{version}/ext-core.': resources.extCore,
|
||||
|
@ -309,7 +316,6 @@ mappings.cdn = {
|
|||
'fancybox/{version}/jquery.fancybox.css': resources.fancyBoxCSS,
|
||||
'fastclick/{version}/fastclick.': resources.fastclick,
|
||||
'feather-icons/{version}/feather.': resources.feather,
|
||||
'FitText.js/{version}/jquery.fittext.': resources.fitTextJs,
|
||||
'flickity/{version}/flickity.pkgd.': resources.flickity,
|
||||
'font-awesome/{version}/css/font-awesome': resources.fontawesome,
|
||||
'font-awesome/{version}/css/': resources.fontawesome5CSS,
|
||||
|
@ -322,6 +328,7 @@ mappings.cdn = {
|
|||
'foundicons/{version}/foundation-icons.min.css': resources.foundationIconsCSS,
|
||||
'granim/{version}/granim.': resources.granim,
|
||||
'gsap/{version}/': resources.gsapBundle,
|
||||
'handlebars.js/{version}/handlebars.': resources.handlebarsJs,
|
||||
'highlight.js/{version}/': resources.highlightJS,
|
||||
'hls.js/{version}/hls.': resources.hlsJS,
|
||||
'hogan.js/{version}/hogan.': resources.hoganJS,
|
||||
|
@ -338,13 +345,20 @@ mappings.cdn = {
|
|||
'jquery-ajax-unobtrusive/{version}/jquery.unobtrusive-ajax.': resources.jqueryAjaxUnobtrusive,
|
||||
'jquery.devbridge-autocomplete/{version}/jquery.autocomplete.min.js': resources.jQueryAjaxAutoComplete,
|
||||
'jquery.blockUI/{version}/jquery.blockUI.min.js': resources.jQueryBlockUI,
|
||||
'jquery.colorbox/{version}/jquery.colorbox': resources.jqueryColorbox,
|
||||
'jquery-csv/{version}/jquery.csv.min.js': resources.jQueryCSV,
|
||||
'jquery.cycle2/{version}/': resources.jqueryCycle2,
|
||||
'jquery-easing/{version}/jquery.easing.': resources.jQueryEasing,
|
||||
'jquery-jcrop/{version}/css/jquery.Jcrop.': resources.jqueryJcropCSS,
|
||||
'jquery-jcrop/{version}/js/jquery.Jcrop.': resources.jqueryJcropJS,
|
||||
'jquery.lazyload/{version}/jquery.lazyload.min.js': resources.jQueryLazyLoad,
|
||||
'jquery.lazy/{version}/': resources.jQueryLazyBundle,
|
||||
'jquery.matchHeight/{version}/jquery.matchHeight-min.js': resources.jqueryMatchHeightJS,
|
||||
'jquery-migrate/{version}/jquery-migrate.min.js': resources.jQueryMigrate,
|
||||
'jquery-minicolors/{version}/jquery.minicolors.min.js': resources.jqueryMinicolorsJS,
|
||||
'jquery-minicolors/{version}/jquery.minicolors.js': resources.jqueryMinicolorsJS,
|
||||
'jquery-minicolors/{version}/jquery.minicolors.min.css': resources.jqueryMinicolorsCSS,
|
||||
'jquery-minicolors/{version}/jquery.minicolors.css': resources.jqueryMinicolorsCSS,
|
||||
'jqueryui/{version}/jquery-ui.js': resources.jQueryUI,
|
||||
'jqueryui/{version}/jquery-ui.min.js': resources.jQueryUI,
|
||||
'jquery-validate/{version}/jquery.validate.min.js': resources.jqueryValidationPlugin,
|
||||
|
@ -370,6 +384,7 @@ mappings.cdn = {
|
|||
'jScrollPane/{version}/script/jquery.jscrollpane.': resources.jScrollPane,
|
||||
'js-cookie/{version}/js.cookie.min.js': resources.jscookie,
|
||||
'knockout/{version}/knockout': resources.knockout,
|
||||
'knockout.mapping/{version}/knockout.mapping.': resources.knockoutMapping,
|
||||
'lazysizes/{version}/lazysizes.min.js': resources.lazysizes,
|
||||
'leaflet/{version}/leaflet.js': resources.leafletJS,
|
||||
'leaflet/{version}/leaflet.css': resources.leafletCSS,
|
||||
|
@ -408,6 +423,10 @@ mappings.cdn = {
|
|||
'moment.js/{version}/moment.min.': resources.moment,
|
||||
'moment.js/{version}/moment-with-locales.': resources.moment,
|
||||
'mootools/{version}/mootools-core': resources.mootools,
|
||||
'nprogress/{version}/nprogress.min.js': resources.nprogressJS,
|
||||
'nprogress/{version}/nprogress.js': resources.nprogressJS,
|
||||
'nprogress/{version}/nprogress.min.css': resources.nprogressCSS,
|
||||
'nprogress/{version}/nprogress.css': resources.nprogressCSS,
|
||||
'noUiSlider/{version}/nouislider.js': resources.noUiSlider,
|
||||
'noUiSlider/{version}/nouislider.min.js': resources.noUiSlider,
|
||||
'nvd3/{version}/nv.d3.min.js': resources.nvd3JS,
|
||||
|
@ -439,6 +458,10 @@ mappings.cdn = {
|
|||
'popper.js/{version}/umd/popper.min.js': resources.popperJS,
|
||||
'protonet-jquery.inview/{version}/jquery.inview.': resources.protonetJqueryInview,
|
||||
'pure/{version}/': resources.pureCSS,
|
||||
'rangeslider.js/{version}/rangeslider.css': resources.rangesliderCSS,
|
||||
'rangeslider.js/{version}/rangeslider.min.css': resources.rangesliderCSS,
|
||||
'rangeslider.js/{version}/rangeslider.js': resources.rangesliderJS,
|
||||
'rangeslider.js/{version}/rangeslider.min.js': resources.rangesliderJS,
|
||||
'raven.js/{version}/raven.min.js': resources.ravenJS,
|
||||
'raven.js/{version}/plugins/angular.min.js': resources.ravenPluginAngularJS,
|
||||
'react/{version}/umd/react.production.min.js': resources.react,
|
||||
|
@ -447,6 +470,7 @@ mappings.cdn = {
|
|||
'rickshaw/{version}/rickshaw.min.js': resources.rickshawJS,
|
||||
'script.js/{version}/script.': resources.scriptJS,
|
||||
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
|
||||
'ScrollMagic/{version}/': resources.scrollMagic,
|
||||
'select2/{version}/': resources.select2,
|
||||
'semantic-ui/{version}/': resources.semanticUi,
|
||||
'showdown/{version}/showdown.': resources.showdown,
|
||||
|
@ -469,9 +493,26 @@ mappings.cdn = {
|
|||
'sticky-js/{version}/sticky.min.js': resources.stickyJS,
|
||||
'stickyfill/{version}/stickyfill.': resources.stickyfill,
|
||||
'socket.io/{version}/socket.io.': resources.socketIO,
|
||||
'swfobject/{version}/swfobject.': resources.swfobject,
|
||||
'swagger-ui/{version}/swagger-ui.js': resources.swaggerUiJS,
|
||||
'swagger-ui/{version}/swagger-ui.min.js': resources.swaggerUiJS,
|
||||
'swagger-ui/{version}/swagger-ui-bundle.js': resources.swaggerUiJS,
|
||||
'swagger-ui/{version}/swagger-ui-bundle.min.js': resources.swaggerUiJS,
|
||||
'swagger-ui/{version}/swagger-ui-es-bundle-core.js': resources.swaggerUiJS,
|
||||
'swagger-ui/{version}/swagger-ui-es-bundle-core.min.js': resources.swaggerUiJS,
|
||||
'swagger-ui/{version}/swagger-ui-es-bundle.js': resources.swaggerUiJS,
|
||||
'swagger-ui/{version}/swagger-ui-es-bundle.min.js': resources.swaggerUiJS,
|
||||
'swagger-ui/{version}/swagger-ui-standalone-preset.js': resources.swaggerUiJS,
|
||||
'swagger-ui/{version}/swagger-ui-standalone-preset.min.js': resources.swaggerUiJS,
|
||||
'swagger-ui/{version}/swagger-ui.css': resources.swaggerUiCSS,
|
||||
'swagger-ui/{version}/swagger-ui.min.css': resources.swaggerUiCSS,
|
||||
'Swiper/{version}/css/swiper.': resources.swiperCSS,
|
||||
'Swiper/{version}/js/swiper.': resources.swiperJS,
|
||||
'Swiper/{version}/swiper-bundle.min.js': resources.swiperJS,
|
||||
'Swiper/{version}/swiper-bundle.js': resources.swiperJS,
|
||||
'Swiper/{version}/swiper-bundle.min.css': resources.swiperCSS,
|
||||
'Swiper/{version}/swiper-bundle.css': resources.swiperCSS,
|
||||
'tensorflow/{version}/tf.min.js': resources.tensorflow,
|
||||
'tensorflow/{version}/tf.js': resources.tensorflow,
|
||||
'tether/{version}/js/tether.': resources.tetherJS,
|
||||
'tinymce/{version}/': resources.tinymce,
|
||||
'tooltipster/{version}/js/jquery.tooltipster.': resources.jQueryTooltipster,
|
||||
|
@ -489,14 +530,18 @@ mappings.cdn = {
|
|||
'twitter-bootstrap/{version}/bootstrap.min.css': resources.bootstrapCSS,
|
||||
'twitter-bootstrap/{version}/bootstrap.css': resources.bootstrapCSS,
|
||||
'twix.js/{version}/twix.': resources.twixJS,
|
||||
'typeahead.js/{version}/typeahead.jquery.min.js': resources.corejsTypeahead,
|
||||
'underscore.js/{version}/underscore.': resources.underscore,
|
||||
'underscore.js/{version}/underscore-min.': resources.underscore,
|
||||
'URI.js/{version}/URI.min.js': resources.uriJS,
|
||||
'URI.js/{version}/URI.js': resources.uriJS,
|
||||
'urlive/{version}/jquery.urlive.': resources.jqueryURLive,
|
||||
'vex-js/{version}/': resources.vexJS,
|
||||
'video.js/{version}/video.js': resources.videoJS,
|
||||
'vue/{version}/vue.min.js': resources.vueJs,
|
||||
'vue-i18n/{version}/vue-i18n.': resources.vueI18N,
|
||||
'vue-resource/{version}/vue-resource.': resources.vueResource,
|
||||
'vue-router/{version}/vue-router.': resources.vueRouter,
|
||||
'vuex/{version}/vuex.min.': resources.vuex,
|
||||
'waypoints/{version}/noframework.waypoints.': resources.jQueryWaypoints,
|
||||
'waypoints/{version}/jquery.waypoints.': resources.jQueryWaypoints,
|
||||
|
@ -505,6 +550,7 @@ mappings.cdn = {
|
|||
'waypoints/{version}/shortcuts/infinite.': resources.jQueryWaypoints,
|
||||
'waypoints/{version}/shortcuts/inview.': resources.jQueryWaypoints,
|
||||
'waypoints/{version}/shortcuts/sticky.': resources.jQueryWaypoints,
|
||||
'webcomponentsjs/{version}/webcomponents-loader.': resources.webcomponentsJS,
|
||||
'webfont/{version}/webfont.js': resources.webfontloader,
|
||||
'webfont/{version}/webfontloader.js': resources.webfontloader,
|
||||
'webrtc-adapter/{version}/adapter.min.js': resources.webRTCadapter,
|
||||
|
@ -532,7 +578,6 @@ mappings.cdn = {
|
|||
'angular@{version}/angular.': resources.angular,
|
||||
'angular@{version}/angular.min.': resources.angular,
|
||||
'angular-payments@{version}/lib/angular-payments.js': resources.angularPayments,
|
||||
'angular-stripe-checkout@{version}/angular-stripe-checkout.js': resources.angularStripeCheckout,
|
||||
'animate.css@{version}/animate.min.css': resources.animateCSS,
|
||||
'animejs@{version}/lib/anime.': resources.animejs,
|
||||
'aos@{version}/dist/aos.css': resources.aosCSS,
|
||||
|
@ -549,6 +594,7 @@ mappings.cdn = {
|
|||
'bootstrap@{version}/dist/css/bootstrap.': resources.bootstrapCSS,
|
||||
'bootstrap-icons@{version}/font/bootstrap-icons.css': resources.bootstrapIcons,
|
||||
'bootstrap-icons@{version}/font/bootstrap-icons.min.css': resources.bootstrapIcons,
|
||||
'bootstrap-select@{version}/dist/css/bootstrap-select.': resources.bootstrapSelectCSS,
|
||||
'bootstrap-select@{version}/dist/js/bootstrap-select.': resources.bootstrapSelectJS,
|
||||
'bootstrap-table@{version}/dist/bootstrap-table.min.js': resources.bootstrapTableJS,
|
||||
'bootstrap-table@{version}/dist/bootstrap-table.js': resources.bootstrapTableJS,
|
||||
|
@ -586,14 +632,6 @@ mappings.cdn = {
|
|||
'docsify-themeable@{version}/dist/css/theme-simple-dark.css': resources.docsifyThemeSimpleDark,
|
||||
'ethjs@{version}/dist/ethjs.': resources.ethJs,
|
||||
'exif-js@{version}/exif.': resources.exifJS,
|
||||
'@findify/bundle@{version}/dist/bundle.js': resources.findifyBundle,
|
||||
'@findify/bundle@{version}/dist/components.js': resources.findifyBundle,
|
||||
'@findify/bundle@{version}/dist/config.js': resources.findifyBundle,
|
||||
'@findify/bundle@{version}/dist/initializer.js': resources.findifyBundle,
|
||||
'@findify/bundle@{version}/dist/polyfill.js': resources.findifyBundle,
|
||||
'@findify/bundle@{version}/dist/vendors~components~initializer.js': resources.findifyBundle,
|
||||
'@findify/bundle@{version}/dist/vendors~initializer.js': resources.findifyBundle,
|
||||
'@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,
|
||||
|
@ -604,6 +642,7 @@ mappings.cdn = {
|
|||
'instantsearch.js@{version}/dist/instantsearch.production.': resources.InstantSearchJS,
|
||||
'instantsearch.js@{version}': resources.InstantSearchJS,
|
||||
'instantsearch.css@{version}': resources.InstantSearchCSS,
|
||||
'in-view@{version}/dist/in-view.min.js': resources.inView,
|
||||
'jquery@{version}/dist/jquery.': resources.jQuery,
|
||||
'jquery@{version}/dist/jquery.min.': resources.jQuery,
|
||||
'jquery.scrollto@{version}/jquery.scrollTo.': resources.jQueryScrollTo,
|
||||
|
@ -612,6 +651,9 @@ mappings.cdn = {
|
|||
'jquery-ui-dist@{version}/jquery-ui.js': resources.jQueryUI,
|
||||
'jquery-ui-dist@{version}/jquery-ui.min.js': resources.jQueryUI,
|
||||
'jquery-validation@{version}/dist/jquery.validate.': resources.jqueryValidationPlugin,
|
||||
'js-cookie@{version}/dist/js.cookie.js': resources.jscookie,
|
||||
'js-cookie@{version}/dist/js.cookie.min.js': resources.jscookie,
|
||||
'js-cookie@{version}/src/js.cookie.': resources.jscookie,
|
||||
'leaflet@{version}/dist/leaflet.js': resources.leafletJS,
|
||||
'leaflet@{version}/dist/leaflet.css': resources.leafletCSS,
|
||||
'leaflet-easybutton@{version}/src/easy-button.js': resources.leafletEasyButton,
|
||||
|
@ -646,8 +688,22 @@ mappings.cdn = {
|
|||
'react-dom@{version}/umd/react-dom.production.min.js': resources.reactDOM,
|
||||
'react-intl@{version}/react-intl.iife.': resources.reactIntl,
|
||||
'react@{version}/umd/react.production.min.js': resources.react,
|
||||
'scrollmagic@{version}/scrollmagic/uncompressed/': resources.scrollMagic,
|
||||
'scrollmagic@{version}/scrollmagic/minified/': resources.scrollMagic,
|
||||
'search-insights@{version}/dist/search-insights.': resources.searchInsights,
|
||||
'select2@{version}/': resources.select2,
|
||||
'swagger-ui-dist@{version}/swagger-ui.js': resources.swaggerUiJS,
|
||||
'swagger-ui-dist@{version}/swagger-ui.min.js': resources.swaggerUiJS,
|
||||
'swagger-ui-dist@{version}/swagger-ui-bundle.js': resources.swaggerUiJS,
|
||||
'swagger-ui-dist@{version}/swagger-ui-bundle.min.js': resources.swaggerUiJS,
|
||||
'swagger-ui-dist@{version}/swagger-ui-es-bundle-core.js': resources.swaggerUiJS,
|
||||
'swagger-ui-dist@{version}/swagger-ui-es-bundle-core.min.js': resources.swaggerUiJS,
|
||||
'swagger-ui-dist@{version}/swagger-ui-es-bundle.js': resources.swaggerUiJS,
|
||||
'swagger-ui-dist@{version}/swagger-ui-es-bundle.min.js': resources.swaggerUiJS,
|
||||
'swagger-ui-dist@{version}/swagger-ui-standalone-preset.js': resources.swaggerUiJS,
|
||||
'swagger-ui-dist@{version}/swagger-ui-standalone-preset.min.js': resources.swaggerUiJS,
|
||||
'swagger-ui-dist@{version}/swagger-ui.css': resources.swaggerUiCSS,
|
||||
'swagger-ui-dist@{version}/swagger-ui.min.css': resources.swaggerUiCSS,
|
||||
'swiper@{version}/swiper-bundle.css': resources.swiperCSS,
|
||||
'swiper@{version}/swiper-bundle.min.css': resources.swiperCSS,
|
||||
'swiper@{version}/swiper-bundle.js': resources.swiperJS,
|
||||
|
@ -656,13 +712,15 @@ mappings.cdn = {
|
|||
'swiper/swiper-bundle.min.css': resources.swiperCSS,
|
||||
'swiper/swiper-bundle.js': resources.swiperJS,
|
||||
'swiper/swiper-bundle.min.js': resources.swiperJS,
|
||||
'swfobject@{version}/index.js': resources.swfobject,
|
||||
'store-js@{version}/dist/store.legacy.min.js': resources.storeJS,
|
||||
'scriptaculous-js@{version}/scriptaculous.': resources.scriptaculous,
|
||||
'slick-carousel@{version}/slick/slick.min.css': resources.slickCarouselCSS,
|
||||
'slick-carousel@{version}/slick/slick.css': resources.slickCarouselCSS,
|
||||
'slick-carousel@{version}/slick/slick.min.js': resources.slickCarouselJS,
|
||||
'slick-carousel@{version}/slick/slick.js': resources.slickCarouselJS,
|
||||
'@supabase/supabase-js@{version}': resources.supabaseJs,
|
||||
'@tensorflow/tfjs@{version}/dist/tf.min.js': resources.tensorflow,
|
||||
'@tensorflow/tfjs@{version}/dist/tf.js': resources.tensorflow,
|
||||
'underscore@{version}/underscore.': resources.underscore,
|
||||
'underscore@{version}/underscore-min.': resources.underscore,
|
||||
'urlize.js/urlize.js': resources.urlize,
|
||||
|
@ -673,6 +731,7 @@ mappings.cdn = {
|
|||
'videojs-seek-buttons/dist/videojs-seek-buttons.min.js': resources.videojsSeekButtonsJS,
|
||||
'vue-match-media@{version}/dist/index.': resources.vueMatchMedia,
|
||||
'vue-resource@{version}/dist/vue-resource.': resources.vueResource,
|
||||
'vue-router@{version}/dist/vue-router.': resources.vueRouter,
|
||||
'vue@{version}/dist/vue.min.js': resources.vueJs,
|
||||
'vue@{version}/dist/vue.js': resources.vueJs,
|
||||
'vuex@{version}/dist/vuex.': resources.vuex,
|
||||
|
@ -689,6 +748,10 @@ mappings.cdn = {
|
|||
'bluebird/{version}/bluebird.': resources.bluebird,
|
||||
'bootstrap/{version}/css/bootstrap.': resources.bootstrapCSS,
|
||||
'bootstrap/{version}/js/bootstrap.': resources.bootstrapJS,
|
||||
'docsearch.js/{version}/docsearch.min.js': resources.docsearchJS,
|
||||
'docsearch.js/{version}/docsearch.js': resources.docsearchJS,
|
||||
'docsearch.js/{version}/docsearch.min.css': resources.docsearchCSS,
|
||||
'docsearch.js/{version}/docsearch.css': resources.docsearchCSS,
|
||||
'fontawesome/{version}/css/font-awesome.min.css': resources.fontawesome,
|
||||
'foundation-icons/{version}/foundation-icons.min.css': resources.foundationIconsCSS,
|
||||
'gh/alpinejs/alpine@v{version}/dist/alpine.': resources.alpinejs,
|
||||
|
@ -713,12 +776,12 @@ mappings.cdn = {
|
|||
'momentjs/{version}/moment.': resources.moment,
|
||||
'momentjs/{version}/moment.min.': resources.moment,
|
||||
'mootools/{version}/mootools-': resources.mootools,
|
||||
'select2/{version}/': resources.select2,
|
||||
'simplemde/{version}/simplemde.js': resources.simplemdeJS,
|
||||
'simplemde/{version}/simplemde.min.js': resources.simplemdeJS,
|
||||
'simplemde/{version}/simplemde.css': resources.simplemdeCSS,
|
||||
'simplemde/{version}/simplemde.min.css': resources.simplemdeCSS,
|
||||
'snowplow/{version}/sp.': resources.snowplow,
|
||||
'swfobject/{version}/swfobject.': resources.swfobject,
|
||||
'underscorejs/{version}/underscore.': resources.underscore,
|
||||
'underscorejs/{version}/underscore-min.': resources.underscore,
|
||||
'webfontloader/{version}/webfont': resources.webfontloader
|
||||
|
@ -761,7 +824,6 @@ mappings.cdn = {
|
|||
'momentjs/{version}/moment.min.': resources.moment,
|
||||
'prototype/{version}/prototype.': resources.prototypeJS,
|
||||
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
|
||||
'swfobject/{version}/swfobject.': resources.swfobject,
|
||||
'underscore/{version}/underscore.': resources.underscore,
|
||||
'underscore/{version}/underscore-min.': resources.underscore
|
||||
}
|
||||
|
@ -782,7 +844,6 @@ mappings.cdn = {
|
|||
'momentjs/{version}/moment.min.': resources.moment,
|
||||
'prototype/{version}/prototype.': resources.prototypeJS,
|
||||
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
|
||||
'swfobject/{version}/swfobject.': resources.swfobject,
|
||||
'underscore/{version}/underscore.': resources.underscore,
|
||||
'underscore/{version}/underscore-min.': resources.underscore
|
||||
}
|
||||
|
@ -813,8 +874,6 @@ mappings.cdn = {
|
|||
'mootools/{version}/mootools-core.': resources.mootools,
|
||||
'prototype/{version}/prototype.': resources.prototypeJS,
|
||||
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
|
||||
'swfobject/{version}/swfobject.': resources.swfobject,
|
||||
'swfobject/{version}/swfobject_src.': resources.swfobject,
|
||||
'underscore.js/{version}/underscore.': resources.underscore,
|
||||
'underscore.js/{version}/underscore-min.': resources.underscore,
|
||||
'webfont/{version}/webfont.': resources.webfontloader,
|
||||
|
@ -847,7 +906,6 @@ mappings.cdn = {
|
|||
'mootools/{version}/mootools-core.': resources.mootools,
|
||||
'prototype/{version}/prototype.': resources.prototypeJS,
|
||||
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
|
||||
'swfobject/{version}/swfobject.': resources.swfobject,
|
||||
'underscore.js/{version}/underscore.': resources.underscore,
|
||||
'underscore.js/{version}/underscore-min.': resources.underscore,
|
||||
'webfont/{version}/webfont.': resources.webfontloader,
|
||||
|
@ -875,7 +933,6 @@ mappings.cdn = {
|
|||
'mootools/{version}/mootools-core.': resources.mootools,
|
||||
'prototype/{version}/prototype.': resources.prototypeJS,
|
||||
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
|
||||
'swfobject/{version}/swfobject.': resources.swfobject,
|
||||
'underscore.js/{version}/underscore.': resources.underscore,
|
||||
'underscore.js/{version}/underscore-min.': resources.underscore,
|
||||
'webfont/{version}/webfont.': resources.webfontloader,
|
||||
|
@ -907,7 +964,6 @@ mappings.cdn = {
|
|||
'mootools/{version}/mootools-core.': resources.mootools,
|
||||
'prototype/{version}/prototype.': resources.prototypeJS,
|
||||
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
|
||||
'swfobject/{version}/swfobject.': resources.swfobject,
|
||||
'webfont/{version}/webfont.': resources.webfontloader,
|
||||
'webfont/{version}/webfont_debug.': resources.webfontloader
|
||||
}
|
||||
|
@ -940,7 +996,6 @@ mappings.cdn = {
|
|||
'mootools/{version}/mootools-core.': resources.mootools,
|
||||
'prototype/{version}/prototype.': resources.prototypeJS,
|
||||
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
|
||||
'swfobject/{version}/swfobject.': resources.swfobject,
|
||||
'twitter-bootstrap/{version}/js/bootstrap.': resources.bootstrapJS,
|
||||
'twitter-bootstrap/{version}/css/bootstrap.': resources.bootstrapCSS,
|
||||
'underscore.js/{version}/underscore.': resources.underscore,
|
||||
|
@ -984,7 +1039,6 @@ mappings.cdn = {
|
|||
'mootools/{version}/mootools.': resources.mootools,
|
||||
'prototype/{version}/prototype.': resources.prototypeJS,
|
||||
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
|
||||
'swfobject/{version}/swfobject.': resources.swfobject,
|
||||
'underscore/{version}/underscore.': resources.underscore,
|
||||
'underscore/{version}/underscore-min.': resources.underscore,
|
||||
'webfont/{version}/webfont.': resources.webfontloader,
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* Messenger
|
||||
*/
|
||||
|
||||
var messenger = {};
|
||||
let messenger = {};
|
||||
|
||||
|
||||
/**
|
||||
|
@ -41,7 +41,11 @@ messenger._handleMessageReceived = function (message, sender, sendResponse) {
|
|||
switch (topic) {
|
||||
|
||||
case 'tab:fetch-injections':
|
||||
sendResponse({'value': stateManager.tabs[value].injections});
|
||||
sendResponse({'value': {
|
||||
'injections': stateManager.tabs[value].injections,
|
||||
'blockedCounter': stateManager.tabs[value].blocked,
|
||||
'missingCounter': stateManager.tabs[value].missing
|
||||
}});
|
||||
return MessageResponse.SYNCHRONOUS;
|
||||
|
||||
case 'tab:inject':
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* Request Analyzer
|
||||
*/
|
||||
|
||||
var requestAnalyzer = {};
|
||||
let requestAnalyzer = {};
|
||||
|
||||
|
||||
/**
|
||||
|
@ -52,9 +52,10 @@ requestAnalyzer.isValidCandidate = function (requestDetails, tabDetails) {
|
|||
|
||||
// Font Awesome injections in Chromium deactivated (https://gitlab.com/nobody42/localcdn/-/issues/67)
|
||||
if (!BrowserType.FIREFOX) {
|
||||
if (requestDetails.url.includes('font-awesome') || requestDetails.url.includes('fontawesome')) {
|
||||
console.warn(`${LogString.PREFIX} ${LogString.FONT_AWESOME}`);
|
||||
log.append(tabDetails.url, requestDetails.url, LogString.FONT_AWESOME, true);
|
||||
let requestType = requestAnalyzer.chromeSupport(requestDetails.url);
|
||||
if (requestType !== '') {
|
||||
console.warn(`${LogString.PREFIX} ${requestType} ${LogString.NOT_SUPPORTED}`);
|
||||
log.append(tabDetails.url, requestDetails.url, `${requestType} ${LogString.NOT_SUPPORTED}`, true);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -69,6 +70,20 @@ requestAnalyzer.isValidCandidate = function (requestDetails, tabDetails) {
|
|||
return requestDetails.method === WebRequest.GET;
|
||||
};
|
||||
|
||||
requestAnalyzer.chromeSupport = function (url) {
|
||||
let value = '';
|
||||
|
||||
if (url.includes('font-awesome')) {
|
||||
value = 'font-awesome';
|
||||
} else if (url.includes('fontawesome')) {
|
||||
value = 'font-awesome';
|
||||
} else if (url.includes('fork-awesome')) {
|
||||
value = 'fork-awesome';
|
||||
}
|
||||
|
||||
return value;
|
||||
};
|
||||
|
||||
requestAnalyzer.isGoogleMaterialIcons = function (url) {
|
||||
return url.includes('Material+Icons') || url.includes('materialicons');
|
||||
};
|
||||
|
@ -145,13 +160,16 @@ requestAnalyzer._findLocalTarget = function (resourceMappings, basePath, channel
|
|||
let resourcePath, versionNumber, resourcePattern, shorthandResource;
|
||||
|
||||
resourcePath = channelPath.replace(basePath, '');
|
||||
if (resourcePath.startsWith('bootstrap')) {
|
||||
resourcePath = resourcePath.replace(Regex.TWITTER_BOOTSTRAP_ALPHA_BETA, '');
|
||||
}
|
||||
|
||||
// Evaluate first in case of version 'latest' and numerals in resource
|
||||
versionNumber = resourcePath.match(Resource.VERSION_EXPRESSION);
|
||||
|
||||
// Handle weird version expressions
|
||||
if (!versionNumber && Resource.SINGLE_NUMBER_EXPRESSION.test(channelPath)) {
|
||||
versionNumber = channelPath.match(/\d/);
|
||||
versionNumber = channelPath.match(/\d{1,2}/);
|
||||
resourcePattern = resourcePath.replaceAll(versionNumber, Resource.VERSION_PLACEHOLDER);
|
||||
versionNumber = [`${versionNumber}.0`];
|
||||
} else {
|
||||
|
@ -197,14 +215,14 @@ requestAnalyzer._findLocalTarget = function (resourceMappings, basePath, channel
|
|||
bundle = targets.determineBundle(targetPath);
|
||||
if (bundle !== '') {
|
||||
targetPath = requestAnalyzer._getPathOfBundle(initiator, channelHost, channelPath, targetPath, bundle);
|
||||
if (bundle === 'vex (Bundle)' && !targetPath.endsWith('.min.css') && targetPath.endsWith('.css')) {
|
||||
targetPath = targetPath.replace('.css', '.min.css');
|
||||
}
|
||||
}
|
||||
if (targetPath['result'] === false) {
|
||||
break;
|
||||
}
|
||||
|
||||
console.log(`${LogString.PREFIX} ${LogString.REPLACED_RESOURCE} ${targetPath}`);
|
||||
log.append(initiator, channelHost + channelPath, targetPath, false);
|
||||
|
||||
// Prepare and return a local target.
|
||||
return {
|
||||
'source': channelHost,
|
||||
|
@ -238,7 +256,11 @@ requestAnalyzer._getPathOfBundle = function (initiator, channelHost, channelPath
|
|||
} else if (bundle === 'TinyMCE (Bundle)' && filename !== 'tinymce.min.js') {
|
||||
filename = requestAnalyzer._handleTinyMCE(channelPath, channelHost, initiator);
|
||||
} else if (bundle === 'DataTables (Bundle)') {
|
||||
filename = requestAnalyzer._handleDataTables(filename);
|
||||
filename = requestAnalyzer._handleUncompressedFiles(filename);
|
||||
} else if (bundle === 'ScrollMagic (Bundle)' && !filename.endsWith('.min.js')) {
|
||||
filename = requestAnalyzer._handleUncompressedFiles(filename);
|
||||
} else if (bundle === 'Font Awesome (Fonts) (Bundle)') {
|
||||
filename = requestAnalyzer._handleFontawesomeFiles(targetPath, filename);
|
||||
}
|
||||
|
||||
if (filename === false) {
|
||||
|
@ -268,7 +290,7 @@ requestAnalyzer._handleMathJax = function (channelPath, channelHost, initiator)
|
|||
return filename;
|
||||
};
|
||||
|
||||
requestAnalyzer._handleDataTables = function (filename) {
|
||||
requestAnalyzer._handleUncompressedFiles = function (filename) {
|
||||
if (!filename.endsWith('.min.js') && filename.endsWith('.js')) {
|
||||
return filename.replace('.js', '.min.js');
|
||||
} else if (!filename.endsWith('.min.css') && filename.endsWith('.css')) {
|
||||
|
@ -287,6 +309,13 @@ requestAnalyzer._handleTinyMCE = function (channelPath, channelHost, initiator)
|
|||
return filename;
|
||||
};
|
||||
|
||||
requestAnalyzer._handleFontawesomeFiles = function (targetPath, filename) {
|
||||
if (targetPath === 'resources/font-awesome/4.7.0/fonts/') {
|
||||
return filename.replace('fontawesome-webfont.woff', 'fontawesome-webfont.woff2');
|
||||
}
|
||||
return filename;
|
||||
};
|
||||
|
||||
requestAnalyzer._applyAllowlistedDomains = function () {
|
||||
storageManager.type.get(Setting.ALLOWLISTED_DOMAINS, function (items) {
|
||||
requestAnalyzer.allowlistedDomains = items.allowlistedDomains || {};
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
* Request Sanitizer
|
||||
*/
|
||||
|
||||
var requestSanitizer = {};
|
||||
let requestSanitizer = {};
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* Resources
|
||||
*/
|
||||
|
||||
var resources = {
|
||||
let resources = {
|
||||
|
||||
// Ajax Bootstrap Select
|
||||
'ajaxBootstrapSelect': {
|
||||
|
@ -106,14 +106,6 @@ var resources = {
|
|||
'angularJSslider': {
|
||||
'path': 'resources/angularjs-slider/{version}/rzslider.min.jsm'
|
||||
},
|
||||
// AngularJS ui-select [Deprecated]
|
||||
'angularJsUiSelect': {
|
||||
'path': 'resources/angular-ui-select/{version}/select.min.jsm'
|
||||
},
|
||||
// angular-ui-utils [Deprecated]
|
||||
'angularUiUtils': {
|
||||
'path': 'resources/angular-ui-utils/{version}/angular-ui-utils.min.jsm'
|
||||
},
|
||||
// AngularUI Bootstrap [Deprecated]
|
||||
'angularUiBootstrapTPLS': {
|
||||
'path': 'resources/angular-ui-bootstrap/{version}/ui-bootstrap-tpls.min.jsm'
|
||||
|
@ -136,10 +128,6 @@ var resources = {
|
|||
'angularPayments': {
|
||||
'path': 'resources/zumper-angular-payments/{version}/angular-payments.jsm'
|
||||
},
|
||||
// Angular Stripe Checkout [Deprecated]
|
||||
'angularStripeCheckout': {
|
||||
'path': 'resources/angular-stripe-checkout/{version}/angular-stripe-checkout.min.jsm'
|
||||
},
|
||||
// Angular Translate (Bundle)
|
||||
'angularTranslate': {
|
||||
'path': 'resources/angular-translate/{version}/'
|
||||
|
@ -301,7 +289,7 @@ var resources = {
|
|||
},
|
||||
// Chart.js
|
||||
'chartJs': {
|
||||
'path': 'resources/Chart.js/{version}/Chart.bundle.min.jsm'
|
||||
'path': 'resources/Chart.js/{version}/chart.min.jsm'
|
||||
},
|
||||
'chartJsCSS': {
|
||||
'path': 'resources/Chart.js/{version}/Chart.min.css'
|
||||
|
@ -337,10 +325,6 @@ var resources = {
|
|||
'd3JS': {
|
||||
'path': 'resources/d3/{version}/d3.min.jsm'
|
||||
},
|
||||
// D3 Legend [Deprecated]
|
||||
'd3legend': {
|
||||
'path': 'resources/d3-legend/{version}/d3-legend.min.jsm'
|
||||
},
|
||||
// datatables
|
||||
'datatables': {
|
||||
'path': 'resources/datatables/{version}/'
|
||||
|
@ -374,13 +358,6 @@ var resources = {
|
|||
'docsifyThemeSimpleDark': {
|
||||
'path': 'resources/docsify-themeable/{version}/theme-simple-dark.css'
|
||||
},
|
||||
// Drawer [Deprecated]
|
||||
'drawerJS': {
|
||||
'path': 'resources/drawer/{version}/drawer.min.jsm'
|
||||
},
|
||||
'drawerCSS': {
|
||||
'path': 'resources/drawer/{version}/drawer.min.css'
|
||||
},
|
||||
// dygraph
|
||||
'dygraph': {
|
||||
'path': 'resources/dygraph/{version}/dygraph.min.jsm'
|
||||
|
@ -423,14 +400,6 @@ var resources = {
|
|||
'feather': {
|
||||
'path': 'resources/feather-icons/{version}/feather.min.jsm'
|
||||
},
|
||||
// Finify bundle
|
||||
'findifyBundle': {
|
||||
'path': 'resources/findify-bundle/{version}/'
|
||||
},
|
||||
// FitText.js [Deprecated]
|
||||
'fitTextJs': {
|
||||
'path': 'resources/FitText.js/{version}/jquery.fittext.min.jsm'
|
||||
},
|
||||
// flickity
|
||||
'flickity': {
|
||||
'path': 'resources/flickity/{version}/flickity.pkgd.min.jsm'
|
||||
|
@ -482,6 +451,10 @@ var resources = {
|
|||
'googleMaterialIcons': {
|
||||
'path': 'resources/google-material-design-icons/google-material-design-icons.css'
|
||||
},
|
||||
// handlebars.js
|
||||
'handlebarsJs': {
|
||||
'path': 'resources/handlebars.js/{version}/handlebars.min.jsm'
|
||||
},
|
||||
// highlight.js (Bundle)
|
||||
'highlightJS': {
|
||||
'path': 'resources/highlight.js/{version}/'
|
||||
|
@ -506,6 +479,10 @@ var resources = {
|
|||
'InstantSearchCSS': {
|
||||
'path': 'resources/instantsearch.css/{version}/algolia-min.css'
|
||||
},
|
||||
// in-view [Deprecated]
|
||||
'inView': {
|
||||
'path': 'resources/in-view/{version}/in-view.min.jsm'
|
||||
},
|
||||
// iScroll [Deprecated]
|
||||
'iScroll': {
|
||||
'path': 'resources/iScroll/{version}/iscroll.min.jsm'
|
||||
|
@ -549,6 +526,10 @@ var resources = {
|
|||
'jqueryCycle2': {
|
||||
'path': 'resources/jquery.cycle2/{version}/'
|
||||
},
|
||||
// Colorbox
|
||||
'jqueryColorbox': {
|
||||
'path': 'resources/jquery.colorbox/{version}/jquery.colorbox-min.jsm'
|
||||
},
|
||||
// jquery.cookie [Deprecated]
|
||||
'jqueryCookie': {
|
||||
'path': 'resources/jquery-cookie/{version}/jquery.cookie.min.jsm'
|
||||
|
@ -561,6 +542,13 @@ var resources = {
|
|||
'jQueryEasing': {
|
||||
'path': 'resources/jquery-easing/{version}/jquery.easing.min.jsm'
|
||||
},
|
||||
// jquery-jcrop
|
||||
'jqueryJcropJS': {
|
||||
'path': 'resources/jquery-jcrop/{version}/js/jquery.Jcrop.min.jsm'
|
||||
},
|
||||
'jqueryJcropCSS': {
|
||||
'path': 'resources/jquery-jcrop/{version}/css/jquery.Jcrop.min.css'
|
||||
},
|
||||
// jQuery Lazy Load [Deprecated]
|
||||
'jQueryLazyLoad': {
|
||||
'path': 'resources/jquery.lazyload/{version}/jquery.lazyload.min.jsm'
|
||||
|
@ -577,6 +565,13 @@ var resources = {
|
|||
'jQueryMigrate': {
|
||||
'path': 'resources/jquery-migrate/{version}/jquery-migrate.min.jsm'
|
||||
},
|
||||
// jquery-minicolors
|
||||
'jqueryMinicolorsJS': {
|
||||
'path': 'resources/jquery-minicolors/{version}/jquery.minicolors.min.jsm'
|
||||
},
|
||||
'jqueryMinicolorsCSS': {
|
||||
'path': 'resources/jquery-minicolors/{version}/jquery.minicolors.min.css'
|
||||
},
|
||||
// jQuery Modal [Deprecated]
|
||||
'jQueryModalJS': {
|
||||
'path': 'resources/jquery-modal/{version}/jquery.modal.min.jsm'
|
||||
|
@ -652,7 +647,11 @@ var resources = {
|
|||
},
|
||||
// knockout
|
||||
'knockout': {
|
||||
'path': 'resources/knockout/{version}/knockout-latest.min.jsm'
|
||||
'path': 'resources/knockout/{version}/knockout-min.jsm'
|
||||
},
|
||||
// knockout.mapping
|
||||
'knockoutMapping': {
|
||||
'path': 'resources/knockout.mapping/{version}/knockout.mapping.min.jsm'
|
||||
},
|
||||
// lazysizes
|
||||
'lazysizes': {
|
||||
|
@ -782,6 +781,13 @@ var resources = {
|
|||
'ngxBootstrapDatepicker': {
|
||||
'path': 'resources/ngx-bootstrap/{version}/datepicker/bs-datepicker.css'
|
||||
},
|
||||
// nprogress
|
||||
'nprogressCSS': {
|
||||
'path': 'resources/nprogress/{version}/nprogress.min.css'
|
||||
},
|
||||
'nprogressJS': {
|
||||
'path': 'resources/nprogress/{version}/nprogress.min.jsm'
|
||||
},
|
||||
// noUiSlider
|
||||
'noUiSlider': {
|
||||
'path': 'resources/noUiSlider/{version}/nouislider.min.jsm'
|
||||
|
@ -874,6 +880,13 @@ var resources = {
|
|||
'pureCSS': {
|
||||
'path': 'resources/pure/{version}/'
|
||||
},
|
||||
// rangeslider.js
|
||||
'rangesliderJS': {
|
||||
'path': 'resources/rangeslider.js/{version}/rangeslider.min.jsm'
|
||||
},
|
||||
'rangesliderCSS': {
|
||||
'path': 'resources/rangeslider.js/{version}/rangeslider.min.css'
|
||||
},
|
||||
// Raven.js
|
||||
'ravenJS': {
|
||||
'path': 'resources/raven.js/{version}/raven.min.jsm'
|
||||
|
@ -932,6 +945,10 @@ var resources = {
|
|||
'scriptaculous': {
|
||||
'path': 'resources/scriptaculous/{version}/scriptaculous.jsm'
|
||||
},
|
||||
// ScrollMagic (Bundle)
|
||||
'scrollMagic': {
|
||||
'path': 'resources/ScrollMagic/{version}/'
|
||||
},
|
||||
// Search Insights
|
||||
'searchInsights': {
|
||||
'path': 'resources/search-insights/{version}/search-insights.min.jsm'
|
||||
|
@ -1007,9 +1024,16 @@ var resources = {
|
|||
'storeJS': {
|
||||
'path': 'resources/store.js/{version}/store.legacy.min.jsm'
|
||||
},
|
||||
// SWFObject [Deprecated]
|
||||
'swfobject': {
|
||||
'path': 'resources/swfobject/{version}/swfobject.jsm'
|
||||
// suprabase-js
|
||||
'supabaseJs': {
|
||||
'path': 'resources/supabase-js/{version}/supabase.min.jsm'
|
||||
},
|
||||
// swagger-ui
|
||||
'swaggerUiJS': {
|
||||
'path': 'resources/swagger-ui/{version}/swagger-ui-bundle.min.jsm'
|
||||
},
|
||||
'swaggerUiCSS': {
|
||||
'path': 'resources/swagger-ui/{version}/swagger-ui.min.css'
|
||||
},
|
||||
// Swiper
|
||||
'swiperJS': {
|
||||
|
@ -1018,6 +1042,10 @@ var resources = {
|
|||
'swiperCSS': {
|
||||
'path': 'resources/Swiper/{version}/css/swiper.min.css'
|
||||
},
|
||||
// tensorflow
|
||||
'tensorflow': {
|
||||
'path': 'resources/tensorflow/{version}/tf.min.jsm'
|
||||
},
|
||||
// Tether JS [Deprecated]
|
||||
'tetherJS': {
|
||||
'path': 'resources/tether/{version}/js/tether.min.jsm'
|
||||
|
@ -1041,6 +1069,10 @@ var resources = {
|
|||
'underscore': {
|
||||
'path': 'resources/underscore.js/{version}/underscore-min.jsm'
|
||||
},
|
||||
// URI.js
|
||||
'uriJS': {
|
||||
'path': 'resources/URI.js/{version}/URI.min.jsm'
|
||||
},
|
||||
// urlize
|
||||
'urlize': {
|
||||
'path': 'resources/urlize/{version}/urlize.jsm'
|
||||
|
@ -1083,6 +1115,10 @@ var resources = {
|
|||
'vueResource': {
|
||||
'path': 'resources/vue-resource/{version}/vue-resource.min.jsm'
|
||||
},
|
||||
// vue-router
|
||||
'vueRouter': {
|
||||
'path': 'resources/vue-router/{version}/vue-router.global.min.jsm'
|
||||
},
|
||||
// vuex
|
||||
'vuex': {
|
||||
'path': 'resources/vuex/{version}/vuex.min.jsm'
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* Shorthands
|
||||
*/
|
||||
|
||||
var shorthands = {};
|
||||
let shorthands = {};
|
||||
|
||||
shorthands.specialFiles = function (channelHost, channelPath, searchString) {
|
||||
|
||||
|
@ -64,11 +64,11 @@ shorthands.specialFiles = function (channelHost, channelPath, searchString) {
|
|||
'bundle': ''
|
||||
};
|
||||
} else if (channelPath.endsWith(MaterialIcons.DEFAULT)) {
|
||||
lastVersion = targets.setLastVersion('/google-material-design-icons/');
|
||||
lastVersion = targets.setLastVersion('/materialicons/');
|
||||
return {
|
||||
'source': channelHost,
|
||||
'versionDelivered': lastVersion,
|
||||
'path': `resources/google-material-design-icons/${lastVersion}/MaterialIcons.woff2`,
|
||||
'path': `resources/google-material-design-icons/materialicons/${lastVersion}/MaterialIcons.woff2`,
|
||||
'bundle': ''
|
||||
};
|
||||
} else if (Regex.BOOTSTRAP_DATEPICKER_3.test(channelPath)) {
|
||||
|
@ -245,6 +245,58 @@ shorthands.specialFiles = function (channelHost, channelPath, searchString) {
|
|||
'path': `resources/createjs/${lastVersion}/createjs.min.jsm`,
|
||||
'bundle': ''
|
||||
};
|
||||
} else if (CompleteURL.startsWith('cdnjs.cloudflare.com/ajax/libs/gsap/latest/')) {
|
||||
if (channelPath.endsWith('js')) {
|
||||
channelPath += 'm';
|
||||
}
|
||||
lastVersion = '1.20.5';
|
||||
return {
|
||||
'source': channelHost,
|
||||
'versionDelivered': lastVersion,
|
||||
'path': `resources/gsap/${lastVersion}/${helpers.extractFilenameFromPath(channelPath)}`,
|
||||
'bundle': 'GSAP'
|
||||
};
|
||||
} else if (CompleteURL.startsWith('cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.')) {
|
||||
return {
|
||||
'source': channelHost,
|
||||
'versionDelivered': 'latest',
|
||||
'versionRequested': 'latest',
|
||||
'path': 'resources/google-material-design-icons/google-material-design-icons.css',
|
||||
'bundle': ''
|
||||
};
|
||||
} else if (CompleteURL.startsWith('cdn.jsdelivr.net/npm/@webcomponents/webcomponentsjs/webcomponents-loader.')) {
|
||||
lastVersion = targets.setLastVersion('/webcomponentsjs/');
|
||||
return {
|
||||
'source': channelHost,
|
||||
'versionDelivered': lastVersion,
|
||||
'versionRequested': 'latest',
|
||||
'path': `resources/webcomponentsjs/${lastVersion}/webcomponents-loader.min.jsm`,
|
||||
'bundle': ''
|
||||
};
|
||||
} else if (CompleteURL.startsWith('unpkg.com/aos@next/dist/aos.')) {
|
||||
let file;
|
||||
lastVersion = targets.setLastVersion('/aos/latest');
|
||||
if (channelPath.endsWith('js')) {
|
||||
file = 'aos.jsm';
|
||||
} else {
|
||||
file = 'aos.css';
|
||||
}
|
||||
return {
|
||||
'source': channelHost,
|
||||
'versionDelivered': lastVersion,
|
||||
'versionRequested': 'next',
|
||||
'path': `resources/aos/${lastVersion}/${file}`,
|
||||
'bundle': ''
|
||||
};
|
||||
} else if (Regex.DOCSIFY.test(channelPath)) {
|
||||
lastVersion = targets.setLastVersion('/docsify/');
|
||||
return {
|
||||
'source': channelHost,
|
||||
'versionDelivered': lastVersion,
|
||||
'versionRequested': channelPath.split('@')[1],
|
||||
'path': `resources/docsify/${lastVersion}/docsify.min.jsm`,
|
||||
'bundle': ''
|
||||
};
|
||||
}
|
||||
return {
|
||||
'result': false,
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* State Manager
|
||||
*/
|
||||
|
||||
var stateManager = {};
|
||||
let stateManager = {};
|
||||
|
||||
|
||||
/**
|
||||
|
@ -31,7 +31,8 @@ var stateManager = {};
|
|||
*/
|
||||
|
||||
stateManager.registerInjection = function (tabIdentifier, injection, url) {
|
||||
let injectionIdentifier, registeredTab, injectionCount, missingCount, initiatorDomain, htmlFilterIsActive;
|
||||
let injectionIdentifier, registeredTab, injectionCount, missingCount, blockedCount,
|
||||
initiatorDomain, htmlFilterIsActive;
|
||||
|
||||
if (injection['result'] !== false) {
|
||||
injectionIdentifier = injection.source + injection.path;
|
||||
|
@ -42,8 +43,13 @@ stateManager.registerInjection = function (tabIdentifier, injection, url) {
|
|||
initiatorDomain = helpers.extractDomainFromUrl(url, true) || Address.EXAMPLE;
|
||||
htmlFilterIsActive = manipulateDOM.checkHtmlFilterEnabled(initiatorDomain);
|
||||
|
||||
injectionCount = Object.keys(registeredTab.injections).length || 0;
|
||||
missingCount = registeredTab.missing || 0;
|
||||
if (registeredTab !== undefined) {
|
||||
injectionCount = Object.keys(registeredTab.injections).length || 0;
|
||||
missingCount = registeredTab.missing || 0;
|
||||
blockedCount = registeredTab.blocked || 0;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
if (injectionCount > 0) {
|
||||
chrome.browserAction.setTitle({
|
||||
|
@ -52,14 +58,14 @@ stateManager.registerInjection = function (tabIdentifier, injection, url) {
|
|||
});
|
||||
}
|
||||
if (stateManager.showIconBadge === true) {
|
||||
if (missingCount > 0 && stateManager.changeBadgeColorMissingResources) {
|
||||
if ((missingCount > 0 || blockedCount > 0) && stateManager.changeBadgeColorMissingResources) {
|
||||
wrappers.setBadgeColoring(tabIdentifier, BadgeSettingMissingResource.TYPE);
|
||||
} else if (htmlFilterIsActive) {
|
||||
wrappers.setBadgeColoring(tabIdentifier, BadgeSettingHTMLFilter.TYPE);
|
||||
} else {
|
||||
wrappers.setBadgeColoring(tabIdentifier, BadgeSetting.TYPE);
|
||||
}
|
||||
wrappers.setBadgeText(tabIdentifier, injectionCount);
|
||||
wrappers.setBadgeText(tabIdentifier, (injectionCount + missingCount + blockedCount));
|
||||
}
|
||||
if (isNaN(storageManager.amountInjected)) {
|
||||
storageManager.type.get(Setting.AMOUNT_INJECTED, function (items) {
|
||||
|
@ -90,15 +96,19 @@ stateManager.addDomainToAllowlist = function (domain) {
|
|||
|
||||
stateManager.removeDomainFromAllowlist = function (domain) {
|
||||
return new Promise((resolve) => {
|
||||
let allowlistedDomains, wildcard;
|
||||
let allowlistedDomains;
|
||||
|
||||
allowlistedDomains = requestAnalyzer.allowlistedDomains;
|
||||
wildcard = helpers.getWildcard(domain);
|
||||
|
||||
if (allowlistedDomains[domain]) {
|
||||
delete allowlistedDomains[domain];
|
||||
} else {
|
||||
delete allowlistedDomains[wildcard];
|
||||
for (const key in allowlistedDomains) {
|
||||
if (key.startsWith('*.') && domain.endsWith(key.substring(2))) {
|
||||
delete allowlistedDomains[key];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
storageManager.type.set({allowlistedDomains}, resolve);
|
||||
|
@ -156,7 +166,8 @@ stateManager._createTab = function (tab) {
|
|||
|
||||
stateManager.tabs[tabIdentifier] = {
|
||||
'injections': {},
|
||||
'missing': 0
|
||||
'missing': 0,
|
||||
'blocked': 0
|
||||
};
|
||||
|
||||
requestFilters = {
|
||||
|
@ -205,6 +216,7 @@ stateManager._updateTab = function (details) {
|
|||
if (stateManager.tabs[tabIdentifier]) {
|
||||
stateManager.tabs[tabIdentifier].injections = {};
|
||||
stateManager.tabs[tabIdentifier].missing = 0;
|
||||
stateManager.tabs[tabIdentifier].blocked = 0;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -284,7 +296,7 @@ stateManager._setIconDisabled = function (tabIdentifier) {
|
|||
|
||||
stateManager.requests = {};
|
||||
stateManager.tabs = {};
|
||||
stateManager.getInvertOption = false;
|
||||
stateManager.getInvertOption = true;
|
||||
stateManager.validHosts = [];
|
||||
stateManager.selectedIcon = 'Default';
|
||||
stateManager.internalStatistics = false;
|
||||
|
@ -317,8 +329,12 @@ storageManager.type.get([
|
|||
if (items.selectedIcon === undefined) {
|
||||
stateManager.selectedIcon = 'Default';
|
||||
}
|
||||
if (items.negateHtmlFilterList === undefined) {
|
||||
stateManager.getInvertOption = true;
|
||||
} else {
|
||||
stateManager.getInvertOption = items.negateHtmlFilterList;
|
||||
}
|
||||
stateManager.showIconBadge = items.showIconBadge;
|
||||
stateManager.getInvertOption = items.negateHtmlFilterList;
|
||||
stateManager.selectedIcon = items.selectedIcon;
|
||||
stateManager.internalStatistics = items.internalStatistics;
|
||||
stateManager.hideDonationButton = items.hideDonationButton;
|
||||
|
|
|
@ -26,7 +26,7 @@ const InvalidFile = 'Invalid file!';
|
|||
* Storage Manager
|
||||
*/
|
||||
|
||||
var storageManager = {};
|
||||
let storageManager = {};
|
||||
|
||||
|
||||
/**
|
||||
|
@ -44,7 +44,9 @@ storageManager.checkStorageType = function () {
|
|||
};
|
||||
|
||||
storageManager.migrateData = function (target) {
|
||||
let storageSource, storageDestination;
|
||||
let storageSource, storageDestination, syncFetch;
|
||||
|
||||
syncFetch = false;
|
||||
|
||||
if (target === 'local') {
|
||||
storageSource = chrome.storage.sync;
|
||||
|
@ -52,6 +54,11 @@ storageManager.migrateData = function (target) {
|
|||
} else if (target === 'sync') {
|
||||
storageSource = chrome.storage.local;
|
||||
storageDestination = chrome.storage.sync;
|
||||
} else if (target === 'sync-fetch') {
|
||||
storageSource = chrome.storage.sync;
|
||||
storageDestination = chrome.storage.sync;
|
||||
target = 'sync';
|
||||
syncFetch = true;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
@ -84,6 +91,9 @@ storageManager.migrateData = function (target) {
|
|||
[Setting.BADGE_HTML_FILTER_BACKGROUND_COLOR]: data.badgeHTMLFilterBackgroundColor,
|
||||
[Setting.BADGE_HTML_FILTER_TEXT_COLOR]: data.badgeHTMLfilterTextColor
|
||||
});
|
||||
if (syncFetch === true) {
|
||||
chrome.runtime.reload();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -110,19 +120,21 @@ storageManager.startImportFilePicker = function () {
|
|||
};
|
||||
|
||||
storageManager.handleImportFilePicker = function () {
|
||||
return new Promise((resolve) => {
|
||||
try {
|
||||
let file = document.getElementById('import-file-picker').files[0];
|
||||
storageManager._readFile(file)
|
||||
.then(JSON.parse)
|
||||
.then(storageManager._validation);
|
||||
resolve();
|
||||
let file, reader;
|
||||
file = document.getElementById('import-file-picker').files[0];
|
||||
|
||||
reader = new FileReader();
|
||||
reader.readAsText(file, 'UTF-8');
|
||||
|
||||
reader.onload = (ev) => {
|
||||
let content = ev.target.result;
|
||||
try {
|
||||
storageManager._validation(JSON.parse(content));
|
||||
} catch (err) {
|
||||
console.error(`[ LocalCDN ] ${err}`);
|
||||
alert(err);
|
||||
}
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
@ -140,17 +152,6 @@ storageManager._handleStorageChanged = function (type) {
|
|||
}
|
||||
};
|
||||
|
||||
storageManager._readFile = function (file) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let reader = new FileReader();
|
||||
reader.onload = () => {
|
||||
resolve(reader.result);
|
||||
};
|
||||
reader.onerror = reject;
|
||||
reader.readAsText(file);
|
||||
});
|
||||
};
|
||||
|
||||
storageManager._validation = function (content) {
|
||||
let imported = {};
|
||||
|
||||
|
@ -212,7 +213,7 @@ storageManager._validateDomainsAndStatistics = function (type, obj) {
|
|||
if (type === 'allowedDomainsGoogleFonts' || type === 'domainsManipulateDOM' || type === 'allowlistedDomains') {
|
||||
for (const [key, value] of Object.entries(obj)) {
|
||||
// eslint-disable-next-line no-useless-escape
|
||||
if (((/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,24}/).test(key) || key === '') && value === true) {
|
||||
if (((Regex.DOMAIN).test(key) || key === '') && value === true) {
|
||||
valid[key] = value;
|
||||
} else {
|
||||
alert(`${chrome.i18n.getMessage('dialogImportFailed')}: ${key}`);
|
||||
|
@ -221,12 +222,12 @@ storageManager._validateDomainsAndStatistics = function (type, obj) {
|
|||
}
|
||||
} else if (type === 'internalStatisticsData') {
|
||||
for (const [date, values] of Object.entries(obj)) {
|
||||
if ((/((2\d)\d{2})-(0[1-9]|1[012])-(0[1-9]|[12]\d|3[01])/).test(date)) {
|
||||
if ((Regex.INTERNAL_STATISTICS_DATA).test(date)) {
|
||||
for (const [types, category] of Object.entries(values)) {
|
||||
if (types === 'frameworks') {
|
||||
for (const [name, counter] of Object.entries(category)) {
|
||||
// eslint-disable-next-line max-len
|
||||
if (!(/resources\/[0-9a-z.-]+\/((?:\d{1,2}\.){1,3}\d{1,2})?.*\.(css|jsm)/).test(name) && !storageManager._validateNumbers(counter)) {
|
||||
if (!(Regex.INTERNAL_RESOURCES).test(name) && !storageManager._validateNumbers(counter)) {
|
||||
alert(`${chrome.i18n.getMessage('dialogImportFailed')}: ${name}`);
|
||||
throw InvalidFile;
|
||||
}
|
||||
|
@ -234,7 +235,7 @@ storageManager._validateDomainsAndStatistics = function (type, obj) {
|
|||
} else if (types === 'cdns') {
|
||||
for (const [name, counter] of Object.entries(category)) {
|
||||
// eslint-disable-next-line no-useless-escape, max-len
|
||||
if (!(/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,24}/).test(name) && !storageManager._validateNumbers(counter)) {
|
||||
if (!(Regex.DOMAIN).test(name) && !storageManager._validateNumbers(counter)) {
|
||||
alert(`${chrome.i18n.getMessage('dialogImportFailed')}: ${name}`);
|
||||
throw InvalidFile;
|
||||
}
|
||||
|
@ -258,9 +259,9 @@ storageManager._validateDomainsAndStatistics = function (type, obj) {
|
|||
};
|
||||
|
||||
storageManager._validateStrings = function (value) {
|
||||
if ((/((2\d)\d{2})-(0[1-9]|1[012])-(0[1-9]|[12]\d|3[01])/).test(value)) {
|
||||
if ((Regex.ISO_DATE).test(value)) {
|
||||
return value;
|
||||
} else if ((/#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/).test(value)) {
|
||||
} else if ((Regex.HEX_COLOR).test(value)) {
|
||||
return value;
|
||||
} else if (value === 'Default' || value === 'Light' || value === 'Grey') {
|
||||
return value;
|
||||
|
|
|
@ -0,0 +1,106 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 236.988 236.988"
|
||||
style="enable-background:new 0 0 236.988 236.988;"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="popup_check.svg"
|
||||
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"><metadata
|
||||
id="metadata39"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs37" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1021"
|
||||
id="namedview35"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.4938477"
|
||||
inkscape:cx="118.494"
|
||||
inkscape:cy="118.494"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="31"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Capa_1" />
|
||||
<polygon
|
||||
points="198.098,24.326 87.543,134.881 38.891,86.229 0,125.121 87.543,212.662 236.988,63.217 "
|
||||
id="polygon2"
|
||||
style="fill:#f0f0f0;fill-opacity:1" />
|
||||
<g
|
||||
id="g4"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g6"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g8"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g10"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g12"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g14"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g16"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g18"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g20"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g22"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g24"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g26"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g28"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g30"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g32"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
|
@ -0,0 +1,107 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 342.947 342.947"
|
||||
style="enable-background:new 0 0 342.947 342.947;"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="popup_uncheck.svg"
|
||||
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"><metadata
|
||||
id="metadata39"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs37" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1021"
|
||||
id="namedview35"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.4143673"
|
||||
inkscape:cx="171.4735"
|
||||
inkscape:cy="206.32001"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="31"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" />
|
||||
<polygon
|
||||
points="21.213,342.947 171.473,192.686 321.734,342.947 342.947,321.734 192.686,171.473 342.947,21.213 321.734,0 171.473,150.26 21.213,0 0,21.213 150.26,171.473 0,321.734 "
|
||||
id="polygon2"
|
||||
style="fill:#f0f0f0;fill-opacity:1;stroke:#f0f0f0;stroke-width:49.7301;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
transform="matrix(0.82087416,-0.0018069,0.0018043,0.82128778,30.514662,31.320972)" />
|
||||
<g
|
||||
id="g4"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g6"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g8"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g10"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g12"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g14"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g16"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g18"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g20"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g22"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g24"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g26"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g28"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g30"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
<g
|
||||
id="g32"
|
||||
style="fill:#f0f0f0;fill-opacity:1">
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.7 KiB |
|
@ -1,11 +1,15 @@
|
|||
{
|
||||
"manifest_version": 2,
|
||||
"name": "LocalCDN",
|
||||
"version": "2.6.34",
|
||||
"version": "2.6.68",
|
||||
"browser_specific_settings": {
|
||||
"gecko": {
|
||||
"id": "{b86e4813-687a-43e6-ab65-0bde4ab75758}",
|
||||
"strict_min_version": "86.0"
|
||||
"strict_min_version": "113.0"
|
||||
},
|
||||
"gecko_android": {
|
||||
"id": "{b86e4813-687a-43e6-ab65-0bde4ab75758}",
|
||||
"strict_min_version": "120.0"
|
||||
}
|
||||
},
|
||||
"author": "nobody",
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* Helpers
|
||||
*/
|
||||
|
||||
var helpers = {};
|
||||
let helpers = {};
|
||||
|
||||
|
||||
/**
|
||||
|
@ -175,22 +175,39 @@ helpers.getWildcard = function (initiatorDomain) {
|
|||
domain = domain.join().replace(/,/g, '.');
|
||||
return domain;
|
||||
}
|
||||
};
|
||||
|
||||
helpers.getTopLevelDomain = function (initiatorDomain) {
|
||||
let domain = initiatorDomain.split('.');
|
||||
|
||||
domain[domain.length - 2] = '*';
|
||||
return `${domain[domain.length - 2]}.${domain[domain.length - 1]}`;
|
||||
};
|
||||
|
||||
helpers.checkAllowlisted = function (domain, list) {
|
||||
let domainWithoutPrefix, wildcard;
|
||||
if (!domain) return false;
|
||||
|
||||
if (domain === null) {
|
||||
return false;
|
||||
const subdomains = helpers.getAllSubdomains(domain);
|
||||
|
||||
for (const subdomain of subdomains) {
|
||||
if (list[subdomain]) return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
|
||||
helpers.getAllSubdomains = function (domain) {
|
||||
const parts = domain.split('.').reverse();
|
||||
const subdomains = [];
|
||||
let currentSubdomain = '';
|
||||
|
||||
for (const part of parts) {
|
||||
currentSubdomain = part + (currentSubdomain ? `.${currentSubdomain}` : '');
|
||||
subdomains.push(`*.${currentSubdomain}`);
|
||||
subdomains.push(currentSubdomain);
|
||||
}
|
||||
|
||||
if (domain.startsWith(Address.WWW_PREFIX)) {
|
||||
domainWithoutPrefix = domain.slice(Address.WWW_PREFIX.length);
|
||||
}
|
||||
wildcard = helpers.getWildcard(domain);
|
||||
|
||||
return Boolean(list[domain] || list[domainWithoutPrefix] || list[wildcard] || list[domainWithoutPrefix]);
|
||||
return subdomains;
|
||||
};
|
||||
|
||||
helpers.extractFilenameFromPath = function (path) {
|
||||
|
@ -294,3 +311,14 @@ helpers.compareVersion = function (v1, v2) {
|
|||
}
|
||||
return v1.length === v2.length ? true : v1.length < v2.length ? false : true;
|
||||
};
|
||||
|
||||
helpers.isGoogleDomain = function (initiatorDomain) {
|
||||
let parts = initiatorDomain.split('.');
|
||||
|
||||
// remove subdomains if exist
|
||||
if (parts.length > 2) {
|
||||
parts.shift();
|
||||
}
|
||||
|
||||
return GoogleDomains[parts.join('.')] || false;
|
||||
};
|
||||
|
|
|
@ -19,12 +19,12 @@
|
|||
* Log
|
||||
*/
|
||||
|
||||
var log = {};
|
||||
let log = {};
|
||||
|
||||
log.append = function (initiator, resource, target, highlight) {
|
||||
log.append = function (initiator, resource, target, highlight, iframe = '') {
|
||||
storageManager.type.get(Setting.LOGGING, function (items) {
|
||||
if (items.enableLogging) {
|
||||
log.data.push({initiator, resource, target, highlight});
|
||||
log.data.push({initiator, resource, target, highlight, iframe});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
* Updates
|
||||
*/
|
||||
|
||||
var ruleGenerator = {};
|
||||
let ruleGenerator = {};
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
* Stats
|
||||
*/
|
||||
|
||||
var stats = {};
|
||||
let stats = {};
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
* Targets
|
||||
*/
|
||||
|
||||
var targets = {};
|
||||
let targets = {};
|
||||
|
||||
|
||||
/**
|
||||
|
@ -29,9 +29,7 @@ var targets = {};
|
|||
targets.determineBundle = function (path) {
|
||||
path = path.replace('resources', '');
|
||||
let val = '';
|
||||
if (path.startsWith('/findify')) {
|
||||
val = 'Findify';
|
||||
} else if (path.startsWith('/bootstrap-datepicker')) {
|
||||
if (path.startsWith('/bootstrap-datepicker')) {
|
||||
val = 'Bootstrap Datepicker';
|
||||
} else if (path.startsWith('/jquery.lazy/')) {
|
||||
val = 'jQuery Lazy';
|
||||
|
@ -67,6 +65,8 @@ targets.determineBundle = function (path) {
|
|||
val = 'vex';
|
||||
} else if (path.startsWith('/tinymce/')) {
|
||||
val = 'TinyMCE';
|
||||
} else if (path.startsWith('/ScrollMagic/')) {
|
||||
val = 'ScrollMagic';
|
||||
}
|
||||
|
||||
return val === '' ? val : `${val} (Bundle)`;
|
||||
|
@ -80,13 +80,15 @@ targets.setLastVersion = function (type, version) {
|
|||
if (type.startsWith('/1000hz-bootstrap-validator/0.')) return '0.11.9';
|
||||
if (type.startsWith('/ajax-bootstrap-select/1.')) return '1.4.5';
|
||||
if (type.startsWith('/algoliasearch/3.')) return '3.35.1';
|
||||
if (type.startsWith('/algoliasearch/4.')) return '4.14.2';
|
||||
if (type.startsWith('/algoliasearch/4.')) return '4.23.3';
|
||||
if (type.startsWith('/alpinejs/2.')) return '2.8.2';
|
||||
if (type.startsWith('/alpinejs/3.')) return '3.10.3';
|
||||
if (type.startsWith('/alpinejs/3.')) return '3.14.0';
|
||||
if (type.startsWith('/anchor-js/3.')) return '3.2.2';
|
||||
if (type.startsWith('/anchor-js/4.')) return '4.3.1';
|
||||
if (type.startsWith('/anchor-js/5.')) return '5.0.0';
|
||||
if (type.startsWith('/angular.js/1.')) {
|
||||
if (helpers.compareVersion('1.2.19', version)) return '1.2.19'; // <= v1.2.19
|
||||
if (helpers.compareVersion('1.0.8', version)) return '1.0.8'; // <= v1.0.8
|
||||
if (helpers.compareVersion('1.2.19', version)) return '1.2.19'; // > v1.0.8 to <= v1.2.19
|
||||
if (helpers.compareVersion('1.2.32', version)) return '1.2.32'; // > 1.2.19 to <= v1.2.32
|
||||
if (helpers.compareVersion('1.3.0', version)) return '1.3.0'; // > 1.2.32 to <= 1.3.0
|
||||
if (helpers.compareVersion('1.3.20', version)) return '1.3.20'; // > 1.3.0 to <= 1.3.20
|
||||
|
@ -108,8 +110,7 @@ targets.setLastVersion = function (type, version) {
|
|||
if (type.startsWith('/angularjs-toaster/3.')) return '3.0.0';
|
||||
if (type.startsWith('/angular-bootstrap-colorpicker/3.')) return '3.0.32';
|
||||
if (type.startsWith('/zumper-angular-payments/1.')) return '1.0.7';
|
||||
if (type.startsWith('/angular-stripe-checkout@5.')) return '5.1.0';
|
||||
if (type.startsWith('/angular-translate-loader-partial/2.')) return '2.19.0';
|
||||
if (type.startsWith('/angular-translate-loader-partial/2.')) return '2.19.1';
|
||||
if (type.startsWith('/angular-ui-bootstrap/')) {
|
||||
if (helpers.compareVersion('0.10.0', version)) return '0.10.0'; // <= v0.10.0
|
||||
if (helpers.compareVersion('0.14.3', version)) return '0.14.3'; // > 0.10.0 <= v0.14.3
|
||||
|
@ -118,128 +119,122 @@ targets.setLastVersion = function (type, version) {
|
|||
}
|
||||
if (type.startsWith('/angular-ui-router/')) {
|
||||
if (helpers.compareVersion('0.4.3', version)) return '0.4.3'; // <= 0.4.3
|
||||
return '1.0.30'; // > 0.4.3
|
||||
return '1.1.0'; // > 0.4.3
|
||||
}
|
||||
if (type.startsWith('/angular-ui-utils/0.')) return '0.1.1';
|
||||
if (type.startsWith('/angular-ui-select/0.')) return '0.20.0';
|
||||
if (type.startsWith('/angucomplete-alt/3.')) return '3.0.0';
|
||||
if (type.startsWith('/animate.css/3.')) return '3.7.2';
|
||||
if (type.startsWith('/animate.css/4.')) return '4.1.1';
|
||||
if (type.startsWith('/animejs/3.')) return '3.2.1';
|
||||
if (type.startsWith('/animejs/3.')) return '3.2.2';
|
||||
if (type.startsWith('/autocomplete.js/0.')) return '0.38.1';
|
||||
if (type.startsWith('/autocomplete.js/1.')) return '1.5.4';
|
||||
if (type.startsWith('/angular-material/1.') || type.startsWith('/angular-material/0.')) return '1.2.5';
|
||||
if (type.startsWith('/angular-translate/2.')) return '2.19.0';
|
||||
if (type.startsWith('/aos/2.')) return '2.3.4';
|
||||
if (type.startsWith('/angular-translate/2.')) return '2.19.1';
|
||||
if (type.startsWith('/aos/2.') || type.startsWith('/aos/latest')) return '2.3.4';
|
||||
if (type.startsWith('/appboy-web-sdk/3.')) return '3.5.1';
|
||||
if (type.startsWith('/asciinema-player/2.')) return '2.6.1';
|
||||
if (type.startsWith('/axios/0.')) return '0.27.2';
|
||||
if (type.startsWith('/axios/1.')) return '1.7.2';
|
||||
if (type.startsWith('/backbone.js/0.')) return '0.9.10';
|
||||
if (type.startsWith('/backbone.js/1.')) return '1.4.1';
|
||||
if (type.startsWith('/backbone.js/1.')) return '1.6.0';
|
||||
if (type.startsWith('/baguettebox.js/1.')) return '1.11.1';
|
||||
if (type.startsWith('/blazy/1.')) return '1.8.2';
|
||||
if (type.startsWith('/bluebird/3.')) return '3.7.2';
|
||||
if (type.startsWith('/bodymovin/4.')) return '4.13.0';
|
||||
if (type.startsWith('/bodymovin/5.')) return '5.9.6';
|
||||
if (type.startsWith('/bodymovin/5.')) return '5.12.2';
|
||||
if (type.startsWith('/bootbox.js/4.')) return '4.4.0';
|
||||
if (type.startsWith('/bootbox.js/5.')) return '5.5.3';
|
||||
if (type.startsWith('/bootbox.js/6.')) return '6.0.0';
|
||||
if (type.startsWith('/bootstrap-daterangepicker/2.')) return '2.1.27';
|
||||
if (type.startsWith('/bootstrap-daterangepicker/3.')) return '3.1';
|
||||
if (type.startsWith('/bootstrap-datepicker/1.')) return '1.9.0';
|
||||
if (type.startsWith('/bootstrap-icons/1.')) return '1.9.1';
|
||||
if (type.startsWith('/bootstrap-datepicker/1.')) return '1.10.0';
|
||||
if (type.startsWith('/bootstrap-icons/1.')) return '1.11.3';
|
||||
if (type.startsWith('/bootstrap-multiselect/0.')) return '0.9.16';
|
||||
if (type.startsWith('/bootstrap-multiselect/1.')) return '1.1.1';
|
||||
if (type.startsWith('/bootstrap-multiselect/1.')) return '1.1.2';
|
||||
if (type.startsWith('/bootstrap-slider/10.')) return '10.6.2';
|
||||
if (type.startsWith('/bootstrap-slider/11.')) return '11.0.2';
|
||||
if (type.startsWith('/bootstrap-select/1.')) return '1.13.18';
|
||||
if (type.startsWith('/bootstrap-table/1.')) return '1.21.0';
|
||||
if (type.startsWith('/bootstrap-table/1.')) return '1.22.6';
|
||||
if (type.startsWith('/bootstrap-toggle/2.')) return '2.2.2';
|
||||
if (type.startsWith('/bootstrap-vue/2.')) return '2.22.0';
|
||||
if (type.startsWith('/bootstrap-vue/2.')) return '2.23.1';
|
||||
if (type.startsWith('/bootstrap-3-typeahead/4.')) return '4.0.2';
|
||||
if (type.startsWith('/bootswatch/3.')) return '3.4.0';
|
||||
if (type.startsWith('/bootswatch/4.')) return '4.6.1';
|
||||
if (type.startsWith('/bootswatch/5.')) return '5.2.0';
|
||||
if (type.startsWith('/bootswatch/5.')) return '5.3.3';
|
||||
if (type.startsWith('/bowser/')) {
|
||||
if (version !== 'latest' && helpers.compareVersion('1.9.4', version)) return '1.9.4';
|
||||
return '2.11.0';
|
||||
}
|
||||
if (type.startsWith('/bulma/0.')) return '0.9.4';
|
||||
if (type.startsWith('/bxslider/4.')) return '4.2.15';
|
||||
if (type.startsWith('/bulma/0.')) return '1.0.0';
|
||||
if (type.startsWith('/bulma/1.')) return '1.0.1';
|
||||
if (type.startsWith('/bxslider/4.')) return '4.2.17';
|
||||
if (type.startsWith('/Chart.js/2.')) return '2.9.4';
|
||||
if (type.startsWith('/Chart.js/3.')) return '3.9.1';
|
||||
if (type.startsWith('/Chart.js/4.')) return '4.4.1';
|
||||
if (type.startsWith('/clappr/0.') || type.startsWith('/clappr/latest/')) return '0.4.7';
|
||||
if (type.startsWith('/chosen/1.')) return '1.8.7';
|
||||
if (type.startsWith('/clipboard.js/1.')) return '1.7.1';
|
||||
if (type.startsWith('/clipboard.js/2.')) return '2.0.11';
|
||||
if (type.startsWith('/cookieconsent2/3.')) return '3.1.1';
|
||||
if (type.startsWith('/corejs-typeahead/1.')) return '1.3.1';
|
||||
if (type.startsWith('/corejs-typeahead/1.')) return '1.3.4';
|
||||
if (type.startsWith('/createjs/')) return '1.0.0';
|
||||
if (type.startsWith('/d3/3.')) return '3.5.17';
|
||||
if (type.startsWith('/d3/4.')) return '4.13.0';
|
||||
if (type.startsWith('/d3/5.')) return '5.16.0';
|
||||
if (type.startsWith('/d3/6.')) return '6.7.0';
|
||||
if (type.startsWith('/d3/7.')) return '7.6.1';
|
||||
if (type.startsWith('/d3-legend/2.')) return '2.25.6';
|
||||
if (type.startsWith('/d3/7.')) return '7.9.0';
|
||||
if (type.startsWith('/datatables/1.')) return '1.11.0';
|
||||
if (type.startsWith('/dayjs/1.')) return '1.11.5';
|
||||
if (type.startsWith('/dexie/3.') || type.startsWith('/dexie/latest')) return '3.2.2';
|
||||
if (type.startsWith('/dayjs/1.')) return '1.11.11';
|
||||
if (type.startsWith('/dexie/3.')) return '3.2.6';
|
||||
if (type.startsWith('/dexie/4.') || type.startsWith('/dexie/latest')) return '4.0.7';
|
||||
if (type.startsWith('/docsearch.js/2.')) return '2.6.3';
|
||||
if (type.startsWith('/docsify/4.') || type.startsWith('/docsify/')) return '4.12.2';
|
||||
if (type.startsWith('/docsify/4.') || type.startsWith('/docsify/')) return '4.13.1';
|
||||
if (type.startsWith('/docsify-themeable/0.')) return '0.9.0';
|
||||
if (type.startsWith('/drawer/3.')) return '3.2.2';
|
||||
if (type.startsWith('/dygraph/1.')) return '1.1.1';
|
||||
if (type.startsWith('/dygraph/2.')) return '2.1.0';
|
||||
if (type.startsWith('/element-ui/2.')) return '2.15.9';
|
||||
if (type.startsWith('/dygraph/2.')) return '2.2.1';
|
||||
if (type.startsWith('/element-ui/2.')) return '2.15.14';
|
||||
if (type.startsWith('/embedly-player/0.')) return '0.1.0';
|
||||
if (type.startsWith('/ethjs')) return '0.4.0';
|
||||
if (type.startsWith('/exif-js/2.')) return '2.3.0';
|
||||
if (type.startsWith('/ext-core/3.')) return '3.1.0';
|
||||
if (type.startsWith('/fastclick/1.')) return '1.0.6';
|
||||
if (type.startsWith('/findify')) {
|
||||
if (helpers.compareVersion('6.9.15', version)) return '6.9.15'; // <= 6.9.15
|
||||
if (helpers.compareVersion('6.17.0', version)) return '6.17.0'; // > 6.9.15 to <= 6.17.0
|
||||
return '7.1.57';
|
||||
}
|
||||
if (type.startsWith('/fancybox/2.')) return '2.1.7';
|
||||
if (type.startsWith('/fancybox/3.')) return '3.5.7';
|
||||
if (type.startsWith('/feather-icons/4.')) return '4.29.0';
|
||||
if (type.startsWith('/FitText.js/1.')) return '1.2.0';
|
||||
if (type.startsWith('/feather-icons/4.')) return '4.29.2';
|
||||
if (type.startsWith('/flickity/3.')) return '3.0.0';
|
||||
if (type.startsWith('/flv.js/')) return '1.6.2';
|
||||
if (type.startsWith('/font-awesome/3.')) return '3.2.1';
|
||||
if (type.startsWith('/font-awesome/4.')) return '4.7.0';
|
||||
if (type.startsWith('/font-awesome/5.')) return '5.15.4';
|
||||
if (type.startsWith('/font-awesome/6.')) return '6.1.2';
|
||||
if (type.startsWith('/font-awesome/6.')) return '6.5.2';
|
||||
if (type.startsWith('/fork-awesome/1.')) return '1.2.0';
|
||||
if (type.startsWith('/foundation/5.')) return '5.5.3';
|
||||
if (type.startsWith('/foundation/6.')) return '6.7.5';
|
||||
if (type.startsWith('/foundation/6.')) return '6.8.1';
|
||||
if (type.startsWith('/foundicons/3.')) return '3.0.0';
|
||||
if (type.startsWith('/granim/2.')) return '2.0.0';
|
||||
if (type.startsWith('/gsap/1.')) return '1.20.5';
|
||||
if (type.startsWith('/gsap/2.')) return '2.1.3';
|
||||
if (type.startsWith('/gsap/3.')) return '3.11.0';
|
||||
|
||||
// just for testing ----------------------------------------------
|
||||
if (type.startsWith('/materialicons/')) return 'v138';
|
||||
if (type.startsWith('/materialiconsoutlined/')) return 'v108';
|
||||
if (type.startsWith('/materialiconsround/')) return 'v107';
|
||||
if (type.startsWith('/materialiconssharp/')) return 'v108';
|
||||
if (type.startsWith('/materialiconstwotone/')) return 'v111';
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
if (type.startsWith('/highlight.js/7.')) return '9.18.5';
|
||||
if (type.startsWith('/highlight.js/8.')) return '9.18.5';
|
||||
if (type.startsWith('/highlight.js/9.')) return '9.18.5';
|
||||
if (type.startsWith('/highlight.js/10.')) return '10.7.3';
|
||||
if (type.startsWith('/highlight.js/11.')) return '11.6.0';
|
||||
if (type.startsWith('/gsap/3.')) return '3.12.5';
|
||||
if (type.startsWith('/materialicons/')) return 'v142';
|
||||
if (type.startsWith('/materialiconsoutlined/')) return 'v109';
|
||||
if (type.startsWith('/materialiconsround/')) return 'v108';
|
||||
if (type.startsWith('/materialiconssharp/')) return 'v109';
|
||||
if (type.startsWith('/materialiconstwotone/')) return 'v112';
|
||||
if (type.startsWith('/handlebars.js/4.')) return '4.7.8';
|
||||
if (type.startsWith('/highlight.js/7.')) return '11.9.0';
|
||||
if (type.startsWith('/highlight.js/8.')) return '11.9.0';
|
||||
if (type.startsWith('/highlight.js/9.')) return '11.9.0';
|
||||
if (type.startsWith('/highlight.js/10.')) return '11.9.0';
|
||||
if (type.startsWith('/highlight.js/11.')) return '11.9.0';
|
||||
if (type.startsWith('/history/4.')) return '4.10.1';
|
||||
if (type.startsWith('/history/5.')) return '5.3.0';
|
||||
if (type.startsWith('/hls.js/0.')) return '0.14.17';
|
||||
if (type.startsWith('/hls.js/1.')) return '1.2.1';
|
||||
if (type.startsWith('/hls.js/1.')) return '1.5.9';
|
||||
if (type.startsWith('/hogan.js/')) return '3.0.2';
|
||||
if (type.startsWith('/instantsearch.css/7.')) return '7.4.5';
|
||||
if (type.startsWith('/instantsearch.css/8.')) return '8.2.0';
|
||||
if (type.startsWith('/instantsearch.js/3.')) return '3.7.0';
|
||||
if (type.startsWith('/instantsearch.js/4.')) return '4.44.1';
|
||||
if (type.startsWith('/instantsearch.js/4.')) return '4.70.0';
|
||||
if (type.startsWith('/in-view/0.')) return '0.6.1';
|
||||
if (type.startsWith('/iScroll/5.')) return '5.2.0';
|
||||
if (type.startsWith('/izimodal/1.')) return '1.6.1';
|
||||
if (type.startsWith('/jets/0.')) return '0.14.1';
|
||||
|
@ -255,31 +250,34 @@ targets.setLastVersion = function (type, version) {
|
|||
if (type.startsWith('/jquery/3.') || type.startsWith('/jquery/latest')) {
|
||||
if (helpers.compareVersion('3.2.1', version)) return '3.2.1'; // <= v3.2.1
|
||||
if (helpers.compareVersion('3.5.1', version)) return '3.5.1'; // <= v3.5.1
|
||||
return '3.6.1';
|
||||
return '3.7.1';
|
||||
}
|
||||
if (type.startsWith('/jquery.devbridge-autocomplete/1.')) return '1.4.11';
|
||||
if (type.startsWith('/jqueryui/1.')) {
|
||||
if (helpers.compareVersion('1.8.24', version)) return '1.8.24'; // <= v1.8.24
|
||||
if (helpers.compareVersion('1.10.0', version)) return '1.10.0'; // > v1.8.24 to <= v1.10.0
|
||||
return '1.13.2'; // >= 1.8.19
|
||||
return '1.13.3'; // >= 1.8.19
|
||||
}
|
||||
if (type.startsWith('/jquery-ajax-unobtrusive/3.')) return '3.2.6';
|
||||
if (type.startsWith('/jquery.blockUI/2.')) return '2.70';
|
||||
if (type.startsWith('/jquery.colorbox/1.')) return '1.6.4';
|
||||
if (type.startsWith('/jquery-cookie/1.')) return '1.4.1';
|
||||
if (type.startsWith('/jquery-csv/1.')) return '1.0.21';
|
||||
if (type.startsWith('/jquery-easing/1.')) return '1.4.1';
|
||||
if (type.startsWith('/jquery-jcrop/0.')) return '0.9.15';
|
||||
if (type.startsWith('/jquery.lazyload/1.')) return '1.9.1';
|
||||
if (type.startsWith('/jquery.lazy/1.')) return '1.7.11';
|
||||
if (type.startsWith('/jquery.matchHeight/0.')) return '0.7.2';
|
||||
if (type.startsWith('/jquery-migrate/1.')) return '1.4.1';
|
||||
if (type.startsWith('/jquery-migrate/3.')) return '3.4.0';
|
||||
if (type.startsWith('/jquery-migrate/3.')) return '3.4.1';
|
||||
if (type.startsWith('/jquery-minicolors/2.')) return '2.3.6';
|
||||
if (type.startsWith('/jquery-mobile/1.')) {
|
||||
if (helpers.compareVersion('1.3.2', version)) return '1.3.2'; // <= v1.3.2
|
||||
return '1.4.5';
|
||||
}
|
||||
if (type.startsWith('/jquery-mousewheel/3.')) return '3.1.13';
|
||||
if (type.startsWith('/jScrollPane/2.')) return '2.2.2';
|
||||
if (type.startsWith('/jquery-validate/1.')) return '1.19.5';
|
||||
if (type.startsWith('/jquery-validate/1.')) return '1.20.0';
|
||||
if (type.startsWith('/jeditable.js/1.')) return '1.8.0';
|
||||
if (type.startsWith('/jeditable.js/2.')) return '2.0.19';
|
||||
if (type.startsWith('/jquery.cycle2/2.')) return '2.1.6';
|
||||
|
@ -295,30 +293,34 @@ targets.setLastVersion = function (type, version) {
|
|||
if (type.startsWith('/jasny-bootstrap/3.')) return '3.1.3';
|
||||
if (type.startsWith('/jasny-bootstrap/4.')) return '4.0.0';
|
||||
if (type.startsWith('/js-cookie/2.')) return '2.2.1';
|
||||
if (type.startsWith('/js-cookie/3.')) return '3.0.1';
|
||||
if (type.startsWith('/knockout/3.')) return '3.5.1';
|
||||
if (type.startsWith('/js-cookie/3.')) return '3.0.5';
|
||||
if (type.startsWith('/knockout/3.')) {
|
||||
if (helpers.compareVersion('3.4.2', version)) return '3.4.2'; // <= v3.4.2
|
||||
return '3.5.1';
|
||||
}
|
||||
if (type.startsWith('/knockout.mapping/2.')) return '2.4.1';
|
||||
if (type.startsWith('/lazysizes/4.')) return '4.1.8';
|
||||
if (type.startsWith('/lazysizes/5.')) return '5.3.2';
|
||||
if (type.startsWith('/leaflet/0.')) return '0.7.7';
|
||||
if (type.startsWith('/leaflet/1.')) {
|
||||
if (helpers.compareVersion('1.7.1', version)) return '1.7.1'; // <= v1.7.1
|
||||
return '1.8.0';
|
||||
return '1.9.4';
|
||||
}
|
||||
if (type.startsWith('/Leaflet.EasyButton/2.')) return '2.4.0';
|
||||
if (type.startsWith('/leaflet.featuregroup.subgroup/1.')) return '1.0.2';
|
||||
if (type.startsWith('/leaflet.markercluster/1.')) return '1.5.3';
|
||||
if (type.startsWith('/libphonenumber-js/1.')) return '1.10.13';
|
||||
if (type.startsWith('/libphonenumber-js/1.')) return '1.11.2';
|
||||
if (type.startsWith('/libsodium-wrappers/0.')) return '0.5.4';
|
||||
if (type.startsWith('/lightbox2/2.')) return '2.11.3';
|
||||
if (type.startsWith('/lightbox2/2.')) return '2.11.4';
|
||||
if (type.startsWith('/lightcase/2.')) return '2.5.0';
|
||||
if (type.startsWith('/lightgallery/1.')) return '1.10.0';
|
||||
if (type.startsWith('/lightgallery/2.')) return '2.5.0';
|
||||
if (type.startsWith('/lightgallery/2.')) return '2.7.2';
|
||||
if (type.startsWith('/lodash.js/3.')) return '3.10.1';
|
||||
if (type.startsWith('/lodash.js/4.')) return '4.17.21';
|
||||
if (type.startsWith('/lozad')) return '1.16.0';
|
||||
if (type.startsWith('/lunr.js/2.')) return '2.3.9';
|
||||
if (type.startsWith('/magnific-popup.js/1.')) return '1.1.0';
|
||||
if (type.startsWith('/markdown-it/')) return '13.0.1';
|
||||
if (type.startsWith('/markdown-it/')) return '13.0.2';
|
||||
if (type.startsWith('/mdbootstrap/4.')) return '4.20.0';
|
||||
if (type.startsWith('/material-design-icons/2.')) return '2.8.94';
|
||||
if (type.startsWith('/material-design-icons/3.')) return '3.9.97';
|
||||
|
@ -333,23 +335,29 @@ targets.setLastVersion = function (type, version) {
|
|||
if (type.startsWith('/mathjax/3.')) return '3.2.2';
|
||||
if (type.startsWith('/mdb-ui-kit/3.')) return '3.11.0';
|
||||
if (type.startsWith('/mdb-ui-kit/4.')) return '4.4.0';
|
||||
if (type.startsWith('/mdb-ui-kit/5.')) return '5.0.0';
|
||||
if (type.startsWith('/mdb-ui-kit/6.')) return '6.4.2';
|
||||
if (type.startsWith('/mdb-ui-kit/7.')) return '7.3.0';
|
||||
if (type.startsWith('/mobile/1.')) return '1.4.5';
|
||||
if (type.startsWith('/Modaal/0.')) return '0.4.4';
|
||||
if (type.startsWith('/modernizr/2.')) return '2.8.3';
|
||||
if (type.startsWith('/moment.js/2.')) {
|
||||
if (helpers.compareVersion('2.5.1', version)) return '2.5.1'; // <= v2.5.1
|
||||
return '2.29.4';
|
||||
return '2.30.1';
|
||||
}
|
||||
if (type.startsWith('/mootools/1.')) {
|
||||
if (helpers.compareVersion('1.4.5', version)) return '1.4.5'; // <= v1.4.5
|
||||
return '1.6.0';
|
||||
}
|
||||
if (type.startsWith('/ngx-bootstrap/6.')) return '6.2.0';
|
||||
if (type.startsWith('/ngx-bootstrap/7.')) return '7.1.2';
|
||||
if (type.startsWith('/ngx-bootstrap/8.')) return '8.0.0';
|
||||
if (type.startsWith('/ngx-bootstrap/9.')) return '9.0.0';
|
||||
if (type.startsWith('/ngx-bootstrap/')) {
|
||||
// The only resource used from ngx-bootstrap is the CSS file for the datepicker.
|
||||
// This CSS is unchanged since version 7. So it's not necessary to host it more than once.
|
||||
if (helpers.compareVersion('6.2.0', version)) return '6.2.0'; // <= v6.2.0
|
||||
return '12.0.0';
|
||||
}
|
||||
if (type.startsWith('/noUiSlider/14.')) return '14.7.0';
|
||||
if (type.startsWith('/noUiSlider/15.')) return '15.6.1';
|
||||
if (type.startsWith('/noUiSlider/15.')) return '15.7.2';
|
||||
if (type.startsWith('/nprogress/0.')) return '0.2.0';
|
||||
if (type.startsWith('/nvd3/1.')) return '1.8.6';
|
||||
if (type.startsWith('/object-assign@4.')) return '4.1.1';
|
||||
if (type.startsWith('/oclazyload/1.')) return '1.1.0';
|
||||
|
@ -358,59 +366,64 @@ targets.setLastVersion = function (type, version) {
|
|||
if (type.startsWith('/owl-carousel/2.')) return '2.3.4';
|
||||
if (type.startsWith('/p2p-media-loader-core') || type.startsWith('/p2p-media-loader-hlsjs')) return '0.6.2';
|
||||
if (type.startsWith('/p5.js/0.')) return '0.10.2';
|
||||
if (type.startsWith('/p5.js/1.')) return '1.4.2';
|
||||
if (type.startsWith('/p5.js/1.')) return '1.9.4';
|
||||
if (type.startsWith('/page.js/1.')) return '1.11.6';
|
||||
if (type.startsWith('/paginationjs/2.')) return '2.1.5';
|
||||
if (type.startsWith('/plyr/3.')) return '3.7.2';
|
||||
if (type.startsWith('/paginationjs/2.')) return '2.6.0';
|
||||
if (type.startsWith('/plyr/3.')) return '3.7.8';
|
||||
if (type.startsWith('/popper.js/1.')) return '1.16.1';
|
||||
if (type.startsWith('/popper.js/2.')) return '2.11.6';
|
||||
if (type.startsWith('/popper.js/2.')) return '2.11.8';
|
||||
if (type.startsWith('/prop-types/15.')) return '15.8.1';
|
||||
if (type.startsWith('/protonet-jquery.inview/1.')) return '1.1.2';
|
||||
if (type.startsWith('/prototype/1.')) return '1.7.3';
|
||||
if (type.startsWith('/pure/0.')) return '0.6.2';
|
||||
if (type.startsWith('/pure/1.')) return '1.0.1';
|
||||
if (type.startsWith('/pure/2.')) return '2.1.0';
|
||||
if (type.startsWith('/pure/2.')) return '2.2.0';
|
||||
if (type.startsWith('/pure/3.')) return '3.0.0';
|
||||
if (type.startsWith('/rangeslider.js/2.')) return '2.3.3';
|
||||
if (type.startsWith('/raven.js/3.')) return '3.27.2';
|
||||
if (type.startsWith('/react/16.')) return '16.14.0';
|
||||
if (type.startsWith('/react/17.')) return '17.0.2';
|
||||
if (type.startsWith('/react/18.')) return '18.2.0';
|
||||
if (type.startsWith('/react/18.')) return '18.3.1';
|
||||
if (type.startsWith('/react-dom/16.')) return '16.14.0';
|
||||
if (type.startsWith('/react-dom/17.')) return '17.0.2';
|
||||
if (type.startsWith('/react-dom/18.')) return '18.2.0';
|
||||
if (type.startsWith('/react-dom/18.')) return '18.3.1';
|
||||
if (type.startsWith('/react-intl/')) {
|
||||
// NOTE: Parameters swapped. (= anything greater than v5.0.0)
|
||||
if (helpers.compareVersion(version, '5.0.0')) return '6.1.0'; // >= v5.0.0
|
||||
if (helpers.compareVersion(version, '5.0.0')) return '6.6.8'; // >= v5.0.0
|
||||
}
|
||||
if (type.startsWith('/react-redux/7.')) return '7.2.8';
|
||||
if (type.startsWith('/react-redux/8.')) return '8.0.2';
|
||||
if (type.startsWith('/react-redux/8.')) return '8.1.3';
|
||||
if (type.startsWith('/react-router/5.')) return '5.3.3';
|
||||
if (type.startsWith('/react-router/6.')) return '6.3.0';
|
||||
if (type.startsWith('/react-router/6.')) return '6.23.1';
|
||||
if (type.startsWith('/react-side-effect/')) return '2.1.2';
|
||||
if (type.startsWith('/react-lifecycles-compat/')) return '3.0.4';
|
||||
if (type.startsWith('/redux/4.')) return '4.2.0';
|
||||
if (type.startsWith('/redux/4.')) return '4.2.1';
|
||||
if (type.startsWith('/redux/5.')) return '5.0.1';
|
||||
if (type.startsWith('/rickshaw/1.')) return '1.7.1';
|
||||
if (type.startsWith('/script.js/2.')) return '2.5.9';
|
||||
if (type.startsWith('/scriptaculous/1.')) return '1.9.0';
|
||||
if (type.startsWith('/search-insights/1.')) return '1.8.0';
|
||||
if (type.startsWith('/search-insights/2.')) return '2.2.1';
|
||||
if (type.startsWith('/ScrollMagic/2.')) return '2.0.8';
|
||||
if (type.startsWith('/search-insights/1.')) return '1.10.0';
|
||||
if (type.startsWith('/search-insights/2.')) return '2.14.0';
|
||||
if (type.startsWith('/select2/3.')) return '3.5.4';
|
||||
if (type.startsWith('/select2/4.')) return '4.0.13';
|
||||
if (type.startsWith('/semantic-ui/2.')) return '2.4.1';
|
||||
if (type.startsWith('/semantic-ui/2.')) return '2.5.0';
|
||||
if (type.startsWith('/showdown/0.')) return '0.5.1';
|
||||
if (type.startsWith('/showdown/1.')) return '1.9.1';
|
||||
if (type.startsWith('/showdown/2.')) return '2.1.0';
|
||||
if (type.startsWith('/simplebar/')) return '5.3.8';
|
||||
if (type.startsWith('/simplebar/5.')) return '5.3.9';
|
||||
if (type.startsWith('/simplebar/6.')) return '6.2.6';
|
||||
if (type.startsWith('/simplemde/')) return '1.11.2';
|
||||
if (type.startsWith('/slick-carousel/1.')) {
|
||||
if (helpers.compareVersion('1.8.1', version)) return '1.8.1'; // <= v1.8.1
|
||||
return '1.9.0';
|
||||
}
|
||||
if (type.startsWith('/slick-lightbox/0.')) return '0.2.12';
|
||||
if (type.startsWith('/slider-pro/1.')) return '1.6.0';
|
||||
if (type.startsWith('/slider-pro/1.')) return '1.6.2';
|
||||
if (type.startsWith('/snowplow/2.')) return '2.18.2';
|
||||
if (type.startsWith('/socket.io/2.')) return '2.4.0';
|
||||
if (type.startsWith('/socket.io/3.')) return '3.1.3';
|
||||
if (type.startsWith('/socket.io/4.')) return '4.5.1';
|
||||
if (type.startsWith('/socket.io/4.')) return '4.7.5';
|
||||
if (type.startsWith('/spin.js/2.')) return '2.3.2';
|
||||
if (type.startsWith('/spin.js/3.')) return '3.1.0';
|
||||
if (type.startsWith('/spin.js/4.')) return '4.1.1';
|
||||
|
@ -418,16 +431,25 @@ targets.setLastVersion = function (type, version) {
|
|||
if (type.startsWith('/stickyfill/2.')) return '2.1.0';
|
||||
if (type.startsWith('/sticky-js/')) return '1.3.0';
|
||||
if (type.startsWith('/store.js/2.')) return '2.0.12';
|
||||
if (type.startsWith('/swfobject/2.')) return '2.2';
|
||||
if (type.startsWith('/supabase-js/2.')) return '2.39.3';
|
||||
if (type.startsWith('/swagger-ui/4.')) return '4.18.3';
|
||||
if (type.startsWith('/swagger-ui/5.')) return '5.17.14';
|
||||
if (type.startsWith('/Swiper/3.')) return '3.4.2';
|
||||
if (type.startsWith('/Swiper/4.')) return '4.5.1';
|
||||
if (type.startsWith('/Swiper/5.')) return '5.4.5';
|
||||
if (type.startsWith('/Swiper/6.')) return '6.8.4';
|
||||
if (type.startsWith('/Swiper/7.')) return '7.4.1';
|
||||
if (type.startsWith('/Swiper/8.') || type.startsWith('/Swiper/')) return '8.3.2';
|
||||
if (type.startsWith('/Swiper/8.')) return '8.4.7';
|
||||
if (type.startsWith('/Swiper/9.')) return '9.4.1';
|
||||
if (type.startsWith('/Swiper/10.') || type.startsWith('/Swiper/11.') || type.startsWith('/Swiper/')) return '11.0.5';
|
||||
if (type.startsWith('/tensorflow/')) {
|
||||
// NOTE: Parameters swapped. (= anything greater than v2.0.0)
|
||||
if (helpers.compareVersion(version, '2.0.0')) return '4.19.0'; // >= v2.0.0
|
||||
}
|
||||
if (type.startsWith('/tether/1.')) return '1.4.7';
|
||||
if (type.startsWith('/tinymce/5.')) return '5.10.5';
|
||||
if (type.startsWith('/tinymce/6.')) return '6.1.2';
|
||||
if (type.startsWith('/tinymce/6.')) return '7.0.1';
|
||||
if (type.startsWith('/tinymce/7.')) return '7.1.1';
|
||||
if (type.startsWith('/tooltipster/3.')) return '3.3.0';
|
||||
if (type.startsWith('/tooltipster/4.')) return '4.2.8';
|
||||
if (type.startsWith('/toastr.js/2.') || type.startsWith('/toastr.js/latest/')) return '2.1.4';
|
||||
|
@ -437,36 +459,51 @@ targets.setLastVersion = function (type, version) {
|
|||
if (helpers.compareVersion('3.3.7', version)) return '3.3.7'; // <= 3.3.7
|
||||
return '3.4.1';
|
||||
}
|
||||
if (type.startsWith('/twitter-bootstrap/4.')) return '4.6.1';
|
||||
if (type.startsWith('/twitter-bootstrap/5.')) return '5.2.0';
|
||||
if (type.startsWith('/twitter-bootstrap/4.')) {
|
||||
if (helpers.compareVersion('4.1.1', version)) return '4.1.1'; // <= 4.1.1
|
||||
if (helpers.compareVersion('4.4.1', version)) return '4.4.1'; // <= 4.4.1
|
||||
return '4.6.1';
|
||||
}
|
||||
if (type.startsWith('/twitter-bootstrap/5.')) {
|
||||
if (helpers.compareVersion('5.1.3', version)) return '5.1.3'; // <= 5.1.3
|
||||
return '5.3.3';
|
||||
}
|
||||
if (type.startsWith('/twix.js/0.')) return '0.3.0';
|
||||
if (type.startsWith('/twix.js/1.')) return '1.3.0';
|
||||
if (type.startsWith('/underscore.js/1.')) return '1.13.4';
|
||||
if (type.startsWith('/underscore.js/1.')) return '1.13.6';
|
||||
if (type.startsWith('/URI.js/1.')) return '1.19.11';
|
||||
if (type.startsWith('/urlive/1.')) return '1.1.1';
|
||||
if (type.startsWith('/vanilla-lazyload')) return '17.8.3';
|
||||
if (type.startsWith('/vanilla-lazyload')) return '19.1.3';
|
||||
if (type.startsWith('/vex-js/3.')) return '3.1.1';
|
||||
if (type.startsWith('/vex-js/4.')) return '4.1.0';
|
||||
if (type.startsWith('/videojs-seek-buttons/1.')) return '1.6.0';
|
||||
if (type.startsWith('/videojs-seek-buttons/2.')) return '2.2.1';
|
||||
if (type.startsWith('/videojs-seek-buttons/3.')) return '3.0.1';
|
||||
if (type.startsWith('/videojs-seek-buttons/4.')) return '4.0.3';
|
||||
if (type.startsWith('/video.js/')) {
|
||||
if (helpers.compareVersion('5.20.5', version)) return '5.20.5'; // <= 5.20.5
|
||||
if (helpers.compareVersion('6.13.0', version)) return '6.13.0'; // > 5.20.5 to <= 6.13.0
|
||||
return '7.20.2';
|
||||
if (helpers.compareVersion('7.21.1', version)) return '7.21.1'; // > 6.13.0 to <= 7.21.1
|
||||
return '8.14.0';
|
||||
}
|
||||
if (type.startsWith('/vue/1.')) return '1.0.28';
|
||||
if (type.startsWith('/vue/2.')) return '2.6.14';
|
||||
if (type.startsWith('/vue/3.')) return '3.2.37';
|
||||
if (type.startsWith('/vue/3.')) return '3.4.27';
|
||||
if (type.startsWith('/vue-i18n/8.')) return '8.27.2';
|
||||
if (type.startsWith('/vue-i18n/9.')) return '9.2.2';
|
||||
if (type.startsWith('/vue-i18n/9.')) return '9.13.1';
|
||||
if (type.startsWith('/vue-match-media/1.')) return '1.0.3';
|
||||
if (type.startsWith('/vue-resource/1.')) return '1.5.3';
|
||||
if (type.startsWith('/vue-router/3.')) return '3.6.5';
|
||||
if (type.startsWith('/vue-router/4.')) return '4.3.2';
|
||||
if (type.startsWith('/vuex/3.')) return '3.6.2';
|
||||
if (type.startsWith('/vuex/4.')) return '4.0.2';
|
||||
if (type.startsWith('/vuex/4.')) return '4.1.0';
|
||||
if (type.startsWith('/waypoints/4.')) return '4.0.1';
|
||||
if (type.startsWith('/webcomponentsjs/')) return '2.8.0';
|
||||
if (type.startsWith('/webfont')) return '1.6.28';
|
||||
if (type.startsWith('/webrtc-adapter/6.')) return '6.4.8';
|
||||
if (type.startsWith('/webrtc-adapter/7.')) return '7.7.1';
|
||||
if (type.startsWith('/webrtc-adapter/8.')) return '8.1.2';
|
||||
if (type.startsWith('/webrtc-adapter/8.')) return '9.0.1';
|
||||
if (type.startsWith('/webrtc-adapter/9.')) return '9.0.1';
|
||||
if (type.startsWith('/wow/1.')) return '1.1.2';
|
||||
if (version === null) return 'latest';
|
||||
return '';
|
||||
|
@ -478,6 +515,24 @@ targets.determineResourceName = function (filename) {
|
|||
};
|
||||
|
||||
const ListOfFiles = {
|
||||
'supabase.min.jsm': 'supabase-js',
|
||||
'handlebars.min.jsm': 'handlebars.js',
|
||||
'URI.min.jsm': 'URI.js',
|
||||
'vue-router.global.min.jsm': 'vue-router',
|
||||
'tf.min.jsm': 'tensorflow',
|
||||
'nprogress.min.jsm': 'nprogress (JS)',
|
||||
'nprogress.min.css': 'nprogress (CSS)',
|
||||
'swagger-ui-bundle.min.jsm': 'Swagger-UI (JS)',
|
||||
'swagger-ui.min.css': 'Swagger-UI (CSS)',
|
||||
'knockout.mapping.min.jsm': 'knockout.mapping',
|
||||
'jquery.colorbox-min.jsm': 'Colorbox',
|
||||
'rangeslider.min.css': 'rangeslider.js (CSS)',
|
||||
'rangeslider.min.jsm': 'rangeslider.js (JS)',
|
||||
'in-view.min.jsm': 'in-view',
|
||||
'jquery.minicolors.min.jsm': 'jquery-minicolors (JS)',
|
||||
'jquery.minicolors.min.css': 'jquery-minicolors (CSS)',
|
||||
'jquery.Jcrop.min.jsm': 'jquery-jcrop (JS)',
|
||||
'jquery.Jcrop.min.css': 'jquery-jcrop (CSS)',
|
||||
'react-intl.iife.min.jsm': 'react-intl',
|
||||
'lunr.min.jsm': 'lunr.js',
|
||||
'jquery.scrollTo.min.jsm': 'jQuery.scrollTo',
|
||||
|
@ -553,6 +608,7 @@ const ListOfFiles = {
|
|||
'dayjs.min.jsm': 'Day.js',
|
||||
'jquery.validate.unobtrusive.min.jsm': 'jQuery Validate Unobtrusive',
|
||||
'jquery.sliderPro.min.jsm': 'Slider Pro (JS)',
|
||||
'knockout-min.jsm': 'Knockout',
|
||||
'knockout-latest.min.jsm': 'Knockout',
|
||||
'bootstrap-multiselect.min.jsm': 'Bootstrap Multiselect',
|
||||
'ajax-bootstrap-select.min.jsm': 'Ajax Bootstrap Select',
|
||||
|
@ -657,7 +713,9 @@ const ListOfFiles = {
|
|||
'slick.min.css': 'slick (CSS)',
|
||||
'slick-theme.min.css': 'slick (Theme)',
|
||||
'google-material-design-icons.css': 'Google Material Icons',
|
||||
'Chart.bundle.min.jsm': 'Chart.js (JS)',
|
||||
'Chart.bundle.min.jsm': 'Chart.js (JS)', // for statistics page
|
||||
'Chart.bundle.min.css': 'Chart.js (CSS)', // for statistics page
|
||||
'chart.min.jsm': 'Chart.js (JS)',
|
||||
'Chart.min.css': 'Chart.js (CSS)',
|
||||
'bootbox.min.jsm': 'BootboxJS',
|
||||
'bootstrap3-typeahead.min.jsm': 'Bootstrap 3 Typeahead',
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* Wrappers
|
||||
*/
|
||||
|
||||
var wrappers = {};
|
||||
let wrappers = {};
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -11,18 +11,18 @@
|
|||
<link rel="stylesheet" type="text/css" href="donate.css">
|
||||
</head>
|
||||
<body>
|
||||
<img src="../images/logo.svg" alt="LocalCDN" class="logo"/>
|
||||
<img src="../images/logo.svg" alt="" class="logo">
|
||||
<div class="container">
|
||||
<h1>Donation Methods</h1>
|
||||
<div class="notice">
|
||||
<div class="subtle-hint">
|
||||
<p>LocalCDN is free and open-source. If you like LocalCDN you can support continued development by making a donation. Any help would be greatly appreciated!</p>
|
||||
<p><strong>Question:</strong> <em>Why are the donation options only displayed here and no longer on the website?</em><br/><strong>Answer:</strong> I think it is better if your public IP address is rarely listed in any server log files.</p>
|
||||
<p><strong>Question:</strong> <em>Why are the donation options only displayed here and no longer on the website?</em><br><strong>Answer:</strong> I think it is better if your public IP address is rarely listed in any server log files.</p>
|
||||
</div>
|
||||
<div class="subtle-hint div-donations">
|
||||
<h3>SEPA Bank Transfer</h3>
|
||||
<p class="mono-block">
|
||||
<span>IBAN: DE22 5003 1000 1069 4660 16</span><br/>
|
||||
<span>IBAN: DE22 5003 1000 1069 4660 16</span><br>
|
||||
<span>BIC: TRODDEF1XXX</span>
|
||||
</p>
|
||||
</div>
|
||||
|
@ -37,8 +37,8 @@
|
|||
<div class="subtle-hint div-donations">
|
||||
<h3>Monero</h3>
|
||||
<p class="mono-block">46j26ggSZNT9rN7VeFYXp2PsKEMyJSSYneBVKXY4xeemdfZfCpNg6tQEXQZpWiTTuGX3SbnDPwuh3167cCoYSrqN72H9jPk</p>
|
||||
<img src="../images/monero.png" alt="Monero QR code"/>
|
||||
<br/>
|
||||
<img src="../images/monero.png" alt="">
|
||||
<br>
|
||||
<a href="monero:46j26ggSZNT9rN7VeFYXp2PsKEMyJSSYneBVKXY4xeemdfZfCpNg6tQEXQZpWiTTuGX3SbnDPwuh3167cCoYSrqN72H9jPk?tx_description=LocalCDN">Open in Wallet</a>
|
||||
</div>
|
||||
<div class="subtle-hint div-donations">
|
||||
|
@ -48,7 +48,7 @@
|
|||
<a href="https://www.buymeacoffee.com/LocalCDN" target="_blank" rel="nofollow noopener noreferrer">www.buymeacoffee.com/LocalCDN</a>
|
||||
</p>
|
||||
<a href="https://www.buymeacoffee.com/LocalCDN" class="no-icon" target="_blank" rel="nofollow noopener noreferrer">
|
||||
<img src="../images/buymeacoffee.png" alt="Buy Me A Coffee">
|
||||
<img src="../images/buymeacoffee.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="subtle-hint div-donations">
|
||||
|
@ -57,17 +57,17 @@
|
|||
<a href="https://opencollective.com/LocalCDN" target="_blank" rel="nofollow noopener noreferrer">www.opencollective.com/LocalCDN</a>
|
||||
</p>
|
||||
<a href="https://www.buymeacoffee.com/LocalCDN" class="no-icon" target="_blank" rel="nofollow noopener noreferrer">
|
||||
<img src="../images/opencollective.png" alt="Open Collective">
|
||||
<img src="../images/opencollective.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
<div>
|
||||
<ul>
|
||||
<li><strong>Why no PayPal?</strong> I hope this question is not serious. 🙂 If it does: PayPal shares the data collected from customers with over 600 other companies.</li>
|
||||
<li><strong>Why no Patreon?</strong> Have you ever analyzed the website with Webbkoll? The trackers/cookies from Facebook, Twitter and Google integrated there do not harmonise with LocalCDN.</li>
|
||||
<li><strong>Why no Liberapay?</strong> Liberapay only offers Stripe and PayPal as a payout method. I don't have a PayPal account (and don't want one). The website of Stripe is also full of third party providers.</li>
|
||||
<li><strong>You know of a donation option that is privacy friendly?</strong> Then send me an e-mail please.</li>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -13,11 +13,11 @@
|
|||
<script src="help.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<img src="../images/logo.svg" alt="LocalCDN" class="logo"/>
|
||||
<img src="../images/logo.svg" alt="" class="logo">
|
||||
<h1 data-i18n-content="titleHelp">Help</h1>
|
||||
<section class="notice notice-default hidden" id="notice-locale">
|
||||
<div class="notice notice-default hidden" id="notice-locale">
|
||||
<p>Your preferred language is not yet fully supported. Please help out by translating this add-on on <a class="button button-notice button-warning" href="https://hosted.weblate.org/projects/localcdn/localcdn/" target="_blank" rel="noopener noreferrer">Weblate</a>.</p>
|
||||
</section>
|
||||
</div>
|
||||
<div class="notice">
|
||||
<div class="index">
|
||||
<ul>
|
||||
|
@ -35,18 +35,18 @@
|
|||
<div id="introduction" class="notice">
|
||||
<h2 data-i18n-content="helpIntroductionTitle">Introduction</h2>
|
||||
<p data-i18n-content="helpIntroductionDescription">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.</p>
|
||||
<a href="https://www.localcdn.org/test" rel="nofollow noopener noreferrer" data-i18n-content="helpLinkTestUtility">Testing utility</a><br/>
|
||||
<a href="https://www.localcdn.org/tutorial" rel="nofollow noopener noreferrer" data-i18n-content="helpLinkTutorial">Tutorial</a><br/>
|
||||
<a href="https://www.localcdn.org/test" rel="nofollow noopener noreferrer" data-i18n-content="helpLinkTestUtility">Testing utility</a><br>
|
||||
<a href="https://www.localcdn.org/tutorial" rel="nofollow noopener noreferrer" data-i18n-content="helpLinkTutorial">Tutorial</a><br>
|
||||
<a href="https://codeberg.org/nobody/LocalCDN/wiki" target="_blank" rel="nofollow noopener noreferrer" data-i18n-content="helpLinkWikiPages">Wiki pages</a>
|
||||
</div>
|
||||
<div id="html-filter" class="notice">
|
||||
<h2 data-i18n-content="helpHtmlFilterTitle">What is "HTML filter"? (Firefox only)</h2>
|
||||
<p data-i18n-content="helpHtmlFilterDescription">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).</p>
|
||||
<p>
|
||||
<span data-i18n-content="helpHtmlFilterBefore">The HTML filter removes the red characters from this example:</span><br/>
|
||||
<code><span class="code-blue"><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"</span> <span class="code-red">integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous"</span><span class="code-blue">></script></span></code><br/><br/>
|
||||
<span data-i18n-content="helpHtmlFilterAfter">The result then looks like this:</span><br/>
|
||||
<code><span class="code-blue"><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script></span></code><br/><br/><br/>
|
||||
<span data-i18n-content="helpHtmlFilterBefore">The HTML filter removes the red characters from this example:</span><br>
|
||||
<code><span class="code-blue"><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"</span> <span class="code-red">integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous"</span><span class="code-blue">></script></span></code><br><br>
|
||||
<span data-i18n-content="helpHtmlFilterAfter">The result then looks like this:</span><br>
|
||||
<code><span class="code-blue"><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script></span></code><br><br><br>
|
||||
</p>
|
||||
<p><em><span data-i18n-content="helpHtmlFilterWhyTitle">Why is it necessary to remove crossorigin and integrity attributes?</span></em></p>
|
||||
<p data-i18n-content="helpHtmlFilterCrossorigin">The crossorigin attribute prevents the replacement because the destination does not match the requested one.</p>
|
||||
|
@ -71,19 +71,19 @@
|
|||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><img src="ublock-easy.png" alt="Default"></a></td>
|
||||
<td><img src="ublock-easy.png" alt=""></td>
|
||||
<td data-i18n-content="helpRuleGeneratorUblockTableDefaultEasy">Default/Easy</td>
|
||||
<td data-i18n-content="helpNo">No</td>
|
||||
<td><a href="https://github.com/gorhill/uBlock/wiki/Blocking-mode#very-easy-mode-details-" rel="nofollow">Link (github.com)</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="ublock-medium.png" alt="Medium"></a></td>
|
||||
<td><img src="ublock-medium.png" alt=""></td>
|
||||
<td data-i18n-content="helpRuleGeneratorUblockTableMedium">Medium</td>
|
||||
<td data-i18n-content="helpYes">Yes</td>
|
||||
<td><a href="https://github.com/gorhill/uBlock/wiki/Blocking-mode:-medium-mode" rel="nofollow">Link (github.com)</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="ublock-hard.png" alt="Hard"></a></td>
|
||||
<td><img src="ublock-hard.png" alt=""></td>
|
||||
<td data-i18n-content="helpRuleGeneratorUblockTableHard">Hard</td>
|
||||
<td data-i18n-content="helpYes">Yes</td>
|
||||
<td><a href="https://github.com/gorhill/uBlock/wiki/Blocking-mode:-hard-mode" rel="nofollow">Link (github.com)</a></td>
|
||||
|
@ -103,19 +103,19 @@
|
|||
<h2 data-i18n-content="helpStatisticsTitle">What about the statistics? Is anything transferred to any servers?</h2>
|
||||
<p data-i18n-content="helpStatisticsDescription">Don't 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. That's all. I've an example here:</p>
|
||||
<div class="statistic-demo">
|
||||
<code>"2020-08-10": {</code><br/>
|
||||
<code> "frameworks": {</code><br/>
|
||||
<code> "resources/jquery/1.12.4/jquery.min.jsm": 5</code><br/>
|
||||
<code> },</code><br/>
|
||||
<code> "cdns": {</code><br/>
|
||||
<code> "ajax.googleapis.com": 5</code><br/>
|
||||
<code> }</code><br/>
|
||||
<code>}</code><br/>
|
||||
<code>"2020-08-10": {</code><br>
|
||||
<code> "frameworks": {</code><br>
|
||||
<code> "resources/jquery/1.12.4/jquery.min.jsm": 5</code><br>
|
||||
<code> },</code><br>
|
||||
<code> "cdns": {</code><br>
|
||||
<code> "ajax.googleapis.com": 5</code><br>
|
||||
<code> }</code><br>
|
||||
<code>}</code><br>
|
||||
</div>
|
||||
<p data-i18n-content="helpStatisticsContent">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.</p>
|
||||
<h3 span data-i18n-content="helpStatisticsTruthTitle">How do I know that's true?</h3>
|
||||
<h3 data-i18n-content="helpStatisticsTruthTitle">How do I know that's true?</h3>
|
||||
<p>
|
||||
<span data-i18n-content="helpStatisticsTruthDescription">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.</span><br/>
|
||||
<span data-i18n-content="helpStatisticsTruthDescription">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.</span><br>
|
||||
<a href="https://www.localcdn.org/view-extension-storage.mp4">https://www.localcdn.org/view-extension-storage.mp4</a>
|
||||
</p>
|
||||
</div>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
* Help
|
||||
*/
|
||||
|
||||
var help = {};
|
||||
let help = {};
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -24,6 +24,7 @@ table td:first-child {
|
|||
|
||||
td {
|
||||
padding: 2px 15px;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
textarea {
|
||||
|
|
|
@ -38,6 +38,12 @@
|
|||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<p>
|
||||
Legend
|
||||
<br>
|
||||
<span>(i) = A website includes this iframe. It's possible that the request is from there.</span>
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
* Logging Page
|
||||
*/
|
||||
|
||||
var logging = {};
|
||||
let logging = {};
|
||||
|
||||
logging._onDocumentLoaded = function () {
|
||||
logging._getLoggingData()
|
||||
|
@ -40,7 +40,7 @@ logging._generateTable = function () {
|
|||
}
|
||||
|
||||
for (let i = data.length - 1; i >= 0; i--) {
|
||||
let tbody, row, cell, content, redirect;
|
||||
let tbody, row, cell, content, redirect, initiator;
|
||||
|
||||
tbody = document.getElementById('logging-content').getElementsByTagName('tbody')[0];
|
||||
row = tbody.insertRow();
|
||||
|
@ -53,8 +53,14 @@ logging._generateTable = function () {
|
|||
content = document.createTextNode(i + 1);
|
||||
cell.appendChild(content);
|
||||
|
||||
if (Object.values(data[i])[4] === '') {
|
||||
initiator = Object.values(data[i])[0];
|
||||
} else {
|
||||
initiator = `${Object.values(data[i])[0]}\n(i) ${Object.values(data[i])[4]}`;
|
||||
}
|
||||
|
||||
cell = row.insertCell();
|
||||
content = document.createTextNode(Object.values(data[i])[0]);
|
||||
content = document.createTextNode(initiator);
|
||||
cell.appendChild(content);
|
||||
|
||||
cell = row.insertCell();
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
* Options (Advanced)
|
||||
*/
|
||||
|
||||
var optionsAdvanced = {};
|
||||
let optionsAdvanced = {};
|
||||
|
||||
|
||||
/**
|
||||
|
@ -88,6 +88,10 @@ optionsAdvanced.init = function (opt) {
|
|||
negateHtmlFilterList = options.getOptionElement(Setting.NEGATE_HTML_FILTER_LIST);
|
||||
negateHtmlFilterList.addEventListener('change', options.onOptionChanged);
|
||||
negateHtmlFilterList.checked = opt[Setting.NEGATE_HTML_FILTER_LIST];
|
||||
if (opt[Setting.NEGATE_HTML_FILTER_LIST] === false) {
|
||||
document.getElementById('html-filter-domains-title-include').style.display = 'block';
|
||||
document.getElementById('html-filter-domains-title-exclude').style.display = 'none';
|
||||
}
|
||||
|
||||
changeBadgeColorMissingResources = options.getOptionElement(Setting.CHANGE_BADGE_COLOR_MISSING_RESOURCES);
|
||||
changeBadgeColorMissingResources.addEventListener('change', options.onOptionChanged);
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
* Options (Basic)
|
||||
*/
|
||||
|
||||
var optionsBasic = {};
|
||||
let optionsBasic = {};
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
* Options (Info)
|
||||
*/
|
||||
|
||||
var optionsInfo = {};
|
||||
let optionsInfo = {};
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
* Options (Other)
|
||||
*/
|
||||
|
||||
var optionsOther = {};
|
||||
let optionsOther = {};
|
||||
|
||||
|
||||
/**
|
||||
|
@ -34,7 +34,11 @@ optionsOther._renderIconSection = function (opt) {
|
|||
return;
|
||||
}
|
||||
|
||||
selectedIcon = opt.selectedIcon;
|
||||
if (opt.selectedIcon === null || opt.selectedIcon === undefined) {
|
||||
selectedIcon = 'Default';
|
||||
} else {
|
||||
selectedIcon = opt.selectedIcon;
|
||||
}
|
||||
|
||||
if (selectedIcon === 'Default') {
|
||||
document.getElementById('icon-default').checked = true;
|
||||
|
@ -111,6 +115,14 @@ optionsOther._onStorageOptionChanged = function ({target}) {
|
|||
});
|
||||
if (target.value === 'local') {
|
||||
storageManager.migrateData('local');
|
||||
} else {
|
||||
optionsOther._fetchSyncData();
|
||||
}
|
||||
};
|
||||
|
||||
optionsOther._fetchSyncData = function () {
|
||||
if (confirm('Fetch remote data now?')) {
|
||||
storageManager.migrateData('sync-fetch');
|
||||
} else {
|
||||
storageManager.migrateData('sync');
|
||||
}
|
||||
|
|
|
@ -177,7 +177,7 @@ body {
|
|||
padding: 5px 9px;
|
||||
}
|
||||
|
||||
#html-filter-domains-title-exclude {
|
||||
#html-filter-domains-title-include {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<title>Options | LocalCDN</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta charset="utf-8" />
|
||||
<meta charset="utf-8">
|
||||
<link rel="shortcut icon" href="../images/favicon.ico" type="image/x-icon">
|
||||
<link rel="icon" href="../images/favicon.ico" type="image/x-icon">
|
||||
<link rel="stylesheet" type="text/css" href="../../modules/internal/color-picker/color-picker.css">
|
||||
|
@ -29,27 +29,27 @@
|
|||
<script src="options.js"></script>
|
||||
|
||||
<div class="btn-group">
|
||||
<input type="button" id="btn-general-tab" class="option-buttons option-buttons-active" data-option-tab="general-tab" data-i18n-content="btnGeneral" value="General"/>
|
||||
<input type="button" id="btn-advanced-tab" class="option-buttons" data-option-tab="advanced-tab" data-i18n-content="btnAdvanced" value="Advanced"/>
|
||||
<input type="button" id="btn-export-import-tab" class="option-buttons" data-option-tab="export-import-tab" data-i18n-content="btnOther" value="Other"/>
|
||||
<input type="button" id="btn-info-tab" class="option-buttons" data-option-tab="info-tab" data-i18n-content="btnInfo" value="Info"/>
|
||||
<input type="button" id="btn-general-tab" class="option-buttons option-buttons-active" data-option-tab="general-tab" data-i18n-content="btnGeneral" value="General">
|
||||
<input type="button" id="btn-advanced-tab" class="option-buttons" data-option-tab="advanced-tab" data-i18n-content="btnAdvanced" value="Advanced">
|
||||
<input type="button" id="btn-export-import-tab" class="option-buttons" data-option-tab="export-import-tab" data-i18n-content="btnOther" value="Other">
|
||||
<input type="button" id="btn-info-tab" class="option-buttons" data-option-tab="info-tab" data-i18n-content="btnInfo" value="Info">
|
||||
</div>
|
||||
|
||||
<div id="chromium-banner" class="chromium-banner">Non-Firefox browsers do not support all features of LocalCDN. <a class="no-icon" href="../help/help.html#browser-compatibility">Read more</a></div>
|
||||
|
||||
<div id="general-tab" class="tab-content">
|
||||
<div class="option-group">
|
||||
<section class="option">
|
||||
<div class="option">
|
||||
<div class="title-option">
|
||||
<label class="b-contain">
|
||||
<input data-option="showIconBadge" type="checkbox">
|
||||
<span data-i18n-content="showIconBadgeTitle">Display injection counts on icon</span>
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="description-option" data-i18n-content="showIconBadgeDescription">Show the number of injected resources on the extension icon.</div>
|
||||
</section>
|
||||
<section class="option">
|
||||
</div>
|
||||
<div class="option">
|
||||
<div class="title-option b-contain">
|
||||
<span data-i18n-content="updateNotificationTitle">Notification after an update</span>
|
||||
</div>
|
||||
|
@ -60,68 +60,69 @@
|
|||
<option value="2" data-i18n-content="updateNotificationAlways">Always</option>
|
||||
</select>
|
||||
</div>
|
||||
</section>
|
||||
<section class="option">
|
||||
</div>
|
||||
<div class="option">
|
||||
<div class="title-option">
|
||||
<label class="b-contain">
|
||||
<input data-option="disablePrefetch" type="checkbox">
|
||||
<span data-i18n-content="disablePrefetchTitle">Disable link prefetching</span>
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="description-option" data-i18n-content="disablePrefetchDescription">Prevent disallowed requests from leaking out to delivery networks.</div>
|
||||
</section>
|
||||
<section class="option">
|
||||
</div>
|
||||
<div class="option">
|
||||
<div class="title-option">
|
||||
<label class="b-contain">
|
||||
<input data-option="stripMetadata" type="checkbox">
|
||||
<span data-i18n-content="stripMetadataTitle">Strip metadata from allowed requests</span>
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="description-option" data-i18n-content="stripMetadataDescription">Erase sensitive data from allowed CDN requests for improved privacy.</div>
|
||||
</section>
|
||||
<section class="option">
|
||||
</div>
|
||||
<div class="option">
|
||||
<div class="title-option">
|
||||
<label class="b-contain">
|
||||
<input data-option="internalStatistics" type="checkbox">
|
||||
<span data-i18n-content="internalStatisticsTitle">Internal statistics</span>
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="description-option" data-i18n-content="internalStatisticsDescription">No data transmission. It's all local on your device.</div>
|
||||
</section>
|
||||
<section class="option">
|
||||
</div>
|
||||
<div class="option">
|
||||
<div class="title-option">
|
||||
<label class="b-contain">
|
||||
<input data-option="hideDonationButton" type="checkbox">
|
||||
<span data-i18n-content="hideDonationButton">Hide donation button</span>
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<div class="option-group">
|
||||
<section class="option">
|
||||
<div class="option">
|
||||
<div class="title-option without-checkbox" data-i18n-content="allowlistedDomainsTitle">Deactivate LocalCDN for these domains:</div>
|
||||
<textarea rows="7" id="allowlistedDomains" class="input-text without-checkbox" data-option="allowlistedDomains" type="text"></textarea>
|
||||
<textarea rows="7" id="allowlistedDomains" class="input-text without-checkbox" data-option="allowlistedDomains"></textarea>
|
||||
<div class="description-option without-checkbox">
|
||||
<span data-i18n-content="allowlistedDomainsDescription">Enter domains to disable LocalCDN there. One domain per line.</span><br><br>
|
||||
<span class="monoblock">
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg"/> example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg"/> sub.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg"/> *.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://*.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://example.com/page/example.html
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> sub.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> *.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> *.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://*.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://example.com/page/example.html
|
||||
</span>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="advanced-tab" class="tab-content">
|
||||
<section class="notice notice-warning hidden" id="notice-block-missing">
|
||||
<div class="notice notice-warning hidden" id="notice-block-missing">
|
||||
<div class="notice-head">
|
||||
<span data-i18n-content="blockMissingTitle">Block requests for missing resources</span>
|
||||
</div>
|
||||
|
@ -133,97 +134,98 @@
|
|||
Disable
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div class="option-group">
|
||||
<section class="option">
|
||||
<div class="option">
|
||||
<div class="title-option">
|
||||
<label class="b-contain">
|
||||
<input id="blockMissing" data-option="blockMissing" type="checkbox">
|
||||
<span data-i18n-content="blockMissingTitle">Block requests for missing resources</span>
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
<span class="badge badge-warning" data-i18n-content="advancedLabel">Advanced</span>
|
||||
</div>
|
||||
<div class="description-option" data-i18n-content="blockMissingDescription">Cancel intercepted request if the required resource is not locally available.</div>
|
||||
</section>
|
||||
<section id="block-google-fonts" class="option">
|
||||
</div>
|
||||
<div id="block-google-fonts" class="option">
|
||||
<div class="title-option">
|
||||
<label class="b-contain">
|
||||
<input id="blockGoogleFonts" data-option="blockGoogleFonts" type="checkbox">
|
||||
<span data-i18n-content="blockGoogleFontsTitle">Block Google Fonts</span>
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="description-option" data-i18n-content="blockGoogleFontsDescription">If you use the rules of the rule generator, requests to "fonts.googleapis.com" are allowed to substitute "Google Material Icons" automatically. If you want to block the other requests, enable this option.</div>
|
||||
<div id="div-domains-allowlist-google-fonts">
|
||||
<div class="description-option"><textarea rows="7" id="allowedDomainsGoogleFonts" class="input-text without-checkbox" data-option="allowedDomainsGoogleFonts" type="text"></textarea></div>
|
||||
<div class="description-option"><textarea rows="7" id="allowedDomainsGoogleFonts" class="input-text without-checkbox" data-option="allowedDomainsGoogleFonts"></textarea></div>
|
||||
<div class="description-option">
|
||||
<span data-i18n-content="labelDomainsAllowlistGoogleFonts">These domains are allowed to load Google Fonts. One domain per line.</span><br>
|
||||
<span class="monoblock">
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg"/> example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg"/> sub.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg"/> *.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://*.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://example.com/page/example.html
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> sub.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> *.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> *.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://*.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://example.com/page/example.html
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="option">
|
||||
</div>
|
||||
<div class="option">
|
||||
<div class="title-option">
|
||||
<label class="b-contain">
|
||||
<input id="enableLogging" data-option="enableLogging" type="checkbox">
|
||||
<span data-i18n-content="loggingTitle">Enable logging</span>
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="description-option" data-i18n-content="loggingDescription">You can open the log with the icon in the menu. The log will be deleted when you close the browser or disable logging.</div>
|
||||
</section>
|
||||
<section class="option">
|
||||
</div>
|
||||
<div class="option">
|
||||
<div class="title-option">
|
||||
<label class="b-contain">
|
||||
<input id="changeBadgeColorMissingResources" data-option="changeBadgeColorMissingResources" type="checkbox">
|
||||
<span data-i18n-content="changeBadgeColorMissingResourcesTitle">Indicate missing resources on the icon</span>
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
<span class="badge badge-warning" data-i18n-content="betaLabel">Beta</span>
|
||||
</div>
|
||||
<div class="description-option" data-i18n-content="changeBadgeColorMissingResourcesDescription">Change the badge color if resources are missing.</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<div id="html-filter-div" class="option-group">
|
||||
<section class="option">
|
||||
<div class="option">
|
||||
<div id="html-filter-domains-title-exclude" class="title-option without-checkbox" data-i18n-content="htmlFilterDomainsTitleExclude">Do not apply HTML filter to these domains:</div>
|
||||
<div id="html-filter-domains-title-include" class="title-option without-checkbox" data-i18n-content="htmlFilterDomainsTitleInclude">Apply HTML filter to these domains:</div>
|
||||
<textarea rows="7" id="domainsManipulateDOM" class="input-text without-checkbox" data-option="domainsManipulateDOM" type="text"></textarea>
|
||||
<textarea rows="7" id="domainsManipulateDOM" class="input-text without-checkbox" data-option="domainsManipulateDOM"></textarea>
|
||||
<div class="description-option without-checkbox">
|
||||
<span data-i18n-content="htmlFilterDomainsDescription">Enter the domains to be handled or ignored by the HTML filter. One domain per line.</span><br>
|
||||
<span class="monoblock">
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg"/> example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg"/> sub.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg"/> *.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://*.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://example.com/page/example.html
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> sub.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> *.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> *.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://*.example.com<br>
|
||||
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://example.com/page/example.html
|
||||
</span>
|
||||
</div>
|
||||
</section>
|
||||
<section class="option">
|
||||
</div>
|
||||
<div class="option">
|
||||
<div class="title-option">
|
||||
<label class="b-contain">
|
||||
<input id="negateHtmlFilterList" data-option="negateHtmlFilterList" type="checkbox">
|
||||
<span data-i18n-content="negateHtmlFilterListTitle">Invert HTML filter</span>
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
<span class="badge badge-warning" data-i18n-content="advancedLabel">Advanced</span>
|
||||
</div>
|
||||
<div class="description-option" data-i18n-content="negateHtmlFilterListDescription">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.</div>
|
||||
</section>
|
||||
</div>
|
||||
<a id="negate-html-filter-list-warning" data-i18n-content="negateHtmlFilterListWarning">This function can break websites. Please note the information on the Wiki page.</a>
|
||||
</div>
|
||||
<div class="option-group">
|
||||
<section class="option">
|
||||
<div class="option">
|
||||
<div class="title-option without-checkbox">
|
||||
<a class="no-icon" href="../help/help.html#rule-generator">
|
||||
<span data-i18n-content="generateRuleSetTitle">Generate rule set</span>
|
||||
|
@ -238,75 +240,75 @@
|
|||
</div>
|
||||
<div class="ruleset-generator">
|
||||
<label class="b-contain" for="generate-ublock-rules">uBlock
|
||||
<input id="generate-ublock-rules" name="rule-sets" data-ruleset="uBlock" type="radio" value="uBlock" autocomplete="off">
|
||||
<div class="b-input"></div>
|
||||
<input id="generate-ublock-rules" name="rule-sets" data-ruleset="uBlock" type="radio" value="uBlock">
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="ruleset-generator">
|
||||
<label class="b-contain" for="generate-umatrix-rules">uMatrix
|
||||
<input id="generate-umatrix-rules" name="rule-sets" data-ruleset="uMatrix" type="radio" value="uMatrix" autocomplete="off">
|
||||
<div class="b-input"></div>
|
||||
<input id="generate-umatrix-rules" name="rule-sets" data-ruleset="uMatrix" type="radio" value="uMatrix">
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="ruleset-generator">
|
||||
<label class="b-contain" for="generate-adguard-rules">AdGuard
|
||||
<input id="generate-adguard-rules" name="rule-sets" data-ruleset="AdGuard" type="radio" value="AdGuard" autocomplete="off">
|
||||
<div class="b-input"></div>
|
||||
<input id="generate-adguard-rules" name="rule-sets" data-ruleset="AdGuard" type="radio" value="AdGuard">
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="ruleset-generator">
|
||||
<label class="b-contain" for="generate-noscript-rules">NoScript
|
||||
<input id="generate-noscript-rules" name="rule-sets" data-ruleset="NoScript" type="radio" value="NoScript" autocomplete="off">
|
||||
<div class="b-input"></div>
|
||||
<input id="generate-noscript-rules" name="rule-sets" data-ruleset="NoScript" type="radio" value="NoScript">
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<textarea rows="12" id="generated-rules" readonly></textarea>
|
||||
<button id="button-copy-rule-set" value="Copy" class="btns"><span data-i18n-content="copyRuleSet">Copy</span><span id="button-copy-rule-set-icon"></span></button>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="export-import-tab" class="tab-content">
|
||||
<div id="icon-style-div" class="option-group">
|
||||
<section id="section-icon-style" class="option">
|
||||
<div id="section-icon-style" class="option">
|
||||
<div class="title-option without-checkbox" data-i18n-content="chooseIconStyle">Choose an icon for this extension</div>
|
||||
<div class="div-icons-badge-colors">
|
||||
<div class="div-selected-icon">
|
||||
<label class="b-contain" for="icon-default">
|
||||
<img src="../../icons/action/default/icon32-default.png" alt="Default" class="icons">
|
||||
<img src="../../icons/action/default/icon32-disabled.png" alt="Default" class="icons">
|
||||
<img src="../../icons/action/default/icon32-default.png" alt="" class="icons">
|
||||
<img src="../../icons/action/default/icon32-disabled.png" alt="" class="icons">
|
||||
<input id="icon-default" name="selected-icon" type="radio" data-option="selectedIcon" value="Default">
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
<label class="b-contain" for="icon-grey">
|
||||
<img src="../../icons/action/grey/icon32-default.png" alt="Blue/Grey" class="icons">
|
||||
<img src="../../icons/action/grey/icon32-disabled.png" alt="Blue/Grey" class="icons">
|
||||
<img src="../../icons/action/grey/icon32-default.png" alt="" class="icons">
|
||||
<img src="../../icons/action/grey/icon32-disabled.png" alt="" class="icons">
|
||||
<input id="icon-grey" name="selected-icon" type="radio" data-option="selectedIcon" value="Grey">
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
<label class="b-contain" for="icon-light">
|
||||
<img src="../../icons/action/light/icon32-default.png" alt="Light" class="icons">
|
||||
<img src="../../icons/action/light/icon32-disabled.png" alt="Light" class="icons">
|
||||
<img src="../../icons/action/light/icon32-default.png" alt="" class="icons">
|
||||
<img src="../../icons/action/light/icon32-disabled.png" alt="" class="icons">
|
||||
<input id="icon-light" name="selected-icon" type="radio" data-option="selectedIcon" value="Light">
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="div-badge">
|
||||
<p class="title-option" data-i18n-content="titleBadgeDefault">Default badge</p>
|
||||
<div id="badge-preview-top">
|
||||
<div>
|
||||
<img id="icon-badge-preview" src="../../icons/action/default/icon38-default.png" alt="Default" class="icons">
|
||||
<img id="icon-badge-preview" src="../../icons/action/default/icon38-default.png" alt="" class="icons">
|
||||
<div id="counter-preview-badge"><span>17</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="badge-preview-bottom">
|
||||
<div class="colorpicker">
|
||||
<div id="pre-badged-background-color"></div>
|
||||
<input id="badged-background-color" data-option="badgeDefaultBackgroundColor" class="input-text" maxlength="7"><img id="restore-background-color" class="img-restore-color" src="../../icons/restore.svg"><br>
|
||||
<input id="badged-background-color" data-option="badgeDefaultBackgroundColor" class="input-text" maxlength="7"><img id="restore-background-color" class="img-restore-color" src="../../icons/restore.svg" alt=""><br>
|
||||
</div>
|
||||
<div id="div-badged-text-color" class="colorpicker">
|
||||
<div id="pre-badged-text-color"></div>
|
||||
<input id="badged-text-color" data-option="badgeDefaultTextColor" class="input-text" maxlength="7"><img id="restore-text-color" class="img-restore-color" src="../../icons/restore.svg">
|
||||
<input id="badged-text-color" data-option="badgeDefaultTextColor" class="input-text" maxlength="7"><img id="restore-text-color" class="img-restore-color" src="../../icons/restore.svg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -314,18 +316,18 @@
|
|||
<p class="title-option" data-i18n-content="titleBadgeHTMLFilter">HTML filter badge</p>
|
||||
<div id="html-badge-preview-top">
|
||||
<div>
|
||||
<img id="html-icon-badge-preview" src="../../icons/action/default/icon38-default.png" alt="Default" class="icons">
|
||||
<img id="html-icon-badge-preview" src="../../icons/action/default/icon38-default.png" alt="" class="icons">
|
||||
<div id="html-counter-preview-badge"><span>17</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="html-badge-preview-bottom">
|
||||
<div class="colorpicker">
|
||||
<div id="html-pre-badged-background-color"></div>
|
||||
<input id="html-badged-background-color" data-option="badgeHTMLFilterBackgroundColor" class="input-text" maxlength="7"><img id="html-restore-background-color" class="img-restore-color" src="../../icons/restore.svg"><br>
|
||||
<input id="html-badged-background-color" data-option="badgeHTMLFilterBackgroundColor" class="input-text" maxlength="7"><img id="html-restore-background-color" class="img-restore-color" src="../../icons/restore.svg" alt=""><br>
|
||||
</div>
|
||||
<div id="html-div-badged-text-color" class="colorpicker">
|
||||
<div id="html-pre-badged-text-color"></div>
|
||||
<input id="html-badged-text-color" data-option="badgeHTMLfilterTextColor" class="input-text" maxlength="7"><img id="html-restore-text-color" class="img-restore-color" src="../../icons/restore.svg">
|
||||
<input id="html-badged-text-color" data-option="badgeHTMLfilterTextColor" class="input-text" maxlength="7"><img id="html-restore-text-color" class="img-restore-color" src="../../icons/restore.svg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -333,82 +335,85 @@
|
|||
<p class="title-option" data-i18n-content="titleBadgeMissingResource">Missing resource badge</p>
|
||||
<div id="missing-badge-preview-top">
|
||||
<div>
|
||||
<img id="missing-icon-badge-preview" src="../../icons/action/default/icon38-default.png" alt="Default" class="icons">
|
||||
<img id="missing-icon-badge-preview" src="../../icons/action/default/icon38-default.png" alt="" class="icons">
|
||||
<div id="missing-counter-preview-badge"><span>17</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="missing-badge-preview-bottom">
|
||||
<div class="colorpicker">
|
||||
<div id="missing-pre-badged-background-color"></div>
|
||||
<input id="missing-badged-background-color" data-option="badgeMissingResourceBackgroundColor" class="input-text" maxlength="7"><img id="missing-restore-background-color" class="img-restore-color" src="../../icons/restore.svg"><br>
|
||||
<input id="missing-badged-background-color" data-option="badgeMissingResourceBackgroundColor" class="input-text" maxlength="7"><img id="missing-restore-background-color" class="img-restore-color" src="../../icons/restore.svg" alt=""><br>
|
||||
</div>
|
||||
<div id="missing-div-badged-text-color" class="colorpicker">
|
||||
<div id="missing-pre-badged-text-color"></div>
|
||||
<input id="missing-badged-text-color" data-option="badgeMissingResourceTextColor" class="input-text" maxlength="7"><img id="missing-restore-text-color" class="img-restore-color" src="../../icons/restore.svg">
|
||||
<input id="missing-badged-text-color" data-option="badgeMissingResourceTextColor" class="input-text" maxlength="7"><img id="missing-restore-text-color" class="img-restore-color" src="../../icons/restore.svg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<div class="option-group">
|
||||
<section class="option">
|
||||
<div class="option">
|
||||
<div class="title-option without-checkbox"><span data-i18n-content="headerStorageType">Storage type</span><span id="sync-help" class="options-help-icon"></span></div>
|
||||
<label class="b-contain storage-type" for="storage-type-local"><span data-i18n-content="labelStorageTypeLocal">Local (recommended)</span>
|
||||
<input id="storage-type-local" data-option="storageType" name="storage-type" type="radio" value="local">
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
<label class="b-contain storage-type" for="storage-type-sync"><span data-i18n-content="labelStorageTypeSync">Sync</span>
|
||||
<input id="storage-type-sync" data-option="storageType" name="storage-type" type="radio" value="sync">
|
||||
<div class="b-input"></div>
|
||||
<span class="b-input"></span>
|
||||
<span class="badge badge-warning" data-i18n-content="betaLabel">Beta</span>
|
||||
</label>
|
||||
</section>
|
||||
<section class="option">
|
||||
</div>
|
||||
<div class="option">
|
||||
<div class="title-option without-checkbox" data-i18n-content="headerImportExport">Import/Export</div>
|
||||
<div class="import-export">
|
||||
<input type="button" id="import-data" class="btns" value="Import Data" data-i18n-content="labelImportData"/>
|
||||
<input type="button" id="export-data" class="btns" value="Export Data" data-i18n-content="labelExportData"/>
|
||||
<input type="button" id="import-data" class="btns" value="Import Data" data-i18n-content="labelImportData">
|
||||
<input type="button" id="export-data" class="btns" value="Export Data" data-i18n-content="labelExportData">
|
||||
<div class="hidden">
|
||||
<input id="import-file-picker" type="file" accept="text/plain">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="info-tab" class="tab-content">
|
||||
<div class="option-group">
|
||||
<section class="option info">
|
||||
<div class="option info">
|
||||
<div>
|
||||
<input type="button" id="cdn" class="btns"/>
|
||||
<input type="button" id="framework" class="btns"/>
|
||||
<input type="button" id="cdn" class="btns" value="cdn">
|
||||
<input type="button" id="framework" class="btns" value="framework">
|
||||
</div>
|
||||
<ul id="unsupported-frameworks">
|
||||
<li>Font Awesome are not supported by your browser</li>
|
||||
<li>Google Material Icons are not supported by your browser</li>
|
||||
</ul>
|
||||
<textarea rows="12" cols="15" id="generated-list" readonly></textarea>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<div class="option-group">
|
||||
<section class="option">
|
||||
<div class="option">
|
||||
<ul class="option-links">
|
||||
<li><a id="link-welcome-page" href="../welcome/welcome.html" class="no-icon">Welcome page (In-App)</a></li>
|
||||
<li><a id="link-changelog" href="../updates/updates.html" class="no-icon">Changelog (In-App)</a></li>
|
||||
<li><a id="link-donate" href="../donate/donate.html" class="no-icon">Donate (In-App)</a></li>
|
||||
<li><a id="link-faq" href="../help/help.html" class="no-icon">FAQ (In-App)</a></li>
|
||||
<li><a id="link-statistic" href="../statistics/statistics.html" class="no-icon"><span data-i18n-content="internalStatisticsTitle">Statistics</span> <span>(In-App)</span></a></li>
|
||||
<li><a id="link-logging" href="../logging/logging.html" class="no-icon">Logs (In-App)</span></a></li><br>
|
||||
<li><a id="link-logging" href="../logging/logging.html" class="no-icon">Logs <span>(In-App)</span></a></li>
|
||||
</ul>
|
||||
<ul class="option-links">
|
||||
<li><a id="link-codeberg" href="https://codeberg.org/nobody/LocalCDN" target="_blank" rel="nofollow noopener noreferrer">Source (www.codeberg.org)</a></li>
|
||||
<li><a id="link-website" href="https://www.localcdn.org" target="_blank" rel="nofollow noopener noreferrer">Website (www.localcdn.org)</a></li>
|
||||
<li><a id="link-website-test" href="https://www.localcdn.org/test" target="_blank" rel="nofollow noopener noreferrer">Testing Utility (www.localcdn.org/test)</a></li>
|
||||
<li><a id="link-translate" href="https://hosted.weblate.org/projects/localcdn/localcdn/" target="_blank" rel="nofollow noopener noreferrer">Translate (www.weblate.org)</a></li>
|
||||
<li><a id="link-translate" href="https://www.localcdn.org/thanks" target="_blank" rel="nofollow noopener noreferrer">Credits (www.localcdn.org)</a></li>
|
||||
<li><a id="link-thanks" href="https://www.localcdn.org/thanks" target="_blank" rel="nofollow noopener noreferrer">Credits (www.localcdn.org)</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<section class="notice notice-default hidden" id="notice-locale">
|
||||
<div class="notice notice-default hidden" id="notice-locale">
|
||||
<div class="notice-body" dir="ltr">
|
||||
<div class="notice-message">
|
||||
Your preferred language is not yet fully supported. Please help out by translating this add-on on Weblate.
|
||||
|
@ -417,7 +422,7 @@
|
|||
Translate
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<p class="footer">LocalCDN v<span id="label-version"></span></p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* Options
|
||||
*/
|
||||
|
||||
var options = {};
|
||||
let options = {};
|
||||
|
||||
|
||||
/**
|
||||
|
@ -36,7 +36,7 @@ options._renderContents = function () {
|
|||
document.body.setAttribute('dir', options._scriptDirection);
|
||||
translationComplete = helpers.insertI18nContentIntoDocument(document);
|
||||
|
||||
options._determineOptionValues().then(options._determineLocalOptionValues).then(options._renderOptionsPanel);
|
||||
options._determineLocalOptionValues().then(options._determineOptionValues).then(options._renderOptionsPanel);
|
||||
|
||||
if (!translationComplete) {
|
||||
options._renderLocaleNotice();
|
||||
|
@ -152,13 +152,21 @@ options._determineOptionValues = function () {
|
|||
for (let element of nodeList) {
|
||||
optionList[element.getAttribute('data-option')] = true;
|
||||
}
|
||||
delete optionList.internalStatistics;
|
||||
|
||||
optionKeys = Object.keys(optionList);
|
||||
|
||||
storageManager.type.get(optionKeys, function (items) {
|
||||
options._optionValues = items;
|
||||
resolve();
|
||||
});
|
||||
if (options._storageType === 'sync') {
|
||||
chrome.storage.sync.get(optionKeys, function (items) {
|
||||
options._optionValues = items;
|
||||
resolve();
|
||||
});
|
||||
} else {
|
||||
chrome.storage.local.get(optionKeys, function (items) {
|
||||
options._optionValues = items;
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -188,7 +196,7 @@ options._configureLinkPrefetching = function (value) {
|
|||
};
|
||||
|
||||
options._serializeAllowlistedDomains = function (allowlistedDomains) {
|
||||
if (allowlistedDomains === undefined) {
|
||||
if (allowlistedDomains === undefined || allowlistedDomains === null) {
|
||||
return '';
|
||||
}
|
||||
|
||||
|
@ -278,9 +286,15 @@ options.onOptionChanged = function ({target}) {
|
|||
break;
|
||||
}
|
||||
|
||||
storageManager.type.set({
|
||||
[optionKey]: optionValue,
|
||||
});
|
||||
if (options._storageType === 'sync' && optionKey !== 'internalStatistics') {
|
||||
chrome.storage.sync.set({
|
||||
[optionKey]: optionValue,
|
||||
});
|
||||
} else {
|
||||
chrome.storage.local.set({
|
||||
[optionKey]: optionValue,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
options._onLinkClick = function (url) {
|
||||
|
|
|
@ -48,7 +48,7 @@ header {
|
|||
|
||||
.panel-overflow {
|
||||
margin-left: 0;
|
||||
max-height: 300px;
|
||||
max-height: 285px;
|
||||
overflow: auto;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
@ -284,9 +284,8 @@ footer {
|
|||
}
|
||||
|
||||
.counter {
|
||||
font-size: 36px;
|
||||
font-size: 26px;
|
||||
font-weight: 600;
|
||||
margin-top: 4px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
@ -334,6 +333,10 @@ footer {
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
.counter-blocked-missing > table {
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<title>Popup | LocalCDN</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta charset="utf-8" />
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" type="text/css" href="popup.css">
|
||||
<link rel="stylesheet" type="text/css" href="toggle.css">
|
||||
<link rel="stylesheet" type="text/css" href="../base.css">
|
||||
|
@ -16,7 +16,7 @@
|
|||
<script src="popup.js"></script>
|
||||
<header>
|
||||
<div class="heading">
|
||||
<img class="icon-logo" src="../../icons/icon.svg" alt="Extension Icon">
|
||||
<img class="icon-logo" src="../../icons/icon.svg" alt="">
|
||||
<span id="name-label"></span> <sup id="version-label" class="label-version"></sup>
|
||||
</div>
|
||||
<div id="donate-button">
|
||||
|
@ -24,19 +24,15 @@
|
|||
<div id="donate-button-svg" class="button-svg" data-link="donate"></div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="content">
|
||||
<div class="content">
|
||||
<div id="website-context" class="panel hidden">
|
||||
<div class="subpanel">
|
||||
<div id="protection-toggle">
|
||||
<label class='toggle' for='protection-toggle-switch'>
|
||||
<input type='checkbox' name='protection-toggle-switch' id='protection-toggle-switch' class="toggle__input">
|
||||
<span class="toggle__display" hidden>
|
||||
<svg width='18' height='14' viewBox='0 0 18 14' fill='none' xmlns='http://www.w3.org/2000/svg' aria-hidden="true" focusable="false" class="toggle__icon toggle__icon--checkmark">
|
||||
<path d='M6.08471 10.6237L2.29164 6.83059L1 8.11313L6.08471 13.1978L17 2.28255L15.7175 1L6.08471 10.6237Z' fill='currentcolor' stroke='currentcolor' />
|
||||
</svg>
|
||||
<svg width='13' height='13' viewBox='0 0 13 13' fill='none' xmlns='http://www.w3.org/2000/svg' aria-hidden="true" focusable="false" class="toggle__icon toggle__icon--cross">
|
||||
<path d='M11.167 0L6.5 4.667L1.833 0L0 1.833L4.667 6.5L0 11.167L1.833 13L6.5 8.333L11.167 13L13 11.167L8.333 6.5L13 1.833L11.167 0Z' fill='currentcolor' />
|
||||
</svg>
|
||||
<img class="toggle__img" src="../../icons/popup_check.svg" alt="">
|
||||
<img class="toggle__img" src="../../icons/popup_uncheck.svg" alt="">
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
@ -49,12 +45,8 @@
|
|||
<label class='toggle' for='manipulateDOM-toggle-switch'>
|
||||
<input type='checkbox' name='manipulateDOM-toggle-switch' id='manipulateDOM-toggle-switch' class="toggle__input">
|
||||
<span class="toggle__display" hidden>
|
||||
<svg width='18' height='14' viewBox='0 0 18 14' fill='none' xmlns='http://www.w3.org/2000/svg' aria-hidden="true" focusable="false" class="toggle__icon toggle__icon--checkmark">
|
||||
<path d='M6.08471 10.6237L2.29164 6.83059L1 8.11313L6.08471 13.1978L17 2.28255L15.7175 1L6.08471 10.6237Z' fill='currentcolor' stroke='currentcolor' />
|
||||
</svg>
|
||||
<svg width='13' height='13' viewBox='0 0 13 13' fill='none' xmlns='http://www.w3.org/2000/svg' aria-hidden="true" focusable="false" class="toggle__icon toggle__icon--cross">
|
||||
<path d='M11.167 0L6.5 4.667L1.833 0L0 1.833L4.667 6.5L0 11.167L1.833 13L6.5 8.333L11.167 13L13 11.167L8.333 6.5L13 1.833L11.167 0Z' fill='currentcolor' />
|
||||
</svg>
|
||||
<img class="toggle__img" src="../../icons/popup_check.svg" alt="">
|
||||
<img class="toggle__img" src="../../icons/popup_uncheck.svg" alt="">
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
@ -67,12 +59,8 @@
|
|||
<label class='toggle' for='google-fonts-toggle-switch'>
|
||||
<input type='checkbox' name='google-fonts-toggle-switch' id='google-fonts-toggle-switch' class="toggle__input">
|
||||
<span class="toggle__display" hidden>
|
||||
<svg width='18' height='14' viewBox='0 0 18 14' fill='none' xmlns='http://www.w3.org/2000/svg' aria-hidden="true" focusable="false" class="toggle__icon toggle__icon--checkmark">
|
||||
<path d='M6.08471 10.6237L2.29164 6.83059L1 8.11313L6.08471 13.1978L17 2.28255L15.7175 1L6.08471 10.6237Z' fill='currentcolor' stroke='currentcolor' />
|
||||
</svg>
|
||||
<svg width='13' height='13' viewBox='0 0 13 13' fill='none' xmlns='http://www.w3.org/2000/svg' aria-hidden="true" focusable="false" class="toggle__icon toggle__icon--cross">
|
||||
<path d='M11.167 0L6.5 4.667L1.833 0L0 1.833L4.667 6.5L0 11.167L1.833 13L6.5 8.333L11.167 13L13 11.167L8.333 6.5L13 1.833L11.167 0Z' fill='currentcolor' />
|
||||
</svg>
|
||||
<img class="toggle__img" src="../../icons/popup_check.svg" alt="">
|
||||
<img class="toggle__img" src="../../icons/popup_uncheck.svg" alt="">
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
@ -80,12 +68,27 @@
|
|||
<span data-i18n-content="blockGoogleFontsTitle">Block Google Fonts</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id="website-context-replaced"></div>
|
||||
<div id="counter-blocked-missing" class="counter-blocked-missing" hidden>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td data-i18n-context="counterBlocked">Blocked:</td>
|
||||
<td id="counter-blocked-number"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td data-i18n-context="counterMissing">Missing:</td>
|
||||
<td id="counter-missing-number"</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id="extension-context" class="panel">
|
||||
<div id="injection-counter" class="counter">0</div>
|
||||
<div class="description" data-i18n-content="amountInjectedDescription">Amount of local Content Delivery Network resource injections since installation.</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<footer>
|
||||
<div id="testing-utility">
|
||||
<a id="testing-utility-link" class="link-text" data-i18n-content="websiteBroken" data-link="testing-utility">Website broken?</a>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* Popup
|
||||
*/
|
||||
|
||||
var popup = {};
|
||||
let popup = {};
|
||||
|
||||
|
||||
/**
|
||||
|
@ -90,13 +90,42 @@ popup._renderNonContextualContents = function () {
|
|||
};
|
||||
|
||||
popup._renderContextualContents = function () {
|
||||
let isVisible = false;
|
||||
if (popup._domain !== null) {
|
||||
popup._renderDomainAllowlistPanel();
|
||||
document.getElementById('testing-utility-link').style.display = 'block';
|
||||
}
|
||||
|
||||
if (Object.keys(popup._resourceInjections).length > 0) {
|
||||
popup._renderInjectionPanel(popup._resourceInjections);
|
||||
isVisible = Object.keys(popup._resourceInjections).length > 0 ||
|
||||
popup._blockedCounter > 0 ||
|
||||
popup._missingCounter > 0;
|
||||
|
||||
if (isVisible) {
|
||||
let websiteContextElement, injectionOverviewElement;
|
||||
|
||||
websiteContextElement = document.getElementById('website-context-replaced');
|
||||
|
||||
injectionOverviewElement = document.createElement('ul');
|
||||
injectionOverviewElement.setAttribute('class', 'list');
|
||||
|
||||
for (let source in popup._resourceInjections) {
|
||||
let injectionGroupHeaderElement, injectionGroupElement, cdn;
|
||||
|
||||
cdn = popup._resourceInjections[source];
|
||||
|
||||
injectionGroupHeaderElement = popup._createInjectionGroupHeaderElement(source, cdn);
|
||||
injectionGroupElement = popup._createInjectionGroupElement(source, cdn);
|
||||
|
||||
injectionOverviewElement.appendChild(injectionGroupHeaderElement);
|
||||
injectionOverviewElement.appendChild(injectionGroupElement);
|
||||
}
|
||||
|
||||
injectionOverviewElement.setAttribute('class', 'panel-overflow');
|
||||
|
||||
websiteContextElement.append(injectionOverviewElement);
|
||||
popup._renderBlockedAndMissingElementHeader(popup._blockedCounter, 'blocked');
|
||||
popup._renderBlockedAndMissingElementHeader(popup._missingCounter, 'missing');
|
||||
document.getElementById('counter-blocked-missing').style.display = 'block';
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -116,7 +145,7 @@ popup._renderDomainAllowlistPanel = function () {
|
|||
|
||||
googleFontsToggleElement = document.getElementById('google-fonts-toggle-switch');
|
||||
|
||||
if (popup._blockGoogleFonts === false) {
|
||||
if (popup._blockGoogleFonts === false || helpers.isGoogleDomain(popup._domain) === true) {
|
||||
document.getElementById('div-google-fonts').hidden = true;
|
||||
}
|
||||
|
||||
|
@ -160,15 +189,6 @@ popup._renderDomainAllowlistPanel = function () {
|
|||
websiteContextElement.style.display = 'block';
|
||||
};
|
||||
|
||||
popup._renderInjectionPanel = function (groupedInjections) {
|
||||
let websiteContextElement, injectionOverviewElement;
|
||||
|
||||
websiteContextElement = document.getElementById('website-context');
|
||||
injectionOverviewElement = popup._createInjectionOverviewElement(groupedInjections);
|
||||
injectionOverviewElement.setAttribute('class', 'panel-overflow');
|
||||
websiteContextElement.append(injectionOverviewElement);
|
||||
};
|
||||
|
||||
popup._enableProtection = function () {
|
||||
let message = {
|
||||
'topic': 'allowlist:remove-domain',
|
||||
|
@ -275,7 +295,9 @@ popup._determineStatusGoogleFonts = function () {
|
|||
};
|
||||
|
||||
chrome.runtime.sendMessage(message, function (response) {
|
||||
popup._domainGoogleFonts = response.value;
|
||||
if (response !== undefined) {
|
||||
popup._domainGoogleFonts = response.value;
|
||||
}
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
|
@ -289,7 +311,10 @@ popup._determineResourceInjections = function () {
|
|||
};
|
||||
|
||||
chrome.runtime.sendMessage(message, function (response) {
|
||||
let groupedInjections = popup._groupResourceInjections(response.value);
|
||||
popup._blockedCounter = response.value.blockedCounter;
|
||||
popup._missingCounter = response.value.missingCounter;
|
||||
|
||||
let groupedInjections = popup._groupResourceInjections(response.value.injections);
|
||||
popup._resourceInjections = groupedInjections;
|
||||
|
||||
resolve();
|
||||
|
@ -338,25 +363,6 @@ popup._groupResourceInjections = function (injections) {
|
|||
return groupedInjections;
|
||||
};
|
||||
|
||||
popup._createInjectionOverviewElement = function (groupedInjections) {
|
||||
let injectionOverviewElement = document.createElement('ul');
|
||||
injectionOverviewElement.setAttribute('class', 'list');
|
||||
|
||||
for (let source in groupedInjections) {
|
||||
let injectionGroupHeaderElement, injectionGroupElement, cdn;
|
||||
|
||||
cdn = groupedInjections[source];
|
||||
|
||||
injectionGroupHeaderElement = popup._createInjectionGroupHeaderElement(source, cdn);
|
||||
injectionGroupElement = popup._createInjectionGroupElement(source, cdn);
|
||||
|
||||
injectionOverviewElement.appendChild(injectionGroupHeaderElement);
|
||||
injectionOverviewElement.appendChild(injectionGroupElement);
|
||||
}
|
||||
|
||||
return injectionOverviewElement;
|
||||
};
|
||||
|
||||
popup._createInjectionGroupHeaderElement = function (source, cdn) {
|
||||
let injectionGroupHeaderElement, badgeElement, badgeTextNode, cdnNameTextNode;
|
||||
|
||||
|
@ -480,6 +486,13 @@ popup._renderLocaleNotice = function () {
|
|||
localeNoticeElement.appendChild(nameTextNode);
|
||||
};
|
||||
|
||||
popup._renderBlockedAndMissingElementHeader = function (counter, type) {
|
||||
let counterElement;
|
||||
|
||||
counterElement = document.getElementById(`counter-${type}-number`);
|
||||
counterElement.textContent = counter;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Event Handlers
|
||||
|
@ -619,9 +632,11 @@ popup._onLoggingButtonClicked = function (ev) {
|
|||
* Initializations
|
||||
*/
|
||||
|
||||
popup.negateHtmlFilterList = false;
|
||||
popup.negateHtmlFilterList = true;
|
||||
popup._statisticsStatus = false;
|
||||
popup._loggingStatus = false;
|
||||
popup._blockGoogleFonts = true;
|
||||
popup._blockedCounter = 0;
|
||||
popup._missingCounter = 0;
|
||||
|
||||
document.addEventListener('DOMContentLoaded', popup._onDocumentLoaded);
|
||||
|
|
|
@ -123,6 +123,10 @@ button.toggle {
|
|||
color: #f0f0f0;
|
||||
}
|
||||
|
||||
.toggle__img {
|
||||
width: 12px;
|
||||
}
|
||||
|
||||
*,
|
||||
::before,
|
||||
::after {
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
<option value="week" data-i18n-content="labelPastWeek">Past week</option>
|
||||
<option value="month" data-i18n-content="labelPastMonth">Past month</option>
|
||||
<option value="year" data-i18n-content="labelPastYear">Past year</option>
|
||||
<option value="all" data-i18n-content="labelAll">All</option>
|
||||
</select>
|
||||
<div id="btn-delete" class="button" data-i18n-content="labelDelete">Delete</div>
|
||||
</div>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
* Statistic
|
||||
*/
|
||||
|
||||
var statistics = {};
|
||||
let statistics = {};
|
||||
|
||||
|
||||
/**
|
||||
|
@ -127,6 +127,8 @@ statistics._setDateRange = function () {
|
|||
days = 30;
|
||||
} else if (type === 'year') {
|
||||
days = 365;
|
||||
} else if (type === 'all') {
|
||||
days = statistics._daysSinceYearOfRelease();
|
||||
} else {
|
||||
statistics._dateRange = [new Date().toISOString().slice(0, 10)];
|
||||
}
|
||||
|
@ -238,7 +240,7 @@ statistics._displayNameOfFramework = function (str, type) {
|
|||
|
||||
statistics._handlerDateRange = function ({target}) {
|
||||
let type = target.value;
|
||||
if (type === 'day' || type === 'week' || type === 'month' || type === 'year') {
|
||||
if (type === 'day' || type === 'week' || type === 'month' || type === 'year' || type === 'all') {
|
||||
statistics._dateUnit = type;
|
||||
statistics._saveDefaultRange(type);
|
||||
} else if (type === 'delete') {
|
||||
|
@ -270,6 +272,14 @@ statistics._registerListener = function () {
|
|||
});
|
||||
};
|
||||
|
||||
statistics._daysSinceYearOfRelease = function () {
|
||||
let timeDifference, millisecondsPerDay;
|
||||
|
||||
timeDifference = new Date() - new Date('2020-01-01');
|
||||
millisecondsPerDay = 24 * 60 * 60 * 1000;
|
||||
return Math.floor(timeDifference / millisecondsPerDay);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Initializations
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<script src="updates.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<img src="../images/logo.svg" alt="LocalCDN" class="logo"/>
|
||||
<img src="../images/logo.svg" alt="" class="logo">
|
||||
<div class="container">
|
||||
<h1>Release notes</h1>
|
||||
<div class="notice">
|
||||
|
@ -25,9 +25,29 @@
|
|||
<h2>New in LocalCDN:</h2>
|
||||
</div>
|
||||
<div class="release-notes-area">
|
||||
<p>Fixed</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>Google Material Icons v138 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1116">#1116</a>)</li>
|
||||
<li>alpinejs v3.13.10 -> v3.14.0</li>
|
||||
<li>axios v1.6.8 -> v1.7.2</li>
|
||||
<li>bootstrap-table v1.22.5 -> v1.22.6</li>
|
||||
<li>bulma v1.0.0 -> v1.0.1</li>
|
||||
<li>bxslider v4.2.15 -> v4.2.17</li>
|
||||
<li>dexie v4.0.4 -> v4.0.7</li>
|
||||
<li>hls.js v1.5.8 -> v1.5.9</li>
|
||||
<li>instantsearch.css v8.1.0 -> v8.2.0</li>
|
||||
<li>instantsearch.js v4.68.0 -> v4.70.0</li>
|
||||
<li>libphonenumber-js v1.10.62 -> v1.11.2</li>
|
||||
<li>mdb-ui-kit v7.2.0 -> v7.3.0</li>
|
||||
<li>noUiSlider v15.7.1 -> v15.7.2</li>
|
||||
<li>p5.js v1.9.3 -> v1.9.4</li>
|
||||
<li>react-intl v6.6.6 -> v6.6.8</li>
|
||||
<li>react-router v6.23.0 -> v6.23.1</li>
|
||||
<li>search-insights v2.13.0 -> v2.14.0</li>
|
||||
<li>simplebar v6.2.5 -> v6.2.6</li>
|
||||
<li>swagger-ui v5.17.3 -> v5.17.14</li>
|
||||
<li>tinymce v7.0.1 -> v7.1.1</li>
|
||||
<li>video.js v8.13.0 -> v8.14.0</li>
|
||||
<li>vue v3.4.26 -> v3.4.27</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="generator-section">
|
||||
|
@ -36,36 +56,900 @@
|
|||
</div>
|
||||
<div class="ruleset-generator">
|
||||
<label class="b-contain" for="generate-ublock-rules">uBlock
|
||||
<input id="generate-ublock-rules" name="rule-sets" data-ruleset="uBlock" type="radio" value="uBlock" autocomplete="off">
|
||||
<div class="b-input"></div>
|
||||
<input id="generate-ublock-rules" name="rule-sets" data-ruleset="uBlock" type="radio" value="uBlock">
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="ruleset-generator">
|
||||
<label class="b-contain" for="generate-umatrix-rules">uMatrix
|
||||
<input id="generate-umatrix-rules" name="rule-sets" data-ruleset="uMatrix" type="radio" value="uMatrix" autocomplete="off">
|
||||
<div class="b-input"></div>
|
||||
<input id="generate-umatrix-rules" name="rule-sets" data-ruleset="uMatrix" type="radio" value="uMatrix">
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="ruleset-generator">
|
||||
<label class="b-contain" for="generate-adguard-rules">AdGuard
|
||||
<input id="generate-adguard-rules" name="rule-sets" data-ruleset="AdGuard" type="radio" value="AdGuard" autocomplete="off">
|
||||
<div class="b-input"></div>
|
||||
<input id="generate-adguard-rules" name="rule-sets" data-ruleset="AdGuard" type="radio" value="AdGuard">
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="ruleset-generator">
|
||||
<label class="b-contain" for="generate-noscript-rules">NoScript
|
||||
<input id="generate-noscript-rules" name="rule-sets" data-ruleset="NoScript" type="radio" value="NoScript" autocomplete="off">
|
||||
<div class="b-input"></div>
|
||||
<input id="generate-noscript-rules" name="rule-sets" data-ruleset="NoScript" type="radio" value="NoScript">
|
||||
<span class="b-input"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
<textarea rows="12" cols="15" id="generated-rules" readonly></textarea>
|
||||
<input id="button-copy-rule-set" type="button" value="Copy">
|
||||
</div>
|
||||
<hr/>
|
||||
<hr>
|
||||
</div>
|
||||
<div id="history"><span id="history-indicator">+</span> Previous Versions</div>
|
||||
<div id="history-release-notes">
|
||||
<p class='release-date'>2023-05-06 (v2.6.67)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>alpinejs v3.13.8 -> v3.13.10</li>
|
||||
<li>bootstrap-table v1.22.4 -> v1.22.5</li>
|
||||
<li>dayjs v1.11.10 -> v1.11.11</li>
|
||||
<li>feather-icons v4.29.1 -> v4.29.2</li>
|
||||
<li>instantsearch.js v4.66.1 -> v4.68.0</li>
|
||||
<li>jqueryui v1.13.2 -> v1.13.3</li>
|
||||
<li>libphonenumber-js v1.10.60 -> v1.10.62</li>
|
||||
<li>p5.js v1.9.2 -> v1.9.3</li>
|
||||
<li>react v18.2.0 -> v18.3.1</li>
|
||||
<li>react-dom v18.2.0 -> v18.3.1</li>
|
||||
<li>react-intl v6.6.5 -> v6.6.6</li>
|
||||
<li>react-router v6.22.3 -> v6.23.0</li>
|
||||
<li>swagger-ui v5.15.1 -> v5.17.3</li>
|
||||
<li>tensorflow v4.17.0 -> v4.19.0</li>
|
||||
<li>video.js v8.11.8 -> v8.13.0</li>
|
||||
<li>vue v3.4.21 -> v3.4.26</li>
|
||||
<li>vue-i18n v9.12.0 -> v9.13.1</li>
|
||||
<li>vue-router v4.3.0 -> v4.3.2</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>twitter-bootstrap v5.1.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1624">#1624</a>)</li>
|
||||
</ul>
|
||||
<p>Improved</p>
|
||||
<ul>
|
||||
<li>Wildcard support extended in all lists (<a href="https://codeberg.org/nobody/LocalCDN/issues/1622">#1622</a>)</li>
|
||||
<li>Extend statistics over the whole time range (<a href="https://codeberg.org/nobody/LocalCDN/issues/1626">#1626</a>)</li>
|
||||
</ul>
|
||||
<p>Fixed</p>
|
||||
<ul>
|
||||
<li>Welcome Page autoclose if check "Allow this extension to run in Private Windows" (<a href="https://codeberg.org/nobody/LocalCDN/issues/1625">#1625</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-04-13 (v2.6.66)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>tinymce v6.8.3 -> v7.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/fbd89e2d82c04df4591b7c0a67c8260251326574">fbd89e2d82</a>)</li>
|
||||
<li>bulma v0.9.4 -> v1.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/225905ca68112ff1fc8a81c89a631480d062d42d">225905ca68</a>)</li>
|
||||
<li>vanilla-lazyload v17.8.8 -> v19.1.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/5b24cdc41228ab6a478a572638e65b808aea4d7b">5b24cdc412</a>)</li>
|
||||
<li>materialicons v141 -> v142 (<a href="https://codeberg.org/nobody/LocalCDN/commit/4e841ab63717633465f73d7afc880b93c5bbff57">4e841ab637</a>)</li>
|
||||
<li>react-intl v6.6.2 -> v6.6.5 (<a href="https://codeberg.org/nobody/LocalCDN/commit/7aeb64677349de976244fc041d295219abd30a32">7aeb646773</a>)</li>
|
||||
<li>font-awesome v6.5.1 -> v6.5.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/6b684648a94add0c3cd9aab66886bd38ec9cc312">6b684648a9</a>)</li>
|
||||
<li>alpinejs v3.13.7 -> v3.13.8 (<a href="https://codeberg.org/nobody/LocalCDN/commit/8fa3d016a16c87d93da3ab10583c31b979354b87">8fa3d016a1</a>)</li>
|
||||
<li>swagger-ui v5.12.0 -> v5.15.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/3d658a279456a89e325b93ca15eac9b19d1fbc37">3d658a2794</a>)</li>
|
||||
<li>p5.js v1.9.1 -> v1.9.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/b5fc4e089e33e7438ddf2bbd26253400057271d2">b5fc4e089e</a>)</li>
|
||||
<li>hls.js v1.5.7 -> v1.5.8 (<a href="https://codeberg.org/nobody/LocalCDN/commit/d5e06b9b10767b185162c90ab3300b4a485fc74a">d5e06b9b10</a>)</li>
|
||||
<li>bootstrap-table v1.22.3 -> v1.22.4 (<a href="https://codeberg.org/nobody/LocalCDN/commit/870b08ba367975f88898ffc77983ab2e6785d6bc">870b08ba36</a>)</li>
|
||||
<li>dexie v3.2.6 -> v4.0.4 (<a href="https://codeberg.org/nobody/LocalCDN/commit/34cb76848d2a5e924863811b514f73fbd97a70c4">34cb76848d</a>)</li>
|
||||
<li>vue-i18n v9.10.2 -> v9.12.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/8cddef7544b81dd6120d8720eeccafbe693fe95c">8cddef7544</a>)</li>
|
||||
<li>webrtc-adapter v8.2.3 -> v9.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e2bd8ce3fac43d93a996adb7bd67f417e0e48792">e2bd8ce3fa</a>)</li>
|
||||
<li>instantsearch.js v4.66.0 -> v4.66.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/ab082579dcec2ea633ccfc335177919dc7933abb">ab082579dc</a>)</li>
|
||||
<li>libphonenumber-js v1.10.58 -> v1.10.60 (<a href="https://codeberg.org/nobody/LocalCDN/commit/3dcc7025e37ce011300bd1c26b0459c41d5b038f">3dcc7025e3</a>)</li>
|
||||
<li>algoliasearch v4.22.1 -> v4.23.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/ace529316c88ba48d0ea5b3c9f00d44518c6f56d">ace529316c</a>)</li>
|
||||
</ul>
|
||||
<p>Improved</p>
|
||||
<ul>
|
||||
<li>highlight.js v7.x, v8.x, v9.x, v10.x -> v11.x (<a href="https://codeberg.org/nobody/LocalCDN/commit/4d38d04e17bbf2f44a1c986b790bfe4b1bdade20">4d38d04e17</a>)</li>
|
||||
</ul>
|
||||
<p>Removed</p>
|
||||
<ul>
|
||||
<li>FitText.js (<a href="https://codeberg.org/nobody/LocalCDN/commit/cc9dacbde6c1221eba09806b401a3313aba5bd7d">cc9dacbde6</a>)</li>
|
||||
<li>angular-ui-select (<a href="https://codeberg.org/nobody/LocalCDN/commit/4e8cd7127f6704881ce7943a1690a10b69693c7c">4e8cd7127f</a>)</li>
|
||||
<li>angular-ui-utils (<a href="https://codeberg.org/nobody/LocalCDN/commit/71f358392c6183a281fc7dc129cecabb914c8e0a">71f358392c</a>)</li>
|
||||
<li>angular-stripe-checkout (<a href="https://codeberg.org/nobody/LocalCDN/commit/1211a9c43a39326152669d83ec36d819cc21fb50">1211a9c43a</a>)</li>
|
||||
<li>d3-legend (<a href="https://codeberg.org/nobody/LocalCDN/commit/fb5a3f779b86b493dd71f0ba6899f2b9f17ac4f3">fb5a3f779b</a>)</li>
|
||||
<li>drawer (<a href="https://codeberg.org/nobody/LocalCDN/commit/5df53e2ea2266130a76931aa30e46d73e22c6f5b">5df53e2ea2</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-03-17 (v2.6.65)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>d3 v7.8.5 -> v7.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/9096750ba29d9d103e1cdced53b394d718099d55">9096750ba2</a>)</li>
|
||||
<li>axios v1.6.7 -> v1.6.8 (<a href="https://codeberg.org/nobody/LocalCDN/commit/76a887af6175959e15c2b3582f813e29c07198fd">76a887af61</a>)</li>
|
||||
<li>socket.io v4.7.4 -> v4.7.5 (<a href="https://codeberg.org/nobody/LocalCDN/commit/1be054976b61d2c0ff25a296b4179746b9b43f33">1be054976b</a>)</li>
|
||||
<li>react-router v6.22.2 -> v6.22.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/cf2cae09e4cca7a30be8295a51405a60fc0806e8">cf2cae09e4</a>)</li>
|
||||
<li>video.js v8.11.5 -> v8.11.8 (<a href="https://codeberg.org/nobody/LocalCDN/commit/b98d1fd75368e2eca39f6674654c271594284f64">b98d1fd753</a>)</li>
|
||||
<li>alpinejs v3.13.5 -> v3.13.7 (<a href="https://codeberg.org/nobody/LocalCDN/commit/5efa34e9327cc27c1b867fde651b80e44d3f66e6">5efa34e932</a>)</li>
|
||||
<li>swagger-ui v5.11.8 -> v5.12.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/773beb1697b68d4a23c84ce84cc91d2e0c983f47">773beb1697</a>)</li>
|
||||
<li>mdb-ui-kit v7.1.0 -> v7.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e3ba1c8c32acb03f3c585e53ffbc0f154c3ef8db">e3ba1c8c32</a>)</li>
|
||||
<li>p5.js v1.9.0 -> v1.9.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/9fd72962886333d710635f2af0fbbfb7ccee4ffd">9fd7296288</a>)</li>
|
||||
<li>vue-i18n v9.9.1 -> v9.10.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/008db469fe79f9324b17c82f418c9e48614783bf">008db469fe</a>)</li>
|
||||
<li>libphonenumber-js v1.10.57 -> v1.10.58 (<a href="https://codeberg.org/nobody/LocalCDN/commit/74dea23e1d8791f58b3c32da1835412afe03e39e">74dea23e1d</a>)</li>
|
||||
</ul>
|
||||
<p>Improved</p>
|
||||
<ul>
|
||||
<li>Support wildcard TLD in all lists (<a href="https://codeberg.org/nobody/LocalCDN/issues/1622">#1622</a>)</li>
|
||||
<li>Fixed incorrect description in the settings (<a href="https://codeberg.org/nobody/LocalCDN/issues/1622">#1622</a>)</li>
|
||||
</ul>
|
||||
<p>Fixed</p>
|
||||
<ul>
|
||||
<li>docsify themes (<a href="https://codeberg.org/nobody/LocalCDN/issues/1623">#1623</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-02-29 (v2.6.64)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>vue v3.4.15 -> v3.4.21 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e277722b22601b954d30033b187a53f066972962">e277722b22</a>)</li>
|
||||
<li>tinymce v6.8.2 -> v6.8.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/c637d1b56e3cfe485cb035952960af80384b3b9e">c637d1b56e</a>)</li>
|
||||
<li>twitter-bootstrap v5.3.2 -> v5.3.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/47afb3e6144fea91d8edd603bbae36d7e4849d6a">47afb3e614</a>)</li>
|
||||
<li>react-router v6.22.0 -> v6.22.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/f99b07a6fd124913874778aaadb3ff246da7148f">f99b07a6fd</a>)</li>
|
||||
<li>video.js v8.11.1 -> v8.11.5 (<a href="https://codeberg.org/nobody/LocalCDN/commit/093f9253e809f423dbb3b0e8eb9d9224d2b5c3e1">093f9253e8</a>)</li>
|
||||
<li>backbone.js v1.5.0 -> v1.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e38e56a473de4fac28a1338e2ba6fce7774ee5c7">e38e56a473</a>)</li>
|
||||
<li>swagger-ui v5.11.2 -> v5.11.8 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e2ff54ce1812eabfd2c28f2083d9a033cd28b4e1">e2ff54ce18</a>)</li>
|
||||
<li>vue-router v4.2.5 -> v4.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/06c9f62631043ffd767fbc857f81ace0da80e4c1">06c9f62631</a>)</li>
|
||||
<li>hls.js v1.5.3 -> v1.5.7 (<a href="https://codeberg.org/nobody/LocalCDN/commit/35b8e794034f303b3239a39201d89e6c44c9d7ac">35b8e79403</a>)</li>
|
||||
<li>bootstrap-table v1.22.2 -> v1.22.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/353dde8cff797ef1a453661f894b33dd0ccea670">353dde8cff</a>)</li>
|
||||
<li>dexie v3.2.4 -> v3.2.6 (<a href="https://codeberg.org/nobody/LocalCDN/commit/c4cb8b2b6b4938c40eccc6ad6118524b568b6acd">c4cb8b2b6b</a>)</li>
|
||||
<li>instantsearch.js v4.64.2 -> v4.66.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/21dbfe807e137ed203ce2f5666e87d7699351f83">21dbfe807e</a>)</li>
|
||||
<li>libphonenumber-js v1.10.55 -> v1.10.57 (<a href="https://codeberg.org/nobody/LocalCDN/commit/6a76aa6cf1d369949537b9e61bdf6cf798c50121">6a76aa6cf1</a>)</li>
|
||||
<li>vanilla-lazyload v17.8.5 -> v17.8.8 (<a href="https://codeberg.org/nobody/LocalCDN/commit/eec43134f84bf8f40ac443f68a9202573a9bc247">eec43134f8</a>)</li>
|
||||
<li>bootswatch v5.3.2 -> v5.3.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/856a849ebb17b64af6b0a4e173610ae4920e30cc">856a849ebb</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-02-04 (v2.6.63)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>materialicons v140 -> v141 (<a href="https://codeberg.org/nobody/LocalCDN/commit/6123be7478548b985cad5f28e1c25a1f191238be">6123be7478</a>)</li>
|
||||
<li>gsap v3.12.4 -> v3.12.5 (<a href="https://codeberg.org/nobody/LocalCDN/commit/062a90bbdb8d0b8f25473fad4fe9305b89c7616f">062a90bbdb</a>)</li>
|
||||
<li>react-intl v6.5.5 -> v6.6.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/057c9465ebc3a3db6414105c54e934bec999410f">057c9465eb</a>)</li>
|
||||
<li>angular-translate v2.19.0 -> v2.19.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/8a58c9ca79e37be8f2128ce4740d8a55f795faeb">8a58c9ca79</a>)</li>
|
||||
<li>angular-translate-loader-partial v2.19.0 -> v2.19.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e906cdcd591da91bbd580536307378b13577e44a">e906cdcd59</a>)</li>
|
||||
<li>vue v3.4.9 -> v3.4.15 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e420da12433938427fb75655c1adef8ce63ed7cf">e420da1243</a>)</li>
|
||||
<li>axios v1.6.5 -> v1.6.7 (<a href="https://codeberg.org/nobody/LocalCDN/commit/afb82f6ebc49163b14b92839e88673cdea45da8c">afb82f6ebc</a>)</li>
|
||||
<li>react-router v6.21.1 -> v6.22.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/f2be418a43fa42330759d80fbac67e78a4705428">f2be418a43</a>)</li>
|
||||
<li>video.js v8.9.0 -> v8.11.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/bab22c90f292b7e4edaf6b3986109b7a48534f65">bab22c90f2</a>)</li>
|
||||
<li>alpinejs v3.13.3 -> v3.13.5 (<a href="https://codeberg.org/nobody/LocalCDN/commit/a73b3dbd14735e20a5392226a82b8100f99d6736">a73b3dbd14</a>)</li>
|
||||
<li>swagger-ui v5.11.0 -> v5.11.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/c8cc450ce88bef045a1b2493b5086d9927e9fd31">c8cc450ce8</a>)</li>
|
||||
<li>tensorflow v4.16.0 -> v4.17.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/ed51d96de8832f7ec80db1583d277c28c91b9716">ed51d96de8</a>)</li>
|
||||
<li>hls.js v1.5.1 -> v1.5.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/1cd7e033fe402ed9d5b8be4cabc0d099ac4793c5">1cd7e033fe</a>)</li>
|
||||
<li>vue-i18n v9.9.0 -> v9.9.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/986ce46187308b3db73f428ad82fe4dca366d43a">986ce46187</a>)</li>
|
||||
<li>instantsearch.js v4.63.0 -> v4.64.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/a059ea04bd0d51b2cd21109af115033d391ea988">a059ea04bd</a>)</li>
|
||||
<li>libphonenumber-js v1.10.53 -> v1.10.55 (<a href="https://codeberg.org/nobody/LocalCDN/commit/88be389f55e0f5f0f7f42d73bba75118d3e0606f">88be389f55</a>)</li>
|
||||
<li>corejs-typeahead v1.3.3 -> v1.3.4 (<a href="https://codeberg.org/nobody/LocalCDN/commit/1ee357539007d3f7d6ee1801296570ab270b8b2f">1ee3575390</a>)</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>supabase-js (<a href="https://codeberg.org/nobody/LocalCDN/issues/1619">#1619</a>)</li>
|
||||
</ul>
|
||||
<p>Remove</p>
|
||||
<ul>
|
||||
<li>SWFObject (<a href="https://codeberg.org/nobody/LocalCDN/commit/2f9bdcd6c09446a9f9ac6c56d0337da804ca6ffc">2f9bdcd6c0</a>)</li>
|
||||
</ul>
|
||||
<p>Mapping</p>
|
||||
<ul>
|
||||
<li>docsify -> cdn.jsdelivr.net (<a href="https://codeberg.org/nobody/LocalCDN/issues/1616">#1616</a>)</li>
|
||||
<li>Font Awesome v4.7.0 woff -> woff2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1617">#1617</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-01-13 (v2.6.62)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>vue v3.3.13 -> v3.4.9 (<a href="https://codeberg.org/nobody/LocalCDN/commit/881b142f279f98bf3fb44a6e1728e8964bfd5bd6">881b142f27</a>)</li>
|
||||
<li>axios v1.6.3 -> v1.6.5 (<a href="https://codeberg.org/nobody/LocalCDN/commit/de1450dec75d39aa0eacbd894c6cea9ff8ebb81b">de1450dec7</a>)</li>
|
||||
<li>socket.io v4.7.2 -> v4.7.4 (<a href="https://codeberg.org/nobody/LocalCDN/commit/8d18fd35bac8db4c88b66307397865f0d754977e">8d18fd35ba</a>)</li>
|
||||
<li>moment.js v2.30.0 -> v2.30.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/bad9334a5b6fde879053d54cd3efe6804abbcb6f">bad9334a5b</a>)</li>
|
||||
<li>video.js v8.8.0 -> v8.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/c6583298f6a7475c89ff833b108cbc7b40911628">c6583298f6</a>)</li>
|
||||
<li>swagger-ui v5.10.5 -> v5.11.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/945e841986ace53c6d00b5275e2a1b34dfe3d434">945e841986</a>)</li>
|
||||
<li>tensorflow v4.15.0 -> v4.16.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/cb9783a10962dce6a331fdb307b895c3907a87fb">cb9783a109</a>)</li>
|
||||
<li>hls.js v1.4.14 -> v1.5.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/4f8892857313d3d5f8dc0cfe6e593b9f70eb3289">4f88928573</a>)</li>
|
||||
<li>bootstrap-table v1.22.1 -> v1.22.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/8bd3e388362ee56a8ee3ef305437f7e3aeff4193">8bd3e38836</a>)</li>
|
||||
<li>vue-i18n v9.8.0 -> v9.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/01c9d7780500b7d09982fea46f7e1d6562500d4d">01c9d77805</a>)</li>
|
||||
<li>bootstrap-icons v1.11.2 -> v1.11.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/a8c01e1308dff2363b0d19591d4303de49d41d88">a8c01e1308</a>)</li>
|
||||
<li>algoliasearch v4.22.0 -> v4.22.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/5678f07e273576d41063cb4dc3d373acbcd59de1">5678f07e27</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-12-29 (v2.6.61)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>vue v3.3.11 -> v3.3.13 (<a href="https://codeberg.org/nobody/LocalCDN/commit/3a346eeba8cfd524722d578b3c80db6f313f39bd">3a346eeba8</a>)</li>
|
||||
<li>axios v1.6.2 -> v1.6.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/cbb8f629fc85924d01fe0ac63a51748c5b780e44">cbb8f629fc</a>)</li>
|
||||
<li>redux v5.0.0 -> v5.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/d0712af389b3856e64c3d9088b267322262ac486">d0712af389</a>)</li>
|
||||
<li>react-router v6.20.1 -> v6.21.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/65dce2b6ee65c10aaef4da5bb262f83d016dc818">65dce2b6ee</a>)</li>
|
||||
<li>moment.js v2.29.4 -> v2.30.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e66966d8eb9d87a51e1c00c3dcadddf9a5e486b0">e66966d8eb</a>)</li>
|
||||
<li>video.js v8.7.0 -> v8.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/eebd7895bcade4a18cf938a7f89f2530709af239">eebd7895bc</a>)</li>
|
||||
<li>swagger-ui v5.10.3 -> v5.10.5 (<a href="https://codeberg.org/nobody/LocalCDN/commit/920adb917a1e9e008fc724486fe28c6d2998aaa8">920adb917a</a>)</li>
|
||||
<li>tensorflow v4.14.0 -> v4.15.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/a42c8b360ab6cea91da9b62ce3ce78ffd392213d">a42c8b360a</a>)</li>
|
||||
<li>gsap v3.12.3 -> v3.12.4 (<a href="https://codeberg.org/nobody/LocalCDN/commit/f5fe905889e4dee81ea7ac14ed2b62b9b228a5f8">f5fe905889</a>)</li>
|
||||
<li>hls.js v1.4.13 -> v1.4.14 (<a href="https://codeberg.org/nobody/LocalCDN/commit/ba026ff85f839686d600984f7d93448ec1d22434">ba026ff85f</a>)</li>
|
||||
<li>instantsearch.js v4.62.0 -> v4.63.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/ee0626a234185bfde6ce73349562e64725deb601">ee0626a234</a>)</li>
|
||||
<li>libphonenumber-js v1.10.51 -> v1.10.53 (<a href="https://codeberg.org/nobody/LocalCDN/commit/1d5ec6cae0b566ea394b13a72f3a9a8bef6908d0">1d5ec6cae0</a>)</li>
|
||||
<li>algoliasearch v4.21.0 -> v4.22.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/ce32d63913aeb5d66663034de7c3bb307a36b831">ce32d63913</a>)</li>
|
||||
</ul>
|
||||
<p>Improved</p>
|
||||
<ul>
|
||||
<li>Extend the Google Service check and also include subdomains (<a href="https://codeberg.org/nobody/LocalCDN/issues/1560">#1560</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-12-12 (v2.6.60)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>vue v3.3.8 -> v3.3.11 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1591">#1591</a>)</li>
|
||||
<li>gsap v3.12.2 -> v3.12.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1592">#1592</a>)</li>
|
||||
<li>font-awesome v6.4.2 -> v6.5.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1593">#1593</a>)</li>
|
||||
<li>tinymce v6.7.3 -> v6.8.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1594">#1594</a>)</li>
|
||||
<li>react-router v6.19.0 -> v6.20.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1595">#1595</a>)</li>
|
||||
<li>animejs v3.2.1 -> v3.2.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1596">#1596</a>)</li>
|
||||
<li>Swiper v11.0.4 -> v11.0.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1597">#1597</a>)</li>
|
||||
<li>alpinejs v3.13.2 -> v3.13.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1598">#1598</a>)</li>
|
||||
<li>swagger-ui v5.10.0 -> v5.10.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1599">#1599</a>)</li>
|
||||
<li>p5.js v1.8.0 -> v1.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1600">#1600</a>)</li>
|
||||
<li>tensorflow v4.13.0 -> v4.14.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1601">#1601</a>)</li>
|
||||
<li>vue-i18n v9.7.0 -> v9.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1602">#1602</a>)</li>
|
||||
<li>bootstrap-icons v1.11.1 -> v1.11.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1603">#1603</a>)</li>
|
||||
<li>libphonenumber-js v1.10.49 -> v1.10.51 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1604">#1604</a>)</li>
|
||||
<li>Chart.js v4.4.0 -> v4.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1605">#1605</a>)</li>
|
||||
<li>video.js v8.6.1 -> v8.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1606">#1606</a>)</li>
|
||||
<li>hls.js v1.4.12 -> v1.4.13 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1607">#1607</a>)</li>
|
||||
<li>instantsearch.js v4.60.0 -> v4.62.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1608">#1608</a>)</li>
|
||||
<li>mdb-ui-kit v7.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1609">#1609</a>)</li>
|
||||
<li>redux v5.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1610">#1610</a>)</li>
|
||||
<li>search-insights v2.11.0 -> v2.13.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1611">#1611</a>)</li>
|
||||
<li>ngx-bootstrap v11.0.2 -> v12.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1612">#1612</a>)</li>
|
||||
<li>algoliasearch v4.20.0 -> v4.21.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1613">#1613</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-11-19 (v2.6.59)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>react-intl v6.5.1 -> v6.5.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1579">#1579</a>)</li>
|
||||
<li>search-insights v2.9.0 -> v2.11.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1580">#1580</a>)</li>
|
||||
<li>vue v3.3.7 -> v3.3.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1581">#1581</a>)</li>
|
||||
<li>axios v1.6.0 -> v1.6.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1582">#1582</a>)</li>
|
||||
<li>react-router v6.17.0 -> v6.19.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1583">#1583</a>)</li>
|
||||
<li>Swiper v11.0.3 -> v11.0.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1584">#1584</a>)</li>
|
||||
<li>swagger-ui v5.9.1 -> v5.10.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1585">#1585</a>)</li>
|
||||
<li>tensorflow v4.12.0 -> v4.13.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1586">#1586</a>)</li>
|
||||
<li>tinymce v6.7.2 -> v6.7.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1587">#1587</a>)</li>
|
||||
<li>vue-i18n v9.6.1 -> v9.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1588">#1588</a>)</li>
|
||||
<li>instantsearch.js v4.59.0 -> v4.60.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1589">#1589</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-10-28 (v2.6.58)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>tinymce v6.7.0 -> v6.7.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1562">#1562</a>)</li>
|
||||
<li>react-intl v6.4.7 -> v6.5.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1563">#1563</a>)</li>
|
||||
<li>search-insights v2.8.3 -> v2.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1564">#1564</a>)</li>
|
||||
<li>vanilla-lazyload v17.8.4 -> v17.8.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1565">#1565</a>)</li>
|
||||
<li>alpinejs v3.13.1 -> v3.13.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1566">#1566</a>)</li>
|
||||
<li>axios v1.5.1 -> v1.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1567">#1567</a>)</li>
|
||||
<li>react-router v6.16.0 -> v6.17.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1568">#1568</a>)</li>
|
||||
<li>Swiper v10.3.1 -> v11.0.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1569">#1569</a>)</li>
|
||||
<li>video.js v8.6.0 -> v8.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1570">#1570</a>)</li>
|
||||
<li>vue v3.3.4 -> v3.3.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1571">#1571</a>)</li>
|
||||
<li>swagger-ui v5.9.0 -> v5.9.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1572">#1572</a>)</li>
|
||||
<li>p5.js v1.7.0 -> v1.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1573">#1573</a>)</li>
|
||||
<li>tensorflow v4.11.0 -> v4.12.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1574">#1574</a>)</li>
|
||||
<li>vue-i18n v9.5.0 -> v9.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1575">#1575</a>)</li>
|
||||
<li>instantsearch.js v4.58.0 -> v4.59.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1576">#1576</a>)</li>
|
||||
<li>libphonenumber-js v1.10.47 -> v1.10.49 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1577">#1577</a>)</li>
|
||||
</ul>
|
||||
<p>Improved</p>
|
||||
<ul>
|
||||
<li>Allow Google fonts for Google services by default and permanently (<a href="https://codeberg.org/nobody/LocalCDN/issues/1560">#1560</a>)</li>
|
||||
<li>Firefox Sync (<a href="https://codeberg.org/nobody/LocalCDN/issues/1510">#1510</a>)</li>
|
||||
</ul>
|
||||
<p>Mapping</p>
|
||||
<ul>
|
||||
<li>bootswatch -> cdnjs.cloudflare.com (<a href="https://codeberg.org/nobody/LocalCDN/issues/1561">#1561</a>)</li>
|
||||
<li>datatables -> cdnjs.cloudflare.com (<a href="https://codeberg.org/nobody/LocalCDN/issues/1561">#1561</a>)</li>
|
||||
<li>bootstrap-select -> cdn.jsdelivr.net (<a href="https://codeberg.org/nobody/LocalCDN/issues/1561">#1561</a>)</li>
|
||||
<li>js-cookie -> cdn.jsdelivr.net (<a href="https://codeberg.org/nobody/LocalCDN/issues/1561">#1561</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-10-12 (v2.6.57)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>highlight.js v11.8.0 -> v11.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1546">#1546</a>)</li>
|
||||
<li>search-insights v2.8.2 -> v2.8.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1547">#1547</a>)</li>
|
||||
<li>axios v1.5.0 -> v1.5.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1548">#1548</a>)</li>
|
||||
<li>Swiper v10.3.0 -> v10.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1549">#1549</a>)</li>
|
||||
<li>video.js v8.5.3 -> v8.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1550">#1550</a>)</li>
|
||||
<li>alpinejs v3.13.0 -> v3.13.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1551">#1551</a>)</li>
|
||||
<li>swagger-ui v5.7.2 -> v5.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1552">#1552</a>)</li>
|
||||
<li>mdb-ui-kit v6.4.1 -> v6.4.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1553">#1553</a>)</li>
|
||||
<li>react-redux v8.1.2 -> v8.1.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1554">#1554</a>)</li>
|
||||
<li>markdown-it v13.0.1 -> v13.0.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1555">#1555</a>)</li>
|
||||
<li>jquery-validate v1.19.5 -> v1.20.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1556">#1556</a>)</li>
|
||||
<li>vue-i18n v9.4.1 -> v9.5.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1557">#1557</a>)</li>
|
||||
<li>instantsearch.js v4.57.0 -> v4.58.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1558">#1558</a>)</li>
|
||||
<li>libphonenumber-js v1.10.44 -> v1.10.47 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1559">#1559</a>)</li>
|
||||
</ul>
|
||||
<p>Improved</p>
|
||||
<ul>
|
||||
<li>Update manifest.json to prepare Firefox for Android support and new signing method by Mozilla (<a href="https://codeberg.org/nobody/LocalCDN/issues/136">#136</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-09-23 (v2.6.56)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>search-insights v2.8.1 -> v2.8.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1528">#1528</a>)</li>
|
||||
<li>react-intl v6.4.4 -> v6.4.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1529">#1529</a>)</li>
|
||||
<li>swagger-ui v5.4.2 -> v5.7.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1530">#1530</a>)</li>
|
||||
<li>hls.js v1.4.10 -> v1.4.12 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1531">#1531</a>)</li>
|
||||
<li>vue-i18n v9.2.2 -> v9.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1532">#1532</a>)</li>
|
||||
<li>instantsearch.js v4.56.9 -> v4.57.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1533">#1533</a>)</li>
|
||||
<li>algoliasearch v4.19.1 -> v4.20.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1534">#1534</a>)</li>
|
||||
<li>twitter-bootstrap v5.3.1 -> v5.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1536">#1536</a>)</li>
|
||||
<li>react-router v6.15.0 -> v6.16.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1537">#1537</a>)</li>
|
||||
<li>tensorflow v4.10.0 -> v4.11.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1538">#1538</a>)</li>
|
||||
<li>bootstrap-icons v1.10.5 -> v1.11.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1539">#1539</a>)</li>
|
||||
<li>dayjs v1.11.9 -> v1.11.10 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1540">#1540</a>)</li>
|
||||
<li>bootswatch v5.3.1 -> v5.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1541">#1541</a>)</li>
|
||||
<li>lightgallery v2.7.1 -> v2.7.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1542">#1542</a>)</li>
|
||||
<li>instantsearch.css v8.0.0 -> v8.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1543">#1543</a>)</li>
|
||||
<li>Swiper v10.2.0 -> v10.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1544">#1544</a>)</li>
|
||||
<li>vue-router v4.2.4 -> v4.2.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1545">#1545</a>)</li>
|
||||
</ul>
|
||||
<p>Fixed</p>
|
||||
<ul>
|
||||
<li>HTML filter trim spaces in character set detection (<a href="https://codeberg.org/nobody/LocalCDN/issues/1526">#1526</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-09-03 (v2.6.55)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>Chart.js v4.3.3 -> v4.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1511">#1511</a>)</li>
|
||||
<li>element-ui v2.15.13 -> v2.15.14 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1512">#1512</a>)</li>
|
||||
<li>react-router v6.14.2 -> v6.15.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1513">#1513</a>)</li>
|
||||
<li>Swiper v10.1.0 -> v10.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1514">#1514</a>)</li>
|
||||
<li>video.js v8.5.1 -> v8.5.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1515">#1515</a>)</li>
|
||||
<li>foundation v6.7.5 -> v6.8.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1516">#1516</a>)</li>
|
||||
<li>alpinejs v3.12.3 -> v3.13.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1517">#1517</a>)</li>
|
||||
<li>swagger-ui v5.3.1 -> v5.4.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1518">#1518</a>)</li>
|
||||
<li>feather-icons v4.29.0 -> v4.29.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1519">#1519</a>)</li>
|
||||
<li>tinymce v6.6.1 -> v6.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1520">#1520</a>)</li>
|
||||
<li>instantsearch.js v4.56.8 -> v4.56.9 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1521">#1521</a>)</li>
|
||||
<li>libphonenumber-js v1.10.39 -> v1.10.44 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1522">#1522</a>)</li>
|
||||
<li>axios v1.4.0 -> v1.5.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1523">#1523</a>)</li>
|
||||
<li>jquery v3.7.0 -> v3.7.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1524">#1524</a>)</li>
|
||||
<li>search-insights v2.7.0 -> v2.8.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1525">#1525</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-08-08 (v2.6.54)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>twitter-bootstrap v5.3.0 -> v5.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1489">#1489</a>)</li>
|
||||
<li>Chart.js v4.3.0 -> v4.3.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1490">#1490</a>)</li>
|
||||
<li>react-router v6.14.1 -> v6.14.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1491">#1491</a>)</li>
|
||||
<li>video.js v8.5.0 -> v8.5.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1492">#1492</a>)</li>
|
||||
<li>Swiper v10.0.4 -> v10.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1493">#1493</a>)</li>
|
||||
<li>backbone.js v1.4.1 -> v1.5.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1494">#1494</a>)</li>
|
||||
<li>swagger-ui v5.1.1 -> v5.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1495">#1495</a>)</li>
|
||||
<li>mdb-ui-kit v6.4.0 -> v6.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1496">#1496</a>)</li>
|
||||
<li>react-redux v8.1.1 -> v8.1.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1497">#1497</a>)</li>
|
||||
<li>tensorflow v4.8.0 -> v4.10.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1498">#1498</a>)</li>
|
||||
<li>handlebars.js v4.7.7 -> v4.7.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1499">#1499</a>)</li>
|
||||
<li>bootswatch v5.3.0 -> v5.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1500">#1500</a>)</li>
|
||||
<li>hls.js v1.4.9 -> v1.4.10 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1501">#1501</a>)</li>
|
||||
<li>instantsearch.js v4.56.5 -> v4.56.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1502">#1502</a>)</li>
|
||||
<li>libphonenumber-js v1.10.37 -> v1.10.39 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1503">#1503</a>)</li>
|
||||
<li>algoliasearch v4.18.0 -> v4.19.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1504">#1504</a>)</li>
|
||||
<li>font-awesome v6.4.0 -> v6.4.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1505">#1505</a>)</li>
|
||||
<li>socket.io v4.7.1 -> v4.7.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1506">#1506</a>)</li>
|
||||
<li>tinymce v6.6.0 -> v6.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1507">#1507</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-07-16 (v2.6.53)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>gsap v3.12.1 -> v3.12.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1467">#1467</a>)</li>
|
||||
<li>socket.io v4.7.0 -> v4.7.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1468">#1468</a>)</li>
|
||||
<li>hls.js v1.4.6 -> v1.4.9 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1469">#1469</a>)</li>
|
||||
<li>libphonenumber-js v1.10.36 -> v1.10.37 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1470">#1470</a>)</li>
|
||||
<li>react-router v6.14.0 -> v6.14.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1473">#1473</a>)</li>
|
||||
<li>dayjs v1.11.8 -> v1.11.9 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1474">#1474</a>)</li>
|
||||
<li>alpinejs v3.12.2 -> v3.12.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1475">#1475</a>)</li>
|
||||
<li>vue-router v4.2.2 -> v4.2.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1476">#1476</a>)</li>
|
||||
<li>bootstrap-table v1.22.0 -> v1.22.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1477">#1477</a>)</li>
|
||||
<li>instantsearch.js v4.56.3 -> v4.56.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1478">#1478</a>)</li>
|
||||
<li>p5.js v1.6.0 -> v1.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1482">#1482</a>)</li>
|
||||
<li>search-insights v2.6.0 -> v2.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1483">#1483</a>)</li>
|
||||
<li>ngx-bootstrap v10.3.0 -> v11.0.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1484">#1484</a>)</li>
|
||||
<li>swagger-ui v5.1.0 -> v5.1.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1485">#1485</a>)</li>
|
||||
<li>tinymce v6.5.1 -> v6.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1486">#1486</a>)</li>
|
||||
<li>vanilla-lazyload v17.8.3 -> v17.8.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1487">#1487</a>)</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>handlebars.js v4.7.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1472">#1472</a>)</li>
|
||||
<li>Swiper v10.0.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1479">#1479</a>)</li>
|
||||
</ul>
|
||||
<p>Improved</p>
|
||||
<ul>
|
||||
<li>Handling and logging of blocked and missing resources (<a href="https://codeberg.org/nobody/LocalCDN/issues/1481">#1481</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-06-25 (v2.6.52)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>twitter-bootstrap v5.2.3 -> v5.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1439">#1439</a>)</li>
|
||||
<li>tinymce v6.4.2 -> v6.5.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1440">#1440</a>)</li>
|
||||
<li>gsap v3.11.5 -> v3.12.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1441">#1441</a>)</li>
|
||||
<li>d3 v7.8.4 -> v7.8.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1442">#1442</a>)</li>
|
||||
<li>socket.io v4.6.1 -> v4.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1443">#1443</a>)</li>
|
||||
<li>react-router v6.11.2 -> v6.14.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1444">#1444</a>)</li>
|
||||
<li>dayjs v1.11.7 -> v1.11.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1445">#1445</a>)</li>
|
||||
<li>video.js v8.3.0 -> v8.5.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1446">#1446</a>)</li>
|
||||
<li>Swiper v9.3.2 -> v9.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1447">#1447</a>)</li>
|
||||
<li>bodymovin v5.11.0 -> v5.12.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1448">#1448</a>)</li>
|
||||
<li>alpinejs v3.12.1 -> v3.12.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1449">#1449</a>)</li>
|
||||
<li>mdb-ui-kit v6.3.1 -> v6.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1450">#1450</a>)</li>
|
||||
<li>react-redux v8.0.5 -> v8.1.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1451">#1451</a>)</li>
|
||||
<li>vue-router v4.2.1 -> v4.2.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1452">#1452</a>)</li>
|
||||
<li>tensorflow v4.6.0 -> v4.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1453">#1453</a>)</li>
|
||||
<li>bootswatch v5.2.3 -> v5.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1454">#1454</a>)</li>
|
||||
<li>hls.js v1.4.4 -> v1.4.6 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1455">#1455</a>)</li>
|
||||
<li>bootstrap-table v1.21.4 -> v1.22.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1456">#1456</a>)</li>
|
||||
<li>dexie v3.2.3 -> v3.2.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1457">#1457</a>)</li>
|
||||
<li>instantsearch.js v4.56.0 -> v4.56.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1458">#1458</a>)</li>
|
||||
<li>libphonenumber-js v1.10.30 -> v1.10.36 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1459">#1459</a>)</li>
|
||||
<li>algoliasearch v4.17.1 -> v4.18.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1460">#1460</a>)</li>
|
||||
<li>corejs-typeahead v1.3.1 -> v1.3.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1461">#1461</a>)</li>
|
||||
<li>noUiSlider v15.7.0 -> v15.7.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1462">#1462</a>)</li>
|
||||
<li>react-intl v6.4.2 -> v6.4.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1463">#1463</a>)</li>
|
||||
<li>webrtc-adapter v8.2.2 -> v8.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1464">#1464</a>)</li>
|
||||
<li>docsify v4.13.0 -> v4.13.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1466">#1466</a>)</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>swagger-ui v5.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1465">#1465</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-05-27 (v2.6.51)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>bootstrap-datepicker v1.9.0 -> v1.10.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1422">#1422</a>)</li>
|
||||
<li>vue v3.2.47 -> v3.3.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1423">#1423</a>)</li>
|
||||
<li>jquery v3.6.4 -> v3.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1424">#1424</a>)</li>
|
||||
<li>react-router v6.11.1 -> v6.11.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1425">#1425</a>)</li>
|
||||
<li>leaflet v1.9.3 -> v1.9.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1426">#1426</a>)</li>
|
||||
<li>Swiper v9.2.4 -> v9.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1427">#1427</a>)</li>
|
||||
<li>alpinejs v3.12.0 -> v3.12.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1428">#1428</a>)</li>
|
||||
<li>mdb-ui-kit v6.2.0 -> v6.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1429">#1429</a>)</li>
|
||||
<li>vue-router v4.1.6 -> v4.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1430">#1430</a>)</li>
|
||||
<li>tensorflow v4.4.0 -> v4.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1431">#1431</a>)</li>
|
||||
<li>hls.js v1.4.0 -> v1.4.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1432">#1432</a>)</li>
|
||||
<li>instantsearch.js v4.55.0 -> v4.56.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1433">#1433</a>)</li>
|
||||
<li>libphonenumber-js v1.10.28 -> v1.10.30 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1434">#1434</a>)</li>
|
||||
<li>videojs-seek-buttons v4.0.2 -> v4.0.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1435">#1435</a>)</li>
|
||||
<li>popper.js v2.11.7 -> v2.11.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1437">#1437</a>)</li>
|
||||
<li>algoliasearch v4.17.0 -> v4.17.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1438">#1438</a>)</li>
|
||||
</ul>
|
||||
<p>Mapping</p>
|
||||
<ul>
|
||||
<li>cdnjs -> typeahead.js (<a href="https://codeberg.org/nobody/LocalCDN/issues/1415">#1415</a>)</li>
|
||||
<li>cdnjs -> bootstrap-table (<a href="https://codeberg.org/nobody/LocalCDN/issues/1415">#1415</a>)</li>
|
||||
<li>jsdelivr.net -> docsearch.js (<a href="https://codeberg.org/nobody/LocalCDN/issues/1416">#1416</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-05-04 (v2.6.50)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>search-insights v2.4.0 -> v2.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1398">#1398</a>)</li>
|
||||
<li>tinymce v6.4.1 -> v6.4.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1399">#1399</a>)</li>
|
||||
<li>react-intl v6.3.2 -> v6.4.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1400">#1400</a>)</li>
|
||||
<li>axios v1.3.5 -> v1.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1401">#1401</a>)</li>
|
||||
<li>Swiper v9.2.0 -> v9.2.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1402">#1402</a>)</li>
|
||||
<li>bodymovin v5.10.2 -> v5.11.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1403">#1403</a>)</li>
|
||||
<li>swagger-ui v4.18.2 -> v4.18.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1404">#1404</a>)</li>
|
||||
<li>js-cookie v3.0.1 -> v3.0.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1405">#1405</a>)</li>
|
||||
<li>angular-ui-router v1.0.30 -> v1.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1406">#1406</a>)</li>
|
||||
<li>hls.js v1.3.5 -> v1.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1407">#1407</a>)</li>
|
||||
<li>bootstrap-icons v1.10.4 -> v1.10.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1408">#1408</a>)</li>
|
||||
<li>simplebar v6.2.4 -> v6.2.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1409">#1409</a>)</li>
|
||||
<li>instantsearch.js v4.54.0 -> v4.55.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1410">#1410</a>)</li>
|
||||
<li>libphonenumber-js v1.10.26 -> v1.10.28 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1411">#1411</a>)</li>
|
||||
<li>highlight.js v11.7.0 -> v11.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1412">#1412</a>)</li>
|
||||
<li>Chart.js v4.2.1 -> v4.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1413">#1413</a>)</li>
|
||||
<li>react-router v6.10.0 -> v6.11.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1414">#1414</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-04-09 (v2.6.49)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>search-insights v2.3.0 -> v2.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1374">#1374</a>)</li>
|
||||
<li>search-insights v1.9.0 -> v1.10.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1375">#1375</a>)</li>
|
||||
<li>react-intl v6.3.0 -> v6.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1376">#1376</a>)</li>
|
||||
<li>tinymce v6.4.0 -> v6.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1377">#1377</a>)</li>
|
||||
<li>Google Material Icons Round v107 -> v108 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1378">#1378</a>)</li>
|
||||
<li>d3 v7.8.2 -> v7.8.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1379">#1379</a>)</li>
|
||||
<li>font-awesome v6.3.0 -> v6.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1380">#1380</a>)</li>
|
||||
<li>react-router v6.9.0 -> v6.10.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1381">#1381</a>)</li>
|
||||
<li>Swiper v9.1.1 -> v9.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1382">#1382</a>)</li>
|
||||
<li>popper.js v2.11.6 -> v2.11.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1383">#1383</a>)</li>
|
||||
<li>swagger-ui v4.18.1 -> v4.18.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1384">#1384</a>)</li>
|
||||
<li>plyr v3.7.7 -> v3.7.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1385">#1385</a>)</li>
|
||||
<li>bootstrap-table v1.21.3 -> v1.21.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1386">#1386</a>)</li>
|
||||
<li>algoliasearch v4.15.0 -> v4.17.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1387">#1387</a>)</li>
|
||||
<li>simplebar v6.2.1 -> v6.2.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1388">#1388</a>)</li>
|
||||
<li>webcomponentsjs v2.7.0 -> v2.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1389">#1389</a>)</li>
|
||||
<li>instantsearch.js v4.52.0 -> v4.54.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1390">#1390</a>)</li>
|
||||
<li>axios v1.3.4 -> v1.3.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1391">#1391</a>)</li>
|
||||
<li>video.js v8.2.1 -> v8.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1392">#1392</a>)</li>
|
||||
<li>tensorflow v4.3.0 -> v4.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1393">#1393</a>)</li>
|
||||
<li>bootstrap-icons v1.10.3 -> v1.10.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1394">#1394</a>)</li>
|
||||
<li>libphonenumber-js v1.10.24 -> v1.10.26 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1395">#1395</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-03-18 (v2.6.48)</p>
|
||||
<p>Updates</p>
|
||||
<ul>
|
||||
<li>react-intl v6.2.8 -> v6.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1344">#1344</a>)</li>
|
||||
<li>axios v1.3.3 -> v1.3.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1345">#1345</a>)</li>
|
||||
<li>socket.io v4.6.0 -> v4.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1346">#1346</a>)</li>
|
||||
<li>video.js v8.0.4 -> v8.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1347">#1347</a>)</li>
|
||||
<li>swagger-ui v4.15.5 -> v4.18.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1348">#1348</a>)</li>
|
||||
<li>p5.js v1.5.0 -> v1.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1349">#1349</a>)</li>
|
||||
<li>tinymce v6.3.1 -> v6.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1350">#1350</a>)</li>
|
||||
<li>lightbox2 v2.11.3 -> v2.11.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1351">#1351</a>)</li>
|
||||
<li>webrtc-adapter v8.2.0 -> v8.2.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1352">#1352</a>)</li>
|
||||
<li>instantsearch.js v4.51.0 -> v4.52.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1353">#1353</a>)</li>
|
||||
<li>jquery-migrate v3.4.0 -> v3.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1354">#1354</a>)</li>
|
||||
<li>react-router v6.8.1 -> v6.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1357">#1357</a>)</li>
|
||||
<li>Swiper v9.0.5 -> v9.1.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1358">#1358</a>)</li>
|
||||
<li>mdb-ui-kit v6.1.0 -> v6.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1359">#1359</a>)</li>
|
||||
<li>hls.js v1.3.3 -> v1.3.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1360">#1360</a>)</li>
|
||||
<li>bootstrap-table v1.21.2 -> v1.21.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1361">#1361</a>)</li>
|
||||
<li>libphonenumber-js v1.10.20 -> v1.10.24 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1362">#1362</a>)</li>
|
||||
<li>algoliasearch v4.14.3 -> v4.15.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1363">#1363</a>)</li>
|
||||
<li>Google Material Icons (<a href="https://codeberg.org/nobody/LocalCDN/issues/1365">#1365</a>)</li>
|
||||
<li>jquery v3.6.3 -> v3.6.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1366">#1366</a>)</li>
|
||||
<li>alpinejs v3.11.1 -> v3.12.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1367">#1367</a>)</li>
|
||||
<li>plyr v3.7.3 -> v3.7.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1368">#1368</a>)</li>
|
||||
<li>paginationjs v2.5.0 -> v2.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1370">#1370</a>)</li>
|
||||
<li>tensorflow v4.2.0 -> v4.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1371">#1371</a>)</li>
|
||||
<li>gsap v3.11.4 -> v3.11.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1372">#1372</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-02-19 (v2.6.47)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>noUiSlider v15.6.1 -> v15.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1324">#1324</a>)</li>
|
||||
<li>react-intl v6.2.7 -> v6.2.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1325">#1325</a>)</li>
|
||||
<li>font-awesome v6.2.1 -> v6.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1326">#1326</a>)</li>
|
||||
<li>Chart.js v4.2.0 -> v4.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1327">#1327</a>)</li>
|
||||
<li>socket.io v4.5.4 -> v4.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1328">#1328</a>)</li>
|
||||
<li>react-router v6.8.0 -> v6.8.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1329">#1329</a>)</li>
|
||||
<li>Swiper v9.0.2 -> v9.0.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1330">#1330</a>)</li>
|
||||
<li>hls.js v1.3.2 -> v1.3.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1331">#1331</a>)</li>
|
||||
<li>instantsearch.js v4.50.2 -> v4.51.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1332">#1332</a>)</li>
|
||||
<li>simplebar v6.2.0 -> v6.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1334">#1334</a>)</li>
|
||||
<li>element-ui v2.15.12 -> v2.15.13 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1336">#1336</a>)</li>
|
||||
<li>axios v1.3.2 -> v1.3.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1337">#1337</a>)</li>
|
||||
<li>libphonenumber-js v1.10.19 -> v1.10.20 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1338">#1338</a>)</li>
|
||||
<li>dygraph v2.2.0 -> v2.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1339">#1339</a>)</li>
|
||||
<li>search-insights v2.2.3 -> v2.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1340">#1340</a>)</li>
|
||||
<li>search-insights v1.8.0 -> v1.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1341">#1341</a>)</li>
|
||||
<li>ngx-bootstrap v10.2.1 -> v10.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1342">#1342</a>)</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>MathJax v3 tex-svg.js (<a href="https://codeberg.org/nobody/LocalCDN/issues/1333">#1333</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-02-05 (v2.6.46)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>bodymovin v5.10.1 -> v5.10.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1305">#1305</a>)</li>
|
||||
<li>dexie v3.2.2 -> v3.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1306">#1306</a>)</li>
|
||||
<li>axios v1.2.3 -> v1.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1310">#1310</a>)</li>
|
||||
<li>instantsearch.js v4.49.4 -> v4.50.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1311">#1311</a>)</li>
|
||||
<li>dygraph v2.1.2 -> v2.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1312">#1312</a>)</li>
|
||||
<li>react-intl v6.2.5 -> v6.2.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1313">#1313</a>)</li>
|
||||
<li>react-router v6.7.0 -> v6.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1314">#1314</a>)</li>
|
||||
<li>redux v4.2.0 -> v4.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1315">#1315</a>)</li>
|
||||
<li>Swiper v8.4.6 -> v8.4.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1316">#1316</a>)</li>
|
||||
<li>hls.js v1.3.1 -> v1.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1317">#1317</a>)</li>
|
||||
<li>libphonenumber-js v1.10.18 -> v1.10.19 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1318">#1318</a>)</li>
|
||||
<li>vue v3.2.45 -> v3.2.47 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1320">#1320</a>)</li>
|
||||
<li>video.js v8.0.3 -> v8.0.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1321">#1321</a>)</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>Swiper v9.0.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1319">#1319</a>)</li>
|
||||
</ul>
|
||||
<p>Mapping</p>
|
||||
<ul>
|
||||
<li>cdnjs.com -> Some angular modules (<a href="https://codeberg.org/nobody/LocalCDN/issues/1307">#1307</a>)</li>
|
||||
</ul>
|
||||
<p>Improved</p>
|
||||
<ul>
|
||||
<li>More information about blocked resources (<a href="https://codeberg.org/nobody/LocalCDN/issues/1309">#1309</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-01-21 (v2.6.45)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>ngx-bootstrap v10.2.0 -> v10.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1285">#1285</a>)</li>
|
||||
<li>Chart.js v4.1.1 -> v4.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1286">#1286</a>)</li>
|
||||
<li>video.js v8.0.2 -> v8.0.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1287">#1287</a>)</li>
|
||||
<li>libphonenumber-js v1.10.15 -> v1.10.18 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1288">#1288</a>)</li>
|
||||
<li>react-router v6.6.1 -> v6.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1289">#1289</a>)</li>
|
||||
<li>instantsearch.js v4.49.3 -> v4.49.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1290">#1290</a>)</li>
|
||||
<li>d3 v7.8.0 -> v7.8.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1291">#1291</a>)</li>
|
||||
<li>lightgallery v2.7.0 -> v2.7.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1292">#1292</a>)</li>
|
||||
<li>hls.js v1.2.9 -> v1.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1293">#1293</a>)</li>
|
||||
<li>axios v1.2.2 -> v1.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1297">#1297</a>)</li>
|
||||
<li>videojs-seek-buttons v4.0.1 -> v4.0.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1299">#1299</a>)</li>
|
||||
<li>Swiper v8.4.5 -> v8.4.6 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1300">#1300</a>)</li>
|
||||
<li>alpinejs v3.10.5 -> v3.11.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1301">#1301</a>)</li>
|
||||
<li>slider-pro v1.6.1 -> v1.6.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1303">#1303</a>)</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>twitter-bootstrap v4.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1284">#1284</a>)</li>
|
||||
<li>simplebar v6.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1298">#1298</a>)</li>
|
||||
<li>anchor-js v5.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1304">#1304</a>)</li>
|
||||
</ul>
|
||||
<p>Mapping</p>
|
||||
<ul>
|
||||
<li>Direct call of Google Material Icons (<a href="https://codeberg.org/nobody/LocalCDN/issues/1295">#1295</a>)</li>
|
||||
</ul>
|
||||
<p>Improved</p>
|
||||
<ul>
|
||||
<li>Allow Fork-Awesome in Chromium (<a href="https://codeberg.org/nobody/LocalCDN/issues/1296">#1296</a>)</li>
|
||||
<li>SimpleLog extended for iframes (<a href="https://codeberg.org/nobody/LocalCDN/issues/1302">#1302</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2023-01-05 (v2.6.44)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>bootswatch v5.2.2 -> v5.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1250">#1250</a>)</li>
|
||||
<li>bootstrap-table v1.21.1 -> v1.21.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1251">#1251</a>)</li>
|
||||
<li>paginationjs v2.4.1 -> v2.5.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1252">#1252</a>)</li>
|
||||
<li>findify-bundle v7.1.77 -> v7.1.80 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1253">#1253</a>)</li>
|
||||
<li>jquery v3.6.1 -> v3.6.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1256">#1256</a>)</li>
|
||||
<li>ngx-bootstrap v10.0.0 -> v10.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1257">#1257</a>)</li>
|
||||
<li>instantsearch.js v4.49.1 -> v4.49.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1260">#1260</a>)</li>
|
||||
<li>dygraph v2.1.0 -> v2.1.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1261">#1261</a>)</li>
|
||||
<li>slider-pro v1.6.0 -> v1.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1262">#1262</a>)</li>
|
||||
<li>Chart.js v4.0.1 -> v4.1.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1263">#1263</a>)</li>
|
||||
<li>react-router v6.4.5 -> v6.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1266">#1266</a>)</li>
|
||||
<li>algoliasearch v4.14.2 -> v4.14.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1267">#1267</a>)</li>
|
||||
<li>d3 v7.7.0 -> v7.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1268">#1268</a>)</li>
|
||||
<li>axios v1.2.1 -> v1.2.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1269">#1269</a>)</li>
|
||||
<li>gsap v3.11.3 -> v3.11.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1270">#1270</a>)</li>
|
||||
<li>bootstrap-icons v1.10.2 -> v1.10.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1273">#1273</a>)</li>
|
||||
<li>bodymovin v5.10.0 -> v5.10.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1276">#1276</a>)</li>
|
||||
<li>mdb-ui-kit v6.0.1 -> v6.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1279">#1279</a>)</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>nprogress v0.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1254">#1254</a>)</li>
|
||||
<li>tensorflow v4.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1264">#1264</a>)</li>
|
||||
<li>ScrollMagic (Bundle) v2.0.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1277">#1277</a>)</li>
|
||||
<li>vue-router v3.6.5 & v4.1.6 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1278">#1278</a>)</li>
|
||||
<li>twitter-bootstrap v4.1.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1280">#1280</a>)</li>
|
||||
<li>instantsearch.css v8.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1281">#1281</a>)</li>
|
||||
<li>URI.js v1.19.11 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1282">#1282</a>)</li>
|
||||
</ul>
|
||||
<p>Improved</p>
|
||||
<ul>
|
||||
<li>HTML filter active by default (<a href="https://codeberg.org/nobody/LocalCDN/issues/1249">#1249</a>)</li>
|
||||
<li>Bootstrap: Redirect alpha and beta versions to the stable version (<a href="https://codeberg.org/nobody/LocalCDN/issues/1265">#1265</a>)</li>
|
||||
</ul>
|
||||
<p>Mapping</p>
|
||||
<ul>
|
||||
<li>unpkg.com/cdn.jsdelivr.net -> aos@next (<a href="https://codeberg.org/nobody/LocalCDN/issues/1272">#1272</a>)</li>
|
||||
</ul>
|
||||
<p>Fixed</p>
|
||||
<ul>
|
||||
<li>Filename Chart.js (<a href="https://codeberg.org/nobody/LocalCDN/issues/1275">#1275</a>)</li>
|
||||
</ul>
|
||||
<p>Removed</p>
|
||||
<ul>
|
||||
<li>findify (<a href="https://codeberg.org/nobody/LocalCDN/issues/1283">#1283</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2022-12-10 (v2.6.43)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>axios v1.2.0 -> v1.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1238">#1238</a>)</li>
|
||||
<li>tinymce v6.3.0 -> v6.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1239">#1239</a>)</li>
|
||||
<li>paginationjs v2.3.0 -> v2.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1240">#1240</a>)</li>
|
||||
<li>findify-bundle v7.1.75 -> v7.1.77 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1241">#1241</a>)</li>
|
||||
<li>react-router v6.4.4 -> v6.4.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1242">#1242</a>)</li>
|
||||
<li>dayjs v1.11.6 -> v1.11.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1243">#1243</a>)</li>
|
||||
<li>hls.js v1.2.8 -> v1.2.9 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1244">#1244</a>)</li>
|
||||
<li>libphonenumber-js v1.10.14 -> v1.10.15 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1247">#1247</a>)</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>ngx-bootstrap v10.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1245">#1245</a>)</li>
|
||||
<li>swagger-ui v4.15.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1246">#1246</a>)</li>
|
||||
</ul>
|
||||
<p>Fixed</p>
|
||||
<ul>
|
||||
<li>Sync: settings are not saved locally (<a href="https://codeberg.org/nobody/LocalCDN/issues/1236">#1236</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2022-12-04 (v2.6.42)</p>
|
||||
<p>Fixed</p>
|
||||
<ul>
|
||||
<li>Settings import function (<a href="https://codeberg.org/nobody/LocalCDN/issues/1234">#1234</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2022-12-04 (v2.6.41)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>twitter-bootstrap v5.2.2 -> v5.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1211">#1211</a>)</li>
|
||||
<li>axios v1.1.3 -> v1.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1212">#1212</a>)</li>
|
||||
<li>socket.io v4.5.3 -> v4.5.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1213">#1213</a>)</li>
|
||||
<li>video.js v7.21.0 -> v7.21.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1214">#1214</a>)</li>
|
||||
<li>Swiper v8.4.4 -> v8.4.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1215">#1215</a>)</li>
|
||||
<li>mdb-ui-kit v6.0.0 -> v6.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1216">#1216</a>)</li>
|
||||
<li>videojs-seek-buttons v4.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1218">#1218</a>)</li>
|
||||
<li>video.js v8.0.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1219">#1219</a>)</li>
|
||||
<li>tinymce v6.2.0 -> v6.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1220">#1220</a>)</li>
|
||||
<li>findify-bundle v7.1.68 -> v7.1.75 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1221">#1221</a>)</li>
|
||||
<li>highlight.js v11.6.0 -> v11.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1222">#1222</a>)</li>
|
||||
<li>bootbox.js v6.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1224">#1224</a>)</li>
|
||||
<li>bodymovin v5.9.6 -> v5.10.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1225">#1225</a>)</li>
|
||||
<li>react-intl v6.2.1 -> v6.2.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1227">#1227</a>)</li>
|
||||
<li>hls.js v1.2.7 -> v1.2.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1228">#1228</a>)</li>
|
||||
<li>react-router v6.3.0 -> v6.4.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1231">#1231</a>)</li>
|
||||
<li>paginationjs v2.1.5 -> v2.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1232">#1232</a>)</li>
|
||||
<li>d3 v7.6.1 -> v7.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1235">#1235</a>)</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>knockout v3.4.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1210">#1210</a>)</li>
|
||||
<li>knockout.mapping v2.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1210">#1210</a>)</li>
|
||||
<li>MathJax v3 tex-chtml.js (<a href="https://codeberg.org/nobody/LocalCDN/issues/1229">#1229</a>)</li>
|
||||
</ul>
|
||||
<p>Improved</p>
|
||||
<ul>
|
||||
<li>Block all non GET requests to CDN (<a href="https://codeberg.org/nobody/LocalCDN/issues/1226">#1226</a>)</li>
|
||||
<li>Settings import function improved (<a href="https://codeberg.org/nobody/LocalCDN/issues/1234">#1234</a>)</li>
|
||||
</ul>
|
||||
<p>Fixed</p>
|
||||
<ul>
|
||||
<li>Synchronize settings (<a href="https://codeberg.org/nobody/LocalCDN/issues/1223">#1223</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2022-11-19 (v2.6.40)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>mdb-ui-kit v6.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1193">#1193</a>)</li>
|
||||
<li>react-redux v8.0.4 -> v8.0.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1195">#1195</a>)</li>
|
||||
<li>instantsearch.js v4.49.0 -> v4.49.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1196">#1196</a>)</li>
|
||||
<li>hls.js v1.2.4 -> v1.2.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1197">#1197</a>)</li>
|
||||
<li>vue v3.2.41 -> v3.2.45 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1198">#1198</a>)</li>
|
||||
<li>bootstrap-icons v1.9.1 -> v1.10.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1199">#1199</a>)</li>
|
||||
<li>findify-bundle v7.1.63 -> v7.1.68 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1202">#1202</a>)</li>
|
||||
<li>font-awesome v6.2.0 -> v6.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1203">#1203</a>)</li>
|
||||
<li>Chart.js v4.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1204">#1204</a>)</li>
|
||||
<li>search-insights v2.2.1 -> v2.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1205">#1205</a>)</li>
|
||||
<li>element-ui v2.15.10 -> v2.15.12 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1206">#1206</a>)</li>
|
||||
<li>plyr v3.7.2 -> v3.7.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1207">#1207</a>)</li>
|
||||
<li>leaflet v1.9.2 -> v1.9.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1208">#1208</a>)</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>MathJax: latest.js v2.7.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1194">#1194</a>)</li>
|
||||
<li>angular.js v1.0.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1200">#1200</a>)</li>
|
||||
</ul>
|
||||
<p>Mapping</p>
|
||||
<ul>
|
||||
<li>cdn.jsdelivr.net -> select2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1201">#1201</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2022-10-29 (v2.6.39)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>videojs-seek-buttons v3.0.0 -> v3.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1177">#1177</a>)</li>
|
||||
<li>p5.js v1.4.2 -> v1.5.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1178">#1178</a>)</li>
|
||||
<li>instantsearch.js v4.48.0 -> v4.49.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1179">#1179</a>)</li>
|
||||
<li>pure v2.1.0 -> v2.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1180">#1180</a>)</li>
|
||||
<li>webcomponentsjs v2.6.0 -> v2.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1184">#1184</a>)</li>
|
||||
<li>dayjs v1.11.5 -> v1.11.6 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1185">#1185</a>)</li>
|
||||
<li>alpinejs v3.10.4 -> v3.10.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1186">#1186</a>)</li>
|
||||
<li>docsify v4.12.2 -> v4.13.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1187">#1187</a>)</li>
|
||||
<li>bootstrap-vue v2.22.0 -> v2.23.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1188">#1188</a>)</li>
|
||||
<li>pure v3.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1189">#1189</a>)</li>
|
||||
<li>findify-bundle v7.1.62 -> v7.1.63 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1190">#1190</a>)</li>
|
||||
</ul>
|
||||
<p>Mapping</p>
|
||||
<ul>
|
||||
<li>cdnjs.cloudflare.com -> swiper-bundle CSS & JS (<a href="https://codeberg.org/nobody/LocalCDN/issues/1181">#1181</a>)</li>
|
||||
<li>vex-js: vex-theme-wireframe.css -> vex-theme-wireframe.min.css (<a href="https://codeberg.org/nobody/LocalCDN/issues/1183">#1183</a>)</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>Colorbox v1.6.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1181">#1181</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2022-10-18 (v2.6.38)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>axios v1.1.2 -> v1.1.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1172">#1172</a>)</li>
|
||||
<li>socket.io v4.5.2 -> v4.5.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1173">#1173</a>)</li>
|
||||
<li>react-intl v6.2.0 -> v6.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1174">#1174</a>)</li>
|
||||
<li>webrtc-adapter v8.1.2 -> v8.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1175">#1175</a>)</li>
|
||||
</ul>
|
||||
<p>Fixed</p>
|
||||
<ul>
|
||||
<li>twitter-bootstrap v5.2.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1176">#1176</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2022-10-15 (v2.6.37)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>twitter-bootstrap v5.2.1 -> v5.2.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1154">#1154</a>)</li>
|
||||
<li>leaflet v1.9.1 -> v1.9.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1155">#1155</a>)</li>
|
||||
<li>gsap v3.11.2 -> v3.11.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1156">#1156</a>)</li>
|
||||
<li>instantsearch.js v4.46.3 -> v4.48.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1157">#1157</a>)</li>
|
||||
<li>findify-bundle v7.1.59 -> v7.1.62 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1159">#1159</a>)</li>
|
||||
<li>semantic-ui v2.4.1 -> v2.5.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1160">#1160</a>)</li>
|
||||
<li>Swiper v8.4.2 -> v8.4.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1161">#1161</a>)</li>
|
||||
<li>alpinejs v3.10.3 -> v3.10.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1163">#1163</a>)</li>
|
||||
<li>lightgallery v2.6.1 -> v2.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1164">#1164</a>)</li>
|
||||
<li>react-intl v6.1.2 -> v6.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1167">#1167</a>)</li>
|
||||
<li>libphonenumber-js v1.10.13 -> v1.10.14 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1168">#1168</a>)</li>
|
||||
<li>bootswatch v5.2.1 -> v5.2.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1169">#1169</a>)</li>
|
||||
<li>vue v3.2.40 -> v3.2.41 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1170">#1170</a>)</li>
|
||||
<li>vuex v4.0.2 -> v4.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1171">#1171</a>)</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>axios v1.1.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1158">#1158</a>)</li>
|
||||
<li>rangeslider.js v2.3.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1166">#1166</a>)</li>
|
||||
</ul>
|
||||
<p>Mapping</p>
|
||||
<ul>
|
||||
<li>cdn.jsdelivr.net -> materialdesignicons (<a href="https://codeberg.org/nobody/LocalCDN/issues/1165">#1165</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2022-10-01 (v2.6.36)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>leaflet v1.8.0 -> v1.9.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1141">#1141</a>)</li>
|
||||
<li>bootstrap-table v1.21.0 -> v1.21.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1142">#1142</a>)</li>
|
||||
<li>instantsearch.js v4.46.1 -> v4.46.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1143">#1143</a>)</li>
|
||||
<li>findify-bundle v7.1.57 -> v7.1.59 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1144">#1144</a>)</li>
|
||||
<li>react-redux v8.0.2 -> v8.0.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1145">#1145</a>)</li>
|
||||
<li>underscore.js v1.13.4 -> v1.13.6 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1146">#1146</a>)</li>
|
||||
<li>gsap v3.11.1 -> v3.11.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1147">#1147</a>)</li>
|
||||
<li>vue v3.2.39 -> v3.2.40 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1149">#1149</a>)</li>
|
||||
<li>simplebar v5.3.8 -> v5.3.9 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1150">#1150</a>)</li>
|
||||
<li>react-intl v6.1.1 -> v6.1.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1151">#1151</a>)</li>
|
||||
<li>hls.js v1.2.3 -> v1.2.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1152">#1152</a>)</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>videojs-seek-buttons v3.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1140">#1140</a>)</li>
|
||||
<li>Special case latest gsap and cdnjs.cloudflare.com (<a href="https://codeberg.org/nobody/LocalCDN/issues/1148">#1148</a>)</li>
|
||||
</ul>
|
||||
<p>Improved</p>
|
||||
<ul>
|
||||
<li>Consider two-digit weird version numbers (<a href="https://codeberg.org/nobody/LocalCDN/issues/1139">#1139</a>)</li>
|
||||
</ul>
|
||||
<p>Fixed</p>
|
||||
<ul>
|
||||
<li>Call CDNs directly to search something on the website (<a href="https://codeberg.org/nobody/LocalCDN/issues/1137">#1137</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2022-09-18 (v2.6.35)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
<li>materialicons v138 -> v139 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1117">#1117</a>)</li>
|
||||
<li>vue v3.2.37 -> v3.2.39 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1118">#1118</a>)</li>
|
||||
<li>lightgallery v2.5.0 -> v2.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1119">#1119</a>)</li>
|
||||
<li>mdb-ui-kit v5.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1120">#1120</a>)</li>
|
||||
<li>font-awesome v6.1.2 -> v6.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1122">#1122</a>)</li>
|
||||
<li>instantsearch.js v4.44.1 -> v4.46.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1123">#1123</a>)</li>
|
||||
<li>socket.io v4.5.1 -> v4.5.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1124">#1124</a>)</li>
|
||||
<li>gsap v3.11.0 -> v3.11.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1125">#1125</a>)</li>
|
||||
<li>bootstrap-multiselect v1.1.1 -> v1.1.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1126">#1126</a>)</li>
|
||||
<li>react-intl v6.1.0 -> v6.1.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1129">#1129</a>)</li>
|
||||
<li>twitter-bootstrap v5.2.0 -> v5.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1130">#1130</a>)</li>
|
||||
<li>tinymce v6.1.2 -> v6.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1131">#1131</a>)</li>
|
||||
<li>video.js v7.20.2 -> v7.21.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1133">#1133</a>)</li>
|
||||
<li>hls.js v1.2.1 -> v1.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1134">#1134</a>)</li>
|
||||
<li>element-ui v2.15.9 -> v2.15.10 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1135">#1135</a>)</li>
|
||||
<li>Swiper v8.3.2 -> v8.4.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1136">#1136</a>)</li>
|
||||
<li>bootswatch v5.2.0 -> v5.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1138">#1138</a>)</li>
|
||||
</ul>
|
||||
<p>Added</p>
|
||||
<ul>
|
||||
<li>jquery-jcrop v0.9.15 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1127">#1127</a>)</li>
|
||||
<li>jquery-minicolors v2.3.6 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1127">#1127</a>)</li>
|
||||
<li>in-view v0.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1127">#1127</a>)</li>
|
||||
</ul>
|
||||
<p>Improved</p>
|
||||
<ul>
|
||||
<li>Call CDNs directly to search something on the website (<a href="https://codeberg.org/nobody/LocalCDN/issues/1137">#1137</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2022-08-27 (v2.6.34)</p>
|
||||
<p>Fixed</p>
|
||||
<ul>
|
||||
<li>Google Material Icons v138 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1116">#1116</a>)</li>
|
||||
</ul>
|
||||
<p class='release-date'>2022-08-27 (v2.6.33)</p>
|
||||
<p>Updated</p>
|
||||
<ul>
|
||||
|
@ -1121,7 +2005,6 @@
|
|||
<li>Updated: instantsearch.js v4.16.1 -> v4.18.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/330">#330</a>)</li>
|
||||
<li>Updated: lazysizes v5.3.0 -> v5.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/331">#331</a>)</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p class='release-date'>2021-03-15 (v2.6.3)</p>
|
||||
<ul>
|
||||
<li>Fixed: Check status code in HTML filter (<a href="https://codeberg.org/nobody/LocalCDN/issues/277">#277</a>)</li>
|
||||
|
@ -1170,8 +2053,6 @@
|
|||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</p>
|
||||
<p class='release-date'>2021-02-20 (v2.6.2)</p>
|
||||
<ul>
|
||||
<li>Rejected by Mozilla</li>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
* Updates
|
||||
*/
|
||||
|
||||
var updates = {};
|
||||
let updates = {};
|
||||
|
||||
|
||||
/**
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue