summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-shadowsocks-libev/po
diff options
context:
space:
mode:
Diffstat (limited to 'applications/luci-app-shadowsocks-libev/po')
-rw-r--r--applications/luci-app-shadowsocks-libev/po/ar/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/bg/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/bn_BD/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/ca/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/cs/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/da/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/de/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/el/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/en/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/es/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/fi/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/fr/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/he/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/hi/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/hu/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/it/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/ja/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/ko/shadowsocks-libev.po64
-rw-r--r--applications/luci-app-shadowsocks-libev/po/mr/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/ms/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/nb_NO/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/pl/shadowsocks-libev.po76
-rw-r--r--applications/luci-app-shadowsocks-libev/po/pt/shadowsocks-libev.po64
-rw-r--r--applications/luci-app-shadowsocks-libev/po/pt_BR/shadowsocks-libev.po64
-rw-r--r--applications/luci-app-shadowsocks-libev/po/ro/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/ru/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/sk/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/sv/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/templates/shadowsocks-libev.pot56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/tr/shadowsocks-libev.po65
-rw-r--r--applications/luci-app-shadowsocks-libev/po/uk/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/vi/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/zh_Hans/shadowsocks-libev.po62
-rw-r--r--applications/luci-app-shadowsocks-libev/po/zh_Hant/shadowsocks-libev.po62
34 files changed, 1332 insertions, 637 deletions
diff --git a/applications/luci-app-shadowsocks-libev/po/ar/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/ar/shadowsocks-libev.po
index d0b5d1636b..f7956f2647 100644
--- a/applications/luci-app-shadowsocks-libev/po/ar/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/ar/shadowsocks-libev.po
@@ -23,11 +23,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "إعدادات متقدمة"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -35,7 +35,7 @@ msgstr ""
msgid "Cancel"
msgstr "إلغاء"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -45,13 +45,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -77,23 +77,23 @@ msgstr "تعطيل"
msgid "Disabled"
msgstr "غير مفعل"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -117,21 +117,41 @@ msgstr ""
msgid "Enabled"
msgstr "مفعل"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -291,19 +311,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/bg/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/bg/shadowsocks-libev.po
index 5f499a3f72..9c1a07e64b 100644
--- a/applications/luci-app-shadowsocks-libev/po/bg/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/bg/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "Разширени настройки"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr "Отмени"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr "Забрани"
msgid "Disabled"
msgstr "Забранен"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr ""
msgid "Enabled"
msgstr "Разрешен"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/bn_BD/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/bn_BD/shadowsocks-libev.po
index 3758186015..50bd54ea12 100644
--- a/applications/luci-app-shadowsocks-libev/po/bn_BD/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/bn_BD/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "উন্নত সেটিংস"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr "বাতিল করুন"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr ""
msgid "Disabled"
msgstr "নিষ্ক্রিয়"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr ""
msgid "Enabled"
msgstr "সক্রিয়"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/ca/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/ca/shadowsocks-libev.po
index 11ac4c8070..5a6848596b 100644
--- a/applications/luci-app-shadowsocks-libev/po/ca/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/ca/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "Configuració avançada"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr "Cancel•lar"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr ""
msgid "Disabled"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr ""
msgid "Enabled"
msgstr "Activat"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/cs/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/cs/shadowsocks-libev.po
index 043ba2cb17..0823299578 100644
--- a/applications/luci-app-shadowsocks-libev/po/cs/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/cs/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr "<schováno>"
msgid "Advanced Settings"
msgstr "Pokročilá nastavení"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr "Storno"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr "Zakázat"
msgid "Disabled"
msgstr "Zakázáno"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr "Povolit/Zakázat"
msgid "Enabled"
msgstr "Zapnuto"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/da/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/da/shadowsocks-libev.po
index 9b464304dd..db9235a175 100644
--- a/applications/luci-app-shadowsocks-libev/po/da/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/da/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr ""
msgid "Disabled"
msgstr "Deaktiveret"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr ""
msgid "Enabled"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/de/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/de/shadowsocks-libev.po
index fbdec43a75..66916e6dfe 100644
--- a/applications/luci-app-shadowsocks-libev/po/de/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/de/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr "<verborgen>"
msgid "Advanced Settings"
msgstr "Erweiterte Einstellungen"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr "ss-redir-Bypass für Pakete mit Zieladressen in dieser Liste"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr "ss-redir-Bypass für Pakete mit Quell-Adressen in dieser Liste"
@@ -34,7 +34,7 @@ msgstr "ss-redir-Bypass für Pakete mit Quell-Adressen in dieser Liste"
msgid "Cancel"
msgstr "Abbrechen"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -46,7 +46,7 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr "Standardaktion für lokal generierte TCP-Pakete"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
@@ -54,7 +54,7 @@ msgstr ""
"Standardaktion für Pakete deren Ziel-Adresse auf keine der Einträge in der "
"Ziel-IP Liste passt"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -84,23 +84,23 @@ msgstr "Deaktivieren"
msgid "Disabled"
msgstr "Deaktiviert"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr "Ziel-Standard"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr "Dst IP/Net-Bypass"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr "Dst IP/Netz Bypass-Datei"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr "Dst IP/Netz Forward"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr "Dst IP/Netz Forward-Datei"
@@ -124,21 +124,41 @@ msgstr "Aktivieren/Deaktivieren"
msgid "Enabled"
msgstr "Aktiviert"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr "Forward via ss-redir für Pakete mit ZIel-Adresse in dieser Liste"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr "Forward via ss-redir für Pakete mit Quell-Adresse in dieser Liste"
@@ -308,19 +328,19 @@ msgstr "Shadowsocks-libev"
msgid "Source Settings"
msgstr "Quell-Einstellungen"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr "Src-Default"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr "Src IP/Net Bypass"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr "Src IP/Net Checkdst"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr "Src IP/Net Forward"
diff --git a/applications/luci-app-shadowsocks-libev/po/el/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/el/shadowsocks-libev.po
index c43204ebf3..a9656dbd1b 100644
--- a/applications/luci-app-shadowsocks-libev/po/el/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/el/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "Ρυθμίσεις για προχωρημένους"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr "Ακύρωση"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr ""
msgid "Disabled"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr ""
msgid "Enabled"
msgstr "Ενεργοποιήθηκε"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/en/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/en/shadowsocks-libev.po
index 7f237d8559..f2a48bd707 100644
--- a/applications/luci-app-shadowsocks-libev/po/en/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/en/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "Advanced Settings"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr ""
msgid "Disabled"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr ""
msgid "Enabled"
msgstr "Enabled"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/es/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/es/shadowsocks-libev.po
index bf8eb0b6f4..679e1ca374 100644
--- a/applications/luci-app-shadowsocks-libev/po/es/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/es/shadowsocks-libev.po
@@ -25,11 +25,11 @@ msgstr "<oculto>"
msgid "Advanced Settings"
msgstr "Configuración avanzada"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr "Omitir ss-redir para paquetes con dirección dst en esta lista"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr "Omitir ss-redir para paquetes con dirección src en esta lista"
@@ -37,7 +37,7 @@ msgstr "Omitir ss-redir para paquetes con dirección src en esta lista"
msgid "Cancel"
msgstr "Cancelar"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -49,7 +49,7 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr "Acción predeterminada para paquetes TCP generados localmente"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
@@ -57,7 +57,7 @@ msgstr ""
"Acción predeterminada para paquetes cuya dirección dst no coincide con "
"ninguna de la lista dst ip"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -87,23 +87,23 @@ msgstr "Desactivar"
msgid "Disabled"
msgstr "Desactivado"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr "Dst predeterminado"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr "Omitir Dst ip/net"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr "Omitir archivo Dst ip/net"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr "Reenviar Dst ip/net"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr "Reenviar archivo Dst ip/net"
@@ -127,26 +127,46 @@ msgstr "Activar/Desactivar"
msgid "Enabled"
msgstr "Activado"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
"Archivo que contiene ip/net para los fines como con <em>Omitir Dst ip/net</"
"em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
"Archivo que contiene ip / net para los fines como con <em>Reenviar Dst ip/"
"net</em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
"Reenviar a través de ss-redir para paquetes con dirección dst en esta lista"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
"Reenviar a través de ss-redir para paquetes con dirección src en esta lista"
@@ -321,19 +341,19 @@ msgstr "Shadowsocks-libev"
msgid "Source Settings"
msgstr "Configuración de fuente"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr "Src predeterminado"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr "Omitir Src ip/net"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr "Src ip/net checkdst"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr "Reenviar Src ip/net"
diff --git a/applications/luci-app-shadowsocks-libev/po/fi/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/fi/shadowsocks-libev.po
index ee49409041..20073ac048 100644
--- a/applications/luci-app-shadowsocks-libev/po/fi/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/fi/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "Lisäasetukset"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr "Peruuta"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr "Poista käytöstä"
msgid "Disabled"
msgstr "Pois käytöstä"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr ""
msgid "Enabled"
msgstr "Käytössä"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/fr/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/fr/shadowsocks-libev.po
index 6afde4b39a..a5a4f276ca 100644
--- a/applications/luci-app-shadowsocks-libev/po/fr/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/fr/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr "<masqué>"
msgid "Advanced Settings"
msgstr "Paramètres avancés"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr "Annuler"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr "Action par défaut pour les paquets TCP générés localement"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr "Désactiver"
msgid "Disabled"
msgstr "Désactivé"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr "Activer/Désactiver"
msgid "Enabled"
msgstr "Activé"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -291,19 +311,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/he/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/he/shadowsocks-libev.po
index efd08e9607..2e8cb115aa 100644
--- a/applications/luci-app-shadowsocks-libev/po/he/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/he/shadowsocks-libev.po
@@ -23,11 +23,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "הגדרות מתקדמות"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -35,7 +35,7 @@ msgstr ""
msgid "Cancel"
msgstr "ביטול"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -45,13 +45,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -77,23 +77,23 @@ msgstr ""
msgid "Disabled"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -117,21 +117,41 @@ msgstr ""
msgid "Enabled"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -291,19 +311,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/hi/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/hi/shadowsocks-libev.po
index 7cc9f4d516..fedd795bac 100644
--- a/applications/luci-app-shadowsocks-libev/po/hi/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/hi/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr ""
msgid "Disabled"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr ""
msgid "Enabled"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/hu/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/hu/shadowsocks-libev.po
index 5fd496d903..566d43a1d6 100644
--- a/applications/luci-app-shadowsocks-libev/po/hu/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/hu/shadowsocks-libev.po
@@ -22,13 +22,13 @@ msgstr "<rejtett>"
msgid "Advanced Settings"
msgstr "Haladó Beállítások"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
"Az ss-átirányítás átküldése az ebben a listában lévő célcímmel rendelkező "
"csomagoknál"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
"Az ss-átirányítás átküldése az ebben a listában lévő forráscímmel rendelkező "
@@ -38,7 +38,7 @@ msgstr ""
msgid "Cancel"
msgstr "Mégse"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -50,7 +50,7 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr "Alapértelmezett művelet a helyileg előállított TCP-csomagoknál"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
@@ -58,7 +58,7 @@ msgstr ""
"Alapértelmezett művelet azoknál a csomagoknál, amelyek célcíme nem egyezik a "
"cél IP-lista egyikével sem"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -88,23 +88,23 @@ msgstr "Letiltás"
msgid "Disabled"
msgstr "Letiltva"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr "Cél alapértelmezettje"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr "Cél IP/hálózat átmenő"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr "Cél IP/hálózat átmenő fájl"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr "Cél IP/hálózat továbbítás"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr "Cél IP/hálózat továbbítás fájl"
@@ -128,27 +128,47 @@ msgstr "Engedélyezés vagy letiltás"
msgid "Enabled"
msgstr "Engedélyezve"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
"IP-t/hálózatot tartalmazó fájl olyan célokhoz mint a <em>Cél IP/hálózat "
"átmenő</em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
"IP-t/hálózatot tartalmazó fájl olyan célokhoz mint a <em>Cél IP/hálózat "
"továbbítás</em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
"Továbbítás ss-átirányításon keresztül az ebben a listában lévő célcímmel "
"rendelkező csomagoknál"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
"Továbbítás ss-átirányításon keresztül az ebben a listában lévő forráscímmel "
@@ -325,19 +345,19 @@ msgstr "Shadowsocks-libev"
msgid "Source Settings"
msgstr "Forrás beállításai"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr "Forrás alapértelmezettje"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr "Forrás IP/hálózat átmenő"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr "Forrás IP/hálózat célellenőrzés"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr "Forrás IP/hálózat továbbítás"
diff --git a/applications/luci-app-shadowsocks-libev/po/it/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/it/shadowsocks-libev.po
index f0187dd374..5ad83826ad 100644
--- a/applications/luci-app-shadowsocks-libev/po/it/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/it/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "Impostazioni Avanzate"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr "Annulla"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr "Disabilita"
msgid "Disabled"
msgstr "Disabilitato"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr "Abilita/Disabilita"
msgid "Enabled"
msgstr "Abilitato"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/ja/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/ja/shadowsocks-libev.po
index d4a93760f5..689a105186 100644
--- a/applications/luci-app-shadowsocks-libev/po/ja/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/ja/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "詳細設定"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr "キャンセル"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr "無効"
msgid "Disabled"
msgstr "無効"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr ""
msgid "Enabled"
msgstr "有効"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/ko/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/ko/shadowsocks-libev.po
index d7a31ff023..cfa944dec1 100644
--- a/applications/luci-app-shadowsocks-libev/po/ko/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/ko/shadowsocks-libev.po
@@ -1,14 +1,14 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2021-06-07 10:49+0000\n"
-"Last-Translator: Sunggu Choi <dkaost@outlook.com>\n"
+"PO-Revision-Date: 2022-03-26 23:10+0000\n"
+"Last-Translator: dikastia <dikastia@gmail.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/openwrt/"
"luciapplicationsshadowsocks-libev/ko/>\n"
"Language: ko\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.7-dev\n"
+"X-Generator: Weblate 4.12-dev\n"
#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/instances.js:45
msgid "-- instance type --"
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "고급 설정"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr "취소"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr ""
msgid "Disabled"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr ""
msgid "Enabled"
msgstr "활성화"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -149,7 +169,7 @@ msgstr ""
#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/servers.js:51
msgid "Import"
-msgstr ""
+msgstr "가져오기"
#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/servers.js:22
#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/servers.js:59
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/mr/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/mr/shadowsocks-libev.po
index a707de1a2b..14a0851e8f 100644
--- a/applications/luci-app-shadowsocks-libev/po/mr/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/mr/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "प्रगत सेटिंग्ज"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr "रद्द करा"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr "अक्षम करा"
msgid "Disabled"
msgstr "अक्षम"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr ""
msgid "Enabled"
msgstr "सक्षम केले"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/ms/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/ms/shadowsocks-libev.po
index eb4c22925e..43b40cd92e 100644
--- a/applications/luci-app-shadowsocks-libev/po/ms/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/ms/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "Tetapan Lanjutan"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr ""
msgid "Disabled"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr ""
msgid "Enabled"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/nb_NO/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/nb_NO/shadowsocks-libev.po
index cf88386ec8..90be6f1ce1 100644
--- a/applications/luci-app-shadowsocks-libev/po/nb_NO/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/nb_NO/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "Avanserte innstillinger"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr "Avbryt"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr "Skru av"
msgid "Disabled"
msgstr "Avskrudd"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr ""
msgid "Enabled"
msgstr "Påskrudd"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/pl/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/pl/shadowsocks-libev.po
index 412843e2bd..27a3da42eb 100644
--- a/applications/luci-app-shadowsocks-libev/po/pl/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/pl/shadowsocks-libev.po
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2020-08-06 15:32+0000\n"
-"Last-Translator: Marcin Net <marcin.net@linux.pl>\n"
+"PO-Revision-Date: 2022-03-26 11:55+0000\n"
+"Last-Translator: Matthaiks <kitynska@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/openwrt/"
"luciapplicationsshadowsocks-libev/pl/>\n"
"Language: pl\n"
@@ -9,7 +9,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.12-dev\n"
#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/instances.js:45
msgid "-- instance type --"
@@ -23,11 +23,11 @@ msgstr "<ukryte>"
msgid "Advanced Settings"
msgstr "Ustawienia zaawansowane"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr "Pomiń ss-redir dla pakietów z adresem dst na tej liście"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr "Pomiń ss-redir dla pakietów z adresem src na tej liście"
@@ -35,7 +35,7 @@ msgstr "Pomiń ss-redir dla pakietów z adresem src na tej liście"
msgid "Cancel"
msgstr "Anuluj"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -47,7 +47,7 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr "Domyślna akcja dla lokalnie generowanych pakietów TCP"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
@@ -55,7 +55,7 @@ msgstr ""
"Domyślna akcja dla pakietów, których adres dst nie pasuje do żadnej z list "
"dst ip"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -85,25 +85,25 @@ msgstr "Wyłącz"
msgid "Disabled"
msgstr "Wyłączone"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr "Domyślny Dst"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr "Obejście dst ip/net"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr "Plik obejściowy dst ip/net"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
-msgstr "Przekazuj Dst ip/net"
+msgstr "Przekazuj dst ip/net"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
-msgstr "Plik przekazywania Dst ip/net"
+msgstr "Plik przekazywania dst ip/net"
#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/shadowsocks-libev.js:195
msgid "Enable SO_REUSEPORT"
@@ -125,24 +125,48 @@ msgstr "Włącz/Wyłącz"
msgid "Enabled"
msgstr "Włączone"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+"Dodatkowe wyrażenie nftables do dopasowywania ruchu TCP, np. \"tcp dport { "
+"80, 443 }\""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+"Dodatkowe wyrażenie nftables do dopasowywania ruchu UDP, np. \"udp dport { "
+"53 }\""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr "Dodatkowe wyrażenie TCP"
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr "Dodatkowe wyrażenie UDP"
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
"Plik zawierający ip/net dla celów jak w przypadku <em>Dst ip/net bypass</em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
"Plik zawierający ip/net dla celów jak w przypadku <em>Dst ip/net forward</em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
"Przekazuj dalej przez SS-redir dla pakietów z adresem DST na tej liście"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
"Przekazuj dalej przez SS-redir dla pakietów z adresem src na tej liście"
@@ -313,21 +337,21 @@ msgstr "Shadowsocks-libev"
msgid "Source Settings"
msgstr "Ustawienia źródła"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr "Domyślnie src"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
-msgstr "Obejście ip/sieci Src"
+msgstr "Obejście src ip/net"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
-msgstr "Src ip/net checkdst"
+msgstr "Checkdst src ip/net"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
-msgstr "Przekazuj Src ip/net"
+msgstr "Przekazuj src ip/net"
#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/instances.js:94
msgid "The IPv4 address ss-server will initiate IPv4 connections from"
diff --git a/applications/luci-app-shadowsocks-libev/po/pt/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/pt/shadowsocks-libev.po
index 4e929e4a88..f3f9f80294 100644
--- a/applications/luci-app-shadowsocks-libev/po/pt/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/pt/shadowsocks-libev.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2020-11-05 13:59+0000\n"
+"PO-Revision-Date: 2022-03-26 23:10+0000\n"
"Last-Translator: ssantos <ssantos@web.de>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/openwrt/"
"luciapplicationsshadowsocks-libev/pt/>\n"
@@ -8,7 +8,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.3.2-dev\n"
+"X-Generator: Weblate 4.12-dev\n"
#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/instances.js:45
msgid "-- instance type --"
@@ -22,11 +22,11 @@ msgstr "<oculto>"
msgid "Advanced Settings"
msgstr "Definições Avançadas"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr "Contornar ss-redir para pacotes com endereço dst nesta lista"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr "Contornar ss-redir para pacotes com endereço src nesta lista"
@@ -34,7 +34,7 @@ msgstr "Contornar ss-redir para pacotes com endereço src nesta lista"
msgid "Cancel"
msgstr "Cancelar"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -46,7 +46,7 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr "Ação padrão para pacotes TCP gerados localmente"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
@@ -54,7 +54,7 @@ msgstr ""
"Ação padrão para pacotes cujo endereço dst não corresponde com nenhum da "
"lista dst ip"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -84,23 +84,23 @@ msgstr "Desativar"
msgid "Disabled"
msgstr "Desativado"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr "Dst padrão"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr "Contorno dst ip/net"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr "Ficheiro de contorno dst ip/net"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr "Forward de dst ip/net"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr "Ficheiro de forward dst ip/net"
@@ -124,25 +124,49 @@ msgstr "Ativar/Desativar"
msgid "Enabled"
msgstr "Ativado"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+"Expressão adicional do nftables para combinar tráficos de tcp, por exemplo, "
+"\"tcp dport { 80, 443 }\""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+"Expressão adicional do nftables para combinar tráficos de udp, por exemplo, "
+"\"udp dport { 53 }\""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr "Expressão adicional do tcp"
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr "Expressão adicional do udp"
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
"Ficheiro contendo ip/net para propósitos como com <em>Contorno de dst ip/"
"net</em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
"Ficheiro contendo ip/net para propósitos como com <em>Forward dst ip/net</em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
"Encaminhar através do ss-redir para pacotes com endereço dst nesta lista"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
"Encaminhar através do ss-redir para pacotes com endereço src nesta lista"
@@ -314,19 +338,19 @@ msgstr "Shadowsocks-libev"
msgid "Source Settings"
msgstr "Configurações de Origem"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr "Src padrão"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr "Contorno src ip/net"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr "Checkdst src ip/net"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr "Forward src ip/net"
diff --git a/applications/luci-app-shadowsocks-libev/po/pt_BR/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/pt_BR/shadowsocks-libev.po
index 9dd6f23e37..b62f3fbe94 100644
--- a/applications/luci-app-shadowsocks-libev/po/pt_BR/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/pt_BR/shadowsocks-libev.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2021-09-06 16:34+0000\n"
+"PO-Revision-Date: 2022-03-26 23:10+0000\n"
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"openwrt/luciapplicationsshadowsocks-libev/pt_BR/>\n"
@@ -8,7 +8,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.8.1-dev\n"
+"X-Generator: Weblate 4.12-dev\n"
#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/instances.js:45
msgid "-- instance type --"
@@ -22,13 +22,13 @@ msgstr "<oculto>"
msgid "Advanced Settings"
msgstr "Configurações Avançadas"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
"Ignore o ss-redir para pacotes com endereço de destino cadastradas nesta "
"lista"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
"Ignore o ss-redir para pacotes com endereço de origem cadastradas nesta lista"
@@ -37,7 +37,7 @@ msgstr ""
msgid "Cancel"
msgstr "Cancelar"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -49,7 +49,7 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr "Ação predefinida para pacotes TCP gerados localmente"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
@@ -57,7 +57,7 @@ msgstr ""
"Ação predefinida para pacotes cujo endereço de destino não correspondam a "
"qualquer uma da lista de endereços IP de destino"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -87,23 +87,23 @@ msgstr "Desativar"
msgid "Disabled"
msgstr "Desativado"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr "Destino padrão"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr "Bypass para destino de IP/Rede"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr "Arquivo de bypass para destino de IP/Rede"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr "Destino de encaminhamento de IP/Rede"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr "Arquivo de destino de encaminhamento de IP/Rede"
@@ -127,27 +127,51 @@ msgstr "Ativar/Desativar"
msgid "Enabled"
msgstr "Ativado"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+"Expressões extras do nftables que correspondam aos tráfegos tcp, por exemplo "
+", \"tcp dport { 80, 443 }\""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+"Expressões extras do nftables extra que correspondam aos tráfegos udp, por "
+"exemplo , \"udp dport { 53 }\""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr "Expressão extra do tcp"
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr "Expressão extra do udp"
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
"O arquivo contendo o IP/Rede com propósito de <em>bypass do endereço IP/Rede "
"para o destino</em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
"O arquivo que contenha o IP/Rede com o propósito de <em>encaminhar o "
"endereço IP/Rede para o destino</em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
"Encaminhamento através do ss-redir para pacotes com endereço de destino que "
"estejam nesta lista"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
"Encaminhamento através do ss-redir para pacotes com endereço de origem que "
@@ -320,19 +344,19 @@ msgstr "Shadowsocks-libev"
msgid "Source Settings"
msgstr "Configurações de Origem"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr "Predefinição de origem"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr "Bypass de IP/Rede de origem"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr "Verificação checkdst do IP/Rede de origem"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr "Encaminhamento de origem do IP/Rede"
diff --git a/applications/luci-app-shadowsocks-libev/po/ro/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/ro/shadowsocks-libev.po
index b6777ec5f6..a6d6df92ca 100644
--- a/applications/luci-app-shadowsocks-libev/po/ro/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/ro/shadowsocks-libev.po
@@ -23,11 +23,11 @@ msgstr "<ascunse>"
msgid "Advanced Settings"
msgstr "Setări avansate"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr "Bypass ss-redir pentru pachetele cu adresa dst din această listă"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr "Bypass ss-redir pentru pachetele cu adresa src din această listă"
@@ -35,7 +35,7 @@ msgstr "Bypass ss-redir pentru pachetele cu adresa src din această listă"
msgid "Cancel"
msgstr "Anulare"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -47,7 +47,7 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr "Acțiune implicită pentru pachetele TCP generate local"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
@@ -55,7 +55,7 @@ msgstr ""
"Acțiune implicită pentru pachetele a căror adresă dst nu se potrivește cu "
"niciuna din lista dst ip"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -85,23 +85,23 @@ msgstr "Dezactivați"
msgid "Disabled"
msgstr "Dezactivat"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr "Dst implicit"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr "Dst ip/net bypass"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr "Fișier de bypass ip/net Dst"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr "Dst ip/rețea de redirecționare"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr "Fișier de redirecționare Dst ip/net"
@@ -125,24 +125,44 @@ msgstr "Activare/Dezactivare"
msgid "Enabled"
msgstr "Activat"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
"Fișier care conține ip/net în scopuri similare cu <em>Dst ip/net bypass</em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
"Fișier care conține ip/net în scopuri similare cu <em>Dst ip/net forward</em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
"Redirecționare prin ss-redir pentru pachetele cu adresa dst din această listă"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
"Redirecționează prin ss-redir pentru pachetele cu adresa src din această "
@@ -318,19 +338,19 @@ msgstr "Shadowsocks-libev"
msgid "Source Settings"
msgstr "Setări sursă"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr "Src implicit"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr "Src ip/Net Bypass"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr "Src ip/rețea checkdst"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr "Src IP/rețea redirecționare"
diff --git a/applications/luci-app-shadowsocks-libev/po/ru/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/ru/shadowsocks-libev.po
index 3a779c67b8..895a7a9d5f 100644
--- a/applications/luci-app-shadowsocks-libev/po/ru/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/ru/shadowsocks-libev.po
@@ -23,11 +23,11 @@ msgstr "<скрытый>"
msgid "Advanced Settings"
msgstr "Дополнительные настройки"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr "Обойти ss-redir для пакетов с адресом src в этом списке"
@@ -35,7 +35,7 @@ msgstr "Обойти ss-redir для пакетов с адресом src в э
msgid "Cancel"
msgstr "Отмена"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -45,13 +45,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr "Действие по умолчанию для локально сгенерированных TCP-пакетов"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -77,23 +77,23 @@ msgstr "Отключить"
msgid "Disabled"
msgstr "Отключено"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -117,21 +117,41 @@ msgstr "Включить/Выключить"
msgid "Enabled"
msgstr "Включено"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -291,19 +311,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/sk/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/sk/shadowsocks-libev.po
index ce9369e638..3efdc8351b 100644
--- a/applications/luci-app-shadowsocks-libev/po/sk/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/sk/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "Pokročilé nastavenia"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr "Zrušiť"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr "Zakázať"
msgid "Disabled"
msgstr "Zakázané"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr "Zakázať/Povoliť"
msgid "Enabled"
msgstr "Povolené"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/sv/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/sv/shadowsocks-libev.po
index 0d3ac1ada4..3a90a7c3a6 100644
--- a/applications/luci-app-shadowsocks-libev/po/sv/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/sv/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "Avancerade inställningar"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr "Avbryt"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr "Inaktivera"
msgid "Disabled"
msgstr "Avaktiverad"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr "Aktivera/Inaktivera"
msgid "Enabled"
msgstr "Aktiverad"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/templates/shadowsocks-libev.pot b/applications/luci-app-shadowsocks-libev/po/templates/shadowsocks-libev.pot
index a61ed488f9..698eec7068 100644
--- a/applications/luci-app-shadowsocks-libev/po/templates/shadowsocks-libev.pot
+++ b/applications/luci-app-shadowsocks-libev/po/templates/shadowsocks-libev.pot
@@ -13,11 +13,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -25,7 +25,7 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -35,13 +35,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -67,23 +67,23 @@ msgstr ""
msgid "Disabled"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -107,21 +107,41 @@ msgstr ""
msgid "Enabled"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -281,19 +301,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/tr/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/tr/shadowsocks-libev.po
index b4f43fcf24..86d9473c94 100644
--- a/applications/luci-app-shadowsocks-libev/po/tr/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/tr/shadowsocks-libev.po
@@ -1,14 +1,14 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2021-05-15 14:32+0000\n"
-"Last-Translator: semih <semiht@gmail.com>\n"
+"PO-Revision-Date: 2022-03-26 11:55+0000\n"
+"Last-Translator: Oğuz Ersen <oguz@ersen.moe>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/openwrt/"
"luciapplicationsshadowsocks-libev/tr/>\n"
"Language: tr\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.7-dev\n"
+"X-Generator: Weblate 4.12-dev\n"
#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/instances.js:45
msgid "-- instance type --"
@@ -22,11 +22,11 @@ msgstr "<gizli>"
msgid "Advanced Settings"
msgstr "Gelişmiş Ayarlar"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr "Bu listedeki dst adresli paketler için ss-redir'i atla"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr "Bu listedeki src adresli paketler için ss-redir'i atla"
@@ -34,7 +34,7 @@ msgstr "Bu listedeki src adresli paketler için ss-redir'i atla"
msgid "Cancel"
msgstr "İptal"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -46,7 +46,7 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr "Yerel olarak oluşturulan TCP paketleri için varsayılan eylem"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
@@ -54,7 +54,7 @@ msgstr ""
"Dst adresi herhangi bir dst ip listesiyle eşleşmeyen paketler için "
"varsayılan eylem"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -84,23 +84,23 @@ msgstr "Devre dışı bırak"
msgid "Disabled"
msgstr "Devre dışı"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr "Dst varsayılanı"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr "Dst ip/net baypas"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr "Dst ip/net baypas dosyası"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr "Dst ip/net yönlendirme"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr "Dst ip/net yönlendirme dosyası"
@@ -124,21 +124,44 @@ msgstr "Etkinleştir/Devre dışı bırak"
msgid "Enabled"
msgstr "Etkin"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+"Eşleşen tcp trafikleri için ek nftables ifadesi, örn. \"tcp dport {80, 443 }"
+"\""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+"Eşleşen udp trafikleri için ek nftables ifadesi, örn. \"udp dport { 53 }\""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr "Ek tcp ifadesi"
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr "Ek udp ifadesi"
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr "<em>Dst ip/net bypass</em> ile olduğu gibi ip/net içeren dosya"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr "<em>Dst ip/net forward</em> ile olduğu gibi ip/net içeren dosya"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr "Bu listedeki dst adresli paketler için ss-yeniden yönlendirmeyle ilet"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
"Bu listedeki src adresine sahip paketler için ss-yeniden yönlendirmeyle ilet"
@@ -309,19 +332,19 @@ msgstr "Shadowsocks-libev"
msgid "Source Settings"
msgstr "Kaynak Ayarları"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr "Src varsayılanı"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr "Src ip/net baypas"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr "Src ip/net checkdst"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr "Src ip/net forward"
diff --git a/applications/luci-app-shadowsocks-libev/po/uk/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/uk/shadowsocks-libev.po
index 032a7667ba..eafa7a67fe 100644
--- a/applications/luci-app-shadowsocks-libev/po/uk/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/uk/shadowsocks-libev.po
@@ -23,11 +23,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "Додаткові налаштування"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -35,7 +35,7 @@ msgstr ""
msgid "Cancel"
msgstr "Скасувати"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -45,13 +45,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -77,23 +77,23 @@ msgstr "Вимкнути"
msgid "Disabled"
msgstr "Вимкнено"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -117,21 +117,41 @@ msgstr "Увімкнути/Вимкнути"
msgid "Enabled"
msgstr "Увімкнено"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -291,19 +311,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/vi/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/vi/shadowsocks-libev.po
index cbc4832c42..3803ed5103 100644
--- a/applications/luci-app-shadowsocks-libev/po/vi/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/vi/shadowsocks-libev.po
@@ -22,11 +22,11 @@ msgstr ""
msgid "Advanced Settings"
msgstr "Cài đặt nâng cao"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr ""
@@ -34,7 +34,7 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr ""
msgid "Default action for locally generated TCP packets"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr ""
msgid "Disabled"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr ""
@@ -116,21 +116,41 @@ msgstr ""
msgid "Enabled"
msgstr "Bật"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr ""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr ""
@@ -290,19 +310,19 @@ msgstr ""
msgid "Source Settings"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr ""
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/zh_Hans/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/zh_Hans/shadowsocks-libev.po
index 4ec22951c2..4529ed7f79 100644
--- a/applications/luci-app-shadowsocks-libev/po/zh_Hans/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/zh_Hans/shadowsocks-libev.po
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2021-04-12 08:24+0000\n"
-"Last-Translator: xiazhang <xz@xia.plus>\n"
+"PO-Revision-Date: 2022-03-26 11:55+0000\n"
+"Last-Translator: Eric <alchemillatruth@purelymail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"openwrt/luciapplicationsshadowsocks-libev/zh_Hans/>\n"
"Language: zh_Hans\n"
@@ -9,7 +9,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.6-dev\n"
+"X-Generator: Weblate 4.12-dev\n"
#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/instances.js:45
msgid "-- instance type --"
@@ -23,11 +23,11 @@ msgstr "<已隐藏>"
msgid "Advanced Settings"
msgstr "高级设置"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr "对于目的地址在列表中的报文,绕过ss-redir"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr "对于源地址在列表中的报文,绕过ss-redir"
@@ -35,7 +35,7 @@ msgstr "对于源地址在列表中的报文,绕过ss-redir"
msgid "Cancel"
msgstr "取消"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -45,13 +45,13 @@ msgstr "对于源地址在列表中的报文,继续检查其目的地址"
msgid "Default action for locally generated TCP packets"
msgstr "对于设备本身产生的TCP报文的默认行为"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr "对于目的地址不在列表中的报文的默认行为"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -79,23 +79,23 @@ msgstr "禁用"
msgid "Disabled"
msgstr "已禁用"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr "目的未匹配时默认行为"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr "绕过"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr "绕过(文件)"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr "转发"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr "转发(文件)"
@@ -119,21 +119,41 @@ msgstr "启用/禁用"
msgid "Enabled"
msgstr "已启用"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr "匹配 tcp 流量的附加 nftables 表达式,如 \"tcp dport { 80, 443 }\""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr "匹配 udp 流量的附加 nftables 表达式,如 \"udp dport { 53 }\""
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr "附加 tcp 表达式"
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr "附加 udp 表达式"
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr "包含ip/net的文件,用于 <em>Dst ip/net bypass</em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr "包含 ip/net 的文件用于与 <em>Dst ip/net forward</em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr "对于目的地址在列表中的报文,通过ss-redir转发"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr "对于源地址在列表中的报文,通过ss-redir转发"
@@ -301,19 +321,19 @@ msgstr "Shadowsocks-libev"
msgid "Source Settings"
msgstr "源地址设定"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr "源未匹配默认行为"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr "绕过"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr "继续匹配目的地址"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr "转发"
diff --git a/applications/luci-app-shadowsocks-libev/po/zh_Hant/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/zh_Hant/shadowsocks-libev.po
index 1524ebf2d5..d3f7f5e198 100644
--- a/applications/luci-app-shadowsocks-libev/po/zh_Hant/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/zh_Hant/shadowsocks-libev.po
@@ -1,14 +1,14 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2021-01-17 20:54+0000\n"
-"Last-Translator: akibou <jinwenxin1997@icloud.com>\n"
+"PO-Revision-Date: 2022-04-17 15:06+0000\n"
+"Last-Translator: 王攀 <41330784@qq.com>\n"
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
"openwrt/luciapplicationsshadowsocks-libev/zh_Hant/>\n"
"Language: zh_Hant\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.5-dev\n"
+"X-Generator: Weblate 4.12-dev\n"
#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/instances.js:45
msgid "-- instance type --"
@@ -22,11 +22,11 @@ msgstr "<隱藏>"
msgid "Advanced Settings"
msgstr "進階設定"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:90
msgid "Bypass ss-redir for packets with dst address in this list"
msgstr "繞過 ss-redir,以取得此清單中具有目的位址的封包"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:70
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
msgid "Bypass ss-redir for packets with src address in this list"
msgstr "在此列表中繞過具有src位址的封包的ss-redir"
@@ -34,7 +34,7 @@ msgstr "在此列表中繞過具有src位址的封包的ss-redir"
msgid "Cancel"
msgstr "取消"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:76
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:82
msgid ""
"Continue to have dst address checked for packets with src address in this "
"list"
@@ -44,13 +44,13 @@ msgstr "在此列表中繼續檢查dst位址以查找具有src位址的封包"
msgid "Default action for locally generated TCP packets"
msgstr "本地生成的TCP封包的預設操作"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:100
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:106
msgid ""
"Default action for packets whose dst address do not match any of the dst ip "
"list"
msgstr "dst位址與任何dst ip列表都不匹配的封包的預設操作"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:85
msgid ""
"Default action for packets whose src address do not match any of the src ip/"
"net list"
@@ -76,23 +76,23 @@ msgstr "停用"
msgid "Disabled"
msgstr "已停用"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:99
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:105
msgid "Dst default"
msgstr "預設Dst"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:83
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:89
msgid "Dst ip/net bypass"
msgstr "DST IP/網絡旁路"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:91
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:97
msgid "Dst ip/net bypass file"
msgstr "DST IP/網絡旁路文件"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:86
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
msgid "Dst ip/net forward"
msgstr "DST IP/網絡轉發"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:95
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:101
msgid "Dst ip/net forward file"
msgstr "DST IP/網絡轉發文件"
@@ -116,21 +116,41 @@ msgstr "啟用/禁用"
msgid "Enabled"
msgstr "啟用"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:92
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+msgid ""
+"Extra nftables expression for matching tcp traffics, e.g. \"tcp dport { 80, "
+"443 }\""
+msgstr "用於匹配 tcp 流量的額外 nftables 表達式,例如 “tcp dport { 80, 443 }”"
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+msgid ""
+"Extra nftables expression for matching udp traffics, e.g. \"udp dport "
+"{ 53 }\""
+msgstr "用於匹配 udp 流量的額外 nftables 表達式,例如 “udp dport { 53 }”"
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:68
+msgid "Extra tcp expression"
+msgstr "額外的 tcp 表達式"
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:71
+msgid "Extra udp expression"
+msgstr "額外的 udp 表達式"
+
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:98
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
msgstr "包含ip/net的文件,用於與<em> Dst ip/net忽略</em>"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:96
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:102
msgid ""
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
msgstr "與<em>Dst ip/net 轉發</em>相同的目的,包含ip/net的文件"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:87
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:93
msgid "Forward through ss-redir for packets with dst address in this list"
msgstr "通過ss-redir轉發此列表中具有dst位址的封包"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:73
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:79
msgid "Forward through ss-redir for packets with src address in this list"
msgstr "通過ss-redir轉發此列表中具有src位址的封包"
@@ -297,19 +317,19 @@ msgstr "SS影梭翻牆分支(Shadowsocks-libev)"
msgid "Source Settings"
msgstr "來源設定值"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:84
msgid "Src default"
msgstr "預設Src"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:69
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
msgid "Src ip/net bypass"
msgstr "來源 ip/net 忽略"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:75
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:81
msgid "Src ip/net checkdst"
msgstr "來源 ip/net 檢查"
-#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:72
+#: applications/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js:78
msgid "Src ip/net forward"
msgstr "來源 ip/net 轉發"