summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-shadowsocks-libev
diff options
context:
space:
mode:
authorHannu Nyman <hannu.nyman@iki.fi>2022-03-26 08:44:49 +0200
committerHannu Nyman <hannu.nyman@iki.fi>2022-03-26 08:44:49 +0200
commitd9ffe119858e80b051d0e4dd86615bba0341edd2 (patch)
tree3e8202c0df8804b8bd277033c9e242ac8b203ee7 /applications/luci-app-shadowsocks-libev
parent781b895f536479f854a5253aa6a3c2c39dd43845 (diff)
treewide: sync translations
Sync translations. Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Diffstat (limited to 'applications/luci-app-shadowsocks-libev')
-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.po56
-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.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/pt/shadowsocks-libev.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/pt_BR/shadowsocks-libev.po56
-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.po56
-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.po56
-rw-r--r--applications/luci-app-shadowsocks-libev/po/zh_Hant/shadowsocks-libev.po56
34 files changed, 1292 insertions, 612 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..e762b6ade2 100644
--- a/applications/luci-app-shadowsocks-libev/po/ko/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/ko/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/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..183d4df683 100644
--- a/applications/luci-app-shadowsocks-libev/po/pl/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/pl/shadowsocks-libev.po
@@ -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,23 +85,23 @@ 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"
-#: 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"
@@ -125,24 +125,44 @@ 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 ""
+
+#: 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 ""
"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,19 +333,19 @@ 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"
-#: 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 "Przekazuj Src ip/net"
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..0d4ace9607 100644
--- a/applications/luci-app-shadowsocks-libev/po/pt/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/pt/shadowsocks-libev.po
@@ -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,45 @@ 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 ""
+
+#: 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 ""
"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 +334,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..f5b8bd7300 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
@@ -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,47 @@ 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 ""
+
+#: 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 ""
"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 +340,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..852eb5442b 100644
--- a/applications/luci-app-shadowsocks-libev/po/tr/shadowsocks-libev.po
+++ b/applications/luci-app-shadowsocks-libev/po/tr/shadowsocks-libev.po
@@ -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,41 @@ 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 ""
+
+#: 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 "<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 +329,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..74a8a51eae 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
@@ -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 ""
+
+#: 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/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..ced5b37f4f 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
@@ -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 ""
+
+#: 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/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 轉發"