Compare commits

...

5 Commits

Author SHA1 Message Date
proxy.zeroomega
07c950c3f9 3.3.19 2025-01-13 09:28:32 +08:00
proxy.zeroomega
ccf1224eb1 i18n 2025-01-13 09:26:36 +08:00
proxy.zeroomega
ae7c07cb4c add PAC Profiles support on Firefox PC #74 2025-01-13 09:15:16 +08:00
proxy.zeroomega
0fd0a945b2 Condition type - show help not showing help #76 2025-01-13 09:02:05 +08:00
proxy.zeroomega
1b2d20b4cb Add right click options button (Firefox) #77 2025-01-13 08:59:52 +08:00
17 changed files with 367 additions and 149 deletions

View File

@ -15,10 +15,10 @@ msgstr ""
"X-Generator: Weblate 4.2-dev\n"
msgid "appNameShort"
msgstr "SwitchyOmega"
msgstr "ZeroOmega"
msgid "manifest_app_name"
msgstr "Proxy přepínač SwitchyOmega"
msgstr "Proxy přepínač ZeroOmega"
msgid "manifest_app_description"
msgstr "Správa a přepínání mezi více proxy servery ."
@ -217,7 +217,7 @@ msgid "inputClear_restore"
msgstr "Obnovit"
msgid "options_title"
msgstr "SwitchyOmega Nastavení"
msgstr "ZeroOmega Nastavení"
msgid "options_experimental_badge"
msgstr "α"
@ -335,15 +335,15 @@ msgstr ""
msgid "options_conflicts_lowerPriority"
msgstr ""
"A red badge like this on the SwitchyOmega icon indicates that another app has "
"higher priority so SwitchyOmega cannot control the settings. Please try to "
"uninstall SwitchyOmega and reinstall, which should raise SwitchyOmega's "
"A red badge like this on the ZeroOmega icon indicates that another app has "
"higher priority so ZeroOmega cannot control the settings. Please try to "
"uninstall ZeroOmega and reinstall, which should raise ZeroOmega's "
"priority. If you still see conflicts after reinstallation, please consider "
"removing the other app causing the conflict."
msgid "options_conflicts_higherPriority"
msgstr ""
"If SwitchyOmega has higher priority, you can give the control back to other "
"If ZeroOmega has higher priority, you can give the control back to other "
"apps or system settings by selecting $SYSTEMPROFILE$ in the popup menu."
msgid "options_showExternalProfile"
@ -423,7 +423,7 @@ msgstr ""
msgid "options_exportLegacyRuleListHelp"
msgstr ""
"Tuto možnost použijte, pouze v případě, že publikujete pravidlo seznamy pro "
"uživatele těchto projektů.<br>Prosím zvažte aktualizovat na SwitchyOmega "
"uživatele těchto projektů.<br>Prosím zvažte aktualizovat na ZeroOmega "
"pro zlepšení."
msgid "options_group_importExportSettings"
@ -441,7 +441,7 @@ msgid "options_restoreLocal"
msgstr "Obnovit ze souboru"
msgid "options_restoreLocalHelp"
msgstr "Obnovit Vaše SwitchyOmega nastavení z lokálního souboru."
msgstr "Obnovit Vaše ZeroOmega nastavení z lokálního souboru."
msgid "options_restoreOnline"
msgstr "Obnovit z online"
@ -559,7 +559,7 @@ msgstr "Ověřování"
msgid "options_proxy_authNotSupported"
msgstr "Your browser DOES NOT support $PROTOCOLDISP$ proxy authentication! "
"Please do not report this issue to SwitchyOmega. Contact the support for "
"Please do not report this issue to ZeroOmega. Contact the support for "
"your browser instead."
msgid "options_proxy_authAllWarningPac"
@ -777,19 +777,19 @@ msgstr ""
"pravidel."
msgid "options_modalHeader_welcome"
msgstr "Vítejte v SwitchyOmega"
msgstr "Vítejte v ZeroOmega"
msgid "options_welcomeNormal"
msgstr "Úspěšně jste nainstalovali SwitchyOmega, ultimate proxy přepínač."
msgstr "Úspěšně jste nainstalovali ZeroOmega, ultimate proxy přepínač."
msgid "options_welcomeNormalGuide"
msgstr ""
"Prosím, řekněte SwitchyOmega o vaší proxy prostřednictvím stránky možnosti. "
"Prosím, řekněte ZeroOmega o vaší proxy prostřednictvím stránky možnosti. "
"Podívejme se, jak."
msgid "options_welcomeUpgrade"
msgstr ""
"Úspěšně jste inovovali na SwitchyOmega. Buďte v klidu, vaše stávající "
"Úspěšně jste inovovali na ZeroOmega. Buďte v klidu, vaše stávající "
"možnosti jsou plně zachovány."
msgid "options_welcomeUpgradeGuide"
@ -873,7 +873,7 @@ msgid "options_profileNameEmpty"
msgstr "Název profilu nesmí být prázdný."
msgid "popup_title"
msgstr "SwitchyOmega Vyskakovací okno"
msgstr "ZeroOmega Vyskakovací okno"
msgid "options_modalHeader_proxyAuth"
msgstr "Ověřování proxy serveru"
@ -1036,19 +1036,19 @@ msgstr "Stáhnout profil"
msgid "options_guide_fixedProfileStep"
msgstr ""
"<b>Proxy profil</b> obsahuje nastavení jako server ip a port serveru "
"proxy.<br>Profily jsou základní konfiguraci jednotky v SwitchyOmega.<br>Jsme "
"proxy.<br>Profily jsou základní konfiguraci jednotky v ZeroOmega.<br>Jsme "
"již vytvořili příklad profil pro vás. Pokuste se jej otevřít."
msgid "options_guide_fixedServersStep"
msgstr ""
"Můžete vyplnit serveru proxy a portu zde jak se vám líbí.<br>, SwitchyOmega, "
"Můžete vyplnit serveru proxy a portu zde jak se vám líbí.<br>, ZeroOmega, "
"<b>nepřichází s proxy servery</b>.<br>Prosím poraďte se s poskytovatelem "
"sítě nebo server proxy software manuál Pokud nevíte, co by mělo být vyplněno "
"zde."
msgid "options_guide_autoSwitchProfileStep"
msgstr ""
"Poznáte SwitchyOmega přepínat mezi proxy automaticky prostřednictvím mohutné "
"Poznáte ZeroOmega přepínat mezi proxy automaticky prostřednictvím mohutné "
"<b>Přepnutí profilu</b>.<br>Však nelze pokrýt jeho rysy v tomto rychlém "
"průvodci.<br>Můžete otevřít tento profil odemknout její moci nějaký čas "
"později."
@ -1060,7 +1060,7 @@ msgstr ""
msgid "options_guide_conditionStep"
msgstr ""
"SwitchyOmega profily je možné použít různé žádosti na základě "
"ZeroOmega profily je možné použít různé žádosti na základě "
"<b>podmínek</b>.<br>Například <b>hostitele zástupné</b> stavu umožňuje "
"nastavit profil pro všechny adresy URL v doméně."
@ -1071,7 +1071,7 @@ msgstr ""
msgid "options_guide_conditionProfileStep"
msgstr ""
"SwitchyOmega použije vybraný profil zde na <b>žádost odpovídající "
"ZeroOmega použije vybraný profil zde na <b>žádost odpovídající "
"podmínky.</b> <br>Speciální <b>\"[]\" profilu</b> způsobí požadavek na "
"odeslání bez jakékoli proxy."
@ -1116,14 +1116,14 @@ msgstr ""
msgid "popup_proxyNotControllable_upgrade"
msgstr ""
"Nastavení serveru proxy jsou nyní řízeny pomocí novější verze SwitchyOmega."
"Nastavení serveru proxy jsou nyní řízeny pomocí novější verze ZeroOmega."
msgid "popup_proxyNotControllableDetails"
msgstr "Dokud nevyřešíte problém výše, nelze přepnout profily s SwitchyOmega."
msgstr "Dokud nevyřešíte problém výše, nelze přepnout profily s ZeroOmega."
msgid "popup_proxyNotControllableDetails_upgrade"
msgstr ""
"Současně nelze povolit dvě (nebo více) verze SwitchyOmega. Zakažte jednu z "
"Současně nelze povolit dvě (nebo více) verze ZeroOmega. Zakažte jednu z "
"nich."
msgid "popup_proxyNotControllableManage"
@ -1154,7 +1154,7 @@ msgid "popup_requestErrorWarning"
msgstr "Několik zdrojů se nepodařilo načíst kvůli potížím se sítí."
msgid "popup_requestErrorWarningHelp"
msgstr "SwitchyOmega jen reportuje tyto chyby, ale není příčinou těchto chyb."
msgstr "ZeroOmega jen reportuje tyto chyby, ale není příčinou těchto chyb."
msgid "popup_requestErrorAddCondition"
msgstr ""
@ -1182,7 +1182,7 @@ msgstr ""
"\n"
"<!-- Please write your comment ABOVE this line. -->\n"
"Přeložil Filip Havlin\n"
"SwitchyOmega $projectVersion$\n"
"ZeroOmega $projectVersion$\n"
"$userAgent$"
msgid "browserAction_profileDetails_PacProfile"
@ -1267,21 +1267,21 @@ msgid "about_experimental_warning_moz"
msgstr "Mozilla Firefox support is highly experimental! If you encounter issues, please report using the buttons below."
msgid "about_disclaimer_networkService"
msgstr "SwitchyOmega does not provide proxies, VPNs, or other network services."
msgstr "ZeroOmega does not provide proxies, VPNs, or other network services."
msgid "about_disclaimer_privacy"
msgstr "SwitchyOmega does not track you or insert ads into webpages. Please see"
msgstr "ZeroOmega does not track you or insert ads into webpages. Please see"
" our <a href='https://github.com/FelisCatus/SwitchyOmega/wiki/Privacy#english'>privacy policy</a>."
msgid "about_help"
msgstr "Other questions? Need help with using SwitchyOmega? Please see our "
msgstr "Other questions? Need help with using ZeroOmega? Please see our "
"<a href='https://github.com/FelisCatus/SwitchyOmega/wiki/FAQ'>FAQ</a>."
msgid "about_copyright"
msgstr "Copyright 2012-2017 <a href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>The SwitchyOmega Authors</a>. All rights reserved."
msgstr "Copyright 2024-2025 <a href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>The ZeroOmega Authors</a>. All rights reserved."
msgid "about_credits"
msgstr "SwitchyOmega is made possible by the <a href='https://github.com/FelisCatus/SwitchyOmega'>SwitchyOmega</a> open source project and other <a href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>open source software</a>."
msgstr "ZeroOmega is made possible by the <a href='https://github.com/FelisCatus/SwitchyOmega'>ZeroOmega</a> open source project and other <a href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>open source software</a>."
msgid "about_license"
msgstr "SwitchyOmega is <a href='https://www.gnu.org/philosophy/free-sw.en.html'>free software</a> licensed under <a href='https://www.gnu.org/licenses/gpl.html'>GNU General Public License</a> Version 3 or later."
msgstr "ZeroOmega is <a href='https://www.gnu.org/philosophy/free-sw.en.html'>free software</a> licensed under <a href='https://www.gnu.org/licenses/gpl.html'>GNU General Public License</a> Version 3 or later."

View File

@ -18,7 +18,7 @@ msgid "appNameShort"
msgstr "ZeroOmega"
msgid "manifest_app_name"
msgstr "Proxy SwitchyOmega"
msgstr "ZeroOmega"
msgid "manifest_app_description"
msgstr "Manage and switch between multiple proxies quickly & easily."
@ -216,7 +216,7 @@ msgid "inputClear_restore"
msgstr "Restore"
msgid "options_title"
msgstr "SwitchyOmega Options"
msgstr "ZeroOmega Options"
msgid "options_experimental_badge"
msgstr "α"
@ -337,15 +337,15 @@ msgstr ""
msgid "options_conflicts_lowerPriority"
msgstr ""
"A red badge like this on the SwitchyOmega icon indicates that another app has "
"higher priority so SwitchyOmega cannot control the settings. Please try to "
"uninstall SwitchyOmega and reinstall, which should raise SwitchyOmega's "
"A red badge like this on the ZeroOmega icon indicates that another app has "
"higher priority so ZeroOmega cannot control the settings. Please try to "
"uninstall ZeroOmega and reinstall, which should raise ZeroOmega's "
"priority. If you still see conflicts after reinstallation, please consider "
"removing the other app causing the conflict."
msgid "options_conflicts_higherPriority"
msgstr ""
"If SwitchyOmega has higher priority, you can give the control back to other "
"If ZeroOmega has higher priority, you can give the control back to other "
"apps or system settings by selecting $SYSTEMPROFILE$ in the popup menu."
msgid "options_showExternalProfile"
@ -419,7 +419,7 @@ msgstr ""
msgid "options_exportLegacyRuleListHelp"
msgstr ""
"Enable this option only if you publish rule lists for users of those projects.<"
"br>Please consider advising your audience to upgrade to SwitchyOmega for the "
"br>Please consider advising your audience to upgrade to ZeroOmega for the "
"improvements."
msgid "options_group_importExportSettings"
@ -435,7 +435,7 @@ msgid "options_restoreLocal"
msgstr "Restore from file"
msgid "options_restoreLocalHelp"
msgstr "Restore your SwitchyOmega options from a local file."
msgstr "Restore your ZeroOmega options from a local file."
msgid "options_restoreOnline"
msgstr "Restore from online"
@ -499,6 +499,9 @@ msgstr ""
msgid "options_builtin"
msgstr "Builtin"
msgid "options_theme"
msgstr "Theme"
msgid "options_builtinProfile"
msgstr "Builtin Profiles"
@ -557,7 +560,7 @@ msgstr "Authentication"
msgid "options_proxy_authNotSupported"
msgstr "Your browser DOES NOT support $PROTOCOLDISP$ proxy authentication! "
"Please do not report this issue to SwitchyOmega. Contact the support for "
"Please do not report this issue to ZeroOmega. Contact the support for "
"your browser instead."
msgid "options_proxy_authAllWarningPac"
@ -777,19 +780,19 @@ msgstr ""
"adding a rule list."
msgid "options_modalHeader_welcome"
msgstr "Welcome to SwitchyOmega"
msgstr "Welcome to ZeroOmega"
msgid "options_welcomeNormal"
msgstr "You have successfully installed SwitchyOmega, the ultimate proxy switcher."
msgstr "You have successfully installed ZeroOmega, the ultimate proxy switcher."
msgid "options_welcomeNormalGuide"
msgstr ""
"Please tell SwitchyOmega about your proxies through the options page. Let's "
"Please tell ZeroOmega about your proxies through the options page. Let's "
"see how."
msgid "options_welcomeUpgrade"
msgstr ""
"You have successfully upgraded to SwitchyOmega. Don't panic, your existing "
"You have successfully upgraded to ZeroOmega. Don't panic, your existing "
"options are fully preserved."
msgid "options_welcomeUpgradeGuide"
@ -877,7 +880,7 @@ msgid "options_profileNameEmpty"
msgstr "The name of the profile must not be empty."
msgid "popup_title"
msgstr "SwitchyOmega Popup"
msgstr "ZeroOmega Popup"
msgid "options_modalHeader_proxyAuth"
msgstr "Proxy Authentication"
@ -1041,19 +1044,19 @@ msgstr "Download Profile Now"
msgid "options_guide_fixedProfileStep"
msgstr ""
"A <b>Proxy Profile</b> contains settings like server ip &amp; port for proxy.<"
"br>Profiles are the the basic configuration units in SwitchyOmega.<br>We have "
"br>Profiles are the the basic configuration units in ZeroOmega.<br>We have "
"already created an example profile for you. Try opening it."
msgid "options_guide_fixedServersStep"
msgstr ""
"You can fill in your proxy server and port here as you like.<br>SwitchyOmega <"
"You can fill in your proxy server and port here as you like.<br>ZeroOmega <"
"b>does not come with any proxy servers</b>.<br>Please consult your network "
"provider or proxy software manual if you don't know what should be filled in "
"here."
msgid "options_guide_autoSwitchProfileStep"
msgstr ""
"You can tell SwitchyOmega to switch between proxies automatically through the "
"You can tell ZeroOmega to switch between proxies automatically through the "
"mighty <b>Switch Profile</b>.<br>However, its features cannot be covered in "
"this quick guide.<br>You can open this profile to unlock its power some time "
"later."
@ -1065,7 +1068,7 @@ msgstr ""
msgid "options_guide_conditionStep"
msgstr ""
"SwitchyOmega can apply different profiles to requests based on <b>conditions</"
"ZeroOmega can apply different profiles to requests based on <b>conditions</"
"b>.<br> For example, the <b>Host wildcard</b> condition allows you to set the "
"profile for all URLs in a domain."
@ -1076,7 +1079,7 @@ msgstr ""
msgid "options_guide_conditionProfileStep"
msgstr ""
"SwitchyOmega applies the selected profile here to <b>any request matching the "
"ZeroOmega applies the selected profile here to <b>any request matching the "
"condition.</b> <br> The special <b>\"[Direct]\" profile</b> will cause the "
"request to be sent without any proxy."
@ -1120,14 +1123,14 @@ msgstr ""
"extension(s)."
msgid "popup_proxyNotControllable_upgrade"
msgstr "Proxy settings are now controlled by a newer version of SwitchyOmega."
msgstr "Proxy settings are now controlled by a newer version of ZeroOmega."
msgid "popup_proxyNotControllableDetails"
msgstr "You cannot switch profiles with SwitchyOmega unless you fix the problem above."
msgstr "You cannot switch profiles with ZeroOmega unless you fix the problem above."
msgid "popup_proxyNotControllableDetails_upgrade"
msgstr ""
"You can't enable two (or more) versions of SwitchyOmega at the same time. "
"You can't enable two (or more) versions of ZeroOmega at the same time. "
"Please disable one of them."
msgid "popup_proxyNotControllableManage"
@ -1142,6 +1145,9 @@ msgstr "Add condition"
msgid "popup_showOptions"
msgstr "Options"
msgid "popup_reload"
msgstr "Reload"
msgid "popup_reportIssues"
msgstr "Report issues"
@ -1158,7 +1164,7 @@ msgid "popup_requestErrorWarning"
msgstr "A few resources failed to load due to issues with your network, proxy server or the webpage."
msgid "popup_requestErrorWarningHelp"
msgstr "SwitchyOmega is just the reporter of these issues, not the cause of them."
msgstr "ZeroOmega is just the reporter of these issues, not the cause of them."
msgid "popup_requestErrorAddCondition"
msgstr "You can review the following domains and use proxy for them when appropriate."
@ -1273,7 +1279,7 @@ msgstr "Other questions? Need help with using ZeroOmega? Please see our "
"<a href='https://github.com/FelisCatus/SwitchyOmega/wiki/FAQ'>FAQ</a>."
msgid "about_copyright"
msgstr "Copyright 2012-2017 <a href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>The SwitchyOmega Authors</a>. All rights reserved.<br>"
msgstr "Copyright 2024-2025 <a href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>The ZeroOmega Authors</a>. All rights reserved.<br>"
"Copyright 2024 <a href='https://github.com/zero-peak/ZeroOmega/graphs/contributors'>The ZeroOmega Authors</a>."
msgid "about_credits"

View File

@ -338,15 +338,15 @@ msgstr ""
msgid "options_conflicts_lowerPriority"
msgstr ""
"وقتی یک نمایانگر قرمز مثل این روی نماد SwitchyOmega نمایان می‌شود این را "
"نشان میدهد که برنامه دیگری کنترل بیشتری دارد پس SwitchyOmega نمیتواند "
"تنظیمات را کنترل کند. لطفا SwitchyOmega را دوباره نصب کنید. کاری که بایستی "
"باعث شود کنترل SwitchyOmega بر تنظیمات بیشتر شود. اگر باز هم تضادهایی در "
"وقتی یک نمایانگر قرمز مثل این روی نماد ZeroOmega نمایان می‌شود این را "
"نشان میدهد که برنامه دیگری کنترل بیشتری دارد پس ZeroOmega نمیتواند "
"تنظیمات را کنترل کند. لطفا ZeroOmega را دوباره نصب کنید. کاری که بایستی "
"باعث شود کنترل ZeroOmega بر تنظیمات بیشتر شود. اگر باز هم تضادهایی در "
"تنظیمات دیدید، لطفا اقدام به حذف برنامه‌ای که این تضاد را باعث میشود کنید."
msgid "options_conflicts_higherPriority"
msgstr ""
"اگر SwitchyOmega دارای اولویت بیشتری است ، می توانید با انتخاب "
"اگر ZeroOmega دارای اولویت بیشتری است ، می توانید با انتخاب "
"$SYSTEMPROFILE$ در منوی باز شده ، کنترل را به سایر برنامه ها یا تنظیمات "
"سیستم بازگردانید."
@ -429,7 +429,7 @@ msgid "options_exportLegacyRuleListHelp"
msgstr ""
"این گزینه را تنها درصورتی که میخواهید لیست قوانین را برای کاربران اون پروژه "
"ها انتشار دهید فعال کنید . <br>لطفا به کاربران خود پیشنهاد بروزرسانی به "
"SwitchyOmega را برای بهره بری بهتر پیشنهاد دهید ."
"ZeroOmega را برای بهره بری بهتر پیشنهاد دهید ."
msgid "options_group_importExportSettings"
msgstr "تنظیمات"
@ -444,7 +444,7 @@ msgid "options_restoreLocal"
msgstr "برگرداندن از فایل"
msgid "options_restoreLocalHelp"
msgstr "گزینه های SwitchyOmega خود را از یک فایل محلی بازیابی کنید."
msgstr "گزینه های ZeroOmega خود را از یک فایل محلی بازیابی کنید."
msgid "options_restoreOnline"
msgstr "بازگرداندن از فایل آنلاین"
@ -556,7 +556,7 @@ msgstr "هویت‌سنجی"
msgid "options_proxy_authNotSupported"
msgstr ""
"مرورگر شما از احراز هویت پروکسی $ PROTOCOLDISP $ پشتیبانی نمی کند! لطفاً این "
"موضوع را به SwitchyOmega گزارش نکنید. در عوض با پشتیبانی مرورگر خود تماس "
"موضوع را به ZeroOmega گزارش نکنید. در عوض با پشتیبانی مرورگر خود تماس "
"بگیرید."
msgid "options_proxy_authAllWarningPac"
@ -778,19 +778,19 @@ msgstr ""
"منتشر شده استفاده نمایید ."
msgid "options_modalHeader_welcome"
msgstr "به SwitchyOmega خوش آمدید"
msgstr "به ZeroOmega خوش آمدید"
msgid "options_welcomeNormal"
msgstr ""
"شما با موفقیت SwitchyOmega را نصب نموده اید ، برترین تغییر دهنده ی پروکسی."
"شما با موفقیت ZeroOmega را نصب نموده اید ، برترین تغییر دهنده ی پروکسی."
msgid "options_welcomeNormalGuide"
msgstr ""
"لطفا به SwitchyOmega از طریق صفجه ی تنظیمات ، پروکسی های خود را معرفی کنید ."
"لطفا به ZeroOmega از طریق صفجه ی تنظیمات ، پروکسی های خود را معرفی کنید ."
msgid "options_welcomeUpgrade"
msgstr ""
"شما با موفقیت به SwitchyOmega ارتقا پیدا کرده اید ، نگران نباشید ، تمامی "
"شما با موفقیت به ZeroOmega ارتقا پیدا کرده اید ، نگران نباشید ، تمامی "
"تنظیمات شما به طور کامل حفظ شده اند ."
msgid "options_welcomeUpgradeGuide"
@ -874,7 +874,7 @@ msgid "options_profileNameEmpty"
msgstr "اسم پروفایل نمیتواند خالی باشد."
msgid "popup_title"
msgstr "بالاپر SwitchyOmega"
msgstr "بالاپر ZeroOmega"
msgid "options_modalHeader_proxyAuth"
msgstr "تصدیق پروکسی"
@ -1046,12 +1046,12 @@ msgstr ""
msgid "options_guide_fixedServersStep"
msgstr ""
"می توانید سرور و پورت پروکسی خود را در اینجا به دلخواه پر کنید. <br> "
"SwitchyOmega <b> با هیچ سرور پروکسی ارائه نمی شود </b>. <br> بدانید چه چیزی "
"ZeroOmega <b> با هیچ سرور پروکسی ارائه نمی شود </b>. <br> بدانید چه چیزی "
"باید در اینجا پر شود."
msgid "options_guide_autoSwitchProfileStep"
msgstr ""
"می توانید به SwitchyOmega بگویید که از طریق <b> تغییر پروفایل </b> به طور "
"می توانید به ZeroOmega بگویید که از طریق <b> تغییر پروفایل </b> به طور "
"خودکار بین پراکسی جابجا شود. <br> با این حال ، در این راهنمای سریع نمی توان "
"ویژگی های آن را پوشش داد. <br> می توانید این نمایه را باز کنید تا قفل قدرت "
"آن کمی باز شود. زمان بعد"
@ -1064,7 +1064,7 @@ msgstr ""
msgid "options_guide_conditionStep"
msgstr ""
"SwitchyOmega میتوانید پروفایل های متفاوتی را بر اساس <b>شروط </b>تقاضا کند "
"ZeroOmega میتوانید پروفایل های متفاوتی را بر اساس <b>شروط </b>تقاضا کند "
".<br>برای مثال ، شرط <b>فرانویسه ی میزبان </b> به شما این قابلیت را میدهد که "
"پروفایلی برای تمامی آدرس های یک دامنه تعیین کنید ."
@ -1075,7 +1075,7 @@ msgstr ""
msgid "options_guide_conditionProfileStep"
msgstr ""
"SwitchyOmega نمایه انتخاب شده را در اینجا برای <b>هر درخواستی که با شرایط "
"ZeroOmega نمایه انتخاب شده را در اینجا برای <b>هر درخواستی که با شرایط "
"مطابقت دارد اعمال می کند.</b> <br> نمایه <b>\"[مستقیم]\"</b> باعث می شود "
"درخواست بدون هیچ پراکسی ارسال شود."
@ -1118,16 +1118,16 @@ msgstr ""
"شده است ."
msgid "popup_proxyNotControllable_upgrade"
msgstr "تنظیمات پروکسی توسط ورژن جدیدی از SwitchyOmega کنترل میشود ."
msgstr "تنظیمات پروکسی توسط ورژن جدیدی از ZeroOmega کنترل میشود ."
msgid "popup_proxyNotControllableDetails"
msgstr ""
"شما نمیتوانید پروفایل ها را توسط SwitchyOmega عوض نمایید ، مگر اینکه مشکلات "
"شما نمیتوانید پروفایل ها را توسط ZeroOmega عوض نمایید ، مگر اینکه مشکلات "
"بالا را حل نمایید ."
msgid "popup_proxyNotControllableDetails_upgrade"
msgstr ""
"شما نمیتوانید از دو (یا چند) ورژن SwitchyOmega به طور همزمان استفاده کنید . "
"شما نمیتوانید از دو (یا چند) ورژن ZeroOmega به طور همزمان استفاده کنید . "
"لطفا یکی از آن ها را غیرفعال کنید ."
msgid "popup_proxyNotControllableManage"
@ -1161,7 +1161,7 @@ msgstr ""
msgid "popup_requestErrorWarningHelp"
msgstr ""
"SwitchyOmega تنها گزارش دهنده این خطاها میباشد ، نه ایجاد کننده ی آن ها ."
"ZeroOmega تنها گزارش دهنده این خطاها میباشد ، نه ایجاد کننده ی آن ها ."
msgid "popup_requestErrorAddCondition"
msgstr ""
@ -1209,16 +1209,16 @@ msgid "browserAction_profileDetails_RuleListProfile"
msgstr "(جابه جایی بر اساس لیست قوانین)"
msgid "browserAction_titleNormal"
msgstr "SwitchyOmega :: $PROFILE$"
msgstr "ZeroOmega :: $PROFILE$"
msgid "browserAction_titleWithResult"
msgstr ""
"SwitchyOmega :: $1:PROFILE$\n"
"ZeroOmega :: $1:PROFILE$\n"
" $3:DETAILS$"
msgid "browserAction_titleNewerOptions"
msgstr ""
"خطا: برای بارگیری گزینه های ذخیره شده ، نسخه جدیدتر SwitchyOmega مورد نیاز "
"خطا: برای بارگیری گزینه های ذخیره شده ، نسخه جدیدتر ZeroOmega مورد نیاز "
"است."
msgid "browserAction_titleOptionError"
@ -1276,11 +1276,11 @@ msgstr ""
"طریق دکمه ی زیر ما را در جریان بگذارید."
msgid "about_disclaimer_networkService"
msgstr "SwitchyOmega پروکسی، وی پی ان یا دیگر خدمات شبکه ای فراهم نمیکند."
msgstr "ZeroOmega پروکسی، وی پی ان یا دیگر خدمات شبکه ای فراهم نمیکند."
msgid "about_disclaimer_privacy"
msgstr ""
"SwitchyOmega شما را ردیابی نمی کند یا تبلیغاتی را در صفحات وب درج نمی کند. "
"ZeroOmega شما را ردیابی نمی کند یا تبلیغاتی را در صفحات وب درج نمی کند. "
"لطفاً <a href='https://github.com/FelisCatus/SwitchyOmega/wiki/Privacy#"
"english'>خط مشی رازداری</a> ما را ببینید."
@ -1291,20 +1291,20 @@ msgstr ""
msgid "about_copyright"
msgstr ""
"کپی رایت 2012-2017 <a "
"کپی رایت 2025-2024 <a "
"href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>"
"نویسندگان The SwitchyOmega </a>. کلیه حقوق محفوظ است، ترجمه شده به فارسی "
"نویسندگان The ZeroOmega </a>. کلیه حقوق محفوظ است، ترجمه شده به فارسی "
"توسط گودرز جعفری."
msgid "about_credits"
msgstr ""
"SwitchyOmega به کمک پروژه ی متن باز <a href='https://github.com/FelisCatus/"
"SwitchyOmega'>SwitchyOmega</a> و دیگر پروژه های متن باز<a "
"ZeroOmega به کمک پروژه ی متن باز <a href='https://github.com/FelisCatus/"
"SwitchyOmega'>ZeroOmega</a> و دیگر پروژه های متن باز<a "
"href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>میسر "
"شده است</a>."
msgid "about_license"
msgstr ""
"SwitchyOmega <a href='https://www.gnu.org/philosophy/free-sw.en.html'>یک نرم "
"ZeroOmega <a href='https://www.gnu.org/philosophy/free-sw.en.html'>یک نرم "
"افزار آزاد </a>، تحت لیسانس<a href='https://www.gnu.org/licenses/gpl.html'>"
"GNU </a> نسخه ی 3 به بعد میباشد."

View File

@ -18,7 +18,7 @@ msgid "appNameShort"
msgstr "ZeroOmega"
msgid "manifest_app_name"
msgstr "Proxy SwitchyOmega"
msgstr "ZeroOmega"
msgid "manifest_app_description"
msgstr "轻松快捷地管理和切换多个代理设置。"
@ -198,7 +198,7 @@ msgid "inputClear_restore"
msgstr "还原"
msgid "options_title"
msgstr "SwitchyOmega 选项"
msgstr "ZeroOmega 选项"
msgid "options_experimental_badge"
msgstr "测试版"
@ -306,14 +306,14 @@ msgstr ""
msgid "options_conflicts_lowerPriority"
msgstr ""
"如果 SwitchyOmega 图标上显示这样的红色徽章,表示另一个应用优先级较高,因此"
"SwitchyOmega 无法控制代理设置。请尝试卸载 SwitchyOmega 再重新安装,这样可能可"
"以提高 SwitchyOmega 的优先级。如果重装后您仍然看到冲突,那么请考虑移除那个"
"如果 ZeroOmega 图标上显示这样的红色徽章,表示另一个应用优先级较高,因此"
"ZeroOmega 无法控制代理设置。请尝试卸载 ZeroOmega 再重新安装,这样可能可"
"以提高 ZeroOmega 的优先级。如果重装后您仍然看到冲突,那么请考虑移除那个"
"导致冲突的应用。"
msgid "options_conflicts_higherPriority"
msgstr ""
"如果 SwitchyOmega 的优先级较高,那么您可以在弹出菜单中选择 $SYSTEMPROFILE$ 来"
"如果 ZeroOmega 的优先级较高,那么您可以在弹出菜单中选择 $SYSTEMPROFILE$ 来"
"把控制权还给其他应用或系统设置。"
msgid "options_showExternalProfile"
@ -381,7 +381,7 @@ msgid "options_exportLegacyRuleList"
msgstr "导出规则列表时使用 Proxy Switchy!/SwitchyPlus/SwitchySharp 兼容格式。"
msgid "options_exportLegacyRuleListHelp"
msgstr "如果您需要发布规则列表给那些软件的用户,请启用此选项。<br>建议您提醒订阅者升级到 SwitchyOmega 以享受新版功能。"
msgstr "如果您需要发布规则列表给那些软件的用户,请启用此选项。<br>建议您提醒订阅者升级到 ZeroOmega 以享受新版功能。"
msgid "options_group_importExportSettings"
msgstr "选项"
@ -450,6 +450,9 @@ msgstr "选项同步暂不支持您的平台或浏览器。目前只支持桌面
msgid "options_builtin"
msgstr "系统"
msgid "options_theme"
msgstr "主题"
msgid "options_builtinProfile"
msgstr "内置情境模式"
@ -508,7 +511,7 @@ msgstr "代理登录"
msgid "options_proxy_authNotSupported"
msgstr "您的浏览器不支持 $PROTOCOLDISP$ 代理认证!如有问题请联系您的浏览器支持,"
"请勿反馈此问题给 SwitchyOmega."
"请勿反馈此问题给 ZeroOmega."
msgid "options_proxy_authAllWarningPac"
msgstr "警告: 用户名密码将会提供给PAC脚本返回的任何服务器有时目标服务器会出乎您的预料。"
@ -699,16 +702,16 @@ msgid "options_attachProfileHelp"
msgstr "可以添加规则列表,以便引用他人在线发布的一组规则。"
msgid "options_modalHeader_welcome"
msgstr "欢迎使用 SwitchyOmega"
msgstr "欢迎使用 ZeroOmega"
msgid "options_welcomeNormal"
msgstr "您已经成功安装了 SwitchyOmega ,一个强大的代理切换工具。"
msgstr "您已经成功安装了 ZeroOmega ,一个强大的代理切换工具。"
msgid "options_welcomeNormalGuide"
msgstr "您可以通过选项页面设置需要使用的代理服务器,下面我们就来试试看吧。"
msgid "options_welcomeUpgrade"
msgstr "您已经成功升级到 SwitchyOmega. 别担心,所有设置都已经升级成功,可以继续使用。"
msgstr "您已经成功升级到 ZeroOmega. 别担心,所有设置都已经升级成功,可以继续使用。"
msgid "options_welcomeUpgradeGuide"
msgstr "现在我们来熟悉一下新的选项页面。"
@ -785,7 +788,7 @@ msgid "options_profileNameEmpty"
msgstr "情景模式名称不能为空。"
msgid "popup_title"
msgstr "SwitchyOmega 弹出菜单"
msgstr "ZeroOmega 弹出菜单"
msgid "options_modalHeader_deleteRule"
msgstr "删除规则"
@ -938,12 +941,12 @@ msgstr "立即更新情景模式"
msgid "options_guide_fixedProfileStep"
msgstr ""
"<b>代理情景</b>包含了服务器地址、端口等代理的信息。<br>在 SwitchyOmega 中,情景模式是代理设置的基本单元。<br>"
"<b>代理情景</b>包含了服务器地址、端口等代理的信息。<br>在 ZeroOmega 中,情景模式是代理设置的基本单元。<br>"
"默认设置中已经建立了一个代理情景模式作为样例。试着打开它吧。"
msgid "options_guide_fixedServersStep"
msgstr ""
"在这里,您可以填写所需的代理服务器地址和端口。<br>SwitchyOmega<b>软件本身不提供任何内置代理服务器</b>。<br>"
"在这里,您可以填写所需的代理服务器地址和端口。<br>ZeroOmega<b>软件本身不提供任何内置代理服务器</b>。<br>"
"如果您不清楚应该填写什么,最好咨询下您的网络提供者,或者参考代理软件的设置说明。"
msgid "options_guide_autoSwitchProfileStep"
@ -957,7 +960,7 @@ msgstr "需要更多情景模式?你始终可以添加更多<b>代理、切换
msgid "options_guide_conditionStep"
msgstr ""
"SwitchyOmega 可以根据<b>切换条件</b>对不同的网络请求使用不同的情景模式。<br>例如<b>域名通配符</b>"
"ZeroOmega 可以根据<b>切换条件</b>对不同的网络请求使用不同的情景模式。<br>例如<b>域名通配符</b>"
"条件可以对某个域名下的所有网址使用特定的情景模式。"
msgid "options_guide_conditionTypeStep"
@ -965,7 +968,7 @@ msgstr "您可以使用各种条件类型来匹配域名或者整个网址。<br
msgid "options_guide_conditionProfileStep"
msgstr ""
"对于<b>任何匹配该条件的请求</b>SwitchyOmega 会使用这个情景模式。<br>如果选择了<b>\"[直接连接]\"情景模式</b>"
"对于<b>任何匹配该条件的请求</b>ZeroOmega 会使用这个情景模式。<br>如果选择了<b>\"[直接连接]\"情景模式</b>"
"则匹配的请求不使用任何代理。"
msgid "options_guide_switchDefaultStep"
@ -992,16 +995,16 @@ msgid "popup_proxyNotControllable_unknown"
msgstr "无法设置代理设置。请检查系统和浏览器设置。"
msgid "popup_proxyNotControllable_disabled"
msgstr "在其他应用或扩展的要求下,SwitchyOmega 已经禁用代理设置。"
msgstr "在其他应用或扩展的要求下,ZeroOmega 已经禁用代理设置。"
msgid "popup_proxyNotControllable_upgrade"
msgstr "代理设置现在由新版本的 SwitchyOmega 控制。"
msgstr "代理设置现在由新版本的 ZeroOmega 控制。"
msgid "popup_proxyNotControllableDetails"
msgstr "如果不解决以上问题,则无法使用SwitchyOmega切换代理。"
msgstr "如果不解决以上问题,则无法使用ZeroOmega切换代理。"
msgid "popup_proxyNotControllableDetails_upgrade"
msgstr "两个不同版本的 SwitchyOmega (如稳定版和测试版)不能共存。请禁用其中之一。"
msgstr "两个不同版本的 ZeroOmega (如稳定版和测试版)不能共存。请禁用其中之一。"
msgid "popup_proxyNotControllableManage"
msgstr "管理扩展"
@ -1015,6 +1018,9 @@ msgstr "添加条件"
msgid "popup_showOptions"
msgstr "选项"
msgid "popup_reload"
msgstr "重启插件"
msgid "popup_reportIssues"
msgstr "反馈问题"
@ -1031,7 +1037,7 @@ msgid "popup_requestErrorWarning"
msgstr "由于网络原因,此页面部分资源加载失败。这些问题可能是由您的网络、代理服务器或网站本身引起的。"
msgid "popup_requestErrorWarningHelp"
msgstr "这些问题并非由 SwitchyOmega 自身导致,它只不过检测并报告了错误而已。"
msgstr "这些问题并非由 ZeroOmega 自身导致,它只不过检测并报告了错误而已。"
msgid "popup_requestErrorAddCondition"
msgstr "您可以查看以下域名,并根据实际情况确定是否对其使用代理。"
@ -1081,7 +1087,7 @@ msgstr ""
"$3:DETAILS$"
msgid "browserAction_titleNewerOptions"
msgstr "错误:需要新版本的SwitchyOmega才能加载当前选项。"
msgstr "错误:需要新版本的ZeroOmega才能加载当前选项。"
msgid "browserAction_titleOptionError"
msgstr "错误:选项文件已经损坏,点击此处重置选项。"
@ -1147,8 +1153,8 @@ msgstr ""
"SwitchyOmega/wiki/FAQ'>常见问题</a>。"
msgid "about_copyright"
msgstr "版权所有 2012-2017 <a href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>The SwitchyOmega Authors</a>. 保留所有权利。<br>"
"版权所有 2024 <a href='https://github.com/zero-peak/ZeroOmega/graphs/contributors'>The ZeroOmega Authors</a>."
msgstr "版权所有 2024-2025 <a href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>The ZeroOmega Authors</a>. 保留所有权利。<br>"
"版权所有 2025 <a href='https://github.com/zero-peak/ZeroOmega/graphs/contributors'>The ZeroOmega Authors</a>."
msgid "about_credits"
msgstr "ZeroOmega 的诞生离不开 <a href='https://github.com/zero-peak/ZeroOmega'>ZeroOmega</a> 开源项目和其他<a href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>开源软件</a>。"

View File

@ -18,7 +18,7 @@ msgid "appNameShort"
msgstr "ZeroOmega"
msgid "manifest_app_name"
msgstr "Proxy SwitchyOmega"
msgstr "ZeroOmega"
msgid "manifest_app_description"
msgstr "輕鬆簡單地管理並切換多個代理伺服器設定。"
@ -193,7 +193,7 @@ msgid "inputClear_restore"
msgstr "還原"
msgid "options_title"
msgstr "SwitchyOmega 選項"
msgstr "ZeroOmega 選項"
msgid "options_experimental_badge"
msgstr "測試版"
@ -301,11 +301,11 @@ msgstr ""
msgid "options_conflicts_lowerPriority"
msgstr ""
"如果 SwitchyOmega 圖示上顯示這樣的紅色徽章表示另一個應用優先級較高因此SwitchyOmega 無法控制代理設定。請嘗試卸載 "
"SwitchyOmega 再重新安裝,這樣可能可以提高 SwitchyOmega 的優先級。如果重裝後您仍然看到衝突,那麼請考慮移除那個導致衝突的應用。"
"如果 ZeroOmega 圖示上顯示這樣的紅色徽章表示另一個應用優先級較高因此ZeroOmega 無法控制代理設定。請嘗試卸載 "
"ZeroOmega 再重新安裝,這樣可能可以提高 ZeroOmega 的優先級。如果重裝後您仍然看到衝突,那麼請考慮移除那個導致衝突的應用。"
msgid "options_conflicts_higherPriority"
msgstr "如果 SwitchyOmega 的優先級較高,那麼您可以在彈出式選單中選擇 $SYSTEMPROFILE$ 來把控制權還給其他應用或系統設定。"
msgstr "如果 ZeroOmega 的優先級較高,那麼您可以在彈出式選單中選擇 $SYSTEMPROFILE$ 來把控制權還給其他應用或系統設定。"
msgid "options_showExternalProfile"
msgstr "在彈出式選單中顯示選單項目,以匯入其他應用提供的代理設定。"
@ -370,7 +370,7 @@ msgid "options_exportLegacyRuleList"
msgstr "匯出規則清單時使用 Proxy Switchy!/SwitchyPlus/SwitchySharp 相容格式。"
msgid "options_exportLegacyRuleListHelp"
msgstr "如果您需要釋出規則清單給那些軟體的使用者,請啟用此選項。<br>建議您提醒訂閱者升級到 SwitchyOmega 以享受新版功能。"
msgstr "如果您需要釋出規則清單給那些軟體的使用者,請啟用此選項。<br>建議您提醒訂閱者升級到 ZeroOmega 以享受新版功能。"
msgid "options_group_importExportSettings"
msgstr "選項"
@ -441,6 +441,9 @@ msgstr "選項同步暫不支援您的平臺或瀏覽器。目前只支援桌面
msgid "options_builtin"
msgstr "内建"
msgid "options_theme"
msgstr "主題"
msgid "options_builtinProfile"
msgstr "內建情境模式"
@ -499,7 +502,7 @@ msgstr "代理認證"
msgid "options_proxy_authNotSupported"
msgstr "您的瀏覽器不支持 $PROTOCOLDISP$ 代理認證!如有問題請聯繫您的瀏覽器支持,"
"請勿反饋此問題給 SwitchyOmega."
"請勿反饋此問題給 ZeroOmega."
msgid "options_proxy_authAllWarningPac"
msgstr "警告:使用者名稱和密碼將會提供給 PAC 指令碼返回的任何伺服器,有時目標伺服器會出乎您的預料。"
@ -690,16 +693,16 @@ msgid "options_attachProfileHelp"
msgstr "可以加入規則清單,以便引用他人線上釋出的一組規則。"
msgid "options_modalHeader_welcome"
msgstr "歡迎使用 SwitchyOmega"
msgstr "歡迎使用 ZeroOmega"
msgid "options_welcomeNormal"
msgstr "您已經成功安裝了 SwitchyOmega ,一個強大的代理切換工具。"
msgstr "您已經成功安裝了 ZeroOmega ,一個強大的代理切換工具。"
msgid "options_welcomeNormalGuide"
msgstr "您可以通過選項頁面設定需要使用的代理伺服器,下面我們就來試試看吧。"
msgid "options_welcomeUpgrade"
msgstr "您已經成功升級到 SwitchyOmega. 別擔心,所有設定都已經升級成功,可以繼續使用。"
msgstr "您已經成功升級到 ZeroOmega. 別擔心,所有設定都已經升級成功,可以繼續使用。"
msgid "options_welcomeUpgradeGuide"
msgstr "現在我們來熟悉一下新的選項頁面。"
@ -776,7 +779,7 @@ msgid "options_profileNameEmpty"
msgstr "情境模式名稱不能為空。"
msgid "popup_title"
msgstr "SwitchyOmega 彈出選單"
msgstr "ZeroOmega 彈出選單"
msgid "options_modalHeader_deleteRule"
msgstr "刪除規則"
@ -927,12 +930,12 @@ msgstr "立即更新情境模式"
msgid "options_guide_fixedProfileStep"
msgstr ""
"<b>代理情境</b>包含了伺服器位址、埠等代理的資訊。<br>在 SwitchyOmega "
"<b>代理情境</b>包含了伺服器位址、埠等代理的資訊。<br>在 ZeroOmega "
"中,情境模式是代理設定的基本單元。<br>預設設定中已經建立了一個代理情境模式作為樣例。試著開啟它吧。"
msgid "options_guide_fixedServersStep"
msgstr ""
"在這裡,您可以填寫所需的代理伺服器位址和埠。<br>SwitchyOmega<b>軟體本身不提供任何內建代理伺服器</b>。<br>如果您不清楚應該填寫什"
"在這裡,您可以填寫所需的代理伺服器位址和埠。<br>ZeroOmega<b>軟體本身不提供任何內建代理伺服器</b>。<br>如果您不清楚應該填寫什"
"麼,最好諮詢下您的網路提供者,或者參考代理軟體的設定說明。"
msgid "options_guide_autoSwitchProfileStep"
@ -945,7 +948,7 @@ msgstr "如果您需要更多的情境模式,可以隨時在這裡建立<b>代
msgid "options_guide_conditionStep"
msgstr ""
"SwitchyOmega "
"ZeroOmega "
"可以依據<b>切換條件</b>對不同的網路請求使用不同的情境模式。<br>例如<b>網域萬用字元</b>條件可以對某個網域下的所有網址使用特定的情境模式。"
msgid "options_guide_conditionTypeStep"
@ -953,7 +956,7 @@ msgstr "您可以使用各種條件類型來比對網域或者整個網址。<br
msgid "options_guide_conditionProfileStep"
msgstr ""
"對於<b>任何比對該條件的請求</b>SwitchyOmega 會使用這個情境模式。<br>如果選擇了<b>\"[直接連線]\""
"對於<b>任何比對該條件的請求</b>ZeroOmega 會使用這個情境模式。<br>如果選擇了<b>\"[直接連線]\""
"情境模式</b>,則比對的請求不使用任何代理。"
msgid "options_guide_switchDefaultStep"
@ -981,16 +984,16 @@ msgid "popup_proxyNotControllable_unknown"
msgstr "無法設定代理設定。請檢查系統和瀏覽器設定。"
msgid "popup_proxyNotControllable_disabled"
msgstr "在其他程式或擴充功能的要求下,SwitchyOmega 已經停用代理設定。"
msgstr "在其他程式或擴充功能的要求下,ZeroOmega 已經停用代理設定。"
msgid "popup_proxyNotControllable_upgrade"
msgstr "代理設定現在由新版本的 SwitchyOmega 控制。"
msgstr "代理設定現在由新版本的 ZeroOmega 控制。"
msgid "popup_proxyNotControllableDetails"
msgstr "如果不解決以上問題,則無法使用SwitchyOmega切換代理。"
msgstr "如果不解決以上問題,則無法使用ZeroOmega切換代理。"
msgid "popup_proxyNotControllableDetails_upgrade"
msgstr "兩個不同版本的 SwitchyOmega (如穩定版和測試版)不能共存。請停用其中之一。"
msgstr "兩個不同版本的 ZeroOmega (如穩定版和測試版)不能共存。請停用其中之一。"
msgid "popup_proxyNotControllableManage"
msgstr "管理擴充功能"
@ -1004,6 +1007,10 @@ msgstr "加入條件"
msgid "popup_showOptions"
msgstr "選項"
msgid "popup_reload"
msgstr "重啓插件"
msgid "popup_reportIssues"
msgstr "回報問題"
@ -1020,7 +1027,7 @@ msgid "popup_requestErrorWarning"
msgstr "由於網路原因,此頁面部分資源載入失敗。這些問題可能是由您的網路、代理伺服器或網站本身引起的。"
msgid "popup_requestErrorWarningHelp"
msgstr "這些問題並非由 SwitchyOmega 自身導致,它只不過偵測並報告了錯誤而已。"
msgstr "這些問題並非由 ZeroOmega 自身導致,它只不過偵測並報告了錯誤而已。"
msgid "popup_requestErrorAddCondition"
msgstr "您可以檢視以下網域,並依據實際情況確定是否對其使用代理。"
@ -1070,7 +1077,7 @@ msgstr ""
"$3:DETAILS$"
msgid "browserAction_titleNewerOptions"
msgstr "錯誤:需要新版本的SwitchyOmega才能載入目前選項。"
msgstr "錯誤:需要新版本的ZeroOmega才能載入目前選項。"
msgid "browserAction_titleOptionError"
msgstr "錯誤:選項檔案已經損壞,點選此處重設選項。"
@ -1136,10 +1143,10 @@ msgstr ""
"%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98'>常見問題</a>。"
msgid "about_copyright"
msgstr "版權所有 2012-2017 <a href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>The SwitchyOmega Authors</a>. 保留所有權利。"
msgstr "版權所有 2024-2025 <a href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>The ZeroOmega Authors</a>. 保留所有權利。"
msgid "about_credits"
msgstr "SwitchyOmega 的誕生離不開 <a href='https://github.com/FelisCatus/SwitchyOmega'>SwitchyOmega</a> 開源項目和其他<a href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>開源軟體</a>。"
msgstr "ZeroOmega 的誕生離不開 <a href='https://github.com/FelisCatus/SwitchyOmega'>SwitchyOmega</a> 開源項目和其他<a href='https://github.com/FelisCatus/SwitchyOmega/blob/master/AUTHORS'>開源軟體</a>。"
msgid "about_license"
msgstr "SwitchyOmega 是<a href='https://www.gnu.org/philosophy/free-sw.zh-tw.html'>自由軟體</a>,使用<a href='https://www.gnu.org/licenses/gpl.html'>GNU General Public License</a> 版本 3 及以上授權。"
msgstr "ZeroOmega 是<a href='https://www.gnu.org/philosophy/free-sw.zh-tw.html'>自由軟體</a>,使用<a href='https://www.gnu.org/licenses/gpl.html'>GNU General Public License</a> 版本 3 及以上授權。"

View File

@ -1,7 +1,7 @@
{
"manifest_version": 3,
"name": "Proxy SwitchyOmega 3 (ZeroOmega)",
"version": "3.3.18",
"version": "3.3.19",
"description": "__MSG_manifest_app_description__",
"icons": {
"16": "img/icons/omega-action-16.png",

View File

@ -1,7 +1,7 @@
{
"manifest_version": 3,
"name": "Proxy SwitchyOmega 3 (ZeroOmega)",
"version": "3.3.18",
"version": "3.3.19",
"description": "__MSG_manifest_app_description__",
"icons": {
"16": "img/icons/omega-action-16.png",

View File

@ -23,14 +23,22 @@ initContextMenu = ->
})
chrome.contextMenus.create({
id: 'reload'
title: 'Reload'
title: chrome.i18n.getMessage('popup_Reload')
contexts: ["action"]
})
if !!globalThis.localStorage
chrome.contextMenus.create({
id: 'options'
title: chrome.i18n.getMessage('popup_showOptions')
contexts: ["action"]
})
initContextMenu()
chrome.contextMenus?.onClicked.addListener((info, tab) ->
switch info.menuItemId
when 'options'
browser.runtime.openOptionsPage()
when 'reload'
chrome.runtime.reload()
when 'reportIssue'

View File

@ -1,8 +1,14 @@
FirefoxProxyImpl = require('./proxy_impl_firefox')
ListenerProxyImpl = require('./proxy_impl_listener')
SettingsProxyImpl = require('./proxy_impl_settings')
ScriptProxyImpl = require('./proxy_impl_script')
exports.proxyImpls = [ListenerProxyImpl, ScriptProxyImpl, SettingsProxyImpl]
exports.proxyImpls = [
FirefoxProxyImpl,
ListenerProxyImpl,
ScriptProxyImpl,
SettingsProxyImpl
]
exports.getProxyImpl = (log) ->
for Impl in exports.proxyImpls
if Impl.isSupported()

View File

@ -0,0 +1,121 @@
OmegaTarget = require('omega-target')
# The browser only accepts native promises as onRequest return values.
# DO NOT USE Bluebird Promises here!
NativePromise = Promise ? null
ProxyImpl = require('./proxy_impl')
blobUrl = null
class FirefoxProxyImpl extends ProxyImpl
@isSupported: ->
# chrome.contextMenus check is Android or PC,
# browser.proxy.settings doesn't support on Firefox Android
return !!chrome.contextMenus and
Promise? and
browser?.proxy?.onRequest? and
browser?.proxy?.settings
features: ['fullUrl', 'socks5Auth']
constructor: ->
super(arguments...)
@_optionsReady = new NativePromise (resolve) =>
@_optionsReadyCallback = resolve
# We want to register listeners early so that it can start blocking requests
# when starting the browser & extension, returning correct results later.
@_initRequestListeners()
_initRequestListeners: ->
browser.proxy.onRequest.addListener(@onRequest.bind(this),
{urls: ["<all_urls>"]})
browser.proxy.onError.addListener(@onError.bind(this))
watchProxyChange: (callback) -> null
applyProfile: (profile, state, options) ->
if blobUrl
URL.revokeObjectURL(blobUrl)
if browser.extension.isAllowedIncognitoAccess()
if profile.profileType is 'DirectProfile'
browser.proxy.settings.set({
value: {
proxyType: 'none'
}
})
else if profile.profileType is 'SystemProfile'
# Clear proxy settings, returning proxy control to Firefox.
browser.proxy.settings.clear({})
else
pacScript = @getProfilePacScript(profile, state, options)
blob = new Blob(
[pacScript],
{ type: 'application/x-ns-proxy-autoconfig' })
blobUrl = URL.createObjectURL(blob)
browser.proxy.settings.set({
value: {
proxyType: 'autoConfig',
autoConfigUrl: blobUrl
}
})
@_options = options
@_profile = profile
@_optionsReadyCallback?()
@_optionsReadyCallback = null
return @setProxyAuth(profile, options)
onRequest: (requestDetails) ->
return undefined if browser.extension.isAllowedIncognitoAccess()
# TODO
#return undefined
# The browser only recognizes native promises return values, not Bluebird.
return NativePromise.resolve(@_optionsReady.then(=>
request = OmegaPac.Conditions.requestFromUrl(requestDetails.url)
profile = @_profile
while profile
result = OmegaPac.Profiles.match(profile, request)
if not result
switch profile.profileType
when 'DirectProfile'
return {type: 'direct'}
when 'SystemProfile'
# Returning undefined means using the default proxy from previous.
# https://hg.mozilla.org/mozilla-central/rev/9f0ee2f582a2#l1.337
return undefined
else
throw new Error('Unsupported profile: ' + profile.profileType)
if Array.isArray(result)
proxy = result[2]
auth = result[3]
return @proxyInfo(proxy, auth) if proxy
next = result[0]
else if result.profileName
next = OmegaPac.Profiles.nameAsKey(result.profileName)
else
break
profile = OmegaPac.Profiles.byKey(next, @_options)
throw new Error('Profile not found: ' + next)
))
onError: (error) ->
@log.error(error)
proxyInfo: (proxy, auth) ->
proxyInfo =
type: proxy.scheme
host: proxy.host
port: proxy.port
if proxyInfo.type == 'socks5'
# MOZ: SOCKS5 proxies should be specified as "type": "socks".
# https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/proxy/ProxyInfo
proxyInfo.type = 'socks'
if auth
# Username & password here are only available for SOCKS5.
# https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/proxy/ProxyInfo
# HTTP proxy auth must be handled via webRequest.onAuthRequired.
proxyInfo.username = auth.username
proxyInfo.password = auth.password
if proxyInfo.type == 'socks'
# Enable SOCKS remote DNS.
# TODO(catus): Maybe allow the users to configure this?
proxyInfo.proxyDNS = true
# TODO(catus): Maybe allow proxyDNS for socks4? Server may support SOCKS4a.
# It cannot default to true though, since SOCKS4 servers that does not have
# the SOCKS4a extension may simply refuse to work.
return [proxyInfo]
module.exports = FirefoxProxyImpl

View File

@ -129,14 +129,14 @@ module.controller 'PopupCtrl', ($scope, $window, $q, omegaTarget,
$window.top.close()
$scope.openConditionHelp = ->
pname = encodeURIComponent($scope.currentProfileName)
$scope.openOptions("#/profile/#{pname}?help=condition")
$scope.openOptions("#!/profile/#{pname}?help=condition")
$scope.applyProfile = (profile) ->
next = ->
if profile.profileType == 'SwitchProfile'
return omegaTarget.state('web.switchGuide').then (switchGuide) ->
if switchGuide == 'showOnFirstUse'
return $scope.openOptions("#/profile/#{profile.name}")
return $scope.openOptions("#!/profile/#{profile.name}")
if not refreshOnProfileChange
omegaTarget.applyProfileNoReply(profile.name)
apply = next()

View File

@ -35,7 +35,7 @@ html(lang='en' ng-controller='MasterCtrl' ng-csp)
li(ui-sref-active='active'): a(ui-sref='theme')
span.glyphicon.glyphicon-adjust
= ' '
| {{'Theme'}}
| {{'options_theme' | tr}}
li.divider
li.nav-header {{'options_navHeader_profiles' | tr}}
li(ui-sref-active='active'): a(ui-sref='builtin')

View File

@ -167,7 +167,7 @@ html(lang='en' ng-app='omegaPopup' ng-controller='PopupCtrl' ng-csp)
| {{'Add temp condition'}}
button.btn.btn-primary(type='submit' ng-show='!!currentProfileCanAddRule') {{'popup_addCondition' | tr}}
button.btn.btn-default.pull-right(type='button' ng-show='!currentProfileCanAddRule'
ng-click='openOptions("#/general")') {{'popup_configureMonitorWebRequests' | tr}}
ng-click='openOptions("#!/general")') {{'popup_configureMonitorWebRequests' | tr}}
script(src='js/log_error.js')
script(src='lib/iframeResizer/iframeResizer.contentWindow.min.js')

View File

@ -2,10 +2,48 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<title>Permissions required</title>
<style>
*{
box-sizing: border-box;
}
html,body{
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
.incognito-access-img-container{
margin-right: 20px;
}
.incognito-access-img{
width: 100%;
max-width: 100%;
border: 2px solid;
border-radius: 5px;
height: auto;
}
</style>
</head>
<body>
<button id="grant-permissions-btn">grant site permissions</button>
<body style="opacity: 0">
<ol style="margin-right: 20px;">
<li class="site-permissions-required">
<div>
<p>
<strong>Site permissions is required.</strong> The Api <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/proxy/onRequest">proxy.onRequest</a> requires site permissions. <button id="grant-permissions-btn">grant site permissions</button>
</p>
</div>
</li>
<li class="incognito-access-required">
<div>
<p><strong>IncognitoAccess is required.</strong>According to <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/proxy/settings" target="_blank"/>Firefox API</a> requirements.Changing proxy settings requires private browsing window access.</p>
<div class="incognito-access-img-container">
<img class="incognito-access-img" src="./img/AllowedIncognitoAccess.png"/>
</div>
</div>
</li>
</ol>
<dialog opened class="loading-dialog">loading...</dialog>
<script src="../js/omega_target_popup.js"></script>
<script src="js/style.js"></script>
<script src="js/grant_permissions.js"></script>

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

View File

@ -1,9 +1,32 @@
window.addEventListener('load', async function(){
const dialogEl = document.querySelector('.loading-dialog')
dialogEl.showModal()
dialogEl.addEventListener('cancel', (e)=>e.preventDefault())
const permissionValue = {origins: ["<all_urls>"]}
const hasPermission = await browser.permissions.contains(permissionValue);
const isAllowedIncognitoAccess = !chrome.contextMenus || await browser.extension.isAllowedIncognitoAccess()
if (hasPermission) {
document.querySelector('.site-permissions-required').remove()
}
if (isAllowedIncognitoAccess) {
document.querySelector('.incognito-access-required').remove()
}
dialogEl.remove()
document.body.style.opacity = '';
}, {once: true})
const btn = document.querySelector('#grant-permissions-btn')
btn.onclick = async ()=>{
const permissionValue = {origins: ["<all_urls>"]}
const hasPermission = await browser.permissions.request(permissionValue);
const isAllowedIncognitoAccess = !chrome.contextMenus || await browser.extension.isAllowedIncognitoAccess()
if (hasPermission) {
document.querySelector('.site-permissions-required')?.remove()
}
if (isAllowedIncognitoAccess) {
document.querySelector('.incognito-access-required')?.remove()
}
if (hasPermission && isAllowedIncognitoAccess) {
location.href = 'index.html'
}
}

View File

@ -25,11 +25,14 @@ $script('../js/omega_target_popup.js', 'om-target', function() {
}
const permissionValue = {origins: ["<all_urls>"]}
if (globalThis.browser && browser.proxy && browser.proxy.onRequest){
chrome.permissions.contains(permissionValue).then((hasPermission)=>{
if (!hasPermission) {
location.href = 'grant_permissions.html'
} else {
Promise.all([browser.permissions.contains(permissionValue), browser.extension.isAllowedIncognitoAccess()])
.then(([sitePermissions, isAllowedIncognitoAccess])=>{
// chrome.contextMenus check is Android or PC,
// browser.proxy.settings doesn't support Android
if (sitePermissions && (!chrome.contextMenus || isAllowedIncognitoAccess)) {
init();
} else {
location.href = 'grant_permissions.html'
}
})
} else {