first commit

This commit is contained in:
hdvt
2026-03-28 16:48:16 +00:00
commit 0c097ebf97
15478 changed files with 850272 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
[General]
permFixed=true
[Conf]
appLanguage=en_US
appsRouteMode=2
devGatewayEnv=false
routeMode=1
[Servers]
defaultServerIndex=0
serversList="@ByteArray([\n {\n \"containers\": [\n {\n \"container\": \"amnezia-xray\",\n \"xray\": {\n \"last_config\": \"{\\n \\\"log\\\": {\\n \\\"loglevel\\\": \\\"error\\\"\\n },\\n \\\"inbounds\\\": [\\n {\\n \\\"listen\\\": \\\"127.0.0.1\\\",\\n \\\"port\\\": 10808,\\n \\\"protocol\\\": \\\"socks\\\",\\n \\\"settings\\\": {\\n \\\"udp\\\": true\\n }\\n }\\n ],\\n \\\"outbounds\\\": [\\n {\\n \\\"protocol\\\": \\\"vless\\\",\\n \\\"settings\\\": {\\n \\\"vnext\\\": [\\n {\\n \\\"address\\\": \\\"185.103.101.96\\\",\\n \\\"port\\\": 443,\\n \\\"users\\\": [\\n {\\n \\\"id\\\": \\\"cfe3993b-797c-4261-8e2a-cc79197e1103\\\",\\n \\\"flow\\\": \\\"xtls-rprx-vision\\\",\\n \\\"encryption\\\": \\\"none\\\"\\n }\\n ]\\n }\\n ]\\n },\\n \\\"streamSettings\\\": {\\n \\\"network\\\": \\\"tcp\\\",\\n \\\"security\\\": \\\"reality\\\",\\n \\\"realitySettings\\\": {\\n \\\"fingerprint\\\": \\\"chrome\\\",\\n \\\"serverName\\\": \\\"www.googletagmanager.com\\\",\\n \\\"publicKey\\\": \\\"FC6PPUaV-RKzHbAOih8kvbX4To_WGCqM2ix8V1Zjs2Q\\\",\\n \\\"shortId\\\": \\\"5f77af0cb780cd0f\\\",\\n \\\"spiderX\\\": \\\"\\\"\\n }\\n }\\n }\\n ]\\n}\\n\",\n \"port\": \"443\",\n \"subnet_address\": \"10.8.1.0\",\n \"transport_proto\": \"tcp\"\n }\n }\n ],\n \"defaultContainer\": \"amnezia-xray\",\n \"description\": \"penis vpn 1488\",\n \"hostName\": \"185.103.101.96\",\n \"nameOverriddenByUser\": true,\n \"password\": \"s1VGSsH56RP4\",\n \"port\": 22,\n \"userName\": \"root\"\n }\n]\n)"

Binary file not shown.

View File

@@ -0,0 +1,27 @@
// Copyright 2015 The Chromium Authors. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -0,0 +1 @@
[{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJMSUNFTlNFIiwicm9vdF9oYXNoIjoiUGIwc2tBVUxaUzFqWldTQnctV0hIRkltRlhVcExiZDlUcVkwR2ZHSHBWcyJ9LHsicGF0aCI6ImNybC1zZXQiLCJyb290X2hhc2giOiJPdEUyczBnSS1aaWZNUWtlSlNJR0JNQXZPTnI1elN1MFVmZkx5ek5aN0UwIn0seyJwYXRoIjoibWFuaWZlc3QuanNvbiIsInJvb3RfaGFzaCI6Iko0QWQzeHowZWl5TzhsYlpMQkZlam5wbWUyVHZmTlNGc0FtOU5BM09wancifV0sImZvcm1hdCI6InRyZWVoYXNoIiwiaGFzaF9ibG9ja19zaXplIjo0MDk2fV0sIml0ZW1faWQiOiJoZm5rcGltbGhoZ2llYWRkZ2ZlbWpob2ZtZmJsbW5pYiIsIml0ZW1fdmVyc2lvbiI6IjEwNDI3IiwicHJvdG9jb2xfdmVyc2lvbiI6MX0","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"Lrx1rAwxqXEhgREIeLQ-9rxGOGp-3XR8ay347BDo4Fq65s1ZffbtpXiqaGgfOQYorTiMFhSmR6PG6wGEFS9WoW1zf4ZHe47aXVNwDCsO7BRzUIN-B7YPLvFOmCTwDp9d96Aksssbcw_nYqL49wR_TnnLMDNt4kZpJVUYklrPVsRNeLIjITScdH-DPNhr9moULYRbQhiXWr0w_Y-VFFqMdz7so6vml878w5C8kqJAUdmNJzIX4WORJHnTYpGv0_2QSZjGRozBLa_ub8PZwqpW2OMj5YWfijgxm6y6N1PV6uoLMaAnnaJKLUzbjPkeFFCvc7unZ9Vx1-gGq1w1sqxU_Q"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"SkIHkVcZCPxM3bDvtd45dU32_n68pVien7pZRt4Z4OaTdMV30sGwViGXdw98W2As0NqvRb8807O_IAOlI5Hsg8KXMbfOe6mzZTxE4iWMsvrq1ND8DhiTqDi2rkyUVuxnBLWiFaK-hgl9hSXCTZa7qB8vIAFO8AWcQ2HxUd5qdEaHyF-FkfzjbqT8_cFKBjD0w18iJeRabRSdof3wm5krHSexCtd59OaG1Qf0uOEgHq4ztLpk1rnLA0vjQ_JjPTGfee0mbObyJs1DUty3QwrOINFd6RO7xOZQqYh0hipgdbcfBiGVZ4lD3-iZcc-w9cDkvWzILkxlkRvQZO0h0xpVkw"}]}}]

View File

@@ -0,0 +1,5 @@
{
"manifest_version": 2,
"name": "crl-set-14971468799400323577.data",
"version": "10427"
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
[{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJQcmVsb2FkIERhdGEiLCJyb290X2hhc2giOiJoUkNJVFdrQUdmOFlRbm1qVXpIYTVkcmFHN0VXR1pHaUx1YUpkMmtYZXNNIn0seyJwYXRoIjoibWFuaWZlc3QuanNvbiIsInJvb3RfaGFzaCI6IjdBemlvWWNsY1RzOEF0QWk0SW43LXdFZWV2d1d4UkxkOE9zbDFfSm04Q00ifV0sImZvcm1hdCI6InRyZWVoYXNoIiwiaGFzaF9ibG9ja19zaXplIjo0MDk2fV0sIml0ZW1faWQiOiJnZ2trZWhnYm5manBlZ2dmcGxlZWFrcGlkYmtpYmJtbiIsIml0ZW1fdmVyc2lvbiI6IjIwMjYuMy4yMy45MSIsInByb3RvY29sX3ZlcnNpb24iOjF9","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"kRe52g2_e-Qb66lQnM4yS9zzDxWPw_wMQTEwHwrWauAwJ-BBECRZiNsxmaWZbQEj20stclvhy5b7T-8nPHn_7G6ChCm6F_9HlUtJBx9gxSsNMfpsCqd83o94WjJ0q9ziddYkmf-z6JuDSV5TwkIHtUouYnN-NtoukMDYztXd9PNWCJEbrZUXfLN9JDV2mUCCYYImMm5LXSbBJidxn-2TRKq_cu4LppPVDyM76egVQ81XbGhUSJkYeSiDWCLYM8nT0jG9LWsVkAJnnBfTinAp46-LBLdom8BgzO9v0KifFbiE-McFkU4YFcfXJpfjsxngjU8rOwuUTLGu4fN0vLQp3iyOJkILSfT91UhsPeN9fY7rhv62ifcWtdosgQ2bIkf6aeU8JwqKU3YbLXnv_9YskjVBLWJZlNL4T3TdnZn4mwjojYzxqcw-2FRiF31itH4H9xz6BYDahmW7EekHsE4XTULargc90_o0C3419VCkaJHOmzmEB3v5xCZdQg3MgqKKi5q58Lrto4wdqCkKtbHIkh9dz1S9TzeK-toh_cysmmRfnWqEo94mIpIZDJXxAlTgg4MfsJQdX8IKKz1SiOudfSewLOG--j5nEUNS9gDoJ0xdKow7MhqStZryhA1_S2TBkC3mgT8JU_9_qSe3Yrj5p3QOycj7Bqkt4qHt2-K7VG4"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"DhIXhNyxsZ_W7O15pcXkVTgxvA-u6tRYRJUTBO17aq_3CNjLUQsmjFApAlVhL1el7a652WGgzdtfYJGJN0_aFcK8vaGrnvO7KqNl3ADd_knQQZhiLJKkW3sa0LtN80rrku2ja2ADsfOsbbJzRMp0NfJ42cEF6OiAGk7646hSi3lXE4xHzEtPaq00dNdMwjLIEyTR0DLbLdzvt0Jpn9nqL08EDbhtU6pre47mJgQ6ik3jijAi-FmhB0Uv5CGYvupiiy2X9ZX78QWjxvZNPmQw6jhroK49wqfL6_GVCfrOujmB38XRjYBEvqSoDbyBauuHbWhObBAdCYzZp5r4addH4Q"}]}}]

View File

@@ -0,0 +1,6 @@
{
"manifest_version": 2,
"name": "Crowd Deny",
"preload_data_format": 1,
"version": "2026.3.23.91"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
[{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJQcmVsb2FkIERhdGEiLCJyb290X2hhc2giOiIzellJOHRTMDN6cE4zQmJQSERTcHo5RlFWcTdNZkhoXzdiUkZCbm5haWxZIn0seyJwYXRoIjoibWFuaWZlc3QuanNvbiIsInJvb3RfaGFzaCI6ImZQYm51WGtaZUlfZVVHclNsZ3l2aThnVDJoQU1RMGtBaGlXSy1CYW5YTDgifV0sImZvcm1hdCI6InRyZWVoYXNoIiwiaGFzaF9ibG9ja19zaXplIjo0MDk2fV0sIml0ZW1faWQiOiJnZ2trZWhnYm5manBlZ2dmcGxlZWFrcGlkYmtpYmJtbiIsIml0ZW1fdmVyc2lvbiI6IjIwMjYuMy4yNi42MSIsInByb3RvY29sX3ZlcnNpb24iOjF9","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"KllKvy_BPnd2f9KvRS0ycp6YaXZ-keOC_Uo9l9wDJMEvWiqdMioy2BYDnrzfHsH1pAH_6hBE-5S6QhFkK1qy9q9WxKIEQPBe03lUR03PppnEbO04NYy55BjMNTjH2bxOnerd8qDxqyRgSJcWlGvHwIarbQfkm79CKjZFQFor2t6JsBfPtYj0haPGHI4JEplCp2lsR9_F5_rvQBXYzdAH6gtDIgjgB3OG1TQtgQe3YiM8rkppTEAPLSvJBCgbjZ64Opf1Xe7XmCQ2pJBLrvVXDT5tmDf4B87fp_3x2H1GynPOEw9h2elWVESihH455heTCS7v92XrXpK2Pb03xSCGu8E46HsA-Xrvi3ns4MzV5KffxHdEza4dt4l73OblixDBrMH_qHsKqh9Wgh_8fDVDYu8yB-nElr7Rz6jzmNxwRYxr3aeCTDzCtxDg2fSS1_UzXnrrKDY5uGJyuuVdbq8OFM3Jdt04XQc48TB0WHTEhApgWLsprtRq_KOzYsHIhAlb0luHKp5XLj6pVqkgvvA03Ku0aU_-2QXQDoKTCnt9-zPtqQGB77tX-FtM2Zr_PtFPrGM7QqaCLbmtmSdAOAV8fMI0B5v0x0EkVBlkNcwFsONe30Y7qN4zhfbq3Z0tKSvVVDOAAhxPaOsca0cCQl-2Oa74jiWmzEUyU1HfiMEGGRc"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"ABwT-0WKl4QMoXxtq-7Nr9bAErGy3CEw499xluOuqrvYOYlm7STLNruO3vfiGnoZMW78vy8-fxASqEH0ieIlnPoAyKQ3hNgMitxOB9dqubg8vy28imOPS08qVI8H179k6MQEFs_v9N0dOdjRLFu0GfR2Gqjmws88UNw77iixraI5Z7w5eqe36_HJKDrUiDhczzMQvCDge7R9LJmP_VpN_Bbs5AsiBNxXHccMTRn5U0uCvkMxwlK-H9vknc53S92BJUA3juWqJ5mevQfj5PebKeKQf0JG7PisTQGicB-yt3O85cRwi4V6WmMR7pZrv8ogOup5a277s0eCCcWTNTaDHw"}]}}]

View File

@@ -0,0 +1,6 @@
{
"manifest_version": 2,
"name": "Crowd Deny",
"preload_data_format": 1,
"version": "2026.3.26.61"
}

Binary file not shown.

View File

@@ -0,0 +1 @@
MANIFEST-000001

View File

@@ -0,0 +1,3 @@
2026/03/27-15:46:39.938 7457 Reusing MANIFEST /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/AdBlock Custom Resources/MANIFEST-000001
2026/03/27-15:46:39.938 7457 Recovering log #3
2026/03/27-15:46:39.938 7457 Reusing old log /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/AdBlock Custom Resources/000003.log

View File

@@ -0,0 +1,3 @@
2026/03/27-15:19:58.369 3538 Reusing MANIFEST /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/AdBlock Custom Resources/MANIFEST-000001
2026/03/27-15:19:58.369 3538 Recovering log #3
2026/03/27-15:19:58.369 3538 Reusing old log /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/AdBlock Custom Resources/000003.log

View File

@@ -0,0 +1,2 @@
{
}

View File

@@ -0,0 +1 @@
MANIFEST-000001

View File

@@ -0,0 +1,3 @@
2026/03/27-15:46:39.823 746d Reusing MANIFEST /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/BraveWallet/Brave Wallet Storage/MANIFEST-000001
2026/03/27-15:46:39.823 746d Recovering log #3
2026/03/27-15:46:39.823 746d Reusing old log /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/BraveWallet/Brave Wallet Storage/000003.log

View File

@@ -0,0 +1,3 @@
2026/03/27-15:19:58.264 354d Reusing MANIFEST /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/BraveWallet/Brave Wallet Storage/MANIFEST-000001
2026/03/27-15:19:58.264 354d Recovering log #3
2026/03/27-15:19:58.265 354d Reusing old log /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/BraveWallet/Brave Wallet Storage/000003.log

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
MANIFEST-000001

View File

@@ -0,0 +1,3 @@
2026/03/27-15:20:11.065 3538 Reusing MANIFEST /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/Extension Rules/MANIFEST-000001
2026/03/27-15:20:11.065 3538 Recovering log #3
2026/03/27-15:20:11.065 3538 Reusing old log /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/Extension Rules/000003.log

View File

@@ -0,0 +1,2 @@
2026/03/20-21:09:24.847 3749 Creating DB /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/Extension Rules since it was missing.
2026/03/20-21:09:24.851 3749 Reusing MANIFEST /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/Extension Rules/MANIFEST-000001

View File

@@ -0,0 +1 @@
MANIFEST-000001

View File

@@ -0,0 +1,3 @@
2026/03/27-15:20:11.066 3538 Reusing MANIFEST /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/Extension Scripts/MANIFEST-000001
2026/03/27-15:20:11.066 3538 Recovering log #3
2026/03/27-15:20:11.066 3538 Reusing old log /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/Extension Scripts/000003.log

View File

@@ -0,0 +1,2 @@
2026/03/20-21:09:24.852 3749 Creating DB /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/Extension Scripts since it was missing.
2026/03/20-21:09:24.857 3749 Reusing MANIFEST /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/Extension Scripts/MANIFEST-000001

View File

@@ -0,0 +1 @@
MANIFEST-000001

View File

@@ -0,0 +1,3 @@
2026/03/27-15:46:40.092 7455 Reusing MANIFEST /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/Extension State/MANIFEST-000001
2026/03/27-15:46:40.092 7455 Recovering log #3
2026/03/27-15:46:40.092 7455 Reusing old log /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/Extension State/000003.log

View File

@@ -0,0 +1,3 @@
2026/03/27-15:19:58.461 354e Reusing MANIFEST /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/Extension State/MANIFEST-000001
2026/03/27-15:19:58.461 354e Recovering log #3
2026/03/27-15:19:58.461 354e Reusing old log /home/hadvart/.config/BraveSoftware/Brave-Browser/Default/Extension State/000003.log

View File

@@ -0,0 +1,233 @@
{
"about": {
"message": "Über"
},
"add": {
"message": "Hinzufügen"
},
"addHostTo": {
"message": "Host Muster hinzufügen zu..."
},
"all": {
"message": "Alle"
},
"city": {
"message": "Stadt"
},
"color": {
"message": "Farbe"
},
"confirmDeleteBrowserData": {
"message": "Sind Sie sicher, dass Sie Cookies, indexedDB-Speicher und lokalen DOM-Speicher löschen möchten?"
},
"country": {
"message": "Land"
},
"delete": {
"message": "Löschen"
},
"deleteBrowserData": {
"message": "Browserdaten löschen"
},
"deleteConfirm": {
"message": "Sind Sie sicher, dass Sie löschen wollen?"
},
"disable": {
"message": "Deaktivieren"
},
"disabled": {
"message": "Deaktiviert"
},
"documentURL": {
"message": "Dokumenten-URL"
},
"enableSync": {
"message": "Synchronisation einschalten"
},
"enableSyncDescription": {
"message": "Synchronisieren globaler Ausnahmen, Proxys & Muster"
},
"error": {
"message": "Bei dem Vorgang ist ein Fehler aufgetreten"
},
"exclude": {
"message": "Ausschließen"
},
"export": {
"message": "Export"
},
"extensionDescription": {
"message": "Einfach zu bedienendes, fortschrittliches Proxy-Management-Tool für jedermann"
},
"extensionName": {
"message": "FoxyProxy"
},
"extensionNameBasic": {
"message": "FoxyProxy Basic"
},
"fileParseError": {
"message": "Es gab einen Fehler beim Parsen der Datei"
},
"fileReadError": {
"message": "Es gab einen Fehler beim Lesen der Datei"
},
"fileSizeError": {
"message": "Die Dateigröße ist größer als die erlaubten $1kb"
},
"fileTypeError": {
"message": "Nicht unterstütztes Dateiformat"
},
"foxyProxyAccount": {
"message": "FoxyProxy Konto"
},
"fromOlderVersions": {
"message": "Von alten Versionen"
},
"fromURL": {
"message": "Von URL"
},
"getLocation": {
"message": "Standort ermitteln"
},
"globalExclude": {
"message": "Globale Ausnahmen"
},
"globalExcludeDescription": {
"message": "Die hier eingegebenen Muster werden nicht weitergegeben."
},
"help": {
"message": "Hilfe"
},
"hostname": {
"message": "Hostname"
},
"hostnamePortError": {
"message": "Fehlender Hostname - Port"
},
"import": {
"message": "Import"
},
"importAs": {
"message": "Importieren als"
},
"include": {
"message": "Einbeziehen"
},
"incognitoAccess": {
"message": "Proxy-Einstellungen erfordern die Erlaubnis zur Verwendung beim privaten Surfen."
},
"ip": {
"message": "IP"
},
"limitWebRTC": {
"message": "WebRTC einschränken"
},
"location": {
"message": "Ort"
},
"log": {
"message": "Log"
},
"method": {
"message": "Methode"
},
"options": {
"message": "Optionen"
},
"pacUrlError": {
"message": "Fehlende PAC-URL für PAC-Typ"
},
"password": {
"message": "Passwort"
},
"pattern": {
"message": "Muster"
},
"patterns": {
"message": "Muster"
},
"plainHost": {
"message": "Einfacher Host"
},
"port": {
"message": "Port"
},
"proxy": {
"message": "Proxy"
},
"proxyByPatterns": {
"message": "Proxy by Patterns"
},
"proxyDNS": {
"message": "Proxy DNS"
},
"proxyDnsDescription": {
"message": "Verwenden Sie den Proxy-Server, um bestimmte DNS-Anfragen aufzulösen (nur für SOCKS in Firefox)"
},
"proxyDuplicateError": {
"message": "Doppelter Hostname:Port oder PAC URL"
},
"proxyList": {
"message": "Proxy Liste"
},
"proxyPortError": {
"message": "Fehlender Port"
},
"proxyTypeError": {
"message": "Unbekannter Typ"
},
"quickAdd": {
"message": "Schnelles Hinzufügen"
},
"random": {
"message": "Zufällig"
},
"regexError": {
"message": "Fehler beim Erstellen eines regulären Ausdrucks für ein Muster"
},
"resetWebRTC": {
"message": "WebRTC zurücksetzen"
},
"restoreDefaults": {
"message": "Standardeinstellungen wiederherstellen"
},
"restoreDefaultsConfirm": {
"message": "Sind Sie sicher, dass Sie alle Einstellungen auf die Standardwerte zurücksetzen wollen?"
},
"result": {
"message": "Ergebnis"
},
"save": {
"message": "Speichern"
},
"syncError": {
"message": "Synchronisationsfehler"
},
"test": {
"message": "Test"
},
"tester": {
"message": "Tester"
},
"time": {
"message": "Zeit"
},
"title": {
"message": "Titel"
},
"togglePW": {
"message": "Passwortsichtbarkeit umschalten"
},
"type": {
"message": "Typ"
},
"userPassError": {
"message": "Fehlender Benutzername oder Passwort"
},
"username": {
"message": "Benutzername"
},
"wildcard": {
"message": "Wildcard"
}
}

View File

@@ -0,0 +1,368 @@
{
"about": {
"message": "About"
},
"add": {
"message": "Add"
},
"addContainerPrompt": {
"message": "Please enter the Container ID number."
},
"all": {
"message": "All"
},
"altServer": {
"message": "Alt Server"
},
"autoBackup": {
"message": "Auto Backup"
},
"autoBackupDescription": {
"message": "Automatically backup settings to the Downloads folder on save"
},
"back": {
"message": "Back"
},
"bulkEdit": {
"message": "Bulk Edit"
},
"city": {
"message": "City"
},
"closeAll": {
"message": "Close All"
},
"color": {
"message": "Color"
},
"container": {
"message": "Container"
},
"containerDescription": {
"message": "Incognito and Container proxy (Firefox only)"
},
"controlledByOtherExtensions": {
"message": "Settings are controlled by other extensions."
},
"country": {
"message": "Country"
},
"default": {
"message": "Default"
},
"delete": {
"message": "Delete"
},
"deleteBrowsingData": {
"message": "Delete Browsing Data"
},
"deleteBrowsingDataConfirm": {
"message": "Are you sure you want to delete cookies, indexedDB storage, DOM local storage?"
},
"deleteConfirm": {
"message": "Are you sure you want to delete?"
},
"deleteProxy": {
"message": "Delete Proxy"
},
"disable": {
"message": "Disable"
},
"disableNonProxied": {
"message": "Disable Non-Proxied"
},
"documentUrl": {
"message": "Document URL"
},
"duplicate": {
"message": "Duplicate"
},
"enableSync": {
"message": "Enable Sync"
},
"enableSyncDescription": {
"message": "Synchronise global exclude, proxies & patterns"
},
"error": {
"message": "There was an error with the operation"
},
"exclude": {
"message": "Exclude"
},
"excludeHost": {
"message": "Exclude Host"
},
"export": {
"message": "Export"
},
"extensionDescription": {
"message": "Easy to use advanced Proxy Management tool for everyone"
},
"extensionName": {
"message": "FoxyProxy"
},
"extensionNameBasic": {
"message": "FoxyProxy Basic"
},
"fileParseError": {
"message": "There was an error parsing the file"
},
"fileReadError": {
"message": "There was an error with reading the file"
},
"fileTypeError": {
"message": "Unsupported File Format"
},
"getAssociatedDomains": {
"message": "Get Associated Domains"
},
"getLocation": {
"message": "Get Location"
},
"globalExclude": {
"message": "Global Exclude"
},
"globalExcludeDescription": {
"message": "List of hosts that should not be proxied"
},
"help": {
"message": "Help"
},
"hostDotError": {
"message": "'*' in host must be the only character or be followed by '.'"
},
"hostError": {
"message": "'*' in host must be at the start"
},
"hostname": {
"message": "Hostname"
},
"hostnamePortError": {
"message": "Missing Hostname - Port"
},
"import": {
"message": "Import"
},
"importFoxyProxyAccount": {
"message": "Import FoxyProxy Account"
},
"importFromOlderVersions": {
"message": "Import from older versions"
},
"importFromURL": {
"message": "Import from URL"
},
"importProxyList": {
"message": "Import Proxy List"
},
"include": {
"message": "Include"
},
"includeHost": {
"message": "Include Host"
},
"incognito": {
"message": "Incognito"
},
"incognitoAccessError": {
"message": "Firefox requires private browsing permission for proxy settings."
},
"invalidPatternError": {
"message": "Invalid Pattern"
},
"ip": {
"message": "IP"
},
"limitWebRTC": {
"message": "Limit WebRTC"
},
"limitWebRTCDescription": {
"message": "Change WebRTC browser settings"
},
"location": {
"message": "Location"
},
"log": {
"message": "Log"
},
"mainServer": {
"message": "Main Server"
},
"method": {
"message": "Method"
},
"more": {
"message": "More"
},
"movePattern": {
"message": "Move Pattern"
},
"moveProxy": {
"message": "Move Proxy"
},
"notAvailable": {
"message": "Proxy data is not available on Chrome (Firefox Only)"
},
"openAll": {
"message": "Open All"
},
"openLinkTabProxy": {
"message": "Open Link in New Tab Proxy"
},
"options": {
"message": "Options"
},
"password": {
"message": "Password"
},
"pattern": {
"message": "Pattern"
},
"patterns": {
"message": "Patterns"
},
"ping": {
"message": "Ping"
},
"plainHost": {
"message": "Plain Host"
},
"port": {
"message": "Port"
},
"portError": {
"message": "Host must not include a port number"
},
"proxies": {
"message": "Proxies"
},
"proxy": {
"message": "Proxy"
},
"proxyByPatterns": {
"message": "Proxy by Patterns"
},
"proxyByPatternsDescription": {
"message": "Test a URL against active proxy patterns"
},
"proxyDNS": {
"message": "Proxy DNS"
},
"proxyOnly": {
"message": "Proxy Only"
},
"publicInterfaceOnly": {
"message": "Public Interface Only"
},
"publicPrivateInterfaces": {
"message": "Public and Private Interfaces"
},
"quickAdd": {
"message": "Quick Add"
},
"random": {
"message": "Random"
},
"regexError": {
"message": "Error creating RegExp for pattern"
},
"restoreDefaults": {
"message": "Restore Defaults"
},
"restoreDefaultsConfirm": {
"message": "Are you sure you want to restore all settings to Defaults?"
},
"result": {
"message": "Result"
},
"saveOptions": {
"message": "Save"
},
"schemeError": {
"message": "'*' in scheme must be the only character"
},
"server": {
"message": "Server"
},
"setPassword": {
"message": "Set Password"
},
"setPort": {
"message": "Set Port"
},
"setProxy": {
"message": "Set Proxy"
},
"setTabProxy": {
"message": "Set Tab Proxy"
},
"setTitle": {
"message": "Set Title"
},
"setType": {
"message": "Set Type"
},
"setUsername": {
"message": "Set Username"
},
"shortcut": {
"message": "Keyboard Shortcut"
},
"shortcutDescription": {
"message": "Preselect a proxy to associate with a keyboard shortcut action"
},
"storeLocally": {
"message": "Store Locally"
},
"syncError": {
"message": "Sync Error"
},
"tabProxy": {
"message": "Tab Proxy"
},
"test": {
"message": "Test"
},
"tester": {
"message": "Pattern Tester"
},
"testerDescription": {
"message": "Test a pattern against URLs"
},
"theme": {
"message": "Theme"
},
"time": {
"message": "Time"
},
"title": {
"message": "Title"
},
"togglePassword": {
"message": "Toggle Password"
},
"type": {
"message": "Type"
},
"unsetTabProxy": {
"message": "Unset Tab Proxy"
},
"unsupportedSchemeError": {
"message": "Unsupported scheme"
},
"url": {
"message": "URL"
},
"userPassError": {
"message": "Missing Username or Password"
},
"username": {
"message": "Username"
},
"view": {
"message": "View"
},
"wildcard": {
"message": "Wildcard"
}
}

View File

@@ -0,0 +1,398 @@
{
"about": {
"message": "Acerca de"
},
"active": {
"message": "Habilitado"
},
"activeNote": {
"message": "FoxyProxy ignora todo en esta página a menos que se establezca"
},
"add": {
"message": "Añadir"
},
"addBlacklist": {
"message": "Añadir patrones negros para evitar que este proxy sea usado en localhost y direcciones IP de intranet/privadas"
},
"addBlacklistTip": {
"message": "Añadir patrones a la lista negra para localhost, 127.0.0.1, 192.168.*.*, 172.16.*.*, y 10.*.*.*"
},
"addProxy": {
"message": "Añadir Proxy"
},
"addWhitelist": {
"message": "Añadir patrón a la lista blanca para coincidir con todas las URLs"
},
"addWhitelistTip": {
"message": "Añadir patrón a la lista blanca *"
},
"authError": {
"message": "$1 está rechazando las conexiones\nVerifica el nombre de usuario/contraseña del proxy"
},
"back": {
"message": "Volver"
},
"black": {
"message": "Negro"
},
"blackPatterns": {
"message": "Patrones Negros"
},
"cancel": {
"message": "Cancelar"
},
"clear": {
"message": "Limpiar"
},
"clickTest": {
"message": "Pulsa 'Probar' cuando esté listo"
},
"color": {
"message": "Color"
},
"complete": {
"message": "completo"
},
"completeFormat": {
"message": "Con este formato, puedes especificar todos los ajustes del proxy. pero sólo el protocolo y servidor son requeridos."
},
"confirmDelete": {
"message": "¿Seguro que quieres eliminar?"
},
"confirmOverwrite": {
"message": "¿Seguro que quieres sobreescribir los proxies existentes?"
},
"confirmTransferToLocal": {
"message": "¿Te gustaría transferir los ajustes sincronizados a tu perfil local?\nLos Datos Existentes serán fusionados."
},
"confirmTransferToSync": {
"message": "¿Te gustaría transferir los ajustes locales a tu perfil sincronizado?\nLos Datos Existentes serán fusionados."
},
"delete": {
"message": "Eliminar"
},
"deleteAll": {
"message": "Eliminar Todo"
},
"deleteAllmessage": {
"message": "Toda la información fue eliminada"
},
"deleteBrowserData": {
"message": "Eliminar Información del Navegador"
},
"deleteBrowserDataDescription": {
"message": "Caché, cookies, almacenamiento de BD indexada, Almacenamiento local DOM, datos de extensiones, datos del servicio trabajador."
},
"deleteBrowserDataNotDescription": {
"message": "Contraseñas almacenadas, historial de navegación y formularios, historial de descargas, webSQL, y certificados vínculo-servidor."
},
"deleteNot": {
"message": "No Eliminar"
},
"disabled": {
"message": "Deshabilitado"
},
"done": {
"message": "¡Hecho!"
},
"down": {
"message": "mover abajo"
},
"edit": {
"message": "Editar"
},
"editPatterns": {
"message": "Editar Patrones"
},
"editPatternsFor": {
"message": "Editar patrones de $1"
},
"editProxy": {
"message": "Editar Proxy $1"
},
"enterUrl": {
"message": "Ingrese URL para probar"
},
"enterUrlNote": {
"message": "(rutas y parámetros de consultas son ignorados)"
},
"error": {
"message": "Error"
},
"errorEmpty": {
"message": "El campo no puede estar vacío."
},
"errorFetch": {
"message": "Hubo un error en la operación"
},
"errorNoSettings": {
"message": "No se encontraron ajustes. Por favor reinstala FoxyProxy."
},
"errorPattern": {
"message": "Por favor ingresa un patrón"
},
"errorProtocol": {
"message": "El protocolo no coincide."
},
"errorSlash": {
"message": "No pongas diagonales en los comodines de patrones. No puedes coincidir rutas URL debido a restricciones de Firefox."
},
"errorWas": {
"message": "Hubo un error. Por favor intenta nuevamente."
},
"examples": {
"message": "Ejemplos"
},
"export": {
"message": "Exportar Ajustes"
},
"exportPatterns": {
"message": "Exportar Patrones"
},
"extensionDescription": {
"message": "Herramienta Avanzada de Gestión de Proxies fácil de usar para todos"
},
"extensionName": {
"message": "FoxyProxy"
},
"extensionNameBasic": {
"message": "FoxyProxy Básico"
},
"forAll": {
"message": "para todas las URLs"
},
"formats": {
"message": "Formatos"
},
"help": {
"message": "Ayuda"
},
"import": {
"message": "Importar Ajustes"
},
"importBW": {
"message": "Importados $1 patrones blancos y $2 negros."
},
"importEnd": {
"message": "Los ajustes fueron importados exitosamente"
},
"importEndSlash": {
"message": "Importación terminada. Las diagonales en patrones no están soportadas debido a un error de Firefox. Por favor revisa tus patrones y elimina las diagonales si contiene."
},
"importPatterns": {
"message": "Importar Patrones"
},
"importProxyList": {
"message": "Importar Lista de Proxies"
},
"importSucceeded": {
"message": "Leídos y almacenados $1 proxies."
},
"imported": {
"message": "Importado"
},
"importedPattern": {
"message": "Este patrón fue importado desde una versión más vieja de FoxyProxy y modificado durante la importación. Aquí está el patrón original, sin cambios:"
},
"importsSkipped": {
"message": "Omitidas $1 líneas porque no pudieron ser convertidas:\n\n$2"
},
"ip": {
"message": "Dirección IP del Proxy o nombre DNS"
},
"ipPort": {
"message": "ip:puerto"
},
"ipPortUsernamePassword": {
"message": "ip:puerto:nombre de usuario:contraseña"
},
"log": {
"message": "Registros"
},
"logSize": {
"message": "Tamaño del registro"
},
"matchPattern": {
"message": "Coincidir Patrones"
},
"matchedURLs": {
"message": "URLs Que Coincidieron con Patrones"
},
"modeDisabled": {
"message": "Apagar (Usar Ajustes de Firefox)"
},
"modePatterns": {
"message": "Usar Proxies habilitados Por patrones y Órden"
},
"myIP": {
"message": "¿Cuál es mi IP?"
},
"name": {
"message": "nombre"
},
"newBlack": {
"message": "Nuevo Negro"
},
"newWhite": {
"message": "Nuevo Blanco"
},
"noLocal": {
"message": "No usar para localhost y direcciones IP de intranet/privadas"
},
"noMatch": {
"message": "Sin Coincidencias"
},
"noProxies": {
"message": "No tienes ningún ajuste de proxy."
},
"none": {
"message": "Ninguno"
},
"notApplicable": {
"message": "n/a"
},
"off": {
"message": "Apagado"
},
"ok": {
"message": "OK"
},
"on": {
"message": "Endendido"
},
"options": {
"message": "Opciones"
},
"optionsPage": {
"message": "Opciones de FoxyProxy"
},
"overwritProxiesHelp1": {
"message": "marca para eliminar todos los proxies existentes y reemplazarlos con los proxies de esta lista."
},
"overwritProxiesHelp2": {
"message": "Desmarca para añadir los proxies de esta lista a los proxies existentes."
},
"overwriteProxies": {
"message": "Sobreescribir proxies existentes"
},
"password": {
"message": "Contraseña (opcional)"
},
"pasteList": {
"message": "Pega una lista de proxies debajo."
},
"pattern": {
"message": "Patrón"
},
"patternCheatSheet": {
"message": "Hoja de Atajos de Patrones"
},
"patternDetail": {
"message": "Ingrese detalles del patrón."
},
"patternHelp": {
"message": "Ayuda de Patrones"
},
"patternMatch": {
"message": "¡El patrón coincide con la URL!"
},
"patternNotMatch": {
"message": "¡El Patrón no coincide con la URL."
},
"patternNote": {
"message": "(sin rutas, ni parámetros de consulta)"
},
"patternShortcuts": {
"message": "Atajos de patrón"
},
"patternTester": {
"message": "Probador de Patrones"
},
"patterns": {
"message": "Patrones"
},
"patternsChanged": {
"message": "Algunos patrones fueron cambiados porque contenían diagonales. Las diagonales en patrones ya no están soportadas."
},
"port": {
"message": "Puerto"
},
"protocol": {
"message": "Protocolo"
},
"proxyAddress": {
"message": "Dirección del Proxy"
},
"proxyTitle": {
"message": "Título del Proxy"
},
"proxyType": {
"message": "Tipo de Proxy"
},
"refresh": {
"message": "Recargar"
},
"save": {
"message": "Guardar"
},
"saveAdd": {
"message": "Guardar y Añadir otro"
},
"saveEditPattern": {
"message": "Guardar y Editar patrones"
},
"simple": {
"message": "simple"
},
"simpleFormat": {
"message": "la dirección ip/servidor y puerto son requeridos. nombre de usuario:contraseña es opcional."
},
"syncSettings": {
"message": "Sincronizar Ajustes"
},
"syncSettingsHelp": {
"message": "Activa para usar Firefox Sync (los ajustes serán sincronizados en todos tus navegadores Firefox). Apaga para almacenar los ajustes localmente. Ten en cuenta que puedes tener dos diferentes instancias de ajustes, una sincronizada y una local."
},
"test": {
"message": "Probar"
},
"timestamp": {
"message": "Tiempo"
},
"title": {
"message": "Título o Descripción (opcional)"
},
"togglePW": {
"message": "Ver Contraseña"
},
"type": {
"message": "Tipo"
},
"unmatchedURLs": {
"message": "URLs Que No Coincidieron con Patrones"
},
"up": {
"message": "mover arriba"
},
"url": {
"message": "URL"
},
"userPassError": {
"message": "Por favor ingresa Nombre de usuario y Contraseña."
},
"username": {
"message": "Nombre de usuario (opcional)"
},
"welcome": {
"message": "Bienvenido"
},
"white": {
"message": "Blanco"
},
"whiteBlack": {
"message": "Blanco/Negro"
},
"whitePatterns": {
"message": "Patrones Blancos"
}
}

View File

@@ -0,0 +1,239 @@
{
"about": {
"message": "درباره"
},
"add": {
"message": "افزودن"
},
"addHostTo": {
"message": "افزودن الگوی میزبان به ..."
},
"all": {
"message": "همه"
},
"cancel": {
"message": "لغو"
},
"city": {
"message": "شهر"
},
"color": {
"message": "رنگ"
},
"confirmDeleteBrowserData": {
"message": "آیا مطمئنید که می‌خواهید کوکی‌ها، فضای ذخیره‌سازی indexedDB و فضای ذخیره‌سازی محلی DOM را حذف کنید؟"
},
"country": {
"message": "کشور"
},
"delete": {
"message": "حذف"
},
"deleteBrowserData": {
"message": "حذف دادهٔ مرورگر"
},
"deleteConfirm": {
"message": "آیا مطمئنید که می‌خواهید حذفش کنید؟"
},
"disable": {
"message": "از کار انداختن"
},
"documentURL": {
"message": "نشانی مستندات"
},
"domain": {
"message": "دامنه"
},
"enableSync": {
"message": "به کار انداختن همگام‌سازی"
},
"enableSyncDescription": {
"message": "همگام‌سازی استثناهای عمومی، پیشکارها و الگوها"
},
"error": {
"message": "هنگام انجام عملیات خطایی رخ داد"
},
"exclude": {
"message": "بجز"
},
"export": {
"message": "برون‌ریزی"
},
"extensionDescription": {
"message": "ابزاری آسان و پیشرفتهٔ مدیریت پیشکار برای همه"
},
"extensionName": {
"message": "FoxyProxy"
},
"extensionNameBasic": {
"message": "FoxyProxy Basic"
},
"fileParseError": {
"message": "هنگام تجزیهٔ پرونده خطایی رخ داد"
},
"fileReadError": {
"message": "هنگام خواندن پرونده خطایی رخ داد"
},
"fileSizeError": {
"message": "پرونده با اندازهٔ بزرگتر از 1$ کیلوبایت مجاز نیست"
},
"fileTypeError": {
"message": "قالب پرونده پشتیبانی نشده"
},
"foxyProxyAccount": {
"message": "حساب فاکسی پروکسی"
},
"fromOlderVersions": {
"message": "از نگارش‌های قدیمی‌تر"
},
"getLocation": {
"message": "دریافت مکان"
},
"globalExclude": {
"message": "استثناهای عمومی"
},
"globalExcludeDescription": {
"message": "الگوهایی که اینجا وارد می‌کنید، از پیشکار رد نخواهند شد."
},
"globalExcludeError": {
"message": "خطای الگوی استثناهای عمومی"
},
"help": {
"message": "راهنما"
},
"hostname": {
"message": "نام میزبان"
},
"hostnamePortError": {
"message": "نام میزبان یا درگاه مشخص نشده"
},
"import": {
"message": "درون‌ریزی"
},
"importAs": {
"message": "درون‌ریزی به عنوان"
},
"include": {
"message": "شامل"
},
"incognitoAccess": {
"message": "تنظیمات پیشکار به مجوز مرور خصوصی نیاز دارد."
},
"ip": {
"message": "آی‌پی"
},
"limitWebRTC": {
"message": "محدود کردن WebRTC"
},
"location": {
"message": "مکان"
},
"log": {
"message": "گزارشات"
},
"method": {
"message": "شیوه"
},
"ok": {
"message": "قبول"
},
"options": {
"message": "گزینه‌ها"
},
"pacUrlError": {
"message": "نشانی PAC برای گونهٔ PAC مشخص نشده"
},
"password": {
"message": "گذرواژه"
},
"pattern": {
"message": "الگو"
},
"patternError": {
"message": "خطای الگو"
},
"patterns": {
"message": "الگوها"
},
"plainHost": {
"message": "میزبان ساده"
},
"port": {
"message": "درگاه"
},
"proxy": {
"message": "پیشکار"
},
"proxyByPatterns": {
"message": "پیشکار بر اساس الگو‌ها"
},
"proxyDNS": {
"message": "پیشکار ساناد (فقط ساکس۵)"
},
"proxyList": {
"message": "فهرست پیشکار"
},
"proxyPortError": {
"message": "درگاه مشخص نشده"
},
"proxyTypeError": {
"message": "گونهٔ ناشناخته"
},
"quickAdd": {
"message": "افزودن سریع"
},
"random": {
"message": "تصادفی"
},
"regexError": {
"message": "خطا در ایجاد عبارت باقاعده برای الگو"
},
"resetWebRTC": {
"message": "بازنشانی WebRTC"
},
"restoreDefaults": {
"message": "بازگردانی به پیش‌گزیده‌ها"
},
"restoreDefaultsConfirm": {
"message": "آیا مطمئنید که می‌خواهید همه تنظیمات را به حالت پیش‌گزیده بازگردانید؟"
},
"result": {
"message": "نتیجه"
},
"save": {
"message": "ذخیره"
},
"selectCountry": {
"message": "گزینش کشور"
},
"syncError": {
"message": "خطای همگام‌سازی"
},
"test": {
"message": "آزمودن"
},
"tester": {
"message": "آزمایشگر"
},
"time": {
"message": "زمان"
},
"title": {
"message": "عنوان"
},
"togglePW": {
"message": "تغییر حالت گذرواژه"
},
"type": {
"message": "گونه"
},
"userPassError": {
"message": "لطفاً نام کاربری و گذرواژه را تکمیل کنید."
},
"username": {
"message": "نام کاربری"
},
"wildcard": {
"message": "نویسهٔ همگانی"
}
}

View File

@@ -0,0 +1,395 @@
{
"about": {
"message": "A propos"
},
"active": {
"message": "Activer"
},
"activeNote": {
"message": "FoxyProxy ignore tous sur cette page à moins d'être explicitement configuré pour"
},
"add": {
"message": "Ajouter"
},
"addBlacklist": {
"message": "Ajouter des modèles d'exclusions pour empêcher ce proxy d'être utiliser pour localhost et des adresses IP privées ou d'intranet"
},
"addBlacklistTip": {
"message": "Ajouter des modèles d'exclusions pour localhost, 127.0.0.1, 192.168.*.*, 172.16.*.*, & 10.*.*.*"
},
"addProxy": {
"message": "Ajouter un Proxy"
},
"addWhitelist": {
"message": "Ajouter un modèle d'inclusion qui correspond à toutes les urls"
},
"addWhitelistTip": {
"message": "Ajouter un modèle d'inclusion *"
},
"authError": {
"message": "$1 refuse la connection\nVérifiez les identifiants du proxy"
},
"back": {
"message": "Retour"
},
"black": {
"message": "Exclusion"
},
"blackPatterns": {
"message": "Modèle d'exclusion"
},
"cancel": {
"message": "Annuler"
},
"clear": {
"message": "Effacer"
},
"clickTest": {
"message": "Cliquez sur 'Test' lorsque vous êtes prêt"
},
"color": {
"message": "Couleur"
},
"complete": {
"message": "complet"
},
"completeFormat": {
"message": "Dans ce format, vous pouvez spécifier tous les paramètres du proxy. Mais seulement le protocole et le nom du serveur sont requis."
},
"confirmDelete": {
"message": "Etes-vous sûr de vouloir supprimer ?"
},
"confirmOverwrite": {
"message": "Etes-vous sûr de vouloir ecraser les proxys existants ?"
},
"confirmTransferToLocal": {
"message": "Voulez-vous appliquez les paramètres synchronisés au profil local ?\nLes données existantes seront fusionnées."
},
"confirmTransferToSync": {
"message": "Voulez-vous appliquez les paramètres locaux au profil synchronisé ?\nLes données existantes seront fusionnées."
},
"delete": {
"message": "Supprimer"
},
"deleteAll": {
"message": "Tous supprimer"
},
"deleteAllmessage": {
"message": "Toutes les données ont été supprimées"
},
"deleteBrowserData": {
"message": "Supprimer les données du navigateur"
},
"deleteBrowserDataDescription": {
"message": "Cache, cookies, base de donnée indexée, cache local du DOM, données du plugin, données du service."
},
"deleteBrowserDataNotDescription": {
"message": "Mot de passe sauvegardés, historique et formulaire du navigateur, historique de téléchargement, webSQL, et certificats de serveur."
},
"deleteNot": {
"message": "Ne Pas Supprimer"
},
"disabled": {
"message": "Désactiver"
},
"done": {
"message": "Fait !"
},
"down": {
"message": "descendre"
},
"edit": {
"message": "Modifier"
},
"editPatterns": {
"message": "Editer les Modèles"
},
"editPatternsFor": {
"message": "Editer les Modèles de $1"
},
"editProxy": {
"message": "Modifier le Proxy $1"
},
"enterUrl": {
"message": "Entrer l'URL à tester"
},
"enterUrlNote": {
"message": "(les chemins d'URL et les paramètres sont ignorés)"
},
"erroNoSettings": {
"message": "Aucun paramètre n'a été trouvé. Essayez de réinstaller FoxyProxy."
},
"error": {
"message": "Erreur"
},
"errorEmpty": {
"message": "Le champ ne peut pas être vide."
},
"errorFetch": {
"message": "Une erreur est survenue durant l'opération"
},
"errorPattern": {
"message": "Merci d'entrer un modèle"
},
"errorProtocol": {
"message": "Le protocole ne correspond pas."
},
"errorSlash": {
"message": "Pas de barre oblique dans des modèles génériques. Vous ne pouvez pas associer d'URL à cause des restrictions de Firefox."
},
"errorWas": {
"message": "Une erreur est survenue. Merci de réessayer."
},
"examples": {
"message": "Exemples"
},
"export": {
"message": "Exporter les paramètres"
},
"exportPatterns": {
"message": "Exporter les Modèles"
},
"extensionDescription": {
"message": "Gestionnaire de proxy avancé facile d'utilisation"
},
"extensionName": {
"message": "FoxyProxy"
},
"extensionNameBasic": {
"message": "FoxyProxy Basique"
},
"forAll": {
"message": "pour toutes les URLs"
},
"formats": {
"message": "Formats"
},
"help": {
"message": "Aide"
},
"import": {
"message": "Importer les paramètres"
},
"importBW": {
"message": "$1 modèle(s) d'inclusions et $2 modèle(s) d'exclusions ont été importés."
},
"importEnd": {
"message": "Les paramètres ont été correctement importés"
},
"importEndSlash": {
"message": "Import fini. Les barres obliques ne sont plus supportées dans les modèles à cause d'un bug de Firefox. Merci de revoir votre modèle et de supprimer les éventuelles barres obliques."
},
"importPatterns": {
"message": "Importer les Modèles"
},
"importProxyList": {
"message": "Importer la liste des Proxy"
},
"importSucceeded": {
"message": "$1 proxys interprétés et stockés."
},
"imported": {
"message": "Importé"
},
"importedPattern": {
"message": "Ce modèle a été importé à partir d'une ancienne version de FoxyProxy et a été modifié lors de l'import. Voici le modèle original non modifié:"
},
"importsSkipped": {
"message": "$1 lignes ignorées car elles ne pouvaient pas être interprétées:\n\n$2"
},
"ip": {
"message": "Adresse IP du Proxy ou nom du DNS"
},
"ipPort": {
"message": "ip:port"
},
"ipPortUsernamePassword": {
"message": "ip:port:login:mot de passe"
},
"log": {
"message": "Journal"
},
"logSize": {
"message": "Taille du Journal"
},
"matchPattern": {
"message": "Modèle de correspondance"
},
"matchedURLs": {
"message": "URLs qui correspondent aux Modèles"
},
"modeDisabled": {
"message": "Désactiver (Utiliser les paramètres de firefox)"
},
"modePatterns": {
"message": "Utiliser les proxys activés par modèle et ordre"
},
"myIP": {
"message": "Quel est mon IP ?"
},
"name": {
"message": "Nom"
},
"newBlack": {
"message": "Nouveau Modèle d'Exclusion"
},
"newWhite": {
"message": "Nouveau Modèle d'Inclusion"
},
"noLocal": {
"message": "Ne pas utiliser pour localhost et des adresses IP privées ou d'intranet"
},
"noMatch": {
"message": "Pas de Correspondance"
},
"noProxies": {
"message": "Vous n'avez aucun paramètres de proxy."
},
"none": {
"message": "Aucun"
},
"notApplicable": {
"message": "s/o"
},
"off": {
"message": "Desactiver"
},
"ok": {
"message": "Accepter"
},
"on": {
"message": "Activer"
},
"options": {
"message": "Options"
},
"optionsPage": {
"message": "Options FoxyProxy"
},
"overwritProxiesHelp1": {
"message": "Cochez pour supprimer tous les proxys existants et les remplacer par ceux de la liste."
},
"overwritProxiesHelp2": {
"message": "Décocher pour ajouter les proxys de la liste à ceux déjà existant."
},
"overwriteProxies": {
"message": "Ecraser les proxys existants"
},
"password": {
"message": "Mot de passe (optionnel)"
},
"pasteList": {
"message": "Coller une liste de proxy ci-dessous."
},
"pattern": {
"message": "Modèles"
},
"patternCheatSheet": {
"message": "Aide-Mémoire pour les Modèles"
},
"patternDetail": {
"message": "Entrer les informations du modèle."
},
"patternHelp": {
"message": "Aide Modèle"
},
"patternMatch": {
"message": "Ce modèle correspond à l'URL!"
},
"patternNotMatch": {
"message": "Ce modèle ne correspond pas à l'URL."
},
"patternNote": {
"message": "(pas de chemins d'URL, pas de paramètres de requêtes)"
},
"patternShortcuts": {
"message": "Raccourcis de Modèle"
},
"patternTester": {
"message": "Testeur de Modèles"
},
"patternsChanged": {
"message": "Certains modèles ont été changés car ils contenaient des barres obliques. Elles ne sont plus supportées."
},
"port": {
"message": "Port"
},
"protocol": {
"message": "Protocole"
},
"proxyAddress": {
"message": "Adresse du Proxy"
},
"proxyTitle": {
"message": "Nom du Proxy"
},
"proxyType": {
"message": "Type de Proxy"
},
"refresh": {
"message": "Rafraîchir"
},
"save": {
"message": "Sauvegarder"
},
"saveAdd": {
"message": "Sauvegarder et Ajouter un autre"
},
"saveEditPattern": {
"message": "Sauvegarder et Modifier les Modèles"
},
"simple": {
"message": "simple"
},
"simpleFormat": {
"message": "l'adresse ip ou nom du serveur et le port sont requis. login:mot de passe sont optionnels."
},
"syncSettings": {
"message": "Synchroniser les Paramètres"
},
"syncSettingsHelp": {
"message": "Activer pour utiliser Firefox Sync (les paramètres sont synchronisés entre tous vos navigateurs Firefox). Desactiver pour sauvegarder les paramètres localement. A noter que deux profils de paramètres peuvent coexister, un synchronisé et un local"
},
"test": {
"message": "Tester"
},
"timestamp": {
"message": "Date"
},
"title": {
"message": "Nom ou Description (optionnel)"
},
"togglePW": {
"message": "Afficher/Masquer le mot de passe"
},
"type": {
"message": "Type"
},
"unmatchedURLs": {
"message": "URLs qui ne correspondent pas aux Modèles"
},
"up": {
"message": "remonter"
},
"url": {
"message": "URL"
},
"userPassError": {
"message": "Merci d'entrer votre nom d'utilisateur et mot de passe."
},
"username": {
"message": "Nom d'utilisateur (optionnel)"
},
"welcome": {
"message": "Bienvenu"
},
"white": {
"message": "Inclusion"
},
"whiteBlack": {
"message": "Inclusion/Exclusion"
},
"whitePatterns": {
"message": "Modèle d'inclusion"
}
}

View File

@@ -0,0 +1,272 @@
{
"about": {
"message": "About"
},
"add": {
"message": "追加"
},
"all": {
"message": "全て"
},
"autoBackup": {
"message": "自動バックアップ"
},
"autoBackupDescription": {
"message": "保存時に設定をダウンロードフォルダーに自動でバックアップする"
},
"back": {
"message": "戻る"
},
"city": {
"message": "市区町村"
},
"color": {
"message": "色"
},
"container": {
"message": "コンテナー"
},
"containerDescription": {
"message": "Incognito/コンテナープロキシー (Firefox のみ)"
},
"controlledByOtherExtensions": {
"message": "他の拡張機能によって設定が制御されています"
},
"country": {
"message": "国"
},
"default": {
"message": "デフォルト"
},
"delete": {
"message": "削除"
},
"deleteBrowsingData": {
"message": "閲覧データを削除"
},
"deleteBrowsingDataConfirm": {
"message": "本当に Cookie、indexedDB ストレージ、DOM ローカルストレージを削除しますか?"
},
"deleteConfirm": {
"message": "本当に削除しますか?"
},
"disable": {
"message": "無効"
},
"documentUrl": {
"message": "ドキュメント URL"
},
"duplicate": {
"message": "複製"
},
"enableSync": {
"message": "同期を有効化"
},
"enableSyncDescription": {
"message": "グローバル除外、プロキシー、パターンを同期する"
},
"error": {
"message": "操作中にエラーが発生しました"
},
"exclude": {
"message": "除く"
},
"excludeHost": {
"message": "ホストを除外"
},
"export": {
"message": "エクスポート"
},
"extensionDescription": {
"message": "誰でも使いやすい先進的なプロキシー管理ツール"
},
"extensionName": {
"message": "FoxyProxy"
},
"extensionNameBasic": {
"message": "FoxyProxy Basic"
},
"fileParseError": {
"message": "ファイルの解析中にエラーが発生しました"
},
"fileReadError": {
"message": "ファイルの読み取り中にエラーが発生しました"
},
"fileTypeError": {
"message": "サポートされていないファイルフォーマットです"
},
"getLocation": {
"message": "位置情報を取得"
},
"globalExclude": {
"message": "グローバル除外"
},
"globalExcludeDescription": {
"message": "プロキシーを使用しないホストのリスト"
},
"help": {
"message": "ヘルプ"
},
"hostname": {
"message": "ホスト名"
},
"hostnamePortError": {
"message": "ホスト名 - ポートが入力されていません"
},
"import": {
"message": "インポート"
},
"importFoxyProxyAccount": {
"message": "FoxyProxy アカウントからインポート"
},
"importFromOlderVersions": {
"message": "以前のバージョンからインポート"
},
"importFromURL": {
"message": "URL からインポート"
},
"importProxyList": {
"message": "プロキシーリストをインポート"
},
"include": {
"message": "含む"
},
"incognito": {
"message": "Incognito"
},
"incognitoAccessError": {
"message": "Firefox でプロキシーを設定するためにはプライベートブラウジングでの許可設定が必要です"
},
"ip": {
"message": "IP"
},
"limitWebRTC": {
"message": "WebRTC を制限"
},
"limitWebRTCDescription": {
"message": "WebRTC ブラウザー設定を切り替える"
},
"location": {
"message": "位置情報"
},
"log": {
"message": "ログ"
},
"method": {
"message": "メソッド"
},
"more": {
"message": "詳細"
},
"notAvailable": {
"message": "Chrome では利用できません (Firefox のみ)"
},
"options": {
"message": "オプション"
},
"password": {
"message": "パスワード"
},
"pattern": {
"message": "パターン"
},
"patterns": {
"message": "パターン"
},
"plainHost": {
"message": "プレーンホスト"
},
"port": {
"message": "ポート"
},
"proxies": {
"message": "プロキシー"
},
"proxy": {
"message": "プロキシー"
},
"proxyByPatterns": {
"message": "パターンによるプロキシー"
},
"proxyDNS": {
"message": "DNS でプロキシーを使用"
},
"quickAdd": {
"message": "クイック追加"
},
"random": {
"message": "ランダム"
},
"regexError": {
"message": "パターンの正規表現を作成中にエラーが発生しました"
},
"restoreDefaults": {
"message": "規定値を復元"
},
"restoreDefaultsConfirm": {
"message": "本当に全ての設定を規定値に復元しますか?"
},
"result": {
"message": "結果"
},
"saveOptions": {
"message": "保存"
},
"setProxy": {
"message": "プロキシーを設定"
},
"setTabProxy": {
"message": "タブプロキシーを設定"
},
"shortcut": {
"message": "キーボードショートカット"
},
"shortcutDescription": {
"message": "キーボードショートカットアクションに関連付けるプロキシーをあらかじめ選択する"
},
"storeLocally": {
"message": "ローカルに保存"
},
"syncError": {
"message": "同期エラー"
},
"test": {
"message": "テスト"
},
"tester": {
"message": "パターンテスター"
},
"theme": {
"message": "テーマ"
},
"time": {
"message": "時刻"
},
"title": {
"message": "タイトル"
},
"togglePassword": {
"message": "パスワードを切り替え"
},
"type": {
"message": "種類"
},
"unsetTabProxy": {
"message": "タブプロキシーを解除"
},
"url": {
"message": "URL"
},
"userPassError": {
"message": "ユーザー名もしくはパスワードが入力されていません"
},
"username": {
"message": "ユーザー名"
},
"view": {
"message": "閲覧"
},
"wildcard": {
"message": "ワイルドカード"
}
}

View File

@@ -0,0 +1,236 @@
{
"about": {
"message": "O aplikacji"
},
"add": {
"message": "Dodaj"
},
"addHostTo": {
"message": "Dodaj wzorzec hosta do ..."
},
"all": {
"message": "Wszystko"
},
"cancel": {
"message": "Anuluj"
},
"city": {
"message": "Miasto"
},
"color": {
"message": "Kolor"
},
"confirmDeleteBrowserData": {
"message": "Czy na pewno chcesz usunąć ciasteczka, magazyn indexedDB, lokalny magazyn DOM?"
},
"country": {
"message": "Kraj"
},
"delete": {
"message": "Usuń"
},
"deleteBrowserData": {
"message": "Usuń dane przeglądarki"
},
"deleteConfirm": {
"message": "Czy na pewno chcesz usunąć?"
},
"disable": {
"message": "Wyłącz"
},
"documentURL": {
"message": "URL dokumentu"
},
"domain": {
"message": "Domena"
},
"enableSync": {
"message": "Włącz synchronizację"
},
"enableSyncDescription": {
"message": "Synchronizacja globalnych wykluczeń, proxy i wzorców"
},
"error": {
"message": "Wystąpił błąd podczas realizacji zadania."
},
"exclude": {
"message": "Wyklucz"
},
"export": {
"message": "Eksportuj"
},
"extensionDescription": {
"message": "Łatwe w użyciu zaawansowane narzędzie do zarządzania proxy dla każdego"
},
"extensionName": {
"message": "FoxyProxy"
},
"extensionNameBasic": {
"message": "FoxyProxy Basic"
},
"fileParseError": {
"message": "Wystąpił błąd podczas przetwarzania pliku"
},
"fileReadError": {
"message": "Wystąpił błąd w odczycie pliku"
},
"fileSizeError": {
"message": "Rozmiar pliku jest większy niż dozwolony $1kb"
},
"fileTypeError": {
"message": "Nieobsługiwany format pliku"
},
"foxyProxyAccount": {
"message": "Konto FoxyProxy"
},
"fromOlderVersions": {
"message": "Ze starszych wersji"
},
"getLocation": {
"message": "Uzyskaj lokalizację"
},
"globalExclude": {
"message": "Globalne wykluczenia"
},
"globalExcludeDescription": {
"message": "Wzorce wprowadzone tutaj nigdy nie będą pośredniczyć"
},
"globalExcludeError": {
"message": "Błąd globalnego wzorca wykluczeń"
},
"help": {
"message": "Pomoc"
},
"hostname": {
"message": "Nazwa hosta"
},
"hostnamePortError": {
"message": "Brak nazwy hosta - portu"
},
"import": {
"message": "Importuj"
},
"importAs": {
"message": "Zaimportuj jako"
},
"include": {
"message": "Uwzględnij"
},
"incognitoAccess": {
"message": "Ustawienia proxy wymagają zezwolenia do trybu prywatnego."
},
"ip": {
"message": "IP"
},
"limitWebRTC": {
"message": "Ogranicz WebRTC"
},
"location": {
"message": "Lokalizacja"
},
"log": {
"message": "Dziennik"
},
"method": {
"message": "Metoda"
},
"ok": {
"message": "OK"
},
"options": {
"message": "Opcje"
},
"pacUrlError": {
"message": "Brak adresu URl dla typu PAC"
},
"password": {
"message": "Hasło"
},
"pattern": {
"message": "Wzorzec"
},
"patternError": {
"message": "Błąd wzorca"
},
"plainHost": {
"message": "Zwykły host"
},
"port": {
"message": "Port"
},
"proxy": {
"message": "Proxy"
},
"proxyByPatterns": {
"message": "Proxy według wzorców"
},
"proxyDNS": {
"message": "Proxy DNS (tylko SOCKS 5)"
},
"proxyList": {
"message": "Lista Proxy"
},
"proxyPortError": {
"message": "Brak portu"
},
"proxyTypeError": {
"message": "Nieznany typ"
},
"quickAdd": {
"message": "Szybko dodaj"
},
"random": {
"message": "Losowo"
},
"regexError": {
"message": "Błąd tworzenia regexp dla wzorca"
},
"resetWebRTC": {
"message": "Zresetuj WebRTC"
},
"restoreDefaults": {
"message": "Przywróć ustawienia domyślne"
},
"restoreDefaultsConfirm": {
"message": "Czy na pewno chcesz przywrócić wszystkie ustawienia do wartości domyślnych?"
},
"result": {
"message": "Wynik"
},
"save": {
"message": "Zapisz"
},
"selectCountry": {
"message": "Wybierz kraj"
},
"syncError": {
"message": "Błąd synchronizacji"
},
"test": {
"message": "Testuj"
},
"tester": {
"message": "Tester"
},
"time": {
"message": "Czas"
},
"title": {
"message": "Nazwa"
},
"togglePW": {
"message": "Przełącz hasło"
},
"type": {
"message": "Typ"
},
"userPassError": {
"message": "Proszę wpisać nazwę użytkownika oraz hasło."
},
"username": {
"message": "Nazwa użytkownika"
},
"wildcard": {
"message": "Wildcard"
}
}

View File

@@ -0,0 +1,398 @@
{
"about": {
"message": "Sobre"
},
"active": {
"message": "Ativado"
},
"activeNote": {
"message": "FoxyProxy ignora tudo nesta página, a menos que definido como"
},
"add": {
"message": "Adicionar"
},
"addBlacklist": {
"message": "Adicione padrões pretos para evitar que esse proxy seja usado para endereços IP de host local e intranet/privados"
},
"addBlacklistTip": {
"message": "Adicionar padrões de lista negra para localhost, 127.0.0.1, 192.168.*.*, 172.16.*.*, & 10.*.*.*"
},
"addProxy": {
"message": "Adicionar Proxy"
},
"addWhitelist": {
"message": "Adicionar padrão de lista de permissões para corresponder a todos os URLs"
},
"addWhitelistTip": {
"message": "Adicionar padrão de lista de permissões *"
},
"authError": {
"message": "$1 está recusando conexões\nVerifique o nome de usuário/senha do proxy"
},
"back": {
"message": "Voltar"
},
"black": {
"message": "Preto"
},
"blackPatterns": {
"message": "Padrões pretos"
},
"cancel": {
"message": "Cancelar"
},
"clear": {
"message": "Limpar"
},
"clickTest": {
"message": "Clique em 'Testar' quando estiver pronto"
},
"color": {
"message": "Cor"
},
"complete": {
"message": "completo"
},
"completeFormat": {
"message": "Com este formato, você pode especificar todas as configurações de proxy. Mas apenas protocolo e servidor são necessários."
},
"confirmDelete": {
"message": "Tem certeza de que deseja excluir?"
},
"confirmOverwrite": {
"message": "Tem certeza de que deseja substituir os proxies existentes?"
},
"confirmTransferToLocal": {
"message": "Deseja transferir as configurações sincronizadas para seu perfil local?\nOs dados existentes serão mesclados."
},
"confirmTransferToSync": {
"message": "Deseja transferir as configurações locais para seu perfil sincronizado?\nOs dados existentes serão mesclados."
},
"delete": {
"message": "Excluir"
},
"deleteAll": {
"message": "Excluir tudo"
},
"deleteAllmessage": {
"message": "Todos os dados excluídos"
},
"deleteBrowserData": {
"message": "Excluir dados do navegador"
},
"deleteBrowserDataDescription": {
"message": "Cache, cookies, armazenamento indexedDB, armazenamento local DOM, dados de plug-in, dados de service worker."
},
"deleteBrowserDataNotDescription": {
"message": "Senhas armazenadas, histórico de navegação e formulário, histórico de download, webSQL e certificados vinculados ao servidor."
},
"deleteNot": {
"message": "Não apague"
},
"disabled": {
"message": "Desativado"
},
"done": {
"message": "Pronto!"
},
"down": {
"message": "Descer"
},
"edit": {
"message": "Editar"
},
"editPatterns": {
"message": "Editar padrões"
},
"editPatternsFor": {
"message": "Editar padrões de $1"
},
"editProxy": {
"message": "Editar Proxy $1"
},
"enterUrl": {
"message": "Insira o URL para testar"
},
"enterUrlNote": {
"message": "(caminhos e parâmetros de consulta são ignorados)"
},
"erroNoSettings": {
"message": "Nenhuma configuração foi encontrada. Reinstale o FoxyProxy."
},
"error": {
"message": "Falha"
},
"errorEmpty": {
"message": "O campo não pode ficar vazio."
},
"errorFetch": {
"message": "Ocorreu um erro com a operação"
},
"errorPattern": {
"message": "Por favor, insira um padrão"
},
"errorProtocol": {
"message": "O protocolo não corresponde."
},
"errorSlash": {
"message": "Nenhuma barra em padrões curinga. Você não pode corresponder a caminhos de URL devido às restrições do Firefox."
},
"errorWas": {
"message": "Houve um erro. Por favor, tente novamente."
},
"examples": {
"message": "Exemplos"
},
"export": {
"message": "Exportar configurações"
},
"exportPatterns": {
"message": "Exportar padrões"
},
"extensionDescription": {
"message": "Ferramenta avançada de gerenciamento de proxy fácil de usar para todos"
},
"extensionName": {
"message": "FoxyProxy"
},
"extensionNameBasic": {
"message": "FoxyProxy Básico"
},
"forAll": {
"message": "para todos os URLs"
},
"formats": {
"message": "formatos"
},
"help": {
"message": "Ajuda"
},
"import": {
"message": "Configurações de Importação"
},
"importBW": {
"message": "Padrões importados $1 branco e $2 preto."
},
"importEnd": {
"message": "As configurações foram importadas com sucesso"
},
"importEndSlash": {
"message": "Importação concluída. Barras em padrões não são suportadas devido a um bug do Firefox. Revise seus padrões e remova as barras, se houver."
},
"importPatterns": {
"message": "Importar padrões"
},
"importProxyList": {
"message": "Importar lista de proxy"
},
"importSucceeded": {
"message": "Ler e armazenar proxies de $1."
},
"imported": {
"message": "Importado"
},
"importedPattern": {
"message": "Esse padrão foi importado de uma versão mais antiga do FoxyProxy e alterado durante a importação. Aqui está o padrão original, inalterado:"
},
"importsSkipped": {
"message": "$1 linhas ignoradas porque não puderam ser analisadas:\n\n$2"
},
"ip": {
"message": "Endereço IP do proxy ou nome DNS"
},
"ipPort": {
"message": "ip:porta"
},
"ipPortUsernamePassword": {
"message": "ip:porta:usuário:senha"
},
"log": {
"message": "Registro"
},
"logSize": {
"message": "Tamanho do registro"
},
"matchPattern": {
"message": "Padrão de correspondência"
},
"matchedURLs": {
"message": "URLs que correspondem a padrões"
},
"modeDisabled": {
"message": "Desativar (usar configurações do Firefox)"
},
"modePatterns": {
"message": "Use proxies habilitados por padrões em ordem"
},
"myIP": {
"message": "Qual é o meu IP?"
},
"name": {
"message": "Nome"
},
"newBlack": {
"message": "Novo Preto"
},
"newWhite": {
"message": "Novo Branco"
},
"noLocal": {
"message": "Não use para endereços IP de host local e intranet/privados"
},
"noMatch": {
"message": "Sem correspondência"
},
"noProxies": {
"message": "Você não tem nenhuma configuração de proxy."
},
"none": {
"message": "Nenhum"
},
"notApplicable": {
"message": "n/a"
},
"off": {
"message": "Desligar"
},
"ok": {
"message": "OK"
},
"on": {
"message": "Ligar"
},
"options": {
"message": "Opções"
},
"optionsPage": {
"message": "FoxyProxy Opções"
},
"overwritProxiesHelp1": {
"message": "Marque para excluir todos os proxies existentes e substituí-los por proxies desta lista."
},
"overwritProxiesHelp2": {
"message": "Desmarque para anexar proxies nesta lista a proxies existentes."
},
"overwriteProxies": {
"message": "Substituir proxies existentes"
},
"password": {
"message": "Senha (opcional)"
},
"pasteList": {
"message": "Cole uma lista de proxy abaixo."
},
"pattern": {
"message": "Padrões"
},
"patternCheatSheet": {
"message": "Folha de referência de padrão"
},
"patternDetail": {
"message": "Insira os detalhes do padrão."
},
"patternHelp": {
"message": "Ajuda de padrão"
},
"patternMatch": {
"message": "O padrão corresponde ao URL!"
},
"patternNotMatch": {
"message": "O padrão não corresponde ao URL."
},
"patternNote": {
"message": "(sem caminhos, sem parâmetros de consulta)"
},
"patternShortcuts": {
"message": "Atalhos de padrão"
},
"patternTester": {
"message": "Testador de padrões"
},
"patterns": {
"message": "Padrões"
},
"patternsChanged": {
"message": "Alguns padrões foram alterados porque continham barras. Barras em padrões não são mais suportadas."
},
"port": {
"message": "Porta"
},
"protocol": {
"message": "Protocolo"
},
"proxyAddress": {
"message": "Endereço proxy"
},
"proxyTitle": {
"message": "Título do proxy"
},
"proxyType": {
"message": "Tipo da Proxy"
},
"refresh": {
"message": "Atualizar"
},
"save": {
"message": "Salvar"
},
"saveAdd": {
"message": "Salvar & Adicionar outro"
},
"saveEditPattern": {
"message": "Salvar & Editar padrões"
},
"simple": {
"message": "simples"
},
"simpleFormat": {
"message": "Endereço IP/Servidor e Porta são necessários. Nome de Usuário:Senha são Opcionais."
},
"syncSettings": {
"message": "Sincronizar configurações"
},
"syncSettingsHelp": {
"message": "Ative para usar o Firefox Sync (as configurações são sincronizadas em todos os seus navegadores Firefox). Desligue para armazenar as configurações localmente. Observe que você pode ter duas instâncias diferentes de configurações, uma de sincronização e uma local."
},
"test": {
"message": "Testar"
},
"timestamp": {
"message": "Carimbo de data e hora"
},
"title": {
"message": "Título ou Descrição (opcional)"
},
"togglePW": {
"message": "Alternar senha"
},
"type": {
"message": "Tipo"
},
"unmatchedURLs": {
"message": "URLs que não correspondem aos padrões"
},
"up": {
"message": "Subir"
},
"url": {
"message": "URL"
},
"userPassError": {
"message": "Por favor, digite o nome de usuário e a senha."
},
"username": {
"message": "Usuário (opcional)"
},
"welcome": {
"message": "Bem Vindo"
},
"white": {
"message": "Branco"
},
"whiteBlack": {
"message": "Branco/Preto"
},
"whitePatterns": {
"message": "Padrões brancos"
}
}

View File

@@ -0,0 +1,272 @@
{
"about": {
"message": "О программе"
},
"add": {
"message": "Добавить"
},
"all": {
"message": "Все"
},
"autoBackup": {
"message": "Автоматическое резервное копирование"
},
"autoBackupDescription": {
"message": "Автоматическое резервное копирование настроек в папку «Загрузки» при сохранении."
},
"back": {
"message": "Назад"
},
"city": {
"message": "Город"
},
"color": {
"message": "Цвет"
},
"container": {
"message": "Контейнер"
},
"containerDescription": {
"message": "Инкогнито и контейнерный прокси (только для Firefox)"
},
"controlledByOtherExtensions": {
"message": "Настройки контролируются другими расширениями."
},
"country": {
"message": "Страна"
},
"default": {
"message": "Стандартная"
},
"delete": {
"message": "Удалить"
},
"deleteBrowserData": {
"message": "Удалить данные браузера"
},
"deleteBrowsingDataConfirm": {
"message": "Вы уверены, что хотите удалить cookies, хранилище IndexedDB и хранилище DOM?"
},
"deleteConfirm": {
"message": "Действительно хотите удалить?"
},
"disable": {
"message": "Отключить"
},
"documentUrl": {
"message": "Document URL"
},
"duplicate": {
"message": "Дублировать"
},
"enableSync": {
"message": "Включить синхронизацию"
},
"enableSyncDescription": {
"message": "Синхронизировать исключения, список прокси и шаблоны"
},
"error": {
"message": "Ошибка выполнения операции"
},
"exclude": {
"message": "Исключить"
},
"excludeHost": {
"message": "Исключить хост"
},
"export": {
"message": "Экспортировать настройки"
},
"extensionDescription": {
"message": "Простой инструмент управления прокси"
},
"extensionName": {
"message": "FoxyProxy"
},
"extensionNameBasic": {
"message": "FoxyProxy Basic"
},
"fileParseError": {
"message": "Ошибка содержимого файла"
},
"fileReadError": {
"message": "Ошибка чтения файла"
},
"fileTypeError": {
"message": "Неподдерживаемый формат файла"
},
"getLocation": {
"message": "Узнать местонахождение"
},
"globalExclude": {
"message": "Глобальные исключения"
},
"globalExcludeDescription": {
"message": "Список хостов (доменов), которые не следует проксировать"
},
"help": {
"message": "Помощь"
},
"hostname": {
"message": "Прокси IP адрес или имя DNS"
},
"hostnamePortError": {
"message": "Отсутствует имя хоста - Порт"
},
"import": {
"message": "Импортировать настройки"
},
"importFoxyProxyAccount": {
"message": "Импортировать FoxyProxy аккаунт"
},
"importFromOlderVersions": {
"message": "Импортировать из старых версий"
},
"importFromURL": {
"message": "Импортировать из URL"
},
"importProxyList": {
"message": "Импортировать список прокси"
},
"include": {
"message": "Включить"
},
"incognito": {
"message": "Инкогнито"
},
"incognitoAccessError": {
"message": "Firefox требует разрешения на приватный просмотр для настроек прокси."
},
"ip": {
"message": "IP"
},
"limitWebRTC": {
"message": "Ограничить WebRTC"
},
"limitWebRTCDescription": {
"message": "Переключить настройки WebRTC браузера"
},
"location": {
"message": "Расположение"
},
"log": {
"message": "Журнал"
},
"method": {
"message": "Метод"
},
"more": {
"message": "Больше"
},
"notAvailable": {
"message": "Прокси не доступны в Chrome (только в Firefox)"
},
"options": {
"message": "Настройки"
},
"password": {
"message": "Пароль пользователя"
},
"pattern": {
"message": "Шаблон"
},
"patterns": {
"message": "Шаблоны"
},
"plainHost": {
"message": "Обычный хост"
},
"port": {
"message": "Порт"
},
"proxies": {
"message": "Прокси"
},
"proxy": {
"message": "Список прокси"
},
"proxyByPatterns": {
"message": "Прокси из шаблона"
},
"proxyDNS": {
"message": "Прокси DNS"
},
"quickAdd": {
"message": "Быстрое добавление"
},
"random": {
"message": "Случайный"
},
"regexError": {
"message": "Ошибка регулярного выражения для шаблона"
},
"restoreDefaults": {
"message": "Восстановить настройки по умолчанию"
},
"restoreDefaultsConfirm": {
"message": "Вы уверены, что хотите восстановить все настройки по умолчанию?"
},
"result": {
"message": "Результат"
},
"saveOptions": {
"message": "Save"
},
"setProxy": {
"message": "Установить прокси"
},
"setTabProxy": {
"message": "Установить прокси вкладки"
},
"shortcut": {
"message": "Сочетание клавиш"
},
"shortcutDescription": {
"message": "Предварительный выбор прокси для ассоциации с действием сочетания клавиш"
},
"storeLocally": {
"message": "Сохранить локально"
},
"syncError": {
"message": "Ошибка синхронизации"
},
"test": {
"message": "Тест"
},
"tester": {
"message": "Проверить"
},
"theme": {
"message": "Тема"
},
"time": {
"message": "Время"
},
"title": {
"message": "Название"
},
"togglePassword": {
"message": "Переключить видимость"
},
"type": {
"message": "Тип прокси"
},
"unsetTabProxy": {
"message": "Отключить прокси вкладки"
},
"url": {
"message": "URL"
},
"userPassError": {
"message": "Введите имя пользователя и пароль."
},
"username": {
"message": "Имя пользователя"
},
"view": {
"message": "Просмотр"
},
"wildcard": {
"message": "Шаблон хоста"
}
}

View File

@@ -0,0 +1,245 @@
{
"about": {
"message": "Про"
},
"add": {
"message": "Додати"
},
"addHostTo": {
"message": "Додати шаблон хосту до ..."
},
"all": {
"message": "Усі"
},
"cancel": {
"message": "Скасувати"
},
"city": {
"message": "Місто"
},
"color": {
"message": "Колір"
},
"confirmDeleteBrowserData": {
"message": "Ви точно бажаєте видалити файли-куки, сховище індексованої БД, локальне сховище DOM?"
},
"country": {
"message": "Країна"
},
"delete": {
"message": "Видалити"
},
"deleteBrowserData": {
"message": "Видалити дані з браузера"
},
"deleteConfirm": {
"message": "Ви справді хочете це видалити?"
},
"disable": {
"message": "Вимкнути"
},
"documentURL": {
"message": "URL-адреса документу"
},
"domain": {
"message": "Домен"
},
"enableSync": {
"message": "Увімкнути синхронізацію"
},
"enableSyncDescription": {
"message": "Синхронізувати глобальні винятки, проксі-сервери та шаблони"
},
"error": {
"message": "Трапилася помилка із цією дією"
},
"exclude": {
"message": "Виключити"
},
"export": {
"message": "Експортувати"
},
"extensionDescription": {
"message": "Простий у використанні просунутий засіб керування проксі для кожного"
},
"extensionName": {
"message": "FoxyProxy"
},
"extensionNameBasic": {
"message": "FoxyProxy Basic"
},
"fileParseError": {
"message": "Сталася помилка під час розбору вмісту файлу"
},
"fileReadError": {
"message": "Сталася помилка читання файлу"
},
"fileSizeError": {
"message": "Розмір файлу перевищує дозволені $1кб"
},
"fileTypeError": {
"message": "Непідтримуваний формат файлу"
},
"foxyProxyAccount": {
"message": "Обліковий запис FoxyProxy"
},
"fromOlderVersions": {
"message": "Зі старіших версій"
},
"getLocation": {
"message": "З’ясувати місцезнаходження"
},
"globalExclude": {
"message": "Глобальні винятки"
},
"globalExcludeDescription": {
"message": "Вказані тут шаблони ніколи не проксіюватимуться"
},
"globalExcludeError": {
"message": "Помилка в шаблоні-винятку"
},
"help": {
"message": "Допомога"
},
"hostname": {
"message": "Ім’я хоста"
},
"hostnamePortError": {
"message": "Бракує імені хоста чи порта"
},
"import": {
"message": "Імпортувати"
},
"importAs": {
"message": "Імпортувати як"
},
"importURL": {
"message": "Імпортувати за URL-адресою"
},
"include": {
"message": "Включити"
},
"incognitoAccess": {
"message": "Для налаштування проксі-сервера необхідний дозвіл приватного перегляду."
},
"ip": {
"message": "IP"
},
"limitWebRTC": {
"message": "Обмежити WebRTC"
},
"location": {
"message": "Місцезнаходження"
},
"log": {
"message": "Журнал"
},
"method": {
"message": "Метод"
},
"ok": {
"message": "Гаразд"
},
"options": {
"message": "Опції"
},
"pacUrlError": {
"message": "Бракує URL-адреси PAC для типу PAC"
},
"password": {
"message": "Пароль"
},
"pattern": {
"message": "Шаблон"
},
"patternError": {
"message": "Помилка в шаблоні"
},
"patterns": {
"message": "Шаблони"
},
"plainHost": {
"message": "Звичайний хост"
},
"port": {
"message": "Порт"
},
"proxy": {
"message": "Проксі-сервер"
},
"proxyByPatterns": {
"message": "Проксіювання згідно з шаблонами"
},
"proxyDNS": {
"message": "Проксіювати DNS"
},
"proxyDnsDescription": {
"message": "Використовувати цей проксі-сервер, щоб здійснювати певні DNS-запити (лише для SOCKS у Firefox)"
},
"proxyList": {
"message": "Перелік проксі-серверів"
},
"proxyPortError": {
"message": "Бракує порту"
},
"proxyTypeError": {
"message": "Невідомий тип"
},
"quickAdd": {
"message": "Швидке додавання"
},
"random": {
"message": "Випадковий"
},
"regexError": {
"message": "Помилка створення регулярного виразу для шаблону"
},
"resetWebRTC": {
"message": "Скинути WebRTC"
},
"restoreDefaults": {
"message": "Відновити налаштування за замовчуванням"
},
"restoreDefaultsConfirm": {
"message": "Ви точно хочете відновити усі налаштування до їх типових значень?"
},
"result": {
"message": "Результат"
},
"save": {
"message": "Зберегти"
},
"selectCountry": {
"message": "Оберіть країну"
},
"syncError": {
"message": "Помилка синхронізації"
},
"test": {
"message": "Тестувати"
},
"tester": {
"message": "Тестувальник"
},
"time": {
"message": "Час"
},
"title": {
"message": "Заголовок"
},
"togglePW": {
"message": "Показати/сховати пароль"
},
"type": {
"message": "Тип"
},
"userPassError": {
"message": "Будь ласка, введіть і ім’я користувача, і пароль."
},
"username": {
"message": "Ім’я користувача"
},
"wildcard": {
"message": "Шаблон"
}
}

View File

@@ -0,0 +1,347 @@
{
"about": {
"message": "关于"
},
"active": {
"message": "已启用"
},
"activeNote": {
"message": "FoxyProxy 将忽略此页面的所有选项,除非设为"
},
"add": {
"message": "添加"
},
"addBlacklist": {
"message": "添加黑名单模式可以防止代理用在本地主机和内部网/私密 IP 地址上"
},
"addBlacklistTip": {
"message": "把本地主机、127.0.0.1、192.168.*.*、172.16.*.* 和 10.*.*.* 添加到黑名单模式"
},
"addProxy": {
"message": "添加代理"
},
"addWhitelist": {
"message": "添加匹配全部 URLs 的白名单模式"
},
"addWhitelistTip": {
"message": "添加白名单模式 *"
},
"authError": {
"message": "$1 拒绝连接\n请检查代理用户名/密码"
},
"back": {
"message": "返回"
},
"black": {
"message": "黑名单"
},
"blackPatterns": {
"message": "黑名单模式"
},
"cancel": {
"message": "取消"
},
"clear": {
"message": "清除"
},
"clickTest": {
"message": "准备好后点击“测试”"
},
"color": {
"message": "颜色"
},
"confirmDelete": {
"message": "你确定要删除吗?"
},
"confirmTransferToLocal": {
"message": "是否将已同步的设置传输到你的本地配置文件?\n将合并已有的数据。"
},
"confirmTransferToSync": {
"message": "是否将本地设置传输到你的同步配置文件?\n将合并已有的数据。"
},
"delete": {
"message": "删除"
},
"deleteAll": {
"message": "全部删除"
},
"deleteAllmessage": {
"message": "已删除所有数据"
},
"deleteBrowserData": {
"message": "删除浏览器数据"
},
"deleteBrowserDataDescription": {
"message": "缓存、cookies、indexedDB 存储、DOM 本地存储、插件数据、service worker 数据。"
},
"deleteBrowserDataNotDescription": {
"message": "已保存的密码、浏览和表单历史、下载历史、webSQL 和服务器绑定证书。"
},
"deleteNot": {
"message": "不要删除"
},
"disabled": {
"message": "已禁用"
},
"done": {
"message": "完成!"
},
"down": {
"message": "下移"
},
"edit": {
"message": "编辑"
},
"editPatterns": {
"message": "编辑模式"
},
"editPatternsFor": {
"message": "编辑 $1 的模式"
},
"editProxy": {
"message": "编辑代理 $1"
},
"enterUrl": {
"message": "输入要测试的 URL"
},
"enterUrlNote": {
"message": "(已忽略路径和查询参数)"
},
"erroNoSettings": {
"message": "未找到设置。请重新安装 FoxyProxy。"
},
"error": {
"message": "错误"
},
"errorEmpty": {
"message": "字段不能为空。"
},
"errorFetch": {
"message": "操作出现错误"
},
"errorPattern": {
"message": "请输入一项模式"
},
"errorProtocol": {
"message": "协议不匹配。"
},
"errorSlash": {
"message": "通配符模式不能有斜线 /。因为 Firefox 的限制你无法匹配 URL 路径。"
},
"errorWas": {
"message": "存在错误。请重试。"
},
"export": {
"message": "导出"
},
"exportPatterns": {
"message": "导出模式"
},
"extensionDescription": {
"message": "易于使用,适用于任何人的高级代理管理工具"
},
"extensionName": {
"message": "FoxyProxy"
},
"extensionNameBasic": {
"message": "FoxyProxy 基础版"
},
"forAll": {
"message": "对全部 URLs 使用"
},
"help": {
"message": "帮助"
},
"import": {
"message": "导入"
},
"importBW": {
"message": "已导入 $1 项白名单和 $2 项黑名单模式。"
},
"importEnd": {
"message": "设置已成功导入"
},
"importEndSlash": {
"message": "导入已完成。由于 Firefox 缺陷,已不再支持于模式里使用斜线。请复查你的模式并移除所有斜线。"
},
"importPatterns": {
"message": "导入模式"
},
"imported": {
"message": "已导入"
},
"importedPattern": {
"message": "此模式来自自旧版本的 FoxyProxy且在导入过程中更改。下面为未更改的原模式"
},
"ip": {
"message": "代理 IP 地址或 DNS 名称"
},
"log": {
"message": "日志"
},
"logSize": {
"message": "日志大小"
},
"matchPattern": {
"message": "匹配模式"
},
"matchedURLs": {
"message": "与模式匹配的 URLs"
},
"modeDisabled": {
"message": "关闭(使用 Firefox 设置)"
},
"modePatterns": {
"message": "按模式和顺序使用启用的代理"
},
"myIP": {
"message": "查询我的 IP"
},
"name": {
"message": "名称"
},
"newBlack": {
"message": "新增黑名单"
},
"newWhite": {
"message": "新增白名单"
},
"noLocal": {
"message": "不用于本地主机和内部网/私密 IP 地址"
},
"noMatch": {
"message": "无匹配"
},
"noProxies": {
"message": "你没有设置任何代理。"
},
"none": {
"message": "无"
},
"notApplicable": {
"message": "不适用"
},
"off": {
"message": "关闭"
},
"ok": {
"message": "确定"
},
"on": {
"message": "开启"
},
"options": {
"message": "选项"
},
"optionsPage": {
"message": "FoxyProxy 选项"
},
"password": {
"message": "密码(可选)"
},
"pattern": {
"message": "模式"
},
"patternCheatSheet": {
"message": "模式速查表"
},
"patternDetail": {
"message": "输入模式详细信息。"
},
"patternHelp": {
"message": "模式帮助"
},
"patternMatch": {
"message": "模式与 URL 匹配!"
},
"patternNotMatch": {
"message": "模式与 URL 不匹配。"
},
"patternNote": {
"message": "(无路径,无查询参数)"
},
"patternShortcuts": {
"message": "模式快捷选项"
},
"patternTester": {
"message": "模式测试器"
},
"patternsChanged": {
"message": "有些模式已做更改因为它们包含斜线。不再支持于模式里使用斜线。"
},
"port": {
"message": "端口"
},
"protocol": {
"message": "协议"
},
"proxyAddress": {
"message": "代理地址"
},
"proxyTitle": {
"message": "代理标题"
},
"proxyType": {
"message": "代理类型"
},
"refresh": {
"message": "刷新"
},
"save": {
"message": "保存"
},
"saveAdd": {
"message": "保存并添加另一个"
},
"saveEditPattern": {
"message": "保存并编辑模式"
},
"syncSettings": {
"message": "同步设置"
},
"syncSettingsHelp": {
"message": "开启以使用 Firefox 同步(将在你所有的 Firefox 浏览器间同步设置)。关闭则只在本地保存设置。注意你可以有两套不同的设置,一套同步的和一套本地的。"
},
"test": {
"message": "测试"
},
"timestamp": {
"message": "时间戳"
},
"title": {
"message": "标题或描述(可选)"
},
"togglePW": {
"message": "显示密码"
},
"type": {
"message": "类型"
},
"unmatchedURLs": {
"message": "与模式不匹配的 URLs"
},
"up": {
"message": "上移"
},
"url": {
"message": "URL"
},
"userPassError": {
"message": "请输入用户名和密码。"
},
"username": {
"message": "用户名(可选)"
},
"welcome": {
"message": "欢迎"
},
"white": {
"message": "白名单"
},
"whiteBlack": {
"message": "白/黑名单"
},
"whitePatterns": {
"message": "白名单模式"
}
}

View File

@@ -0,0 +1,398 @@
{
"about": {
"message": "關於"
},
"active": {
"message": "已啟用"
},
"activeNote": {
"message": "FoxyProxy 將會略過此頁面上所有設定,除非設定為"
},
"add": {
"message": "新建"
},
"addBlacklist": {
"message": "新增黑名單規則可以防止這個代理伺服器設定被套用於 localhost 或內部 / 私有 IP 位址上。"
},
"addBlacklistTip": {
"message": "將 localhost、127.0.0.1、192.168.*.*、172.16.*.* 和 10.*.*.* 新增至黑名單規則中"
},
"addProxy": {
"message": "新增代理伺服器"
},
"addWhitelist": {
"message": "新增白名單規則以對應到所有網址"
},
"addWhitelistTip": {
"message": "將 * 新增至白名單規則中"
},
"authError": {
"message": "$1 拒絕連線\n請檢查代理伺服器的使用者帳號與密碼是否正確"
},
"back": {
"message": "返回"
},
"black": {
"message": "黑名單"
},
"blackPatterns": {
"message": "黑名單規則"
},
"cancel": {
"message": "取消"
},
"clear": {
"message": "清除"
},
"clickTest": {
"message": "準備就緒後按下「測試」開始進行測試。"
},
"color": {
"message": "顏色"
},
"complete": {
"message": "完整版"
},
"completeFormat": {
"message": "使用這種格式,您可以指定所有代理伺服器設定。其中僅有協定和伺服器為必填。"
},
"confirmDelete": {
"message": "您確定要移除此設定嗎?"
},
"confirmOverwrite": {
"message": "您確定要覆蓋所有已存在的代理伺服器設定嗎?"
},
"confirmTransferToLocal": {
"message": "是否將您的設定同步至本機設定檔中?\n已經存在的資料將會被合併。"
},
"confirmTransferToSync": {
"message": "是否將您的本機設定同步至同步設定檔中?\n已經存在的資料將會被合併。"
},
"delete": {
"message": "移除"
},
"deleteAll": {
"message": "移除全部"
},
"deleteAllmessage": {
"message": "已將所有資料移除"
},
"deleteBrowserData": {
"message": "移除瀏覽器資料"
},
"deleteBrowserDataDescription": {
"message": "快取、Cookies、indexedDB 儲存空間, DOM 本機儲存空間, 擴充套件資料、Service Worker 資料。"
},
"deleteBrowserDataNotDescription": {
"message": "以儲存的密碼、瀏覽與表單歷史紀錄、下載紀錄、WebSQL 和 Server-Bound 認證。"
},
"deleteNot": {
"message": "不要移除"
},
"disabled": {
"message": "已停用"
},
"done": {
"message": "完成!"
},
"down": {
"message": "下移"
},
"edit": {
"message": "編輯"
},
"editPatterns": {
"message": "編輯規則"
},
"editPatternsFor": {
"message": "編輯規則 - $1"
},
"editProxy": {
"message": "編輯代理伺服器 - $1"
},
"enterUrl": {
"message": "請輸入網址以進行測試"
},
"enterUrlNote": {
"message": "(已略過路徑與查詢字串)"
},
"erroNoSettings": {
"message": "找不到設定檔。 請重新安裝 FoxyProxy。"
},
"error": {
"message": "錯誤"
},
"errorEmpty": {
"message": "該欄位不可留空。"
},
"errorFetch": {
"message": "該操作行為發生錯誤。"
},
"errorPattern": {
"message": "請輸入規則"
},
"errorProtocol": {
"message": "協定不對應。"
},
"errorSlash": {
"message": "萬用字元不能包含斜線。 由於 Firefox 的限制,您無法對應到任何的網址或路徑。"
},
"errorWas": {
"message": "發生錯誤。請重試。"
},
"examples": {
"message": "範例"
},
"export": {
"message": "匯出設定"
},
"exportPatterns": {
"message": "匯出規則"
},
"extensionDescription": {
"message": "任誰都能快速上手的進階代理伺服器管理工具"
},
"extensionName": {
"message": "FoxyProxy"
},
"extensionNameBasic": {
"message": "FoxyProxy Basic"
},
"forAll": {
"message": "於所有網址上啟用"
},
"formats": {
"message": "格式"
},
"help": {
"message": "說明"
},
"import": {
"message": "匯入設定"
},
"importBW": {
"message": "已匯入 $1 個白名單與 $2 個黑名單規則。"
},
"importEnd": {
"message": "設定檔匯入成功。"
},
"importEndSlash": {
"message": "匯入完成。 由於 Firefox 的一隻 Bug ,已不支援斜線規則。 請重新檢查您的規則是否仍含有斜線,若有請將之移除。"
},
"importPatterns": {
"message": "匯入規則"
},
"importProxyList": {
"message": "匯入代理伺服器清單"
},
"importSucceeded": {
"message": "讀取並匯入 $1 個代理伺服器設定"
},
"imported": {
"message": "已匯入"
},
"importedPattern": {
"message": "這個規則為舊版匯入的規則,且於匯入期間已被修改。 以下為其原始規則:"
},
"importsSkipped": {
"message": "因為無法解析,已略過 $1 行:\n\n$2"
},
"ip": {
"message": "代理伺服器 IP 位址或 DNS 域名"
},
"ipPort": {
"message": "ip:port"
},
"ipPortUsernamePassword": {
"message": "ip:port:username:password"
},
"log": {
"message": "日誌"
},
"logSize": {
"message": "日誌大小"
},
"matchPattern": {
"message": "對應規則"
},
"matchedURLs": {
"message": "與規則相對應的網址"
},
"modeDisabled": {
"message": "停用 (使用 Firefox 內建設定)"
},
"modePatterns": {
"message": "以設定的規則與順序套用代理伺服器設定"
},
"myIP": {
"message": "我的 IP 為何?"
},
"name": {
"message": "名稱"
},
"newBlack": {
"message": "新增黑名單"
},
"newWhite": {
"message": "新增白名單"
},
"noLocal": {
"message": "請不要使用 localhost 或內部 / 私有 IP 位址"
},
"noMatch": {
"message": "沒有對應結果"
},
"noProxies": {
"message": "您尚未建立任何代理伺服器設定。"
},
"none": {
"message": "無"
},
"notApplicable": {
"message": "不適用"
},
"off": {
"message": "停用"
},
"ok": {
"message": "確定"
},
"on": {
"message": "啟用"
},
"options": {
"message": "選項"
},
"optionsPage": {
"message": "FoxyProxy 選項"
},
"overwritProxiesHelp1": {
"message": "若勾選此選項,則會將所有已存在的代理伺服器先行移除並取代為此清單上的代理伺服器設定。"
},
"overwritProxiesHelp2": {
"message": "若不勾選此選項,則會將此清單內的代理伺服器新增至已經存在的代理伺服器清單之後。"
},
"overwriteProxies": {
"message": "覆蓋已經存在的代理伺服器"
},
"password": {
"message": "密碼(選填)"
},
"pasteList": {
"message": "在下方貼上代理伺服器清單。"
},
"pattern": {
"message": "規則"
},
"patternCheatSheet": {
"message": "規則速查表"
},
"patternDetail": {
"message": "輸入規則詳細資料。"
},
"patternHelp": {
"message": "規則說明"
},
"patternMatch": {
"message": "規則與網址相對應!"
},
"patternNotMatch": {
"message": "規則與網址無法對應。"
},
"patternNote": {
"message": "(不包含路徑及查詢字串)"
},
"patternShortcuts": {
"message": "規則快捷鍵"
},
"patternTester": {
"message": "規則測試器"
},
"patterns": {
"message": "規則"
},
"patternsChanged": {
"message": "部分規則因含有斜線而被變更。 不支援斜線規則。"
},
"port": {
"message": "連接埠"
},
"protocol": {
"message": "協定"
},
"proxyAddress": {
"message": "代理伺服器位址"
},
"proxyTitle": {
"message": "代理伺服器標題"
},
"proxyType": {
"message": "代理伺服器類型"
},
"refresh": {
"message": "重新整理"
},
"save": {
"message": "儲存"
},
"saveAdd": {
"message": "儲存並新建"
},
"saveEditPattern": {
"message": "儲存並編輯規則"
},
"simple": {
"message": "簡易版"
},
"simpleFormat": {
"message": "IP 位址 / 伺服器及連接埠皆為必填。 username:password使用者名稱與密碼為選填。"
},
"syncSettings": {
"message": "同步設定"
},
"syncSettingsHelp": {
"message": "啟用此設定將會使用 Firefox Sync (設定將同步至所有的瀏覽器中)。 停用此設定僅將設定儲存於本機中。 小提醒:您可以儲存兩種設定,一種為本機設定,另一種為同步設定。"
},
"test": {
"message": "測試"
},
"timestamp": {
"message": "時間戳"
},
"title": {
"message": "標題或描述(選填)"
},
"togglePW": {
"message": "顯示或隱藏密碼"
},
"type": {
"message": "類型"
},
"unmatchedURLs": {
"message": "與規則不對應的網址"
},
"up": {
"message": "上移"
},
"url": {
"message": "網址"
},
"userPassError": {
"message": "請輸入使用者名稱和密碼。"
},
"username": {
"message": "使用者名稱(選填)"
},
"welcome": {
"message": "歡迎"
},
"white": {
"message": "白名單"
},
"whiteBlack": {
"message": "白名單 / 黑名單"
},
"whitePatterns": {
"message": "白名單規則"
}
}

View File

@@ -0,0 +1,238 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>About</title>
<link href="iframe.css" rel="stylesheet">
</head>
<body>
<nav>
<a href="#changelog">Changelog</a>
<a href="#credits">Credits</a>
</nav>
<article class="about">
<h2 id="changelog">Changelog</h2>
<dl>
<dt>9.2</dt>
<dd>Fixed an error when saving incomplete proxies (#197)</dd>
<dt>9.1</dt>
<dd>Fixed an error on Firefox for Android (#196)</dd>
<dt>9.0</dt>
<dd>Added "407 Proxy Authentication Required" to the log (#145)</dd>
<dd>Added "Get Associated Domains" feature to Log (#191)</dd>
<dd>Added "Get Associated Domains" option to add patterns</dd>
<dd>Added Bulk Edit user interface feature (#131, #137, #169)</dd>
<dd>Added Context Menu feature</dd>
<dd>Added Ctrl-Click option to Add Pattern (#169)</dd>
<dd>Added Ctrl-Click option to Add Proxy</dd>
<dd>Added extra options to Import FoxyProxy Account</dd>
<dd>Added link to Open Shortcut Settings link (Firefox 137)</dd>
<dd>Added links to Help from Options</dd>
<dd>Added Match Pattern support (#177)</dd>
<dd>Added Open Link in New Tab Proxy feature (#149)</dd>
<dd>Added Ping feature</dd>
<dd>Added Proxy by Pattern tester</dd>
<dd>Added show/hide feature to toolbar popup elements based on Tab URL</dd>
<dd>Added Tab Proxy by patterns feature (Firefox only) (#180)</dd>
<dd>Added Test feature</dd>
<dd>Changed Firefox icons to PNG for compatibility with Chrome</dd>
<dd>Enabled sending username without password for SOCKS (Firefox only)</dd>
<dd>Fixed a Drag and Drop issue (#183)</dd>
<dd>Fixed an issue with resetting containers (from 8.10) (#185)</dd>
<dd>Increased minimum version to Firefox 128 (released 2024-07-09) due to Firefox root certificate expiry on 2025-03-14</dd>
<dd>Removed Chrome v3 to v8 data migration decryption code</dd>
<dd>Removed default network passthrough on Firefox in favour of <code>about:config</code> setting (Firefox 137+) (#178)</dd>
<dd>Renamed "Quick Add" to "Include Host"</dd>
<dd>Repurposed "Exclude Host" to match "Include Host" function</dd>
<dd>Unified Firefox and Chrome "manifest.json"</dd>
<dd>Updated browser badge code to reflect Global Exclude</dd>
<dd>Updated data migration for Match Pattern use (#177)</dd>
<dd>Updated Firefox manifest to MV3</dd>
<dd>Updated Include/Exclude Host to generate Glob patterns</dd>
<dd>Updated Limit WebRTC options (#162)</dd>
<dd>Updated Options page user interface</dd>
<dd>Updated Pattern Tester</dd>
<dd>Updated Tab Proxy for MV3</dd>
<dd>Updated toolbar popup user interface</dd>
<!--
https://blog.mozilla.org/addons/2025/03/10/root-certificate-will-expire-on-14-march-users-need-to-update-firefox-to-prevent-add-on-breakage/
https://blog.mozilla.org/addons/2024/07/10/manifest-v3-updates-landed-in-firefox-128/
minimum version to Firefox 128:
-----
FF109, Ch88: "host_permissions": Property "host_permissions" is unsupported in Manifest Version 2
FF112, Ch92: Added Background script module, removed "content/background.html"
FF115: Deprecate browser_style in MV3 defaults to false
FF115, Ch102: storage.session 10mb (Ch102-Ch114 1mb)
FF121, Ch105: :has()
FF126, Ch108: webRequestAuthProvider
FF117, Ch112 (2023-04-04): CSS nesting ?
-->
<dt>8.10</dt>
<dd>Added console log for Save file errors (#144)</dd>
<dd>Added custom container option (#33, #161)</dd>
<dd>Added direct HTTP authentication (Firefox 125+)</dd>
<dd>Added folder to Auto Backup (#156)</dd>
<dd>Added new options to the proxy types</dd>
<dd>Added QUIC (HTTP) option (Chrome only) (experimental) (#124)</dd>
<dd>Removed a bug that caused Glob wildcard to match domains with subdomains</dd>
<dd>Updated browser detection (firefox-extension/issues/220, #139, #141)</dd>
<dd>Updated default network passthrough on Firefox to include <code>localhost, 127.0.0.1, ::1</code> (firefox-extension/issues/159, #20, #134)</dd>
<dd>Updated managed storage to allow Tab Proxy (#172)</dd>
<dd>Updated Options page user interface</dd>
<dd>Updated Tab Proxy to include new tab (#157)</dd>
<dd>Updated toolbar popup user interface</dd>
<dt>8.9</dt>
<dd>Added "Log" to the toolbar popup buttons (#44)</dd>
<dd>Added limited log display on Chrome (experimental)</dd>
<dd>Added Theme feature (#71, #100)</dd>
<dd>Added toggle more options on toolbar popup (#54)</dd>
<dd>Fixed proxy DNS in "Import Proxy List" (#102) (from 8.7)</dd>
<dd>Fixed settings upgrade (import older) when hostname is missing (#108)</dd>
<dd>Fixed settings upgrade (import older) when username/password is missing (#103)</dd>
<dd>Fixed socks in "Import Proxy List" on some Firefox (#120)</dd>
<dd>Increased log content</dd>
<dd>Removed "Show Pattern Proxy" option and made it default (#57) (from 8.7) (Firefox only)</dd>
<dd>Removed Tab Proxy page-action and set it to the toolbar icon (#114) (Firefox only)</dd>
<dd>Updated add pattern user interface (#105)</dd>
<dd>Updated code to process duplicate hostname:port (#33, #76)</dd>
<dd>Updated options to disable "Store Locally" on Firefox (Chrome only)</dd>
<dd>Updated toolbar popup include/exclude host feature</dd>
<dd>Updated toolbar popup user interface</dd>
<dt>8.8</dt>
<dd>Added Show hidden feature</dd>
<dd>Fixed an issue with sync (#99)</dd>
<dd>Updated code to process duplicate hostname:port (#33, #76)</dd>
<dd>Updated user interface to hide patterns on FoxyProxy Basic</dd>
<dt>8.7</dt>
<dd>Added Auto Backup feature</dd>
<dd>Added FoxyProxy Basic detection (disabled for now)</dd>
<dd>Added Help translation form</dd>
<dd>Added "Show Pattern Proxy" option to show proxies when in "Proxy by Patterns" mode (#57) (Firefox only)</dd>
<dd>Added pattern matching to the Log display (#91)</dd>
<dd>Added proxy title to the toolbar icon mouse-over title display (#74)</dd>
<dd>Changed the global Proxy DNS to per-proxy setting (#75)</dd>
<dd>Fixed Firefox for Android compatibility (#60)</dd>
<dd>Increased the maximum height of the pattern section before scrolling</dd>
<dd>Removed Help document display on install/upgrade (#86)</dd>
<dd>Updated default Firefox proxy resetting (#59)</dd>
<dd>Updated PAC check to allow "file:" (#49)</dd>
<dd>Updated pattern "Add" button text due to localisation issues (#88)</dd>
<dd>Updated schema.json</dd>
<dd>Updated wildcard to regular expression conversion (#72)</dd>
<dt>8.6</dt>
<dd>Fixed an issue with migrating database from older versions (#69)</dd>
<dd>Updated user interface to disable inapplicable options in proxies (#52)</dd>
<dd>Updated wildcard to regular expression conversion (#72)</dd>
<dt>8.5</dt>
<dd>Skipped</dd>
<dt>8.4</dt>
<dd>Added light/dark theme detection for badge background color (#61)</dd>
<dd>Enabled to run with "controlled_by_other_extensions" on Firefox (#68)</dd>
<dd>Removed localhost and local network passthrough in Firefox (#50, #63, #64, #66, #71)</dd>
<dd>Updated Options save process to fill blank proxy header title display (#74)</dd>
<dt>8.3</dt>
<dd>Added enterprise policy and managed storage feature (experimental) (#42)</dd>
<dd>Added PAC "Store Locally" feature (#46) (experimental) (Chrome only)</dd>
<dd>Added PAC view feature</dd>
<dd>Fixed an issue with empty Global Exclude</dd>
<dd>Fixed an issue with upgrade sync data on Firefox (#53)</dd>
<dd>Updated hostname check to allow "file:" for Unix Domain Socket (#47)</dd>
<dd>Updated PAC check to allow "file:" (#49)</dd>
<dd>Updated user interface to disable inapplicable options in proxies</dd>
<dt>8.2</dt>
<dd>Added option to set the country to blank</dd>
<dd>Fixed an issue with upgrade sync data on Chrome (#45)</dd>
<dd>Updated Incognito process on Chrome</dd>
<dt>8.1</dt>
<dd>Added Drag and Drop sorting of proxies (#29)</dd>
<dd>Added duplicate proxy feature</dd>
<dd>Added Incognito/Container proxy (firefox-extension/issues/22, #33)</dd>
<dd>Added Keyboard Shortcut feature (firefox-extension/issues/217)</dd>
<dd>Added pattern import/export</dd>
<dd>Added port search to search filter</dd>
<dd>Added search filter to toolbar popup (#23)</dd>
<dd>Fixed a pattern conversion issue (#28)</dd>
<dd>Fixed an error in Sync (#36)</dd>
<dd>Fixed Tab Proxy icon when reloading a tab (#33)</dd>
<dd>Increased log content</dd>
<dd>Increased log display entries to 200</dd>
<dd>Increased log width to full screen</dd>
<dd>Updated Global Exclude process</dd>
<dt>8.0</dt>
<dd>Added complete Light/Dark Theme</dd>
<dd>Added Exclude host feature</dd>
<dd>Added Firefox on Android support (experimental) (#21)</dd>
<dd>Added Get Location feature</dd>
<dd>Added Global Exclude</dd>
<dd>Added Host Pattern to proxy feature</dd>
<dd>Added Import FoxyProxy Account (Chrome)</dd>
<dd>Added Import From URL</dd>
<dd>Added Limit WebRTC feature (Foxyproxy_Chrome/issues/4)</dd>
<dd>Added live Log (Firefox only)</dd>
<dd>Added Tab Proxy feature (Firefox only)</dd>
<dd>Changed "browsingData" to optional permissions</dd>
<dd>Dropped "browser_style" in preparation for MV3</dd>
<dd>Increased minimum version to Firefox 93 (released 2021-10-05)</dd>
<dd>Unified code for Firefox, Chrome, and other Chromium-based browsers</dd>
<dd>Unified storage to share between Firefox and Chrome</dd>
<dd>Updated code and style for manifest v3 (MV3) compatibility</dd>
<dd>Updated Import Proxy List</dd>
<dd>Updated User Interface</dd>
</dl>
<h2 id="credits">Credits</h2>
<dl>
<dt>Developer</dt>
<dd><a href="https://github.com/erosman" target="_blank">erosman</a></dd>
<dt>Translations</dt>
<dd><a href="https://github.com/foxyproxy/browser-extension" target="_blank">Github Public Repository</a></dd>
<dd>es: <a href="https://github.com/LuisAlfredo92" target="_blank">Luis Alfredo Figueroa Bracamontes</a></dd>
<dd>fa: <a href="https://github.com/axone13" target="_blank">Matin Kargar </a></dd>
<dd>fr: <a href="https://github.com/Hugo-C" target="_blank">Hugo-C</a></dd>
<dd>ja: <a href="https://github.com/yutayamate" target="_blank">Yuta Yamate</a></dd>
<dd>pl: Grzegorz Koryga</dd>
<dd>pt_BR: </dd>
<dd>ru: <a href="https://github.com/sosiska" target="_blank">Kirill Motkov</a>, <a href="https://github.com/krolchonok" target="_blank">krolchonok</a></dd>
<dd>uk: <a href="https://github.com/sponsors/webknjaz" target="_blank">Sviatoslav Sydorenko</a></dd>
<dd>zh_CN: <a href="https://github.com/wsxy162" target="_blank">FeralMeow </a></dd>
<dd>zh_TW: <a href="https://github.com/samuikaze" target="_blank">samuikaze</a></dd>
<dt>Founder</dt>
<dd>
<img class="figure" src="../image/ericjung.png" alt=""><br>
<a href="mailto:eric.jung@getfoxyproxy.org">Eric H. Jung</a><br>
Denver, Colorado, USA<br>
Developer
</dd>
</dl>
<p style="margin-top: 3em;">To support this free software, please please donate (<a href="https://buy.stripe.com/00gcNd1YQ2NQbKM148" target="_blank">Stripe</a>, <a href="https://www.paypal.me/ericjung2/5.99" target="_blank">PayPal</a>) or
<a href="https://getfoxyproxy.org/order/" target="_blank">buy dedicated VPN/Proxy Servers</a> in over 100 countries.<br>
<i>(including such remote places like <a href="https://wikipedia.org/wiki/Réunion" target="_blank">Reunion Island</a>)</i>
</p>
<p style="font: 1.5em cursive;">Thank you for using FoxyProxy!</p>
<img src="../image/logo.svg" style="width: 5em;" alt="">
</article>
</body>
</html>

View File

@@ -0,0 +1,49 @@
// import {Flag} from './flag.js';
import {Location} from './location.js';
export class Action {
// https://github.com/w3c/webextensions/issues/72#issuecomment-1848874359
// 'prefers-color-scheme' detection in Chrome background service worker
static dark = false;
static set(pref) {
// --- set action/browserAction
let title = '';
let text = '';
let color = this.dark ? '#444' : '#fff';
switch (pref.mode) {
case 'disable':
title = browser.i18n.getMessage('disable');
text = '⛔';
break;
case 'direct':
title = 'DIRECT';
text = '⮕';
break;
case 'pattern':
title = browser.i18n.getMessage('proxyByPatterns');
text = '🌐';
break;
default:
const item = pref.data.find(i => pref.mode === (i.type === 'pac' ? i.pac : `${i.hostname}:${i.port}`));
if (item) {
// Chrome 113-114 started having a bug showing unicode flags
// const flag = Flag.get(item.cc);
// const host = flag + ' ' + [item.hostname, item.port].filter(Boolean).join(':');
const host = [item.hostname, item.port].filter(Boolean).join(':');
title = [item.title, host, item.city, Location.get(item.cc)].filter(Boolean).join('\n');
// text = item.cc ? flag : item.hostname;
text = item.title || item.hostname;
color = item.color;
}
}
browser.action.setBadgeBackgroundColor({color});
browser.action.setTitle({title});
browser.action.setBadgeText({text});
}
}

View File

@@ -0,0 +1,88 @@
// ---------- Polyfill (Side Effect) -----------------------
// Promise based 'browser' namespace is used to avoid conflict
// Firefox 'chrome' API: MV2 callback | MV3 promise
// Firefox/Edge: browser namespace | Chrome/Opera: chrome namespace
globalThis.browser ??= chrome;
// ---------- Default Preferences --------------------------
export const pref = {
mode: 'disable',
sync: false,
autoBackup: false,
passthrough: '',
theme: '',
container: {},
commands: {},
data: []
};
// ---------- /Default Preferences -------------------------
// ---------- App ------------------------------------------
export class App {
// https://github.com/foxyproxy/firefox-extension/issues/220
// navigator.userAgent identification fails in custom userAgent and browser forks
// Chrome does not support runtime.getBrowserInfo()
// getURL: moz-extension: | chrome-extension: | safari-web-extension:
static firefox = browser.runtime.getURL('').startsWith('moz-extension:');
static basic = browser.runtime.getManifest().name === browser.i18n.getMessage('extensionNameBasic');
static android = navigator.userAgent.includes('Android');
// ---------- User Preferences ---------------------------
// not syncing mode & sync (to have a choice), data (will be broken into parts)
static syncProperties = Object.keys(pref).filter(i => !['mode', 'sync', 'data'].includes(i));
static defaultPref = JSON.stringify(pref);
static getDefaultPref() {
return JSON.parse(this.defaultPref);
}
static getPref() {
// update pref with the saved version
return browser.storage.local.get().then(result => {
Object.keys(result).forEach(i => pref[i] = result[i]);
});
}
// ---------- Helper functions ---------------------------
// https://bugs.chromium.org/p/chromium/issues/detail?id=478654
// Add support for SVG images in Web Notifications API -> CH107
// https://bugs.chromium.org/p/chromium/issues/detail?id=1353252
// svg broken from bg service worker
static notify(message, title = browser.i18n.getMessage('extensionName'), id = '') {
browser.notifications.create(id, {
type: 'basic',
iconUrl: '/image/icon48.png',
title,
message
});
}
static equal(a, b) {
return JSON.stringify(a) === JSON.stringify(b);
}
static parseURL(url) {
// rebuild file://
url.startsWith('file://') && (url = 'http' + url.substring(4));
try { url = new URL(url); }
catch (error) {
alert(`${url}${error.message}`);
return {};
}
// check protocol
if (!['http:', 'https:', 'file:'].includes(url.protocol)) {
alert(`${url} ➜ Unsupported Protocol ${url.protocol}`);
return {};
}
return url;
}
static allowedTabProxy(url) {
return /^https?:\/\/.+|^about:(blank|newtab)$/.test(url);
}
}

View File

@@ -0,0 +1,51 @@
// webRequest.onAuthRequired: Firefox HTTP/HTTPS/WS/WSS | Chrome: HTTP/HTTPS
// 'webRequestAuthProvider' permission Chrome 108, Firefox 126
export class Authentication {
static {
this.data = {};
// prevent bad authentication loop
this.pending = {};
// webRequest.onAuthRequired is only called for HTTP and HTTPS/TLS proxy servers
const urls = ['<all_urls>'];
browser.webRequest.onAuthRequired.addListener(e => this.process(e), {urls}, ['blocking']);
browser.webRequest.onCompleted.addListener(e => this.clearPending(e), {urls});
browser.webRequest.onErrorOccurred.addListener(e => this.clearPending(e), {urls});
}
static init(data) {
// reset data
this.data = {};
data.forEach(i => {
const {hostname, port, username, password} = i;
hostname && port && username && password &&
(this.data[`${hostname}:${port}`] = {username, password});
});
}
static process(e) {
// true for Proxy-Authenticate, false for WWW-Authenticate
if (!e.isProxy) { return; }
// sending message to log.js
browser.runtime.sendMessage({id: 'onAuthRequired', e});
// already sent once and pending
if (this.pending[e.requestId]) {
return {cancel: true};
}
const {host, port} = e.challenger;
const authCredentials = this.data[`${host}:${port}`];
if (authCredentials) {
// prevent bad authentication loop
this.pending[e.requestId] = 1;
return {authCredentials};
}
}
static clearPending(e) {
delete this.pending[e.requestId];
}
}

View File

@@ -0,0 +1,35 @@
import {Sync} from "./sync.js";
import {Migrate} from './migrate.js';
import {Proxy} from './proxy.js';
import './commands.js';
// ---------- Process Preferences --------------------------
class ProcessPref {
static {
this.init();
}
static async init() {
const pref = await browser.storage.local.get();
// storage sync -> local update
await Sync.get(pref);
// migrate after storage sync check
await Migrate.init(pref);
// set proxy
Proxy.set(pref);
// add listener after migrate
Sync.init(pref);
}
}
// ---------- /Process Preferences -------------------------
// ---------- Initialisation -------------------------------
// browser.runtime.onInstalled.addListener(e => {
// // show help
// ['install', 'update'].includes(e.reason) && browser.tabs.create({url: '/content/help.html'});
// });

View File

@@ -0,0 +1,35 @@
import {App} from './app.js';
// ---------- browsingData (Side Effect) -------------------
class BrowsingData {
static {
document.querySelector('#deleteBrowsingData').addEventListener('click', () => this.process());
this.init();
}
static async init() {
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/permissions/request
// Any permissions granted are retained by the extension, even over upgrade and disable/enable cycling.
// check if permission is granted
this.permission = await browser.permissions.contains({permissions: ['browsingData']});
}
static async process() {
if (!this.permission) {
// request permission
// Chrome appears to return true, granted silently without a popup prompt
this.permission = await browser.permissions.request({permissions: ['browsingData']});
if (!this.permission) { return; }
}
if (!confirm(browser.i18n.getMessage('deleteBrowsingDataConfirm'))) { return; }
browser.browsingData.remove({}, {
cookies: true,
indexedDB: true,
localStorage: true
})
.catch(error => App.notify(browser.i18n.getMessage('deleteBrowsingData') + '\n\n' + error.message));
}
}

View File

@@ -0,0 +1,218 @@
// ---------- Bulk Edit (Side Effect) ----------------------
class BulkEdit {
static {
const div = document.querySelector('.bulk-edit');
[this.t1, this.t2, this.s1, this.s2, this.select] = div.children;
this.t1.addEventListener('change', () => this.toggleProxy('t1'));
this.s1.addEventListener('change', () => this.toggleProxy('s1'));
this.t2.addEventListener('change', () => this.togglePattern());
this.select.addEventListener('change', () => this.process());
}
static toggleProxy(i) {
// remove previous selection
document.querySelector(`details.proxy.${i}`)?.classList.remove(i);
const n = this.getNumber(i);
if (!n) { return; }
document.querySelector(`details.proxy:nth-of-type(${n})`)?.classList.add(i);
// reselect t2
this.togglePattern();
}
static togglePattern() {
// remove previous selection
const prev = document.querySelector('.pattern-row.t2');
if (prev) {
prev.classList.remove('t2');
prev.closest('details').open = false;
}
const n = this.getNumber('t2');
if (!n) { return; }
const t = this.getNumber('t1') || this.getNumber('s1');
if (!t) { return; }
const elem = document.querySelector(`details.proxy:nth-of-type(${t}) .pattern-row:nth-of-type(${n})`);
if (elem) {
elem.classList.add('t2');
elem.closest('details').open = true;
}
}
static process() {
if (!this.select.value) { return; }
const id = this.select.value;
switch (id) {
case 'openAll':
case 'closeAll':
this.getProxies().forEach(i => i.open = id === 'openAll');
break;
case 'setType':
case 'setPort':
case 'setTitle':
case 'setUsername':
case 'setPassword':
let s2 = this.s2.value.trim();
if (!s2) { break; }
const ref = id.substring(3).toLowerCase();
if (ref === 'type') {
s2 = s2.toLowerCase();
if (!['http', 'https', 'socks4', 'socks5', 'quic', 'pac', 'direct'].includes(s2)) { break; }
}
document.querySelectorAll(`[data-id="${ref}"]`).forEach(i =>
s2.startsWith('+') ? i.value += s2.substring(1) : i.value = s2);
break;
case 'deleteProxy':
this.deleteProxy();
this.reset();
break;
case 'moveProxy':
this.moveProxy();
this.reset();
break;
case 'movePattern':
this.movePattern();
this.reset();
break;
}
// --- reset
this.select.selectedIndex = 0;
}
static reset() {
document.querySelectorAll('details.proxy:is(.t1, .s1), .pattern-row.t2').forEach(i =>
i.classList.remove('t1', 't2', 's1'));
// ['t1', 't2', 's1'].forEach(i => this[i].value = '');
}
static getProxies() {
return document.querySelectorAll('details.proxy');
}
static getNumber(i) {
return this[i].checkValidity() && this[i].value ? this[i].value : null;
}
static getSourceNumbers() {
const n = this.s2.value.match(/\d+-\d+|\d+/g);
if (!n) { return; }
let arr = [];
n.forEach(i => {
// check if number range e.g. 5-8
const [a, b] = i.split('-');
b ? arr.push(...Array.from({length: b - a + 1}, (_, i) => (a * 1) + i)) : arr.push(a);
});
// map to index (-1), sort, remove duplicates
arr = [...new Set(arr.map(i => i - 1).sort((a, b) => a - b))];
return arr.length ? arr : null;
}
static deleteProxy() {
const n = this.getSourceNumbers();
if (!n) { return; }
const p = this.getProxies();
n.forEach(i => p[i]?.remove());
}
static moveProxy() {
let n = this.getSourceNumbers();
if (!n) { return; }
const t1 = this.t1.value - 1;
const p = this.getProxies();
// filter target, map to elements, filter non-existing
n = n.filter(i => i !== t1).map(i => p[i]).filter(Boolean);
if (!n[0]) { return; }
// before target or after all
p[t1] ? p[t1].before(...n) : p[0].parentElement.append(...n);
}
static movePattern() {
const t1 = this.t1.value - 1;
const s1 = this.s1.value - 1;
switch (true) {
// move withing the same proxy
case t1 === -1 || t1 === s1:
s1 !== -1 && this.movePatternWithin(s1);
break;
// move all patterns to target
case s1 === -1:
this.movePatternAll(t1);
break;
// move source patterns to target
default:
this.movePatternSome(t1, s1);
}
}
static movePatternWithin(s1) {
let n = this.getSourceNumbers();
if (!n) { return; }
const p = this.getProxies();
if (!p[s1]) { return; }
const t2 = this.t2.value - 1;
// filter target, map to elements, filter non-existing
const pat = p[s1].querySelectorAll('.pattern-row');
n = n.filter(i => i !== t2).map(i => pat[i]).filter(Boolean);
if (!n[0]) { return; }
pat[t2] ? pat[t2].before(...n) : pat[0].parentElement.append(...n);
}
static movePatternAll(t1) {
const n = this.getSourceNumbers();
if (!n) { return; }
const p = this.getProxies();
if (!p[t1]) { return; }
// filter target, map to elements
const pat = [];
n.filter(i => i !== t1).forEach(i => p[i] && pat.push(...p[i].querySelectorAll('.pattern-row')));
const target = p[t1].querySelector('.pattern-box');
const row = target.children?.[this.t2.value - 1];
row ? row.before(...pat) : target.append(...pat);
}
static movePatternSome(t1, s1) {
let n = this.getSourceNumbers();
if (!n) { return; }
const p = this.getProxies();
if (!p[t1] || !p[s1]) { return; }
// map to elements, filter non-existing
const pat = p[s1].querySelectorAll('.pattern-row');
n = n.map(i => pat[i]).filter(Boolean);
if (!n[0]) { return; }
const target = p[t1].querySelector('.pattern-box');
const row = target.children?.[this.t2.value - 1];
row ? row.before(...n) : target.append(...n);
}
}

View File

@@ -0,0 +1,21 @@
export class Color {
static getRandom() {
return this.colors[Math.floor(Math.random() * this.colors.length)];
}
static colors = [
'#faebd7', '#00ffff', '#7fffd4', '#f5f5dc', '#ffe4c4', '#ffebcd', '#0000ff', '#8a2be2', '#a52a2a', '#deb887',
'#5f9ea0', '#7fff00', '#d2691e', '#ff7f50', '#6495ed', '#fff8dc', '#dc143c', '#00008b', '#008b8b', '#b8860b',
'#a9a9a9', '#006400', '#bdb76b', '#8b008b', '#556b2f', '#ff8c00', '#9932cc', '#8b0000', '#e9967a', '#8fbc8f',
'#483d8b', '#2f4f4f', '#00ced1', '#9400d3', '#ff1493', '#00bfff', '#696969', '#1e90ff', '#b22222', '#228b22',
'#ff00ff', '#ffd700', '#daa520', '#808080', '#008000', '#adff2f', '#ff69b4', '#cd5c5c', '#4b0082', '#f0e68c',
'#7cfc00', '#fffacd', '#add8e6', '#f08080', '#e0ffff', '#fafad2', '#d3d3d3', '#90ee90', '#ffb6c1', '#ffa07a',
'#20b2aa', '#87cefa', '#778899', '#b0c4de', '#00ff00', '#32cd32', '#800000', '#66cdaa', '#0000cd', '#ba55d3',
'#9370db', '#3cb371', '#7b68ee', '#00fa9a', '#48d1cc', '#c71585', '#191970', '#ffe4e1', '#ffe4b5', '#ffdead',
'#000080', '#fdf5e6', '#808000', '#6b8e23', '#ffa500', '#ff4500', '#da70d6', '#eee8aa', '#98fb98', '#afeeee',
'#db7093', '#ffefd5', '#ffdab9', '#cd853f', '#ffc0cb', '#dda0dd', '#b0e0e6', '#800080', '#ff0000', '#bc8f8f',
'#4169e1', '#8b4513', '#fa8072', '#f4a460', '#2e8b57', '#fff5ee', '#a0522d', '#87ceeb', '#6a5acd', '#708090',
'#00ff7f', '#4682b4', '#d2b48c', '#008080', '#d8bfd8', '#ff6347', '#40e0d0', '#ee82ee', '#f5deb3', '#ffff00',
'#9acd32'];
}

View File

@@ -0,0 +1,77 @@
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/commands/onCommand
// https://developer.chrome.com/docs/extensions/reference/commands/#event-onCommand
// Chrome commands returns command, tab
// https://bugzilla.mozilla.org/show_bug.cgi?id=1843866
// Add tab parameter to commands.onCommand (fixed in Firefox 126)
import {App} from './app.js';
import {Proxy} from './proxy.js';
import {OnRequest} from './on-request.js';
// ---------- Commands (Side Effect) ------------------------
class Commands {
static {
// commands is not supported on Android
browser.commands?.onCommand.addListener((...e) => this.process(...e));
}
static async process(name, tab) {
// firefox only Tab Proxy
const tabProxy = ['setTabProxy', 'unsetTabProxy'].includes(name);
if (!App.firefox && tabProxy) { return; }
const pref = await browser.storage.local.get();
// only Tab Proxy allowed for storage.managed
if (pref.managed && !tabProxy) { return; }
const host = pref.commands[name];
let proxy;
switch (name) {
case 'proxyByPatterns':
this.set(pref, 'pattern');
break;
case 'disable':
this.set(pref, 'disable');
break;
case 'setProxy':
host && this.set(pref, host);
break;
case 'includeHost':
case 'excludeHost':
if (!host) { break; }
proxy = this.findProxy(pref, host);
proxy && Proxy.includeHost(pref, proxy, tab, name);
break;
case 'setTabProxy':
if (!host) { break; }
proxy = this.findProxy(pref, host);
proxy && OnRequest.setTabProxy(tab, proxy);
break;
case 'unsetTabProxy':
OnRequest.setTabProxy(tab);
break;
}
}
static findProxy(pref, host) {
return host && pref.data.find(i => i.active && host === `${i.hostname}:${i.port}`);
}
static set(pref, mode) {
pref.mode = mode;
// save mode
browser.storage.local.set({mode});
// set proxy without menus update
Proxy.set(pref, true);
}
}

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