ufw

Merge lp:~pierre-hanselmann/ufw/ufw-debian into lp:~jdstrand/ufw/ufw-debian

Proposed by Pierre Hanselmann
Status: Needs review
Proposed branch: lp:~pierre-hanselmann/ufw/ufw-debian
Merge into: lp:~jdstrand/ufw/ufw-debian
Diff against target: 35108 lines (+7481/-6791)
71 files modified
AUTHORS (+1/-2)
ChangeLog (+32/-0)
Makefile (+9/-5)
README (+18/-13)
README.design (+5/-3)
README.translations (+10/-5)
doc/skel-ui.example (+8/-2)
doc/ufw.8 (+9/-3)
locales/po/ar.po (+186/-186)
locales/po/ast.po (+189/-183)
locales/po/bg.po (+186/-186)
locales/po/bs.po (+300/-271)
locales/po/ca.po (+192/-189)
locales/po/cs.po (+192/-189)
locales/po/da.po (+192/-189)
locales/po/de.po (+192/-189)
locales/po/el.po (+181/-174)
locales/po/en_AU.po (+260/-219)
locales/po/en_GB.po (+203/-197)
locales/po/es.po (+208/-191)
locales/po/fi.po (+192/-189)
locales/po/fr.po (+181/-174)
locales/po/he.po (+192/-189)
locales/po/hu.po (+192/-189)
locales/po/id.po (+186/-186)
locales/po/it.po (+184/-178)
locales/po/ja.po (+192/-189)
locales/po/nb.po (+192/-189)
locales/po/nl.po (+188/-182)
locales/po/pl.po (+186/-186)
locales/po/pt.po (+340/-320)
locales/po/pt_BR.po (+200/-194)
locales/po/ru.po (+149/-145)
locales/po/sk.po (+184/-178)
locales/po/sl.po (+191/-185)
locales/po/sr.po (+186/-186)
locales/po/sv.po (+189/-183)
locales/po/tl.po (+186/-186)
locales/po/ufw.pot (+164/-139)
locales/po/ur.po (+186/-186)
locales/po/zh_CN.po (+189/-183)
run_tests.sh (+1/-1)
setup.py (+17/-16)
src/applications.py (+18/-9)
src/backend.py (+55/-25)
src/backend_iptables.py (+60/-42)
src/frontend.py (+59/-34)
src/parser.py (+13/-11)
src/ufw (+30/-24)
src/util.py (+137/-28)
tests/bad/policy/result (+0/-6)
tests/bad/policy/runtest.sh (+1/-7)
tests/bugs/misc/result (+5/-1)
tests/bugs/misc/runtest.sh (+7/-2)
tests/check-requirements (+29/-17)
tests/destructive/bugs/result (+22/-7)
tests/destructive/bugs/runtest.sh (+12/-8)
tests/good/apps/result (+14/-4)
tests/good/policy/result (+183/-191)
tests/good/policy/runtest.sh (+2/-5)
tests/good/reports/bin/show_listening_debug (+2/-2)
tests/good/reports/result (+46/-0)
tests/good/reports/runtest.sh (+12/-0)
tests/root/live/result (+75/-0)
tests/root/live/runtest.sh (+28/-3)
tests/root/live_apps/runtest.sh (+4/-0)
tests/root/logging/runtest.sh (+3/-0)
tests/root/valid6/runtest.sh (+3/-0)
tests/util/addresses/runtest.sh (+8/-6)
tests/util/internal/runtest.sh (+3/-2)
tests/util/normalization/runtest.sh (+10/-8)
To merge this branch: bzr merge lp:~pierre-hanselmann/ufw/ufw-debian
Reviewer Review Type Date Requested Status
Jamie Strandboge Disapprove
Review via email: mp+194713@code.launchpad.net

Description of the change

- New upstream version (0.33)
It will serve to package the new version on Debian.

To post a comment you must log in.
Revision history for this message
Jamie Strandboge (jdstrand) wrote :

Thanks for your work on this. I'd like to get the Ubuntu and Debian packaging back in sync and will probably not use this branch. The Ubuntu packaging has several packaging updates for python3 that would be useful for Debian. It is true that the Debian version is lagging (this happened due to Debian's release schedule at the time 0.33 was released). I hope to release a new 0.34 soon and will update both Debian and Ubuntu to this version. I am going to mark this as 'Disapprove' for now, but if the release of 0.34 doesn't happen soon, then I will merge this branch in the meantime.

Thanks again!

review: Disapprove

Unmerged revisions

542. By Pierre Hanselmann

* New upstream release (0.33)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'AUTHORS'
2--- AUTHORS 2008-05-08 16:12:08 +0000
3+++ AUTHORS 2013-11-11 16:00:06 +0000
4@@ -1,3 +1,2 @@
5 ufw, its documentation and supporting files are written by Jamie Strandboge
6-<jamie@canonical.com> and copyright Canonical Ltd. 2007-2008.
7-
8+<jamie@canonical.com> and copyright Canonical Ltd. 2007-2012.
9
10=== modified file 'ChangeLog'
11--- ChangeLog 2012-04-04 20:44:20 +0000
12+++ ChangeLog 2013-11-11 16:00:06 +0000
13@@ -1,3 +1,35 @@
14+ufw (0.33) RELEASED; urgency=low
15+
16+ * conf/after6.rules: also use correct ports for DHCPv6. Thanks to Marco
17+ Davids (LP: #1007326)
18+ * src/util.py: add get_netfilter_capabilities() for getting the capabilities
19+ set for things we want to support but may not be in all kernels/iptables
20+ versions
21+ * add IPv6 limit support (LP: #951462)
22+ * import new and updated Launchpad translations:
23+ - po/ast.po, po/bs.po, po/cs.po, po/de.po, po/el.po, po/en_AU.po,
24+ po/en_GB.po, po/es.po, po/fi.po, po/fr.po, po/he.po, po/hu.po, po/it.po,
25+ po/nb.po, po/nl.po, po/pt_BR.po, po/pt.po, po/sk.po, po/sl.po, po/sv.po,
26+ po/zh_CN.po, po/zh_TW.po (new, LP: #868195)
27+ - thanks to all contributors: https://translations.launchpad.net/ufw
28+ * README.translations: updated for paths and testing
29+ * add 'show added' report (LP: #987784)
30+ * remove ACCEPT_NO_TRACK option since it never worked (LP: #787955)
31+ * src/backend_iptables.py: display output of ufw-init if it fails
32+ * don't traceback if can't determine iptables version
33+
34+ -- Jamie Strandboge <jamie@ubuntu.com> Sun, 12 Aug 2012 10:58:04 -0500
35+
36+ufw (0.32) RELEASED; urgency=low
37+
38+ * Obsolete python2.5 in preparation for python3 support
39+ * Adjust gettext initialization so that _() always returns unicode. Patch
40+ thanks to Barry Warsaw
41+ * Add python3 support (LP: #1001657)
42+ * profiles/ufw-directoryserver: use LDAPS key for LDAPS
43+
44+ -- Jamie Strandboge <jamie@ubuntu.com> Sat, 19 May 2012 08:48:15 -0500
45+
46 ufw (0.31.1) RELEASED; urgency=low
47
48 * src/util.py: revert revert r752 which introduced problems with other
49
50=== modified file 'Makefile'
51--- Makefile 2012-04-04 20:44:20 +0000
52+++ Makefile 2013-11-11 16:00:06 +0000
53@@ -10,6 +10,10 @@
54 PYFLAKES = $(TMPDIR)/pyflakes.out
55 PYFLAKES_EXE = pyflakes
56
57+ifndef $(PYTHON)
58+export PYTHON=python
59+endif
60+
61 all:
62 # Use setup.py to install. See README for details
63 exit 1
64@@ -24,7 +28,7 @@
65 make -C locales all
66
67 test:
68- ./run_tests.sh -s
69+ ./run_tests.sh -s -i $(PYTHON)
70
71 syntax-check: clean
72 $(shell mkdir $(TMPDIR) && $(PYFLAKES_EXE) src 2>&1 | grep -v "undefined name '_'" > $(PYFLAKES))
73@@ -55,13 +59,13 @@
74
75 evaluate: clean
76 mkdir -p $(TMPDIR)/ufw/usr $(TMPDIR)/ufw/etc
77- python ./setup.py install --home=$(TMPDIR)/ufw
78- PYTHONPATH=$(PYTHONPATH):$(TMPDIR)/ufw/lib/python $(TMPDIR)/ufw/usr/sbin/ufw version
79+ $(PYTHON) ./setup.py install --home=$(TMPDIR)/ufw
80+ PYTHONPATH=$(PYTHONPATH):$(TMPDIR)/ufw/lib/python $(PYTHON) $(TMPDIR)/ufw/usr/sbin/ufw version
81 sed -i 's/self.do_checks = True/self.do_checks = False/' $(TMPDIR)/ufw/lib/python/ufw/backend.py
82 cp ./examples/* $(TMPDIR)/ufw/etc/ufw/applications.d
83 # Test with:
84- # PYTHONPATH=$$PYTHONPATH:$(TMPDIR)/ufw/lib/python $(TMPDIR)/ufw/usr/sbin/ufw ...
85- # sudo sh -c "PYTHONPATH=$$PYTHONPATH:$(TMPDIR)/ufw/lib/python $(TMPDIR)/ufw/usr/sbin/ufw ..."
86+ # PYTHONPATH=$$PYTHONPATH:$(TMPDIR)/ufw/lib/python $(PYTHON) $(TMPDIR)/ufw/usr/sbin/ufw ...
87+ # sudo sh -c "PYTHONPATH=$$PYTHONPATH:$(TMPDIR)/ufw/lib/python $(PYTHON) $(TMPDIR)/ufw/usr/sbin/ufw ..."
88
89 devel: evaluate
90 cp -f ./tests/defaults/profiles/* $(TMPDIR)/ufw/etc/ufw/applications.d
91
92=== modified file 'README'
93--- README 2011-07-18 15:52:03 +0000
94+++ README 2013-11-11 16:00:06 +0000
95@@ -13,8 +13,8 @@
96
97 Requirements
98 ------------
99-python 2.5-2.7 (known to work with 2.5+, 2.6.2+, and 2.7.0)
100-iptables 1.4*
101+python 2.6-2.7, 3.1-3.2 (known to work with 2.6.2+, 2.7.0+, 3.1.2, 3.2+)*
102+iptables 1.4**
103 gettext
104 /proc filesystem support
105 Linux kernel configured with the following modules (not exhaustive):
106@@ -26,10 +26,11 @@
107 recent
108 state
109
110-* Systems with iptables below 1.4 will not have IPv6 application rule support.
111- ufw will give a warning when users try to use this functionality, but ufw
112- will otherwise work fine. ufw is known to work with iptables 1.3.8 in this
113- degraded mode.
114+* python2.5 is no longer supported
115+** Systems with iptables below 1.4 will not have IPv6 application rule support.
116+ ufw will give a warning when users try to use this functionality, but ufw
117+ will otherwise work fine. ufw is known to work with iptables 1.3.8 in this
118+ degraded mode.
119
120 ufw has been widely tested on Linux 2.6.24 and higher kernels. You may also
121 use the check-requirements script in the tests/ directory to see if your
122@@ -43,8 +44,8 @@
123 $ python ./setup.py install --home=PREFIX
124
125 The interpreter used for setup.py is the one used for ufw. So if your system
126-python is 2.4, but you have python2.5 available, use something like:
127-$ python2.5 ./setup.py install --home=PREFIX
128+python is 2.6, but you have python2.7 available, use something like:
129+$ python2.7 ./setup.py install --home=PREFIX
130
131 Distributions which install to a build directory for packaging can install
132 with:
133@@ -321,13 +322,17 @@
134 Can also just run from the source directory:
135 $ ./run_tests.sh -s
136
137+You may also specify an interpreter for the tests. Eg:
138+$ ./run_tests.sh -s -i /usr/local/bin/python2.7
139+
140 Or for the root tests (these are iptables version dependent, will modify your
141 existing firewall and insert kernel modules, so they require root privileges
142 and aren't run by default):
143 # ./run_tests.sh -s root
144
145-You may also specify an interpreter for the tests. Eg:
146-$ ./run_tests.sh -s -i /usr/local/bin/python2.5
147-
148-
149-Copyright 2008-2011 Canonical Ltd.
150+Finally, ufw's behavior may differ based on available kernel features. The
151+root_kern tests assume all kernel features supported by check-requirements
152+are enabled. They behave just like the root tests.
153+
154+
155+Copyright 2008-2012 Canonical Ltd.
156
157=== modified file 'README.design'
158--- README.design 2012-04-04 20:44:20 +0000
159+++ README.design 2013-11-11 16:00:06 +0000
160@@ -34,9 +34,11 @@
161 ------------
162 Before submitting patches for ufw, please do the following:
163
164-$ make syntax-check # basic syntax checker
165-$ make check # runs non-root tests
166-# ./run-tests -r root # runs root tests (modifies running firewall)
167+$ make syntax-check # basic syntax checker
168+$ make check # runs non-root tests
169+$ make PYTHON=python3 check # runs non-root tests with python3 interpreter
170+# ./run-tests -r root # runs root tests (modifies running firewall)
171+# ./tests/check-locales # runs locales tests (assumes Ubuntu)
172
173 CAUTION: root tests will flush the firewall and use iptables commands on the
174 host.
175
176=== modified file 'README.translations'
177--- README.translations 2009-05-08 16:09:41 +0000
178+++ README.translations 2013-11-11 16:00:06 +0000
179@@ -1,12 +1,17 @@
180 Internationalization
181 --------------------
182-gettext files are placed in messages/. To update the main .pot file, do:
183-$ pygettext -d ufw -p messages -S GNU src/ufw src/[a-z]*.py
184+gettext files are placed in locales/po/. To update the main .pot file, do:
185+$ pygettext -d ufw -p locales/po -S GNU src/ufw src/[a-z]*.py
186
187-and adjust messages/ufw.pot accordingly.
188+and adjust locales/po/ufw.pot accordingly.
189
190 Translations are handled in Launchpad. Please see:
191 https://translations.launchpad.net/ufw/
192
193-
194-Copyright 2008 Canonical Ltd.
195+Testing locales can be done like so (typically in a chroot or VM):
196+$ make mo
197+$ sudo ./tests/check-locales -d locales/mo -l es # a specify locale
198+$ sudo ./tests/check-locales -d locales/mo # all locales
199+
200+
201+Copyright 2008-2012 Canonical Ltd.
202
203=== modified file 'doc/skel-ui.example'
204--- doc/skel-ui.example 2009-05-08 16:09:41 +0000
205+++ doc/skel-ui.example 2013-11-11 16:00:06 +0000
206@@ -24,8 +24,14 @@
207 ufw.common.programName = "skel-ui"
208
209 import gettext
210-gettext.install(ufw.common.programName)
211+kwargs = {}
212+if sys.version_info[0] < 3:
213+ # In Python 2, ensure that the _() that gets installed into built-ins
214+ # always returns unicodes. This matches the default behavior under Python
215+ # 3, although that keyword argument is not present in the Python 3 API.
216+ kwargs['unicode'] = True
217+gettext.install(ufw.common.programName, **kwargs)
218
219 if __name__ == "__main__":
220- print ufw.frontend.get_command_help()
221+ print(ufw.frontend.get_command_help())
222
223
224=== modified file 'doc/ufw.8'
225--- doc/ufw.8 2011-07-18 15:45:00 +0000
226+++ doc/ufw.8 2013-11-11 16:00:06 +0000
227@@ -351,6 +351,7 @@
228 after\-rules
229 logging\-rules
230 listening
231+ added
232
233 The \fBraw\fR report shows the complete firewall, while the others show a
234 subset of what is in the \fBraw\fR report.
235@@ -364,14 +365,19 @@
236 evaluated by the kernel, and the first match wins. Please note that the
237 default policy is not listed and tcp6 and udp6 are shown only if IPV6 is
238 enabled.
239+.PP
240+The \fBadded\fR report displays the list of rules as they were added on the
241+command\-line. This report does not show the status of the running firewall
242+(use '\fBufw status\fR' instead). Because rules are normalized by \fBufw\fR,
243+rules may look different than the originally added rule. Also, \fBufw\fR does
244+not record command ordering, so an equivalent ordering is used which lists
245+IPv6\-only rules after other rules.
246
247 .SH NOTES
248 .PP
249 On installation, \fBufw\fR is disabled with a default incoming policy of deny
250 and a default outgoing policy of allow, with stateful tracking for NEW
251-connections. Having a default policy of allow without stateful tracking can be
252-achieved by using ACCEPT_NO_TRACK instead of ACCEPT in
253-#CONFIG_PREFIX#/default/ufw.
254+connections.
255
256 .PP
257 Rule ordering is important and the first match wins. Therefore when adding
258
259=== modified file 'locales/po/ar.po'
260--- locales/po/ar.po 2012-04-04 20:44:20 +0000
261+++ locales/po/ar.po 2013-11-11 16:00:06 +0000
262@@ -7,169 +7,168 @@
263 msgstr ""
264 "Project-Id-Version: ufw\n"
265 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
266-"POT-Creation-Date: 2011-03-22 10:34-0500\n"
267+"POT-Creation-Date: 2012-07-29 09:48-0500\n"
268 "PO-Revision-Date: 2009-08-26 19:15+0000\n"
269 "Last-Translator: Nizar Kerkeni <nizarus@ubuntu.com>\n"
270 "Language-Team: Arabic <ar@li.org>\n"
271 "MIME-Version: 1.0\n"
272 "Content-Type: text/plain; charset=UTF-8\n"
273 "Content-Transfer-Encoding: 8bit\n"
274-"X-Launchpad-Export-Date: 2012-02-13 23:52+0000\n"
275-"X-Generator: Launchpad (build 14781)\n"
276+"X-Launchpad-Export-Date: 2012-08-12 01:56+0000\n"
277+"X-Generator: Launchpad (build 15780)\n"
278
279-#: src/ufw:46
280-msgid ": Need at least python 2.5)\n"
281+#: src/ufw:56
282+msgid ": Need at least python 2.6)\n"
283 msgstr ""
284
285-#: src/ufw:103 src/frontend.py:554 src/frontend.py:854
286+#: src/ufw:109 src/frontend.py:550 src/frontend.py:850
287 msgid "Aborted"
288 msgstr ""
289
290-#: src/applications.py:32
291+#: src/applications.py:36
292 msgid "Profiles directory does not exist"
293 msgstr ""
294
295-#: src/applications.py:64
296+#: src/applications.py:68
297 #, python-format
298 msgid "Skipping '%s': couldn't stat"
299 msgstr ""
300
301-#: src/applications.py:69
302+#: src/applications.py:73
303 #, python-format
304 msgid "Skipping '%s': too big"
305 msgstr ""
306
307-#: src/applications.py:74
308+#: src/applications.py:78
309 #, python-format
310 msgid "Skipping '%s': too many files read already"
311 msgstr ""
312
313-#: src/applications.py:84
314+#: src/applications.py:92
315 #, python-format
316 msgid "Skipping '%s': couldn't process"
317 msgstr ""
318
319-#: src/applications.py:91
320+#: src/applications.py:99
321 #, python-format
322 msgid "Skipping '%s': name too long"
323 msgstr ""
324
325-#: src/applications.py:96
326+#: src/applications.py:104
327 #, python-format
328 msgid "Skipping '%s': invalid name"
329 msgstr ""
330
331-#: src/applications.py:102
332+#: src/applications.py:110
333 #, python-format
334 msgid "Skipping '%s': also in /etc/services"
335 msgstr ""
336
337-#: src/applications.py:111
338+#: src/applications.py:119
339 #, python-format
340 msgid "Skipping '%s': field too long"
341 msgstr ""
342
343-#: src/applications.py:116
344+#: src/applications.py:124
345 #, python-format
346 msgid "Skipping '%(value)s': value too long for '%(field)s'"
347 msgstr ""
348
349-#: src/applications.py:126
350+#: src/applications.py:134
351 #, python-format
352 msgid "Duplicate profile '%s', using last found"
353 msgstr ""
354
355-#: src/applications.py:156
356+#: src/applications.py:171
357 #, python-format
358 msgid "Profile '%(fn)s' missing required field '%(f)s'"
359 msgstr ""
360
361-#: src/applications.py:161
362+#: src/applications.py:176
363 #, python-format
364 msgid "Profile '%(fn)s' has empty required field '%(f)s'"
365 msgstr ""
366
367-#: src/applications.py:167
368+#: src/applications.py:182
369 #, python-format
370 msgid "No ports found in profile '%s'"
371 msgstr ""
372
373-#: src/applications.py:180
374+#: src/applications.py:195
375 #, python-format
376 msgid "Invalid ports in profile '%s'"
377 msgstr ""
378
379-#: src/backend_iptables.py:87
380+#: src/backend_iptables.py:72
381 msgid "New profiles:"
382 msgstr ""
383
384-#: src/backend_iptables.py:103 src/backend.py:275
385+#: src/backend_iptables.py:88 src/backend.py:315
386 #, python-format
387 msgid "Unsupported policy '%s'"
388 msgstr ""
389
390-#: src/backend_iptables.py:107
391+#: src/backend_iptables.py:92
392 #, python-format
393 msgid "Unsupported policy for direction '%s'"
394 msgstr ""
395
396-#: src/backend_iptables.py:165
397+#: src/backend_iptables.py:150
398 #, python-format
399 msgid "Default %(direction)s policy changed to '%(policy)s'\n"
400 msgstr ""
401
402-#: src/backend_iptables.py:167
403+#: src/backend_iptables.py:152
404 msgid "(be sure to update your rules accordingly)"
405 msgstr ""
406
407-#: src/backend_iptables.py:174
408+#: src/backend_iptables.py:159
409 msgid "Checking raw iptables\n"
410 msgstr ""
411
412-#: src/backend_iptables.py:175
413+#: src/backend_iptables.py:160
414 msgid "Checking raw ip6tables\n"
415 msgstr ""
416
417-#: src/backend_iptables.py:178 src/backend_iptables.py:269
418-#: src/backend_iptables.py:448 src/backend_iptables.py:459
419-#: src/backend_iptables.py:507
420-msgid "problem running"
421-msgstr ""
422-
423-#: src/backend_iptables.py:264
424+#: src/backend_iptables.py:250
425 msgid "Checking iptables\n"
426 msgstr ""
427
428-#: src/backend_iptables.py:266
429+#: src/backend_iptables.py:252
430 msgid "Checking ip6tables\n"
431 msgstr ""
432
433-#: src/backend_iptables.py:275
434+#: src/backend_iptables.py:255 src/backend_iptables.py:435
435+#: src/backend_iptables.py:446 src/backend_iptables.py:497
436+msgid "problem running"
437+msgstr ""
438+
439+#: src/backend_iptables.py:261
440 msgid "Status: inactive"
441 msgstr ""
442
443-#: src/backend_iptables.py:411
444+#: src/backend_iptables.py:397
445 msgid "To"
446 msgstr "إلى"
447
448-#: src/backend_iptables.py:412
449+#: src/backend_iptables.py:398
450 msgid "From"
451 msgstr "من"
452
453-#: src/backend_iptables.py:413
454+#: src/backend_iptables.py:399
455 msgid "Action"
456 msgstr "الإجراء"
457
458-#: src/backend_iptables.py:428
459+#: src/backend_iptables.py:415
460 msgid "\n"
461 msgstr "\n"
462
463-#: src/backend_iptables.py:436
464+#: src/backend_iptables.py:423
465 #, python-format
466 msgid "Default: %(in)s (incoming), %(out)s (outgoing)"
467 msgstr ""
468
469-#: src/backend_iptables.py:440
470+#: src/backend_iptables.py:427
471 #, python-format
472 msgid ""
473 "Status: active\n"
474@@ -178,262 +177,267 @@
475 "%(app)s%(status)s"
476 msgstr ""
477
478-#: src/backend_iptables.py:444
479+#: src/backend_iptables.py:431
480 #, python-format
481 msgid "Status: active%s"
482 msgstr ""
483
484-#: src/backend_iptables.py:450 src/backend_iptables.py:461
485+#: src/backend_iptables.py:437 src/backend_iptables.py:448
486 msgid "running ufw-init"
487 msgstr ""
488
489-#: src/backend_iptables.py:474
490+#: src/backend_iptables.py:461
491 msgid "Could not set LOGLEVEL"
492 msgstr ""
493
494-#: src/backend_iptables.py:480
495+#: src/backend_iptables.py:467
496 msgid "Could not load logging rules"
497 msgstr ""
498
499-#: src/backend_iptables.py:629 src/backend.py:181
500+#: src/backend_iptables.py:619 src/backend.py:221
501 #, python-format
502 msgid "Couldn't open '%s' for reading"
503 msgstr ""
504
505-#: src/backend_iptables.py:638
506+#: src/backend_iptables.py:628
507 #, python-format
508 msgid "Skipping malformed tuple (bad length): %s"
509 msgstr ""
510
511-#: src/backend_iptables.py:668
512+#: src/backend_iptables.py:659
513 #, python-format
514 msgid "Skipping malformed tuple: %s"
515 msgstr ""
516
517-#: src/backend_iptables.py:690 src/backend.py:213
518+#: src/backend_iptables.py:681 src/backend.py:253
519 #, python-format
520 msgid "'%s' is not writable"
521 msgstr ""
522
523-#: src/backend_iptables.py:830
524+#: src/backend_iptables.py:839
525 msgid "Adding IPv6 rule failed: IPv6 not enabled"
526 msgstr ""
527
528-#: src/backend_iptables.py:834
529+#: src/backend_iptables.py:843
530 #, python-format
531 msgid "Skipping unsupported IPv6 '%s' rule"
532 msgstr ""
533
534-#: src/backend_iptables.py:837
535+#: src/backend_iptables.py:847
536+#, python-format
537+msgid "Skipping unsupported IPv4 '%s' rule"
538+msgstr ""
539+
540+#: src/backend_iptables.py:850
541 msgid "Must specify 'tcp' or 'udp' with multiple ports"
542 msgstr ""
543
544-#: src/backend_iptables.py:849
545+#: src/backend_iptables.py:862
546 msgid "Skipping IPv6 application rule. Need at least iptables 1.4"
547 msgstr ""
548
549-#: src/backend_iptables.py:854
550+#: src/backend_iptables.py:867
551 #, python-format
552 msgid "Invalid position '%d'"
553 msgstr ""
554
555-#: src/backend_iptables.py:858
556+#: src/backend_iptables.py:871
557 msgid "Cannot specify insert and delete"
558 msgstr ""
559
560-#: src/backend_iptables.py:861
561+#: src/backend_iptables.py:874
562 #, python-format
563 msgid "Cannot insert rule at position '%d'"
564 msgstr ""
565
566-#: src/backend_iptables.py:919
567+#: src/backend_iptables.py:932
568 msgid "Skipping inserting existing rule"
569 msgstr ""
570
571-#: src/backend_iptables.py:930 src/frontend.py:365
572+#: src/backend_iptables.py:943 src/frontend.py:361
573 msgid "Could not delete non-existent rule"
574 msgstr ""
575
576-#: src/backend_iptables.py:935
577+#: src/backend_iptables.py:948
578 msgid "Skipping adding existing rule"
579 msgstr ""
580
581-#: src/backend_iptables.py:951
582+#: src/backend_iptables.py:964
583 msgid "Couldn't update rules file"
584 msgstr ""
585
586-#: src/backend_iptables.py:956
587+#: src/backend_iptables.py:969
588 msgid "Rules updated"
589 msgstr ""
590
591-#: src/backend_iptables.py:958
592+#: src/backend_iptables.py:971
593 msgid "Rules updated (v6)"
594 msgstr ""
595
596-#: src/backend_iptables.py:966
597+#: src/backend_iptables.py:979
598 msgid "Rule inserted"
599 msgstr ""
600
601-#: src/backend_iptables.py:968
602+#: src/backend_iptables.py:981
603 msgid "Rule updated"
604 msgstr ""
605
606-#: src/backend_iptables.py:978
607+#: src/backend_iptables.py:991
608 msgid " (skipped reloading firewall)"
609 msgstr ""
610
611-#: src/backend_iptables.py:981
612+#: src/backend_iptables.py:994
613 msgid "Rule deleted"
614 msgstr ""
615
616-#: src/backend_iptables.py:984
617+#: src/backend_iptables.py:997
618 msgid "Rule added"
619 msgstr ""
620
621-#: src/backend_iptables.py:999 src/backend_iptables.py:1087
622+#: src/backend_iptables.py:1012 src/backend_iptables.py:1100
623 msgid "Could not update running firewall"
624 msgstr ""
625
626-#: src/backend_iptables.py:1054
627+#: src/backend_iptables.py:1067
628 #, python-format
629 msgid "Could not perform '%s'"
630 msgstr ""
631
632-#: src/backend_iptables.py:1078
633+#: src/backend_iptables.py:1091
634 msgid "Couldn't update rules file for logging"
635 msgstr ""
636
637-#: src/backend_iptables.py:1132 src/backend.py:530
638+#: src/backend_iptables.py:1149 src/backend.py:571
639 #, python-format
640 msgid "Invalid log level '%s'"
641 msgstr ""
642
643-#: src/backend_iptables.py:1228
644+#: src/backend_iptables.py:1246
645 #, python-format
646 msgid "Could not find '%s'. Aborting"
647 msgstr ""
648
649-#: src/backend_iptables.py:1240
650+#: src/backend_iptables.py:1258
651 #, python-format
652 msgid "'%s' already exists. Aborting"
653 msgstr ""
654
655-#: src/backend_iptables.py:1246
656+#: src/backend_iptables.py:1264
657 #, python-format
658 msgid "Backing up '%(old)s' to '%(new)s'\n"
659 msgstr ""
660
661-#: src/backend_iptables.py:1262 src/backend.py:140
662+#: src/backend_iptables.py:1280 src/backend.py:180
663 #, python-format
664 msgid "Couldn't stat '%s'"
665 msgstr ""
666
667-#: src/backend_iptables.py:1267
668+#: src/backend_iptables.py:1285
669 #, python-format
670 msgid "WARN: '%s' is world writable"
671 msgstr ""
672
673-#: src/backend_iptables.py:1269
674+#: src/backend_iptables.py:1287
675 #, python-format
676 msgid "WARN: '%s' is world readable"
677 msgstr ""
678
679-#: src/backend.py:96
680+#: src/backend.py:136
681 msgid "Checks disabled"
682 msgstr ""
683
684-#: src/backend.py:102
685+#: src/backend.py:142
686 msgid "ERROR: this script should not be SUID"
687 msgstr ""
688
689-#: src/backend.py:105
690+#: src/backend.py:145
691 msgid "ERROR: this script should not be SGID"
692 msgstr ""
693
694-#: src/backend.py:110
695+#: src/backend.py:150
696 msgid "You need to be root to run this script"
697 msgstr ""
698
699-#: src/backend.py:120
700+#: src/backend.py:160
701 #, python-format
702 msgid "'%s' does not exist"
703 msgstr ""
704
705-#: src/backend.py:146
706+#: src/backend.py:186
707 #, python-format
708 msgid "uid is %(uid)s but '%(path)s' is owned by %(st_uid)s"
709 msgstr ""
710
711-#: src/backend.py:153
712+#: src/backend.py:193
713 #, python-format
714 msgid "%s is world writable!"
715 msgstr ""
716
717-#: src/backend.py:157
718+#: src/backend.py:197
719 #, python-format
720 msgid "%s is group writable!"
721 msgstr ""
722
723-#: src/backend.py:170
724+#: src/backend.py:210
725 #, python-format
726 msgid "'%(f)s' file '%(name)s' does not exist"
727 msgstr ""
728
729-#: src/backend.py:195
730+#: src/backend.py:235
731 #, python-format
732 msgid "Missing policy for '%s'"
733 msgstr ""
734
735-#: src/backend.py:200
736+#: src/backend.py:240
737 #, python-format
738 msgid "Invalid policy '%(policy)s' for '%(chain)s'"
739 msgstr ""
740
741-#: src/backend.py:207
742+#: src/backend.py:247
743 msgid "Invalid option"
744 msgstr ""
745
746-#: src/backend.py:278
747+#: src/backend.py:318
748 #, python-format
749 msgid "Default application policy changed to '%s'"
750 msgstr ""
751
752-#: src/backend.py:360
753+#: src/backend.py:400
754 msgid "No rules found for application profile"
755 msgstr ""
756
757-#: src/backend.py:419
758+#: src/backend.py:459
759 #, python-format
760 msgid "Rules updated for profile '%s'"
761 msgstr ""
762
763-#: src/backend.py:425
764+#: src/backend.py:465
765 msgid "Couldn't update application rules"
766 msgstr ""
767
768-#: src/backend.py:447
769+#: src/backend.py:487
770 #, python-format
771 msgid "Found multiple matches for '%s'. Please use exact profile name"
772 msgstr ""
773
774-#: src/backend.py:448
775+#: src/backend.py:489
776 #, python-format
777 msgid "Could not find a profile matching '%s'"
778 msgstr ""
779
780-#: src/backend.py:514
781+#: src/backend.py:555
782 msgid "Logging: "
783 msgstr ""
784
785-#: src/backend.py:518
786+#: src/backend.py:559
787 msgid "unknown"
788 msgstr ""
789
790-#: src/backend.py:548
791+#: src/backend.py:589
792 msgid "Logging disabled"
793 msgstr "التسجيل معطّل"
794
795-#: src/backend.py:550
796+#: src/backend.py:591
797 msgid "Logging enabled"
798 msgstr "التسجيل مفعّل"
799
800@@ -482,24 +486,20 @@
801 msgid "Unsupported direction '%s'"
802 msgstr ""
803
804-#: src/common.py:346
805-msgid "Could not normalize source address"
806-msgstr ""
807-
808-#: src/common.py:356
809+#: src/common.py:355
810 msgid "Could not normalize destination address"
811 msgstr ""
812
813-#: src/common.py:417
814+#: src/common.py:416
815 msgid "Found exact match"
816 msgstr "وجدتُ مطابقة تامة"
817
818-#: src/common.py:421
819+#: src/common.py:420
820 #, python-format
821 msgid "Found non-action/non-logtype match (%(xa)s/%(ya)s %(xl)s/%(yl)s)"
822 msgstr ""
823
824-#: src/frontend.py:93
825+#: src/frontend.py:88
826 #, python-format
827 msgid ""
828 "\n"
829@@ -530,77 +530,77 @@
830 " %(appdefault)-31s set default application policy\n"
831 msgstr ""
832
833-#: src/frontend.py:168
834+#: src/frontend.py:160
835 msgid "n"
836 msgstr ""
837
838-#: src/frontend.py:169
839+#: src/frontend.py:161
840 msgid "y"
841 msgstr ""
842
843-#: src/frontend.py:170
844+#: src/frontend.py:162
845 msgid "yes"
846 msgstr ""
847
848-#: src/frontend.py:215
849+#: src/frontend.py:207
850 msgid "Firewall is active and enabled on system startup"
851 msgstr ""
852
853-#: src/frontend.py:222
854+#: src/frontend.py:214
855 msgid "Firewall stopped and disabled on system startup"
856 msgstr ""
857
858-#: src/frontend.py:273
859+#: src/frontend.py:265
860 msgid "Could not get listening status"
861 msgstr ""
862
863-#: src/frontend.py:360 src/frontend.py:458 src/frontend.py:468
864+#: src/frontend.py:356 src/frontend.py:454 src/frontend.py:464
865 #, python-format
866 msgid "Invalid IP version '%s'"
867 msgstr ""
868
869-#: src/frontend.py:391
870+#: src/frontend.py:387
871 msgid "Invalid position '"
872 msgstr ""
873
874-#: src/frontend.py:465
875+#: src/frontend.py:461
876 msgid "IPv6 support not enabled"
877 msgstr ""
878
879-#: src/frontend.py:476
880+#: src/frontend.py:472
881 msgid "Rule changed after normalization"
882 msgstr ""
883
884+#: src/frontend.py:496
885+#, python-format
886+msgid "Could not back out rule '%s'"
887+msgstr ""
888+
889 #: src/frontend.py:500
890-#, python-format
891-msgid "Could not back out rule '%s'"
892-msgstr ""
893-
894-#: src/frontend.py:504
895 msgid ""
896 "\n"
897 "Error applying application rules."
898 msgstr ""
899
900-#: src/frontend.py:506
901+#: src/frontend.py:502
902 msgid " Some rules could not be unapplied."
903 msgstr ""
904
905-#: src/frontend.py:508
906+#: src/frontend.py:504
907 msgid " Attempted rules successfully unapplied."
908 msgstr ""
909
910-#: src/frontend.py:519
911+#: src/frontend.py:515
912 #, python-format
913 msgid "Could not find rule '%s'"
914 msgstr ""
915
916-#: src/frontend.py:524 src/frontend.py:529
917+#: src/frontend.py:520 src/frontend.py:525
918 #, python-format
919 msgid "Could not find rule '%d'"
920 msgstr ""
921
922-#: src/frontend.py:541
923+#: src/frontend.py:537
924 #, python-format
925 msgid ""
926 "Deleting:\n"
927@@ -608,229 +608,229 @@
928 "Proceed with operation (%(yes)s|%(no)s)? "
929 msgstr ""
930
931-#: src/frontend.py:572
932+#: src/frontend.py:568
933 msgid "Unsupported default policy"
934 msgstr ""
935
936-#: src/frontend.py:599 src/frontend.py:744
937+#: src/frontend.py:595 src/frontend.py:740
938 msgid "Firewall reloaded"
939 msgstr ""
940
941-#: src/frontend.py:601
942+#: src/frontend.py:597
943 msgid "Firewall not enabled (skipping reload)"
944 msgstr ""
945
946-#: src/frontend.py:618 src/frontend.py:632 src/frontend.py:669
947+#: src/frontend.py:614 src/frontend.py:628 src/frontend.py:665
948 msgid "Invalid profile name"
949 msgstr ""
950
951-#: src/frontend.py:637 src/frontend.py:819
952+#: src/frontend.py:633 src/frontend.py:815
953 #, python-format
954 msgid "Unsupported action '%s'"
955 msgstr ""
956
957-#: src/frontend.py:656
958+#: src/frontend.py:652
959 msgid "Available applications:"
960 msgstr ""
961
962-#: src/frontend.py:677
963+#: src/frontend.py:673
964 #, python-format
965 msgid "Could not find profile '%s'"
966 msgstr ""
967
968-#: src/frontend.py:682
969+#: src/frontend.py:678
970 msgid "Invalid profile"
971 msgstr ""
972
973-#: src/frontend.py:685
974+#: src/frontend.py:681
975 #, python-format
976 msgid "Profile: %s\n"
977 msgstr ""
978
979-#: src/frontend.py:686
980+#: src/frontend.py:682
981 #, python-format
982 msgid "Title: %s\n"
983 msgstr ""
984
985-#: src/frontend.py:689
986+#: src/frontend.py:685
987 #, python-format
988 msgid ""
989 "Description: %s\n"
990 "\n"
991 msgstr ""
992
993-#: src/frontend.py:695
994+#: src/frontend.py:691
995 msgid "Ports:"
996 msgstr ""
997
998-#: src/frontend.py:697
999+#: src/frontend.py:693
1000 msgid "Port:"
1001 msgstr ""
1002
1003-#: src/frontend.py:746
1004+#: src/frontend.py:742
1005 msgid "Skipped reloading firewall"
1006 msgstr ""
1007
1008-#: src/frontend.py:756
1009+#: src/frontend.py:752
1010 msgid "Cannot specify 'all' with '--add-new'"
1011 msgstr ""
1012
1013-#: src/frontend.py:771
1014+#: src/frontend.py:767
1015 #, python-format
1016 msgid "Unknown policy '%s'"
1017 msgstr ""
1018
1019-#: src/frontend.py:828
1020+#: src/frontend.py:824
1021 #, python-format
1022 msgid ""
1023 "Command may disrupt existing ssh connections. Proceed with operation "
1024 "(%(yes)s|%(no)s)? "
1025 msgstr ""
1026
1027+#: src/frontend.py:837
1028+#, python-format
1029+msgid ""
1030+"Resetting all rules to installed defaults. Proceed with operation "
1031+"(%(yes)s|%(no)s)? "
1032+msgstr ""
1033+
1034 #: src/frontend.py:841
1035 #, python-format
1036 msgid ""
1037-"Resetting all rules to installed defaults. Proceed with operation "
1038-"(%(yes)s|%(no)s)? "
1039-msgstr ""
1040-
1041-#: src/frontend.py:845
1042-#, python-format
1043-msgid ""
1044 "Resetting all rules to installed defaults. This may disrupt existing ssh "
1045 "connections. Proceed with operation (%(yes)s|%(no)s)? "
1046 msgstr ""
1047
1048-#: src/parser.py:109
1049+#: src/parser.py:107
1050 #, python-format
1051 msgid "Cannot insert rule at position '%s'"
1052 msgstr ""
1053
1054-#: src/parser.py:147
1055+#: src/parser.py:145
1056 msgid "Invalid interface clause"
1057 msgstr ""
1058
1059-#: src/parser.py:173
1060+#: src/parser.py:171
1061 msgid "Option 'log' not allowed here"
1062 msgstr ""
1063
1064-#: src/parser.py:177
1065+#: src/parser.py:175
1066 msgid "Option 'log-all' not allowed here"
1067 msgstr ""
1068
1069-#: src/parser.py:210 src/parser.py:224
1070+#: src/parser.py:208 src/parser.py:222
1071 msgid "Bad port"
1072 msgstr ""
1073
1074-#: src/parser.py:215 src/parser.py:335
1075+#: src/parser.py:213 src/parser.py:333
1076 msgid "Port ranges must be numeric"
1077 msgstr ""
1078
1079-#: src/parser.py:229 src/parser.py:426
1080+#: src/parser.py:227 src/parser.py:419
1081 #, python-format
1082 msgid "Invalid port with protocol '%s'"
1083 msgstr ""
1084
1085-#: src/parser.py:233
1086+#: src/parser.py:231
1087 msgid "Wrong number of arguments"
1088 msgstr ""
1089
1090-#: src/parser.py:237
1091+#: src/parser.py:235
1092 msgid "Need 'to' or 'from' clause"
1093 msgstr ""
1094
1095-#: src/parser.py:252
1096+#: src/parser.py:250
1097 msgid "Improper rule syntax"
1098 msgstr ""
1099
1100-#: src/parser.py:259
1101+#: src/parser.py:257
1102 #, python-format
1103 msgid "Invalid token '%s'"
1104 msgstr ""
1105
1106-#: src/parser.py:268
1107+#: src/parser.py:266
1108 msgid "Invalid 'proto' clause"
1109 msgstr ""
1110
1111-#: src/parser.py:280
1112+#: src/parser.py:278
1113 #, python-format
1114 msgid "Invalid '%s' clause"
1115 msgstr ""
1116
1117-#: src/parser.py:299
1118+#: src/parser.py:297
1119 msgid "Invalid 'from' clause"
1120 msgstr ""
1121
1122-#: src/parser.py:318
1123+#: src/parser.py:316
1124 msgid "Invalid 'to' clause"
1125 msgstr ""
1126
1127-#: src/parser.py:323
1128+#: src/parser.py:321
1129 #, python-format
1130 msgid "Need 'from' or 'to' with '%s'"
1131 msgstr ""
1132
1133-#: src/parser.py:347
1134+#: src/parser.py:345
1135 msgid "Invalid 'port' clause"
1136 msgstr ""
1137
1138-#: src/parser.py:356
1139+#: src/parser.py:354
1140 msgid "Mixed IP versions for 'from' and 'to'"
1141 msgstr ""
1142
1143-#: src/parser.py:370 src/parser.py:377 src/parser.py:383
1144+#: src/parser.py:368 src/parser.py:375 src/parser.py:381
1145 msgid "Could not find protocol"
1146 msgstr ""
1147
1148-#: src/parser.py:390
1149+#: src/parser.py:388
1150 msgid "Protocol mismatch (from/to)"
1151 msgstr ""
1152
1153-#: src/parser.py:397
1154+#: src/parser.py:395
1155 #, python-format
1156 msgid "Protocol mismatch with specified protocol %s"
1157 msgstr ""
1158
1159+#: src/parser.py:402
1160+#, python-format
1161+msgid "Improper rule syntax ('%s' specified with app rule)"
1162+msgstr ""
1163+
1164 #: src/parser.py:409
1165 #, python-format
1166-msgid "Improper rule syntax ('%s' specified with app rule)"
1167-msgstr ""
1168-
1169-#: src/parser.py:416
1170-#, python-format
1171 msgid "Invalid IPv6 address with protocol '%s'"
1172 msgstr ""
1173
1174-#: src/parser.py:745
1175+#: src/parser.py:738
1176 #, python-format
1177 msgid "Invalid command '%s'"
1178 msgstr ""
1179
1180-#: src/parser.py:767
1181+#: src/parser.py:760
1182 #, python-format
1183 msgid "Command '%s' already exists"
1184 msgstr ""
1185
1186-#: src/util.py:386
1187+#: src/util.py:414
1188 msgid "Couldn't find pid (is /proc mounted?)"
1189 msgstr ""
1190
1191-#: src/util.py:390
1192+#: src/util.py:418
1193 #, python-format
1194 msgid "Couldn't find parent pid for '%s'"
1195 msgstr ""
1196
1197-#: src/util.py:400
1198+#: src/util.py:428
1199 #, python-format
1200 msgid "Couldn't find '%s'"
1201 msgstr ""
1202
1203-#: src/util.py:406
1204+#: src/util.py:434
1205 #, python-format
1206 msgid "Could not find executable for '%s'"
1207 msgstr ""
1208
1209-#: src/util.py:871
1210+#: src/util.py:985
1211 #, python-format
1212 msgid "Could not get statistics for '%s'"
1213 msgstr ""
1214
1215=== modified file 'locales/po/ast.po'
1216--- locales/po/ast.po 2012-04-04 20:44:20 +0000
1217+++ locales/po/ast.po 2013-11-11 16:00:06 +0000
1218@@ -7,169 +7,168 @@
1219 msgstr ""
1220 "Project-Id-Version: ufw\n"
1221 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
1222-"POT-Creation-Date: 2011-03-22 10:34-0500\n"
1223+"POT-Creation-Date: 2012-07-29 09:48-0500\n"
1224 "PO-Revision-Date: 2010-04-08 14:07+0000\n"
1225 "Last-Translator: Costales <costales.marcos@gmail.com>\n"
1226 "Language-Team: Asturian <ast@li.org>\n"
1227 "MIME-Version: 1.0\n"
1228 "Content-Type: text/plain; charset=UTF-8\n"
1229 "Content-Transfer-Encoding: 8bit\n"
1230-"X-Launchpad-Export-Date: 2012-02-13 23:52+0000\n"
1231-"X-Generator: Launchpad (build 14781)\n"
1232-
1233-#: src/ufw:46
1234-msgid ": Need at least python 2.5)\n"
1235-msgstr ": Necesitase como mínimo Python 2.5)\n"
1236-
1237-#: src/ufw:103 src/frontend.py:554 src/frontend.py:854
1238+"X-Launchpad-Export-Date: 2012-08-12 01:56+0000\n"
1239+"X-Generator: Launchpad (build 15780)\n"
1240+
1241+#: src/ufw:56
1242+msgid ": Need at least python 2.6)\n"
1243+msgstr ""
1244+
1245+#: src/ufw:109 src/frontend.py:550 src/frontend.py:850
1246 msgid "Aborted"
1247 msgstr "Albortáu"
1248
1249-#: src/applications.py:32
1250+#: src/applications.py:36
1251 msgid "Profiles directory does not exist"
1252 msgstr "Nun esiste'l direutoriu de perfiles"
1253
1254-#: src/applications.py:64
1255+#: src/applications.py:68
1256 #, python-format
1257 msgid "Skipping '%s': couldn't stat"
1258 msgstr "Saltando «%s»: nun puede llese"
1259
1260-#: src/applications.py:69
1261+#: src/applications.py:73
1262 #, python-format
1263 msgid "Skipping '%s': too big"
1264 msgstr "Saltando «%s»: enforma grande"
1265
1266-#: src/applications.py:74
1267+#: src/applications.py:78
1268 #, python-format
1269 msgid "Skipping '%s': too many files read already"
1270 msgstr "Saltando «%s»: yá se lleeron abondos ficheros"
1271
1272-#: src/applications.py:84
1273+#: src/applications.py:92
1274 #, python-format
1275 msgid "Skipping '%s': couldn't process"
1276 msgstr "Saltando «%s»: nun puede procesase"
1277
1278-#: src/applications.py:91
1279+#: src/applications.py:99
1280 #, python-format
1281 msgid "Skipping '%s': name too long"
1282 msgstr "Saltando «%s»: nome enforma llargu"
1283
1284-#: src/applications.py:96
1285+#: src/applications.py:104
1286 #, python-format
1287 msgid "Skipping '%s': invalid name"
1288 msgstr "Saltando «%s»: nome incorreutu"
1289
1290-#: src/applications.py:102
1291+#: src/applications.py:110
1292 #, python-format
1293 msgid "Skipping '%s': also in /etc/services"
1294 msgstr "Saltando «%s»: ta tamién en /etc/services"
1295
1296-#: src/applications.py:111
1297+#: src/applications.py:119
1298 #, python-format
1299 msgid "Skipping '%s': field too long"
1300 msgstr "Saltando «%s»: campu enforma llargu"
1301
1302-#: src/applications.py:116
1303+#: src/applications.py:124
1304 #, python-format
1305 msgid "Skipping '%(value)s': value too long for '%(field)s'"
1306 msgstr "Saltando '%(value)s': valor enforma llargu pa '%(field)s'"
1307
1308-#: src/applications.py:126
1309+#: src/applications.py:134
1310 #, python-format
1311 msgid "Duplicate profile '%s', using last found"
1312 msgstr "Perfil «%s» duplicáu; usaráse l'últimu alcontráu"
1313
1314-#: src/applications.py:156
1315+#: src/applications.py:171
1316 #, python-format
1317 msgid "Profile '%(fn)s' missing required field '%(f)s'"
1318 msgstr "Nel perfil «%(fn)s» falta'l campu obligatoriu '%(f)s'"
1319
1320-#: src/applications.py:161
1321+#: src/applications.py:176
1322 #, python-format
1323 msgid "Profile '%(fn)s' has empty required field '%(f)s'"
1324 msgstr "El perfil «%(fn)s» tienn ermu'l campu obligatoriu «%(f)s»"
1325
1326-#: src/applications.py:167
1327+#: src/applications.py:182
1328 #, python-format
1329 msgid "No ports found in profile '%s'"
1330 msgstr "Nun s'alcontraron puertos nel perfil «%s»"
1331
1332-#: src/applications.py:180
1333+#: src/applications.py:195
1334 #, python-format
1335 msgid "Invalid ports in profile '%s'"
1336 msgstr "Hai puertos incorreutos nel perfil «%s»"
1337
1338-#: src/backend_iptables.py:87
1339+#: src/backend_iptables.py:72
1340 msgid "New profiles:"
1341 msgstr "Perfiles nuevos:"
1342
1343-#: src/backend_iptables.py:103 src/backend.py:275
1344+#: src/backend_iptables.py:88 src/backend.py:315
1345 #, python-format
1346 msgid "Unsupported policy '%s'"
1347 msgstr "Política «%s» non sofitada"
1348
1349-#: src/backend_iptables.py:107
1350+#: src/backend_iptables.py:92
1351 #, python-format
1352 msgid "Unsupported policy for direction '%s'"
1353 msgstr "Politica pa direición '%s' non sofitada"
1354
1355-#: src/backend_iptables.py:165
1356+#: src/backend_iptables.py:150
1357 #, python-format
1358 msgid "Default %(direction)s policy changed to '%(policy)s'\n"
1359 msgstr "La política %(direction)s predeterminada camudó a '%(policy)s'\n"
1360
1361-#: src/backend_iptables.py:167
1362+#: src/backend_iptables.py:152
1363 msgid "(be sure to update your rules accordingly)"
1364 msgstr "(asegúrate d'anovar les regles consecuentemente)"
1365
1366-#: src/backend_iptables.py:174
1367+#: src/backend_iptables.py:159
1368 msgid "Checking raw iptables\n"
1369 msgstr "Comprobando iptables en bruto\n"
1370
1371-#: src/backend_iptables.py:175
1372+#: src/backend_iptables.py:160
1373 msgid "Checking raw ip6tables\n"
1374 msgstr "Comprobando ip6tables en bruto\n"
1375
1376-#: src/backend_iptables.py:178 src/backend_iptables.py:269
1377-#: src/backend_iptables.py:448 src/backend_iptables.py:459
1378-#: src/backend_iptables.py:507
1379-msgid "problem running"
1380-msgstr "problema executando"
1381-
1382-#: src/backend_iptables.py:264
1383+#: src/backend_iptables.py:250
1384 msgid "Checking iptables\n"
1385 msgstr "Verificando les regles d'iptables\n"
1386
1387-#: src/backend_iptables.py:266
1388+#: src/backend_iptables.py:252
1389 msgid "Checking ip6tables\n"
1390 msgstr "Verificando les regles d'ip6tables\n"
1391
1392-#: src/backend_iptables.py:275
1393+#: src/backend_iptables.py:255 src/backend_iptables.py:435
1394+#: src/backend_iptables.py:446 src/backend_iptables.py:497
1395+msgid "problem running"
1396+msgstr "problema executando"
1397+
1398+#: src/backend_iptables.py:261
1399 msgid "Status: inactive"
1400 msgstr "Estáu: inactivu"
1401
1402-#: src/backend_iptables.py:411
1403+#: src/backend_iptables.py:397
1404 msgid "To"
1405 msgstr "A"
1406
1407-#: src/backend_iptables.py:412
1408+#: src/backend_iptables.py:398
1409 msgid "From"
1410 msgstr "Dende"
1411
1412-#: src/backend_iptables.py:413
1413+#: src/backend_iptables.py:399
1414 msgid "Action"
1415 msgstr "Aición"
1416
1417-#: src/backend_iptables.py:428
1418+#: src/backend_iptables.py:415
1419 msgid "\n"
1420 msgstr "\n"
1421
1422-#: src/backend_iptables.py:436
1423+#: src/backend_iptables.py:423
1424 #, python-format
1425 msgid "Default: %(in)s (incoming), %(out)s (outgoing)"
1426 msgstr "Por defeuto: %(in)s (Entrada), %(out)s (Salida)"
1427
1428-#: src/backend_iptables.py:440
1429+#: src/backend_iptables.py:427
1430 #, python-format
1431 msgid ""
1432 "Status: active\n"
1433@@ -182,265 +181,270 @@
1434 "%(pol)s\n"
1435 "%(app)s%(status)s"
1436
1437-#: src/backend_iptables.py:444
1438+#: src/backend_iptables.py:431
1439 #, python-format
1440 msgid "Status: active%s"
1441 msgstr "Estáu: activu%s"
1442
1443-#: src/backend_iptables.py:450 src/backend_iptables.py:461
1444+#: src/backend_iptables.py:437 src/backend_iptables.py:448
1445 msgid "running ufw-init"
1446 msgstr "executando ufw-init"
1447
1448-#: src/backend_iptables.py:474
1449+#: src/backend_iptables.py:461
1450 msgid "Could not set LOGLEVEL"
1451 msgstr "Nun pudo afitase LOGLEVEL"
1452
1453-#: src/backend_iptables.py:480
1454+#: src/backend_iptables.py:467
1455 msgid "Could not load logging rules"
1456 msgstr "Nun pudieron cargase les regles de rexistru"
1457
1458-#: src/backend_iptables.py:629 src/backend.py:181
1459+#: src/backend_iptables.py:619 src/backend.py:221
1460 #, python-format
1461 msgid "Couldn't open '%s' for reading"
1462 msgstr "Nun puede abrise «%s» pa llectura"
1463
1464-#: src/backend_iptables.py:638
1465+#: src/backend_iptables.py:628
1466 #, python-format
1467 msgid "Skipping malformed tuple (bad length): %s"
1468 msgstr ""
1469 "Saltando regla errónea (llonxitú errónea): %s. Verifica'l to tornafueos"
1470
1471-#: src/backend_iptables.py:668
1472+#: src/backend_iptables.py:659
1473 #, python-format
1474 msgid "Skipping malformed tuple: %s"
1475 msgstr "Saltando llínia erróna: %s. Verifica'l to tornafueos"
1476
1477-#: src/backend_iptables.py:690 src/backend.py:213
1478+#: src/backend_iptables.py:681 src/backend.py:253
1479 #, python-format
1480 msgid "'%s' is not writable"
1481 msgstr ""
1482
1483-#: src/backend_iptables.py:830
1484+#: src/backend_iptables.py:839
1485 msgid "Adding IPv6 rule failed: IPv6 not enabled"
1486 msgstr "Fallu al amestar la regla IPv6: IPv6 nun activao"
1487
1488-#: src/backend_iptables.py:834
1489+#: src/backend_iptables.py:843
1490 #, python-format
1491 msgid "Skipping unsupported IPv6 '%s' rule"
1492 msgstr "Saltando regla IPv6 «%s» non sofitada"
1493
1494-#: src/backend_iptables.py:837
1495+#: src/backend_iptables.py:847
1496+#, python-format
1497+msgid "Skipping unsupported IPv4 '%s' rule"
1498+msgstr ""
1499+
1500+#: src/backend_iptables.py:850
1501 msgid "Must specify 'tcp' or 'udp' with multiple ports"
1502 msgstr "Tien d'especificase «tcp» o «udp» con varios puertos"
1503
1504-#: src/backend_iptables.py:849
1505+#: src/backend_iptables.py:862
1506 msgid "Skipping IPv6 application rule. Need at least iptables 1.4"
1507 msgstr ""
1508 "Saltando les regles d'aplicación IPv6. Necesitase iptables 1.4 como mínimo"
1509
1510-#: src/backend_iptables.py:854
1511+#: src/backend_iptables.py:867
1512 #, python-format
1513 msgid "Invalid position '%d'"
1514 msgstr "Posición «%d» incorreuta"
1515
1516-#: src/backend_iptables.py:858
1517+#: src/backend_iptables.py:871
1518 msgid "Cannot specify insert and delete"
1519 msgstr "Nun puede especificase inxertar y desaniciar"
1520
1521-#: src/backend_iptables.py:861
1522+#: src/backend_iptables.py:874
1523 #, python-format
1524 msgid "Cannot insert rule at position '%d'"
1525 msgstr "Nun pudo inxertase la regla na posición «%d»"
1526
1527-#: src/backend_iptables.py:919
1528+#: src/backend_iptables.py:932
1529 msgid "Skipping inserting existing rule"
1530 msgstr "Saltando l'inxertáu de regla ya existente"
1531
1532-#: src/backend_iptables.py:930 src/frontend.py:365
1533+#: src/backend_iptables.py:943 src/frontend.py:361
1534 msgid "Could not delete non-existent rule"
1535 msgstr "Nun puede desaniciase una regla inesistente"
1536
1537-#: src/backend_iptables.py:935
1538+#: src/backend_iptables.py:948
1539 msgid "Skipping adding existing rule"
1540 msgstr "Saltando l'añader d'una regla ya existente"
1541
1542-#: src/backend_iptables.py:951
1543+#: src/backend_iptables.py:964
1544 msgid "Couldn't update rules file"
1545 msgstr "Nun pudo anovase'l ficheru de regles"
1546
1547-#: src/backend_iptables.py:956
1548+#: src/backend_iptables.py:969
1549 msgid "Rules updated"
1550 msgstr "Regles anovaes"
1551
1552-#: src/backend_iptables.py:958
1553+#: src/backend_iptables.py:971
1554 msgid "Rules updated (v6)"
1555 msgstr "Regles anovaes (v6)"
1556
1557-#: src/backend_iptables.py:966
1558+#: src/backend_iptables.py:979
1559 msgid "Rule inserted"
1560 msgstr "Regla inxertada"
1561
1562-#: src/backend_iptables.py:968
1563+#: src/backend_iptables.py:981
1564 msgid "Rule updated"
1565 msgstr "Regla anovada"
1566
1567-#: src/backend_iptables.py:978
1568+#: src/backend_iptables.py:991
1569 msgid " (skipped reloading firewall)"
1570 msgstr " (saltando la recarga del tornafueos)"
1571
1572-#: src/backend_iptables.py:981
1573+#: src/backend_iptables.py:994
1574 msgid "Rule deleted"
1575 msgstr "Regla desaniciada"
1576
1577-#: src/backend_iptables.py:984
1578+#: src/backend_iptables.py:997
1579 msgid "Rule added"
1580 msgstr "Regla amestada"
1581
1582-#: src/backend_iptables.py:999 src/backend_iptables.py:1087
1583+#: src/backend_iptables.py:1012 src/backend_iptables.py:1100
1584 msgid "Could not update running firewall"
1585 msgstr "El tortafueos NON foi anováu"
1586
1587-#: src/backend_iptables.py:1054
1588+#: src/backend_iptables.py:1067
1589 #, python-format
1590 msgid "Could not perform '%s'"
1591 msgstr "Nun puedes facer «%s»"
1592
1593-#: src/backend_iptables.py:1078
1594+#: src/backend_iptables.py:1091
1595 msgid "Couldn't update rules file for logging"
1596 msgstr ""
1597
1598-#: src/backend_iptables.py:1132 src/backend.py:530
1599+#: src/backend_iptables.py:1149 src/backend.py:571
1600 #, python-format
1601 msgid "Invalid log level '%s'"
1602 msgstr "Nivel de rexistru «%s» incorreutu"
1603
1604-#: src/backend_iptables.py:1228
1605+#: src/backend_iptables.py:1246
1606 #, python-format
1607 msgid "Could not find '%s'. Aborting"
1608 msgstr ""
1609
1610-#: src/backend_iptables.py:1240
1611+#: src/backend_iptables.py:1258
1612 #, python-format
1613 msgid "'%s' already exists. Aborting"
1614 msgstr ""
1615
1616-#: src/backend_iptables.py:1246
1617+#: src/backend_iptables.py:1264
1618 #, python-format
1619 msgid "Backing up '%(old)s' to '%(new)s'\n"
1620 msgstr ""
1621
1622-#: src/backend_iptables.py:1262 src/backend.py:140
1623+#: src/backend_iptables.py:1280 src/backend.py:180
1624 #, python-format
1625 msgid "Couldn't stat '%s'"
1626 msgstr "Nun se pudo facer stat «%s»"
1627
1628-#: src/backend_iptables.py:1267
1629+#: src/backend_iptables.py:1285
1630 #, python-format
1631 msgid "WARN: '%s' is world writable"
1632 msgstr ""
1633
1634-#: src/backend_iptables.py:1269
1635+#: src/backend_iptables.py:1287
1636 #, python-format
1637 msgid "WARN: '%s' is world readable"
1638 msgstr ""
1639
1640-#: src/backend.py:96
1641+#: src/backend.py:136
1642 msgid "Checks disabled"
1643 msgstr "Verificación desactivada"
1644
1645-#: src/backend.py:102
1646+#: src/backend.py:142
1647 msgid "ERROR: this script should not be SUID"
1648 msgstr "ERROR: esti guión nun tendría de ser SUID"
1649
1650-#: src/backend.py:105
1651+#: src/backend.py:145
1652 msgid "ERROR: this script should not be SGID"
1653 msgstr "ERROR: esti guión nun tendría de ser SGID"
1654
1655-#: src/backend.py:110
1656+#: src/backend.py:150
1657 msgid "You need to be root to run this script"
1658 msgstr "Necesita permisos d'alministrador pa executar esti guión"
1659
1660-#: src/backend.py:120
1661+#: src/backend.py:160
1662 #, python-format
1663 msgid "'%s' does not exist"
1664 msgstr "«%s» nun esiste"
1665
1666-#: src/backend.py:146
1667+#: src/backend.py:186
1668 #, python-format
1669 msgid "uid is %(uid)s but '%(path)s' is owned by %(st_uid)s"
1670 msgstr "l'uid ye %(uid)s pero «%(path)s» pertenez a %(st_uid)s"
1671
1672-#: src/backend.py:153
1673+#: src/backend.py:193
1674 #, python-format
1675 msgid "%s is world writable!"
1676 msgstr "¡%s tien concedíos permisos d'escritura pa tol mundu!"
1677
1678-#: src/backend.py:157
1679+#: src/backend.py:197
1680 #, python-format
1681 msgid "%s is group writable!"
1682 msgstr "¡El grupu tien drechu d'escritura en %s!"
1683
1684-#: src/backend.py:170
1685+#: src/backend.py:210
1686 #, python-format
1687 msgid "'%(f)s' file '%(name)s' does not exist"
1688 msgstr "'%(f)s' el ficheru '%(name)s' nun esiste"
1689
1690-#: src/backend.py:195
1691+#: src/backend.py:235
1692 #, python-format
1693 msgid "Missing policy for '%s'"
1694 msgstr "Falta política pa '%s'"
1695
1696-#: src/backend.py:200
1697+#: src/backend.py:240
1698 #, python-format
1699 msgid "Invalid policy '%(policy)s' for '%(chain)s'"
1700 msgstr "Política «%(policy)s» incorreuta pa «%(chain)s»"
1701
1702-#: src/backend.py:207
1703+#: src/backend.py:247
1704 msgid "Invalid option"
1705 msgstr "Opción inválida"
1706
1707-#: src/backend.py:278
1708+#: src/backend.py:318
1709 #, python-format
1710 msgid "Default application policy changed to '%s'"
1711 msgstr "Directives d'aplicación predeterminaes camudaes a «%s»"
1712
1713-#: src/backend.py:360
1714+#: src/backend.py:400
1715 msgid "No rules found for application profile"
1716 msgstr "Nun s'alcontraron regles pal perfil de l'aplicación"
1717
1718-#: src/backend.py:419
1719+#: src/backend.py:459
1720 #, python-format
1721 msgid "Rules updated for profile '%s'"
1722 msgstr "Anovaronse les regles pal perfil «%s»"
1723
1724-#: src/backend.py:425
1725+#: src/backend.py:465
1726 msgid "Couldn't update application rules"
1727 msgstr "Nun pudieron anovase les regles de la aplicación"
1728
1729-#: src/backend.py:447
1730+#: src/backend.py:487
1731 #, python-format
1732 msgid "Found multiple matches for '%s'. Please use exact profile name"
1733 msgstr ""
1734 "Alcontraronse varies coincidencise pa «%s». Usa un nome de perfil esautu"
1735
1736-#: src/backend.py:448
1737+#: src/backend.py:489
1738 #, python-format
1739 msgid "Could not find a profile matching '%s'"
1740 msgstr "Nun pudo alcontrase un perfil que concase con «%s»"
1741
1742-#: src/backend.py:514
1743+#: src/backend.py:555
1744 msgid "Logging: "
1745 msgstr "Accesu: "
1746
1747-#: src/backend.py:518
1748+#: src/backend.py:559
1749 msgid "unknown"
1750 msgstr "desconocíu"
1751
1752-#: src/backend.py:548
1753+#: src/backend.py:589
1754 msgid "Logging disabled"
1755 msgstr "Rexistru desactiváu"
1756
1757-#: src/backend.py:550
1758+#: src/backend.py:591
1759 msgid "Logging enabled"
1760 msgstr "Registru activáu"
1761
1762@@ -489,25 +493,21 @@
1763 msgid "Unsupported direction '%s'"
1764 msgstr "Direición '%s' non sofitada"
1765
1766-#: src/common.py:346
1767-msgid "Could not normalize source address"
1768-msgstr "Nun pudo normalizase la direición d'orixe"
1769-
1770-#: src/common.py:356
1771+#: src/common.py:355
1772 msgid "Could not normalize destination address"
1773 msgstr "Nun pudo normalizase la direición de destín"
1774
1775-#: src/common.py:417
1776+#: src/common.py:416
1777 msgid "Found exact match"
1778 msgstr "Alcontrada una coincidencia esauta"
1779
1780-#: src/common.py:421
1781+#: src/common.py:420
1782 #, python-format
1783 msgid "Found non-action/non-logtype match (%(xa)s/%(ya)s %(xl)s/%(yl)s)"
1784 msgstr ""
1785 "Coincidencia alcontrada non-action/non-logtype (%(xa)s/%(ya)s %(xl)s/%(yl)s)"
1786
1787-#: src/frontend.py:93
1788+#: src/frontend.py:88
1789 #, python-format
1790 msgid ""
1791 "\n"
1792@@ -538,53 +538,53 @@
1793 " %(appdefault)-31s set default application policy\n"
1794 msgstr ""
1795
1796-#: src/frontend.py:168
1797+#: src/frontend.py:160
1798 msgid "n"
1799 msgstr "n"
1800
1801-#: src/frontend.py:169
1802+#: src/frontend.py:161
1803 msgid "y"
1804 msgstr "y"
1805
1806-#: src/frontend.py:170
1807+#: src/frontend.py:162
1808 msgid "yes"
1809 msgstr "sí"
1810
1811-#: src/frontend.py:215
1812+#: src/frontend.py:207
1813 msgid "Firewall is active and enabled on system startup"
1814 msgstr "El tornafueos ta activo y activáu nel arranque del sistema"
1815
1816-#: src/frontend.py:222
1817+#: src/frontend.py:214
1818 msgid "Firewall stopped and disabled on system startup"
1819 msgstr "El tornafueos ta paráu y desactiváu nel arranque del sistema"
1820
1821-#: src/frontend.py:273
1822+#: src/frontend.py:265
1823 msgid "Could not get listening status"
1824 msgstr ""
1825
1826-#: src/frontend.py:360 src/frontend.py:458 src/frontend.py:468
1827+#: src/frontend.py:356 src/frontend.py:454 src/frontend.py:464
1828 #, python-format
1829 msgid "Invalid IP version '%s'"
1830 msgstr "La versión d'IP «%s» nun ye válida"
1831
1832-#: src/frontend.py:391
1833+#: src/frontend.py:387
1834 msgid "Invalid position '"
1835 msgstr "Posición ' incorreuta"
1836
1837-#: src/frontend.py:465
1838+#: src/frontend.py:461
1839 msgid "IPv6 support not enabled"
1840 msgstr "El sofitu pa IPv6 nun ta activao"
1841
1842-#: src/frontend.py:476
1843+#: src/frontend.py:472
1844 msgid "Rule changed after normalization"
1845 msgstr "Camudóse una regla tres la normalización"
1846
1847-#: src/frontend.py:500
1848+#: src/frontend.py:496
1849 #, python-format
1850 msgid "Could not back out rule '%s'"
1851 msgstr "Nun pudo revertise la regla «%s»"
1852
1853-#: src/frontend.py:504
1854+#: src/frontend.py:500
1855 msgid ""
1856 "\n"
1857 "Error applying application rules."
1858@@ -592,25 +592,25 @@
1859 "\n"
1860 "Hebo un fallu al aplicar les regles de l'aplicación."
1861
1862-#: src/frontend.py:506
1863+#: src/frontend.py:502
1864 msgid " Some rules could not be unapplied."
1865 msgstr " Ye posible que dalgunes regles nun s'heban revertío."
1866
1867-#: src/frontend.py:508
1868+#: src/frontend.py:504
1869 msgid " Attempted rules successfully unapplied."
1870 msgstr " Les regles pudieron revertise."
1871
1872-#: src/frontend.py:519
1873+#: src/frontend.py:515
1874 #, python-format
1875 msgid "Could not find rule '%s'"
1876 msgstr ""
1877
1878-#: src/frontend.py:524 src/frontend.py:529
1879+#: src/frontend.py:520 src/frontend.py:525
1880 #, python-format
1881 msgid "Could not find rule '%d'"
1882 msgstr ""
1883
1884-#: src/frontend.py:541
1885+#: src/frontend.py:537
1886 #, python-format
1887 msgid ""
1888 "Deleting:\n"
1889@@ -618,51 +618,51 @@
1890 "Proceed with operation (%(yes)s|%(no)s)? "
1891 msgstr ""
1892
1893-#: src/frontend.py:572
1894+#: src/frontend.py:568
1895 msgid "Unsupported default policy"
1896 msgstr "Política predeterminada non sofitada"
1897
1898-#: src/frontend.py:599 src/frontend.py:744
1899+#: src/frontend.py:595 src/frontend.py:740
1900 msgid "Firewall reloaded"
1901 msgstr "El tornafueos reaniciose"
1902
1903-#: src/frontend.py:601
1904+#: src/frontend.py:597
1905 msgid "Firewall not enabled (skipping reload)"
1906 msgstr "El tornafueos nun ta activáu (nun puede recargase)"
1907
1908-#: src/frontend.py:618 src/frontend.py:632 src/frontend.py:669
1909+#: src/frontend.py:614 src/frontend.py:628 src/frontend.py:665
1910 msgid "Invalid profile name"
1911 msgstr "El nome del perfil ye incorreutu"
1912
1913-#: src/frontend.py:637 src/frontend.py:819
1914+#: src/frontend.py:633 src/frontend.py:815
1915 #, python-format
1916 msgid "Unsupported action '%s'"
1917 msgstr "Aición «%s» non sofitada"
1918
1919-#: src/frontend.py:656
1920+#: src/frontend.py:652
1921 msgid "Available applications:"
1922 msgstr "Aplicaciones disponibles:"
1923
1924-#: src/frontend.py:677
1925+#: src/frontend.py:673
1926 #, python-format
1927 msgid "Could not find profile '%s'"
1928 msgstr "Nun pudo alcontrase'l perfil «%s»"
1929
1930-#: src/frontend.py:682
1931+#: src/frontend.py:678
1932 msgid "Invalid profile"
1933 msgstr "Perfil incorreutu"
1934
1935-#: src/frontend.py:685
1936+#: src/frontend.py:681
1937 #, python-format
1938 msgid "Profile: %s\n"
1939 msgstr "Perfil: %s\n"
1940
1941-#: src/frontend.py:686
1942+#: src/frontend.py:682
1943 #, python-format
1944 msgid "Title: %s\n"
1945 msgstr "Títulu: %s\n"
1946
1947-#: src/frontend.py:689
1948+#: src/frontend.py:685
1949 #, python-format
1950 msgid ""
1951 "Description: %s\n"
1952@@ -671,180 +671,180 @@
1953 "Descripción: %s\n"
1954 "\n"
1955
1956-#: src/frontend.py:695
1957+#: src/frontend.py:691
1958 msgid "Ports:"
1959 msgstr "Puertos:"
1960
1961-#: src/frontend.py:697
1962+#: src/frontend.py:693
1963 msgid "Port:"
1964 msgstr "Puertu:"
1965
1966-#: src/frontend.py:746
1967+#: src/frontend.py:742
1968 msgid "Skipped reloading firewall"
1969 msgstr "Saltase la recarga del tornafueos"
1970
1971-#: src/frontend.py:756
1972+#: src/frontend.py:752
1973 msgid "Cannot specify 'all' with '--add-new'"
1974 msgstr "Nun puede especificase «all» con «--add-new»"
1975
1976-#: src/frontend.py:771
1977+#: src/frontend.py:767
1978 #, python-format
1979 msgid "Unknown policy '%s'"
1980 msgstr "La política «%s» ye desconocida"
1981
1982-#: src/frontend.py:828
1983+#: src/frontend.py:824
1984 #, python-format
1985 msgid ""
1986 "Command may disrupt existing ssh connections. Proceed with operation "
1987 "(%(yes)s|%(no)s)? "
1988 msgstr ""
1989
1990+#: src/frontend.py:837
1991+#, python-format
1992+msgid ""
1993+"Resetting all rules to installed defaults. Proceed with operation "
1994+"(%(yes)s|%(no)s)? "
1995+msgstr ""
1996+
1997 #: src/frontend.py:841
1998 #, python-format
1999 msgid ""
2000-"Resetting all rules to installed defaults. Proceed with operation "
2001-"(%(yes)s|%(no)s)? "
2002-msgstr ""
2003-
2004-#: src/frontend.py:845
2005-#, python-format
2006-msgid ""
2007 "Resetting all rules to installed defaults. This may disrupt existing ssh "
2008 "connections. Proceed with operation (%(yes)s|%(no)s)? "
2009 msgstr ""
2010
2011-#: src/parser.py:109
2012+#: src/parser.py:107
2013 #, python-format
2014 msgid "Cannot insert rule at position '%s'"
2015 msgstr "Nun pudo inxertase la regla na posición «%s»"
2016
2017-#: src/parser.py:147
2018+#: src/parser.py:145
2019 msgid "Invalid interface clause"
2020 msgstr "Cláusula d'interface incorreuta"
2021
2022-#: src/parser.py:173
2023+#: src/parser.py:171
2024 msgid "Option 'log' not allowed here"
2025 msgstr "Opción «log» non permitida equí"
2026
2027-#: src/parser.py:177
2028+#: src/parser.py:175
2029 msgid "Option 'log-all' not allowed here"
2030 msgstr "Opción 'log-all' non permitida equí"
2031
2032-#: src/parser.py:210 src/parser.py:224
2033+#: src/parser.py:208 src/parser.py:222
2034 msgid "Bad port"
2035 msgstr "Puertu erróneu"
2036
2037-#: src/parser.py:215 src/parser.py:335
2038+#: src/parser.py:213 src/parser.py:333
2039 msgid "Port ranges must be numeric"
2040 msgstr "Los rangos de puertos deben ser numbéricos"
2041
2042-#: src/parser.py:229 src/parser.py:426
2043+#: src/parser.py:227 src/parser.py:419
2044 #, python-format
2045 msgid "Invalid port with protocol '%s'"
2046 msgstr ""
2047
2048-#: src/parser.py:233
2049+#: src/parser.py:231
2050 msgid "Wrong number of arguments"
2051 msgstr "Númberu incorreutu d'argumentos"
2052
2053-#: src/parser.py:237
2054+#: src/parser.py:235
2055 msgid "Need 'to' or 'from' clause"
2056 msgstr "Necesitase la cláusula «to» o «from»"
2057
2058-#: src/parser.py:252
2059+#: src/parser.py:250
2060 msgid "Improper rule syntax"
2061 msgstr "Fallu de sintáxis na regla"
2062
2063-#: src/parser.py:259
2064+#: src/parser.py:257
2065 #, python-format
2066 msgid "Invalid token '%s'"
2067 msgstr "El token «%s» ye incorreutu"
2068
2069-#: src/parser.py:268
2070+#: src/parser.py:266
2071 msgid "Invalid 'proto' clause"
2072 msgstr "La cláusula «proto» ye incorreuta"
2073
2074-#: src/parser.py:280
2075+#: src/parser.py:278
2076 #, python-format
2077 msgid "Invalid '%s' clause"
2078 msgstr "Cláusula '%s' non válida"
2079
2080-#: src/parser.py:299
2081+#: src/parser.py:297
2082 msgid "Invalid 'from' clause"
2083 msgstr "La cláusula «from» ye incorreuta"
2084
2085-#: src/parser.py:318
2086+#: src/parser.py:316
2087 msgid "Invalid 'to' clause"
2088 msgstr "La cláusula «to» ye incorreuta"
2089
2090-#: src/parser.py:323
2091+#: src/parser.py:321
2092 #, python-format
2093 msgid "Need 'from' or 'to' with '%s'"
2094 msgstr "Necesitase usar «from» o «to» con «%s»"
2095
2096-#: src/parser.py:347
2097+#: src/parser.py:345
2098 msgid "Invalid 'port' clause"
2099 msgstr "La cláusula «port» ye incorreuta"
2100
2101-#: src/parser.py:356
2102+#: src/parser.py:354
2103 msgid "Mixed IP versions for 'from' and 'to'"
2104 msgstr "Les versiones IP de «from» y «to» tan amestaes"
2105
2106-#: src/parser.py:370 src/parser.py:377 src/parser.py:383
2107+#: src/parser.py:368 src/parser.py:375 src/parser.py:381
2108 msgid "Could not find protocol"
2109 msgstr "Nun pudo alcontrase'l protocolu"
2110
2111-#: src/parser.py:390
2112+#: src/parser.py:388
2113 msgid "Protocol mismatch (from/to)"
2114 msgstr "Nun concasa l'usu del protocolu (from/to)"
2115
2116-#: src/parser.py:397
2117+#: src/parser.py:395
2118 #, python-format
2119 msgid "Protocol mismatch with specified protocol %s"
2120 msgstr "El protocolu nun concasa col especificáu («%s»)"
2121
2122-#: src/parser.py:409
2123+#: src/parser.py:402
2124 #, python-format
2125 msgid "Improper rule syntax ('%s' specified with app rule)"
2126 msgstr ""
2127 "Sintaxis inapropiada pa la regla (especificóse «%s» con una regla "
2128 "d'aplicación)"
2129
2130-#: src/parser.py:416
2131+#: src/parser.py:409
2132 #, python-format
2133 msgid "Invalid IPv6 address with protocol '%s'"
2134 msgstr ""
2135
2136-#: src/parser.py:745
2137+#: src/parser.py:738
2138 #, python-format
2139 msgid "Invalid command '%s'"
2140 msgstr ""
2141
2142-#: src/parser.py:767
2143+#: src/parser.py:760
2144 #, python-format
2145 msgid "Command '%s' already exists"
2146 msgstr ""
2147
2148-#: src/util.py:386
2149+#: src/util.py:414
2150 msgid "Couldn't find pid (is /proc mounted?)"
2151 msgstr "Nun alcontráu'l PID (¿ta montáu /proc?)"
2152
2153-#: src/util.py:390
2154+#: src/util.py:418
2155 #, python-format
2156 msgid "Couldn't find parent pid for '%s'"
2157 msgstr "Nun alcontráu'l PID del padre de «%s»"
2158
2159-#: src/util.py:400
2160+#: src/util.py:428
2161 #, python-format
2162 msgid "Couldn't find '%s'"
2163 msgstr "Nun alcontráu «%s»"
2164
2165-#: src/util.py:406
2166+#: src/util.py:434
2167 #, python-format
2168 msgid "Could not find executable for '%s'"
2169 msgstr "Nun alcontráu l'executable pa «%s»"
2170
2171-#: src/util.py:871
2172+#: src/util.py:985
2173 #, python-format
2174 msgid "Could not get statistics for '%s'"
2175 msgstr ""
2176@@ -861,9 +861,15 @@
2177 #~ msgid "uid is %s but '%s' is owned by %s"
2178 #~ msgstr "El UID ye %s pero «%s» pertenez a %s"
2179
2180+#~ msgid ": Need at least python 2.5)\n"
2181+#~ msgstr ": Necesitase como mínimo Python 2.5)\n"
2182+
2183 #~ msgid "No match"
2184 #~ msgstr "Nun concasa"
2185
2186+#~ msgid "Could not normalize source address"
2187+#~ msgstr "Nun pudo normalizase la direición d'orixe"
2188+
2189 #~ msgid "Command may disrupt existing ssh connections."
2190 #~ msgstr "Esa orden puede afectar a les conexones SSH en cursu."
2191
2192
2193=== modified file 'locales/po/bg.po'
2194--- locales/po/bg.po 2012-04-04 20:44:20 +0000
2195+++ locales/po/bg.po 2013-11-11 16:00:06 +0000
2196@@ -7,169 +7,168 @@
2197 msgstr ""
2198 "Project-Id-Version: ufw\n"
2199 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
2200-"POT-Creation-Date: 2011-03-22 10:34-0500\n"
2201+"POT-Creation-Date: 2012-07-29 09:48-0500\n"
2202 "PO-Revision-Date: 2009-08-26 19:14+0000\n"
2203 "Last-Translator: Siyan Panayotov <xsisqox@gmail.com>\n"
2204 "Language-Team: Bulgarian <bg@li.org>\n"
2205 "MIME-Version: 1.0\n"
2206 "Content-Type: text/plain; charset=UTF-8\n"
2207 "Content-Transfer-Encoding: 8bit\n"
2208-"X-Launchpad-Export-Date: 2012-02-13 23:52+0000\n"
2209-"X-Generator: Launchpad (build 14781)\n"
2210+"X-Launchpad-Export-Date: 2012-08-12 01:56+0000\n"
2211+"X-Generator: Launchpad (build 15780)\n"
2212
2213-#: src/ufw:46
2214-msgid ": Need at least python 2.5)\n"
2215+#: src/ufw:56
2216+msgid ": Need at least python 2.6)\n"
2217 msgstr ""
2218
2219-#: src/ufw:103 src/frontend.py:554 src/frontend.py:854
2220+#: src/ufw:109 src/frontend.py:550 src/frontend.py:850
2221 msgid "Aborted"
2222 msgstr ""
2223
2224-#: src/applications.py:32
2225+#: src/applications.py:36
2226 msgid "Profiles directory does not exist"
2227 msgstr ""
2228
2229-#: src/applications.py:64
2230+#: src/applications.py:68
2231 #, python-format
2232 msgid "Skipping '%s': couldn't stat"
2233 msgstr ""
2234
2235-#: src/applications.py:69
2236+#: src/applications.py:73
2237 #, python-format
2238 msgid "Skipping '%s': too big"
2239 msgstr ""
2240
2241-#: src/applications.py:74
2242+#: src/applications.py:78
2243 #, python-format
2244 msgid "Skipping '%s': too many files read already"
2245 msgstr ""
2246
2247-#: src/applications.py:84
2248+#: src/applications.py:92
2249 #, python-format
2250 msgid "Skipping '%s': couldn't process"
2251 msgstr ""
2252
2253-#: src/applications.py:91
2254+#: src/applications.py:99
2255 #, python-format
2256 msgid "Skipping '%s': name too long"
2257 msgstr ""
2258
2259-#: src/applications.py:96
2260+#: src/applications.py:104
2261 #, python-format
2262 msgid "Skipping '%s': invalid name"
2263 msgstr ""
2264
2265-#: src/applications.py:102
2266+#: src/applications.py:110
2267 #, python-format
2268 msgid "Skipping '%s': also in /etc/services"
2269 msgstr ""
2270
2271-#: src/applications.py:111
2272+#: src/applications.py:119
2273 #, python-format
2274 msgid "Skipping '%s': field too long"
2275 msgstr ""
2276
2277-#: src/applications.py:116
2278+#: src/applications.py:124
2279 #, python-format
2280 msgid "Skipping '%(value)s': value too long for '%(field)s'"
2281 msgstr ""
2282
2283-#: src/applications.py:126
2284+#: src/applications.py:134
2285 #, python-format
2286 msgid "Duplicate profile '%s', using last found"
2287 msgstr ""
2288
2289-#: src/applications.py:156
2290+#: src/applications.py:171
2291 #, python-format
2292 msgid "Profile '%(fn)s' missing required field '%(f)s'"
2293 msgstr ""
2294
2295-#: src/applications.py:161
2296+#: src/applications.py:176
2297 #, python-format
2298 msgid "Profile '%(fn)s' has empty required field '%(f)s'"
2299 msgstr ""
2300
2301-#: src/applications.py:167
2302+#: src/applications.py:182
2303 #, python-format
2304 msgid "No ports found in profile '%s'"
2305 msgstr ""
2306
2307-#: src/applications.py:180
2308+#: src/applications.py:195
2309 #, python-format
2310 msgid "Invalid ports in profile '%s'"
2311 msgstr ""
2312
2313-#: src/backend_iptables.py:87
2314+#: src/backend_iptables.py:72
2315 msgid "New profiles:"
2316 msgstr ""
2317
2318-#: src/backend_iptables.py:103 src/backend.py:275
2319+#: src/backend_iptables.py:88 src/backend.py:315
2320 #, python-format
2321 msgid "Unsupported policy '%s'"
2322 msgstr ""
2323
2324-#: src/backend_iptables.py:107
2325+#: src/backend_iptables.py:92
2326 #, python-format
2327 msgid "Unsupported policy for direction '%s'"
2328 msgstr ""
2329
2330-#: src/backend_iptables.py:165
2331+#: src/backend_iptables.py:150
2332 #, python-format
2333 msgid "Default %(direction)s policy changed to '%(policy)s'\n"
2334 msgstr ""
2335
2336-#: src/backend_iptables.py:167
2337+#: src/backend_iptables.py:152
2338 msgid "(be sure to update your rules accordingly)"
2339 msgstr ""
2340
2341-#: src/backend_iptables.py:174
2342+#: src/backend_iptables.py:159
2343 msgid "Checking raw iptables\n"
2344 msgstr ""
2345
2346-#: src/backend_iptables.py:175
2347+#: src/backend_iptables.py:160
2348 msgid "Checking raw ip6tables\n"
2349 msgstr ""
2350
2351-#: src/backend_iptables.py:178 src/backend_iptables.py:269
2352-#: src/backend_iptables.py:448 src/backend_iptables.py:459
2353-#: src/backend_iptables.py:507
2354-msgid "problem running"
2355-msgstr ""
2356-
2357-#: src/backend_iptables.py:264
2358+#: src/backend_iptables.py:250
2359 msgid "Checking iptables\n"
2360 msgstr ""
2361
2362-#: src/backend_iptables.py:266
2363+#: src/backend_iptables.py:252
2364 msgid "Checking ip6tables\n"
2365 msgstr ""
2366
2367-#: src/backend_iptables.py:275
2368+#: src/backend_iptables.py:255 src/backend_iptables.py:435
2369+#: src/backend_iptables.py:446 src/backend_iptables.py:497
2370+msgid "problem running"
2371+msgstr ""
2372+
2373+#: src/backend_iptables.py:261
2374 msgid "Status: inactive"
2375 msgstr ""
2376
2377-#: src/backend_iptables.py:411
2378+#: src/backend_iptables.py:397
2379 msgid "To"
2380 msgstr "До"
2381
2382-#: src/backend_iptables.py:412
2383+#: src/backend_iptables.py:398
2384 msgid "From"
2385 msgstr "От"
2386
2387-#: src/backend_iptables.py:413
2388+#: src/backend_iptables.py:399
2389 msgid "Action"
2390 msgstr "Действие"
2391
2392-#: src/backend_iptables.py:428
2393+#: src/backend_iptables.py:415
2394 msgid "\n"
2395 msgstr "\n"
2396
2397-#: src/backend_iptables.py:436
2398+#: src/backend_iptables.py:423
2399 #, python-format
2400 msgid "Default: %(in)s (incoming), %(out)s (outgoing)"
2401 msgstr ""
2402
2403-#: src/backend_iptables.py:440
2404+#: src/backend_iptables.py:427
2405 #, python-format
2406 msgid ""
2407 "Status: active\n"
2408@@ -178,262 +177,267 @@
2409 "%(app)s%(status)s"
2410 msgstr ""
2411
2412-#: src/backend_iptables.py:444
2413+#: src/backend_iptables.py:431
2414 #, python-format
2415 msgid "Status: active%s"
2416 msgstr ""
2417
2418-#: src/backend_iptables.py:450 src/backend_iptables.py:461
2419+#: src/backend_iptables.py:437 src/backend_iptables.py:448
2420 msgid "running ufw-init"
2421 msgstr ""
2422
2423-#: src/backend_iptables.py:474
2424+#: src/backend_iptables.py:461
2425 msgid "Could not set LOGLEVEL"
2426 msgstr ""
2427
2428-#: src/backend_iptables.py:480
2429+#: src/backend_iptables.py:467
2430 msgid "Could not load logging rules"
2431 msgstr ""
2432
2433-#: src/backend_iptables.py:629 src/backend.py:181
2434+#: src/backend_iptables.py:619 src/backend.py:221
2435 #, python-format
2436 msgid "Couldn't open '%s' for reading"
2437 msgstr ""
2438
2439-#: src/backend_iptables.py:638
2440+#: src/backend_iptables.py:628
2441 #, python-format
2442 msgid "Skipping malformed tuple (bad length): %s"
2443 msgstr ""
2444
2445-#: src/backend_iptables.py:668
2446+#: src/backend_iptables.py:659
2447 #, python-format
2448 msgid "Skipping malformed tuple: %s"
2449 msgstr ""
2450
2451-#: src/backend_iptables.py:690 src/backend.py:213
2452+#: src/backend_iptables.py:681 src/backend.py:253
2453 #, python-format
2454 msgid "'%s' is not writable"
2455 msgstr ""
2456
2457-#: src/backend_iptables.py:830
2458+#: src/backend_iptables.py:839
2459 msgid "Adding IPv6 rule failed: IPv6 not enabled"
2460 msgstr ""
2461
2462-#: src/backend_iptables.py:834
2463+#: src/backend_iptables.py:843
2464 #, python-format
2465 msgid "Skipping unsupported IPv6 '%s' rule"
2466 msgstr ""
2467
2468-#: src/backend_iptables.py:837
2469+#: src/backend_iptables.py:847
2470+#, python-format
2471+msgid "Skipping unsupported IPv4 '%s' rule"
2472+msgstr ""
2473+
2474+#: src/backend_iptables.py:850
2475 msgid "Must specify 'tcp' or 'udp' with multiple ports"
2476 msgstr ""
2477
2478-#: src/backend_iptables.py:849
2479+#: src/backend_iptables.py:862
2480 msgid "Skipping IPv6 application rule. Need at least iptables 1.4"
2481 msgstr ""
2482
2483-#: src/backend_iptables.py:854
2484+#: src/backend_iptables.py:867
2485 #, python-format
2486 msgid "Invalid position '%d'"
2487 msgstr ""
2488
2489-#: src/backend_iptables.py:858
2490+#: src/backend_iptables.py:871
2491 msgid "Cannot specify insert and delete"
2492 msgstr ""
2493
2494-#: src/backend_iptables.py:861
2495+#: src/backend_iptables.py:874
2496 #, python-format
2497 msgid "Cannot insert rule at position '%d'"
2498 msgstr ""
2499
2500-#: src/backend_iptables.py:919
2501+#: src/backend_iptables.py:932
2502 msgid "Skipping inserting existing rule"
2503 msgstr ""
2504
2505-#: src/backend_iptables.py:930 src/frontend.py:365
2506+#: src/backend_iptables.py:943 src/frontend.py:361
2507 msgid "Could not delete non-existent rule"
2508 msgstr ""
2509
2510-#: src/backend_iptables.py:935
2511+#: src/backend_iptables.py:948
2512 msgid "Skipping adding existing rule"
2513 msgstr ""
2514
2515-#: src/backend_iptables.py:951
2516+#: src/backend_iptables.py:964
2517 msgid "Couldn't update rules file"
2518 msgstr ""
2519
2520-#: src/backend_iptables.py:956
2521+#: src/backend_iptables.py:969
2522 msgid "Rules updated"
2523 msgstr ""
2524
2525-#: src/backend_iptables.py:958
2526+#: src/backend_iptables.py:971
2527 msgid "Rules updated (v6)"
2528 msgstr ""
2529
2530-#: src/backend_iptables.py:966
2531+#: src/backend_iptables.py:979
2532 msgid "Rule inserted"
2533 msgstr ""
2534
2535-#: src/backend_iptables.py:968
2536+#: src/backend_iptables.py:981
2537 msgid "Rule updated"
2538 msgstr "Правилото е обновено"
2539
2540-#: src/backend_iptables.py:978
2541+#: src/backend_iptables.py:991
2542 msgid " (skipped reloading firewall)"
2543 msgstr ""
2544
2545-#: src/backend_iptables.py:981
2546+#: src/backend_iptables.py:994
2547 msgid "Rule deleted"
2548 msgstr "Правилото е изтрито"
2549
2550-#: src/backend_iptables.py:984
2551+#: src/backend_iptables.py:997
2552 msgid "Rule added"
2553 msgstr "Правилото е добавено"
2554
2555-#: src/backend_iptables.py:999 src/backend_iptables.py:1087
2556+#: src/backend_iptables.py:1012 src/backend_iptables.py:1100
2557 msgid "Could not update running firewall"
2558 msgstr ""
2559
2560-#: src/backend_iptables.py:1054
2561+#: src/backend_iptables.py:1067
2562 #, python-format
2563 msgid "Could not perform '%s'"
2564 msgstr ""
2565
2566-#: src/backend_iptables.py:1078
2567+#: src/backend_iptables.py:1091
2568 msgid "Couldn't update rules file for logging"
2569 msgstr ""
2570
2571-#: src/backend_iptables.py:1132 src/backend.py:530
2572+#: src/backend_iptables.py:1149 src/backend.py:571
2573 #, python-format
2574 msgid "Invalid log level '%s'"
2575 msgstr ""
2576
2577-#: src/backend_iptables.py:1228
2578+#: src/backend_iptables.py:1246
2579 #, python-format
2580 msgid "Could not find '%s'. Aborting"
2581 msgstr ""
2582
2583-#: src/backend_iptables.py:1240
2584+#: src/backend_iptables.py:1258
2585 #, python-format
2586 msgid "'%s' already exists. Aborting"
2587 msgstr ""
2588
2589-#: src/backend_iptables.py:1246
2590+#: src/backend_iptables.py:1264
2591 #, python-format
2592 msgid "Backing up '%(old)s' to '%(new)s'\n"
2593 msgstr ""
2594
2595-#: src/backend_iptables.py:1262 src/backend.py:140
2596+#: src/backend_iptables.py:1280 src/backend.py:180
2597 #, python-format
2598 msgid "Couldn't stat '%s'"
2599 msgstr ""
2600
2601-#: src/backend_iptables.py:1267
2602+#: src/backend_iptables.py:1285
2603 #, python-format
2604 msgid "WARN: '%s' is world writable"
2605 msgstr ""
2606
2607-#: src/backend_iptables.py:1269
2608+#: src/backend_iptables.py:1287
2609 #, python-format
2610 msgid "WARN: '%s' is world readable"
2611 msgstr ""
2612
2613-#: src/backend.py:96
2614+#: src/backend.py:136
2615 msgid "Checks disabled"
2616 msgstr ""
2617
2618-#: src/backend.py:102
2619+#: src/backend.py:142
2620 msgid "ERROR: this script should not be SUID"
2621 msgstr ""
2622
2623-#: src/backend.py:105
2624+#: src/backend.py:145
2625 msgid "ERROR: this script should not be SGID"
2626 msgstr ""
2627
2628-#: src/backend.py:110
2629+#: src/backend.py:150
2630 msgid "You need to be root to run this script"
2631 msgstr ""
2632
2633-#: src/backend.py:120
2634+#: src/backend.py:160
2635 #, python-format
2636 msgid "'%s' does not exist"
2637 msgstr ""
2638
2639-#: src/backend.py:146
2640+#: src/backend.py:186
2641 #, python-format
2642 msgid "uid is %(uid)s but '%(path)s' is owned by %(st_uid)s"
2643 msgstr ""
2644
2645-#: src/backend.py:153
2646+#: src/backend.py:193
2647 #, python-format
2648 msgid "%s is world writable!"
2649 msgstr ""
2650
2651-#: src/backend.py:157
2652+#: src/backend.py:197
2653 #, python-format
2654 msgid "%s is group writable!"
2655 msgstr ""
2656
2657-#: src/backend.py:170
2658+#: src/backend.py:210
2659 #, python-format
2660 msgid "'%(f)s' file '%(name)s' does not exist"
2661 msgstr ""
2662
2663-#: src/backend.py:195
2664+#: src/backend.py:235
2665 #, python-format
2666 msgid "Missing policy for '%s'"
2667 msgstr ""
2668
2669-#: src/backend.py:200
2670+#: src/backend.py:240
2671 #, python-format
2672 msgid "Invalid policy '%(policy)s' for '%(chain)s'"
2673 msgstr ""
2674
2675-#: src/backend.py:207
2676+#: src/backend.py:247
2677 msgid "Invalid option"
2678 msgstr "Невалидна опция"
2679
2680-#: src/backend.py:278
2681+#: src/backend.py:318
2682 #, python-format
2683 msgid "Default application policy changed to '%s'"
2684 msgstr ""
2685
2686-#: src/backend.py:360
2687+#: src/backend.py:400
2688 msgid "No rules found for application profile"
2689 msgstr ""
2690
2691-#: src/backend.py:419
2692+#: src/backend.py:459
2693 #, python-format
2694 msgid "Rules updated for profile '%s'"
2695 msgstr ""
2696
2697-#: src/backend.py:425
2698+#: src/backend.py:465
2699 msgid "Couldn't update application rules"
2700 msgstr ""
2701
2702-#: src/backend.py:447
2703+#: src/backend.py:487
2704 #, python-format
2705 msgid "Found multiple matches for '%s'. Please use exact profile name"
2706 msgstr ""
2707
2708-#: src/backend.py:448
2709+#: src/backend.py:489
2710 #, python-format
2711 msgid "Could not find a profile matching '%s'"
2712 msgstr ""
2713
2714-#: src/backend.py:514
2715+#: src/backend.py:555
2716 msgid "Logging: "
2717 msgstr ""
2718
2719-#: src/backend.py:518
2720+#: src/backend.py:559
2721 msgid "unknown"
2722 msgstr ""
2723
2724-#: src/backend.py:548
2725+#: src/backend.py:589
2726 msgid "Logging disabled"
2727 msgstr ""
2728
2729-#: src/backend.py:550
2730+#: src/backend.py:591
2731 msgid "Logging enabled"
2732 msgstr ""
2733
2734@@ -482,24 +486,20 @@
2735 msgid "Unsupported direction '%s'"
2736 msgstr ""
2737
2738-#: src/common.py:346
2739-msgid "Could not normalize source address"
2740-msgstr ""
2741-
2742-#: src/common.py:356
2743+#: src/common.py:355
2744 msgid "Could not normalize destination address"
2745 msgstr ""
2746
2747-#: src/common.py:417
2748+#: src/common.py:416
2749 msgid "Found exact match"
2750 msgstr "Намерено е точно съответствие"
2751
2752-#: src/common.py:421
2753+#: src/common.py:420
2754 #, python-format
2755 msgid "Found non-action/non-logtype match (%(xa)s/%(ya)s %(xl)s/%(yl)s)"
2756 msgstr ""
2757
2758-#: src/frontend.py:93
2759+#: src/frontend.py:88
2760 #, python-format
2761 msgid ""
2762 "\n"
2763@@ -530,77 +530,77 @@
2764 " %(appdefault)-31s set default application policy\n"
2765 msgstr ""
2766
2767-#: src/frontend.py:168
2768+#: src/frontend.py:160
2769 msgid "n"
2770 msgstr ""
2771
2772-#: src/frontend.py:169
2773+#: src/frontend.py:161
2774 msgid "y"
2775 msgstr ""
2776
2777-#: src/frontend.py:170
2778+#: src/frontend.py:162
2779 msgid "yes"
2780 msgstr ""
2781
2782-#: src/frontend.py:215
2783+#: src/frontend.py:207
2784 msgid "Firewall is active and enabled on system startup"
2785 msgstr ""
2786
2787-#: src/frontend.py:222
2788+#: src/frontend.py:214
2789 msgid "Firewall stopped and disabled on system startup"
2790 msgstr ""
2791
2792-#: src/frontend.py:273
2793+#: src/frontend.py:265
2794 msgid "Could not get listening status"
2795 msgstr ""
2796
2797-#: src/frontend.py:360 src/frontend.py:458 src/frontend.py:468
2798+#: src/frontend.py:356 src/frontend.py:454 src/frontend.py:464
2799 #, python-format
2800 msgid "Invalid IP version '%s'"
2801 msgstr ""
2802
2803-#: src/frontend.py:391
2804+#: src/frontend.py:387
2805 msgid "Invalid position '"
2806 msgstr ""
2807
2808-#: src/frontend.py:465
2809+#: src/frontend.py:461
2810 msgid "IPv6 support not enabled"
2811 msgstr ""
2812
2813-#: src/frontend.py:476
2814+#: src/frontend.py:472
2815 msgid "Rule changed after normalization"
2816 msgstr ""
2817
2818+#: src/frontend.py:496
2819+#, python-format
2820+msgid "Could not back out rule '%s'"
2821+msgstr ""
2822+
2823 #: src/frontend.py:500
2824-#, python-format
2825-msgid "Could not back out rule '%s'"
2826-msgstr ""
2827-
2828-#: src/frontend.py:504
2829 msgid ""
2830 "\n"
2831 "Error applying application rules."
2832 msgstr ""
2833
2834-#: src/frontend.py:506
2835+#: src/frontend.py:502
2836 msgid " Some rules could not be unapplied."
2837 msgstr ""
2838
2839-#: src/frontend.py:508
2840+#: src/frontend.py:504
2841 msgid " Attempted rules successfully unapplied."
2842 msgstr ""
2843
2844-#: src/frontend.py:519
2845+#: src/frontend.py:515
2846 #, python-format
2847 msgid "Could not find rule '%s'"
2848 msgstr ""
2849
2850-#: src/frontend.py:524 src/frontend.py:529
2851+#: src/frontend.py:520 src/frontend.py:525
2852 #, python-format
2853 msgid "Could not find rule '%d'"
2854 msgstr ""
2855
2856-#: src/frontend.py:541
2857+#: src/frontend.py:537
2858 #, python-format
2859 msgid ""
2860 "Deleting:\n"
2861@@ -608,229 +608,229 @@
2862 "Proceed with operation (%(yes)s|%(no)s)? "
2863 msgstr ""
2864
2865-#: src/frontend.py:572
2866+#: src/frontend.py:568
2867 msgid "Unsupported default policy"
2868 msgstr ""
2869
2870-#: src/frontend.py:599 src/frontend.py:744
2871+#: src/frontend.py:595 src/frontend.py:740
2872 msgid "Firewall reloaded"
2873 msgstr ""
2874
2875-#: src/frontend.py:601
2876+#: src/frontend.py:597
2877 msgid "Firewall not enabled (skipping reload)"
2878 msgstr ""
2879
2880-#: src/frontend.py:618 src/frontend.py:632 src/frontend.py:669
2881+#: src/frontend.py:614 src/frontend.py:628 src/frontend.py:665
2882 msgid "Invalid profile name"
2883 msgstr ""
2884
2885-#: src/frontend.py:637 src/frontend.py:819
2886+#: src/frontend.py:633 src/frontend.py:815
2887 #, python-format
2888 msgid "Unsupported action '%s'"
2889 msgstr ""
2890
2891-#: src/frontend.py:656
2892+#: src/frontend.py:652
2893 msgid "Available applications:"
2894 msgstr ""
2895
2896-#: src/frontend.py:677
2897+#: src/frontend.py:673
2898 #, python-format
2899 msgid "Could not find profile '%s'"
2900 msgstr ""
2901
2902-#: src/frontend.py:682
2903+#: src/frontend.py:678
2904 msgid "Invalid profile"
2905 msgstr ""
2906
2907-#: src/frontend.py:685
2908+#: src/frontend.py:681
2909 #, python-format
2910 msgid "Profile: %s\n"
2911 msgstr ""
2912
2913-#: src/frontend.py:686
2914+#: src/frontend.py:682
2915 #, python-format
2916 msgid "Title: %s\n"
2917 msgstr ""
2918
2919-#: src/frontend.py:689
2920+#: src/frontend.py:685
2921 #, python-format
2922 msgid ""
2923 "Description: %s\n"
2924 "\n"
2925 msgstr ""
2926
2927-#: src/frontend.py:695
2928+#: src/frontend.py:691
2929 msgid "Ports:"
2930 msgstr ""
2931
2932-#: src/frontend.py:697
2933+#: src/frontend.py:693
2934 msgid "Port:"
2935 msgstr ""
2936
2937-#: src/frontend.py:746
2938+#: src/frontend.py:742
2939 msgid "Skipped reloading firewall"
2940 msgstr ""
2941
2942-#: src/frontend.py:756
2943+#: src/frontend.py:752
2944 msgid "Cannot specify 'all' with '--add-new'"
2945 msgstr ""
2946
2947-#: src/frontend.py:771
2948+#: src/frontend.py:767
2949 #, python-format
2950 msgid "Unknown policy '%s'"
2951 msgstr ""
2952
2953-#: src/frontend.py:828
2954+#: src/frontend.py:824
2955 #, python-format
2956 msgid ""
2957 "Command may disrupt existing ssh connections. Proceed with operation "
2958 "(%(yes)s|%(no)s)? "
2959 msgstr ""
2960
2961+#: src/frontend.py:837
2962+#, python-format
2963+msgid ""
2964+"Resetting all rules to installed defaults. Proceed with operation "
2965+"(%(yes)s|%(no)s)? "
2966+msgstr ""
2967+
2968 #: src/frontend.py:841
2969 #, python-format
2970 msgid ""
2971-"Resetting all rules to installed defaults. Proceed with operation "
2972-"(%(yes)s|%(no)s)? "
2973-msgstr ""
2974-
2975-#: src/frontend.py:845
2976-#, python-format
2977-msgid ""
2978 "Resetting all rules to installed defaults. This may disrupt existing ssh "
2979 "connections. Proceed with operation (%(yes)s|%(no)s)? "
2980 msgstr ""
2981
2982-#: src/parser.py:109
2983+#: src/parser.py:107
2984 #, python-format
2985 msgid "Cannot insert rule at position '%s'"
2986 msgstr ""
2987
2988-#: src/parser.py:147
2989+#: src/parser.py:145
2990 msgid "Invalid interface clause"
2991 msgstr ""
2992
2993-#: src/parser.py:173
2994+#: src/parser.py:171
2995 msgid "Option 'log' not allowed here"
2996 msgstr ""
2997
2998-#: src/parser.py:177
2999+#: src/parser.py:175
3000 msgid "Option 'log-all' not allowed here"
3001 msgstr ""
3002
3003-#: src/parser.py:210 src/parser.py:224
3004+#: src/parser.py:208 src/parser.py:222
3005 msgid "Bad port"
3006 msgstr ""
3007
3008-#: src/parser.py:215 src/parser.py:335
3009+#: src/parser.py:213 src/parser.py:333
3010 msgid "Port ranges must be numeric"
3011 msgstr ""
3012
3013-#: src/parser.py:229 src/parser.py:426
3014+#: src/parser.py:227 src/parser.py:419
3015 #, python-format
3016 msgid "Invalid port with protocol '%s'"
3017 msgstr ""
3018
3019-#: src/parser.py:233
3020+#: src/parser.py:231
3021 msgid "Wrong number of arguments"
3022 msgstr "Грешен брои аргументи"
3023
3024-#: src/parser.py:237
3025+#: src/parser.py:235
3026 msgid "Need 'to' or 'from' clause"
3027 msgstr ""
3028
3029-#: src/parser.py:252
3030+#: src/parser.py:250
3031 msgid "Improper rule syntax"
3032 msgstr "Неправилен синтаксис на правилото"
3033
3034-#: src/parser.py:259
3035+#: src/parser.py:257
3036 #, python-format
3037 msgid "Invalid token '%s'"
3038 msgstr ""
3039
3040-#: src/parser.py:268
3041+#: src/parser.py:266
3042 msgid "Invalid 'proto' clause"
3043 msgstr ""
3044
3045-#: src/parser.py:280
3046+#: src/parser.py:278
3047 #, python-format
3048 msgid "Invalid '%s' clause"
3049 msgstr ""
3050
3051-#: src/parser.py:299
3052+#: src/parser.py:297
3053 msgid "Invalid 'from' clause"
3054 msgstr ""
3055
3056-#: src/parser.py:318
3057+#: src/parser.py:316
3058 msgid "Invalid 'to' clause"
3059 msgstr ""
3060
3061-#: src/parser.py:323
3062+#: src/parser.py:321
3063 #, python-format
3064 msgid "Need 'from' or 'to' with '%s'"
3065 msgstr ""
3066
3067-#: src/parser.py:347
3068+#: src/parser.py:345
3069 msgid "Invalid 'port' clause"
3070 msgstr ""
3071
3072-#: src/parser.py:356
3073+#: src/parser.py:354
3074 msgid "Mixed IP versions for 'from' and 'to'"
3075 msgstr ""
3076
3077-#: src/parser.py:370 src/parser.py:377 src/parser.py:383
3078+#: src/parser.py:368 src/parser.py:375 src/parser.py:381
3079 msgid "Could not find protocol"
3080 msgstr ""
3081
3082-#: src/parser.py:390
3083+#: src/parser.py:388
3084 msgid "Protocol mismatch (from/to)"
3085 msgstr ""
3086
3087-#: src/parser.py:397
3088+#: src/parser.py:395
3089 #, python-format
3090 msgid "Protocol mismatch with specified protocol %s"
3091 msgstr ""
3092
3093+#: src/parser.py:402
3094+#, python-format
3095+msgid "Improper rule syntax ('%s' specified with app rule)"
3096+msgstr ""
3097+
3098 #: src/parser.py:409
3099 #, python-format
3100-msgid "Improper rule syntax ('%s' specified with app rule)"
3101-msgstr ""
3102-
3103-#: src/parser.py:416
3104-#, python-format
3105 msgid "Invalid IPv6 address with protocol '%s'"
3106 msgstr ""
3107
3108-#: src/parser.py:745
3109+#: src/parser.py:738
3110 #, python-format
3111 msgid "Invalid command '%s'"
3112 msgstr ""
3113
3114-#: src/parser.py:767
3115+#: src/parser.py:760
3116 #, python-format
3117 msgid "Command '%s' already exists"
3118 msgstr ""
3119
3120-#: src/util.py:386
3121+#: src/util.py:414
3122 msgid "Couldn't find pid (is /proc mounted?)"
3123 msgstr ""
3124
3125-#: src/util.py:390
3126+#: src/util.py:418
3127 #, python-format
3128 msgid "Couldn't find parent pid for '%s'"
3129 msgstr ""
3130
3131-#: src/util.py:400
3132+#: src/util.py:428
3133 #, python-format
3134 msgid "Couldn't find '%s'"
3135 msgstr ""
3136
3137-#: src/util.py:406
3138+#: src/util.py:434
3139 #, python-format
3140 msgid "Could not find executable for '%s'"
3141 msgstr ""
3142
3143-#: src/util.py:871
3144+#: src/util.py:985
3145 #, python-format
3146 msgid "Could not get statistics for '%s'"
3147 msgstr ""
3148
3149=== modified file 'locales/po/bs.po'
3150--- locales/po/bs.po 2012-04-04 20:44:20 +0000
3151+++ locales/po/bs.po 2013-11-11 16:00:06 +0000
3152@@ -7,169 +7,168 @@
3153 msgstr ""
3154 "Project-Id-Version: ufw\n"
3155 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
3156-"POT-Creation-Date: 2011-03-22 10:34-0500\n"
3157-"PO-Revision-Date: 2011-05-03 16:15+0000\n"
3158-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
3159+"POT-Creation-Date: 2012-07-29 09:48-0500\n"
3160+"PO-Revision-Date: 2012-04-21 19:16+0000\n"
3161+"Last-Translator: Ema Begulic <ema.begulic@edu.fit.ba>\n"
3162 "Language-Team: Bosnian <bs@li.org>\n"
3163 "MIME-Version: 1.0\n"
3164 "Content-Type: text/plain; charset=UTF-8\n"
3165 "Content-Transfer-Encoding: 8bit\n"
3166-"X-Launchpad-Export-Date: 2012-02-13 23:52+0000\n"
3167-"X-Generator: Launchpad (build 14781)\n"
3168+"X-Launchpad-Export-Date: 2012-08-12 01:56+0000\n"
3169+"X-Generator: Launchpad (build 15780)\n"
3170
3171-#: src/ufw:46
3172-msgid ": Need at least python 2.5)\n"
3173+#: src/ufw:56
3174+msgid ": Need at least python 2.6)\n"
3175 msgstr ""
3176
3177-#: src/ufw:103 src/frontend.py:554 src/frontend.py:854
3178+#: src/ufw:109 src/frontend.py:550 src/frontend.py:850
3179 msgid "Aborted"
3180-msgstr ""
3181+msgstr "Prekinuto"
3182
3183-#: src/applications.py:32
3184+#: src/applications.py:36
3185 msgid "Profiles directory does not exist"
3186-msgstr ""
3187+msgstr "Profil direktorij ne postoji"
3188
3189-#: src/applications.py:64
3190+#: src/applications.py:68
3191 #, python-format
3192 msgid "Skipping '%s': couldn't stat"
3193-msgstr ""
3194+msgstr "Preskakanje '%s': nije moglo biti održano"
3195
3196-#: src/applications.py:69
3197+#: src/applications.py:73
3198 #, python-format
3199 msgid "Skipping '%s': too big"
3200-msgstr ""
3201+msgstr "Preskakanje '%s': preveliko"
3202
3203-#: src/applications.py:74
3204+#: src/applications.py:78
3205 #, python-format
3206 msgid "Skipping '%s': too many files read already"
3207-msgstr ""
3208+msgstr "Preskakanje '%s': previše datoteka već učitano"
3209
3210-#: src/applications.py:84
3211+#: src/applications.py:92
3212 #, python-format
3213 msgid "Skipping '%s': couldn't process"
3214-msgstr ""
3215+msgstr "Preskakanje '%s': nije moguće obraditi"
3216
3217-#: src/applications.py:91
3218+#: src/applications.py:99
3219 #, python-format
3220 msgid "Skipping '%s': name too long"
3221-msgstr ""
3222+msgstr "Preskakanje '%s': ime je predugo"
3223
3224-#: src/applications.py:96
3225+#: src/applications.py:104
3226 #, python-format
3227 msgid "Skipping '%s': invalid name"
3228-msgstr ""
3229+msgstr "Preskakanje '%s': pogrešno ime"
3230
3231-#: src/applications.py:102
3232+#: src/applications.py:110
3233 #, python-format
3234 msgid "Skipping '%s': also in /etc/services"
3235-msgstr ""
3236+msgstr "Preskakanje '%s': također u /etc/services"
3237
3238-#: src/applications.py:111
3239+#: src/applications.py:119
3240 #, python-format
3241 msgid "Skipping '%s': field too long"
3242-msgstr ""
3243+msgstr "Preskakanje '%s': polje predugo"
3244
3245-#: src/applications.py:116
3246+#: src/applications.py:124
3247 #, python-format
3248 msgid "Skipping '%(value)s': value too long for '%(field)s'"
3249 msgstr ""
3250
3251-#: src/applications.py:126
3252+#: src/applications.py:134
3253 #, python-format
3254 msgid "Duplicate profile '%s', using last found"
3255-msgstr ""
3256+msgstr "Umnoži profil '%s', koristeći zadnji pronađeni"
3257
3258-#: src/applications.py:156
3259+#: src/applications.py:171
3260 #, python-format
3261 msgid "Profile '%(fn)s' missing required field '%(f)s'"
3262 msgstr ""
3263
3264-#: src/applications.py:161
3265+#: src/applications.py:176
3266 #, python-format
3267 msgid "Profile '%(fn)s' has empty required field '%(f)s'"
3268 msgstr ""
3269
3270-#: src/applications.py:167
3271+#: src/applications.py:182
3272 #, python-format
3273 msgid "No ports found in profile '%s'"
3274-msgstr ""
3275+msgstr "Nema pronađenih ulaza u profilu '%s'"
3276
3277-#: src/applications.py:180
3278+#: src/applications.py:195
3279 #, python-format
3280 msgid "Invalid ports in profile '%s'"
3281-msgstr ""
3282+msgstr "Nevažeći ulaz u profilu '%s'"
3283
3284-#: src/backend_iptables.py:87
3285+#: src/backend_iptables.py:72
3286 msgid "New profiles:"
3287-msgstr ""
3288+msgstr "Novi profili:"
3289
3290-#: src/backend_iptables.py:103 src/backend.py:275
3291+#: src/backend_iptables.py:88 src/backend.py:315
3292 #, python-format
3293 msgid "Unsupported policy '%s'"
3294-msgstr ""
3295+msgstr "Nepodržana politika '%s'"
3296
3297-#: src/backend_iptables.py:107
3298+#: src/backend_iptables.py:92
3299 #, python-format
3300 msgid "Unsupported policy for direction '%s'"
3301 msgstr ""
3302
3303-#: src/backend_iptables.py:165
3304+#: src/backend_iptables.py:150
3305 #, python-format
3306 msgid "Default %(direction)s policy changed to '%(policy)s'\n"
3307 msgstr ""
3308
3309-#: src/backend_iptables.py:167
3310+#: src/backend_iptables.py:152
3311 msgid "(be sure to update your rules accordingly)"
3312-msgstr ""
3313+msgstr "(budite sigurni da ažurirate pravila u skladu sa)"
3314
3315-#: src/backend_iptables.py:174
3316+#: src/backend_iptables.py:159
3317 msgid "Checking raw iptables\n"
3318 msgstr ""
3319
3320-#: src/backend_iptables.py:175
3321+#: src/backend_iptables.py:160
3322 msgid "Checking raw ip6tables\n"
3323-msgstr ""
3324-
3325-#: src/backend_iptables.py:178 src/backend_iptables.py:269
3326-#: src/backend_iptables.py:448 src/backend_iptables.py:459
3327-#: src/backend_iptables.py:507
3328-msgid "problem running"
3329-msgstr ""
3330-
3331-#: src/backend_iptables.py:264
3332+msgstr "Provjera sirovih ip6tables\n"
3333+
3334+#: src/backend_iptables.py:250
3335 msgid "Checking iptables\n"
3336 msgstr "Provjera iptables\n"
3337
3338-#: src/backend_iptables.py:266
3339+#: src/backend_iptables.py:252
3340 msgid "Checking ip6tables\n"
3341 msgstr "Provjera ip6tables\n"
3342
3343-#: src/backend_iptables.py:275
3344+#: src/backend_iptables.py:255 src/backend_iptables.py:435
3345+#: src/backend_iptables.py:446 src/backend_iptables.py:497
3346+msgid "problem running"
3347+msgstr "Problem u toku"
3348+
3349+#: src/backend_iptables.py:261
3350 msgid "Status: inactive"
3351 msgstr "Status:neaktivno"
3352
3353-#: src/backend_iptables.py:411
3354+#: src/backend_iptables.py:397
3355 msgid "To"
3356-msgstr ""
3357+msgstr "Za"
3358
3359-#: src/backend_iptables.py:412
3360+#: src/backend_iptables.py:398
3361 msgid "From"
3362 msgstr "Od"
3363
3364-#: src/backend_iptables.py:413
3365+#: src/backend_iptables.py:399
3366 msgid "Action"
3367 msgstr "Radnja"
3368
3369-#: src/backend_iptables.py:428
3370+#: src/backend_iptables.py:415
3371 msgid "\n"
3372-msgstr ""
3373+msgstr "\n"
3374
3375-#: src/backend_iptables.py:436
3376+#: src/backend_iptables.py:423
3377 #, python-format
3378 msgid "Default: %(in)s (incoming), %(out)s (outgoing)"
3379-msgstr ""
3380+msgstr "Zadana: %(in)s (dolazne), %(out)s (odlazne)"
3381
3382-#: src/backend_iptables.py:440
3383+#: src/backend_iptables.py:427
3384 #, python-format
3385 msgid ""
3386 "Status: active\n"
3387@@ -177,265 +176,276 @@
3388 "%(pol)s\n"
3389 "%(app)s%(status)s"
3390 msgstr ""
3391+"Status: Aktivno\n"
3392+"%(log)s\n"
3393+"%(pol)s\n"
3394+"%(app)s%(status)s"
3395
3396-#: src/backend_iptables.py:444
3397+#: src/backend_iptables.py:431
3398 #, python-format
3399 msgid "Status: active%s"
3400-msgstr ""
3401+msgstr "Status: aktivan%s"
3402
3403-#: src/backend_iptables.py:450 src/backend_iptables.py:461
3404+#: src/backend_iptables.py:437 src/backend_iptables.py:448
3405 msgid "running ufw-init"
3406-msgstr ""
3407+msgstr "U toku ufw-init"
3408
3409-#: src/backend_iptables.py:474
3410+#: src/backend_iptables.py:461
3411 msgid "Could not set LOGLEVEL"
3412-msgstr ""
3413+msgstr "Nemoguće postaviti LOGLEVEL"
3414
3415-#: src/backend_iptables.py:480
3416+#: src/backend_iptables.py:467
3417 msgid "Could not load logging rules"
3418-msgstr ""
3419+msgstr "Nije moguće unijeti logging pravila"
3420
3421-#: src/backend_iptables.py:629 src/backend.py:181
3422+#: src/backend_iptables.py:619 src/backend.py:221
3423 #, python-format
3424 msgid "Couldn't open '%s' for reading"
3425-msgstr ""
3426+msgstr "Nije moguće otvoriti '%s' za čitanje"
3427
3428-#: src/backend_iptables.py:638
3429+#: src/backend_iptables.py:628
3430 #, python-format
3431 msgid "Skipping malformed tuple (bad length): %s"
3432-msgstr ""
3433+msgstr "Preskakanje pogrešne n-torke (pogrešna dužina): %s"
3434
3435-#: src/backend_iptables.py:668
3436+#: src/backend_iptables.py:659
3437 #, python-format
3438 msgid "Skipping malformed tuple: %s"
3439-msgstr ""
3440+msgstr "Preskakanje pogrešne n-torke: %s"
3441
3442-#: src/backend_iptables.py:690 src/backend.py:213
3443+#: src/backend_iptables.py:681 src/backend.py:253
3444 #, python-format
3445 msgid "'%s' is not writable"
3446 msgstr ""
3447
3448-#: src/backend_iptables.py:830
3449+#: src/backend_iptables.py:839
3450 msgid "Adding IPv6 rule failed: IPv6 not enabled"
3451-msgstr ""
3452+msgstr "Dodavanje IPv6 pravila: IPv6 nije dozvoljeno"
3453
3454-#: src/backend_iptables.py:834
3455+#: src/backend_iptables.py:843
3456 #, python-format
3457 msgid "Skipping unsupported IPv6 '%s' rule"
3458+msgstr "Preskakanje nepodržanog IPv6 '%s' pravila"
3459+
3460+#: src/backend_iptables.py:847
3461+#, python-format
3462+msgid "Skipping unsupported IPv4 '%s' rule"
3463 msgstr ""
3464
3465-#: src/backend_iptables.py:837
3466+#: src/backend_iptables.py:850
3467 msgid "Must specify 'tcp' or 'udp' with multiple ports"
3468-msgstr ""
3469+msgstr "Morate specificirat 'tcp' ili 'udp' sa više portova"
3470
3471-#: src/backend_iptables.py:849
3472+#: src/backend_iptables.py:862
3473 msgid "Skipping IPv6 application rule. Need at least iptables 1.4"
3474-msgstr ""
3475+msgstr "Preskačem IPv6 aplikacijsko pravilo. Potrebno najmanje iptables 1.4"
3476
3477-#: src/backend_iptables.py:854
3478+#: src/backend_iptables.py:867
3479 #, python-format
3480 msgid "Invalid position '%d'"
3481-msgstr ""
3482+msgstr "Pogrešna pozicija '%d'"
3483
3484-#: src/backend_iptables.py:858
3485+#: src/backend_iptables.py:871
3486 msgid "Cannot specify insert and delete"
3487-msgstr ""
3488+msgstr "Nije moguće specificirati ubaci i izbriši"
3489
3490-#: src/backend_iptables.py:861
3491+#: src/backend_iptables.py:874
3492 #, python-format
3493 msgid "Cannot insert rule at position '%d'"
3494-msgstr ""
3495+msgstr "Nije moguće ubaciti pravilo na poziciju '%d'"
3496
3497-#: src/backend_iptables.py:919
3498+#: src/backend_iptables.py:932
3499 msgid "Skipping inserting existing rule"
3500-msgstr ""
3501+msgstr "Preskakanje umetanja postojećeg pravila"
3502
3503-#: src/backend_iptables.py:930 src/frontend.py:365
3504+#: src/backend_iptables.py:943 src/frontend.py:361
3505 msgid "Could not delete non-existent rule"
3506-msgstr ""
3507+msgstr "Nije moguće izbrisati pravilo koje ne postoji"
3508
3509-#: src/backend_iptables.py:935
3510+#: src/backend_iptables.py:948
3511 msgid "Skipping adding existing rule"
3512-msgstr ""
3513+msgstr "Preskačem dodavanje već postojećeg pravila"
3514
3515-#: src/backend_iptables.py:951
3516+#: src/backend_iptables.py:964
3517 msgid "Couldn't update rules file"
3518-msgstr ""
3519+msgstr "Nije moguće ažuriranje dokumenta s pravilima"
3520
3521-#: src/backend_iptables.py:956
3522+#: src/backend_iptables.py:969
3523 msgid "Rules updated"
3524-msgstr ""
3525+msgstr "Pravila ažurirana"
3526
3527-#: src/backend_iptables.py:958
3528+#: src/backend_iptables.py:971
3529 msgid "Rules updated (v6)"
3530-msgstr ""
3531+msgstr "Pravila ažurirana (v6)"
3532
3533-#: src/backend_iptables.py:966
3534+#: src/backend_iptables.py:979
3535 msgid "Rule inserted"
3536-msgstr ""
3537+msgstr "Pravilo ubačeno"
3538
3539-#: src/backend_iptables.py:968
3540+#: src/backend_iptables.py:981
3541 msgid "Rule updated"
3542-msgstr ""
3543+msgstr "Pravilo ažurirano"
3544
3545-#: src/backend_iptables.py:978
3546+#: src/backend_iptables.py:991
3547 msgid " (skipped reloading firewall)"
3548-msgstr ""
3549+msgstr " (preskočeno ponovno učitavanje firewall-a)"
3550
3551-#: src/backend_iptables.py:981
3552+#: src/backend_iptables.py:994
3553 msgid "Rule deleted"
3554-msgstr ""
3555+msgstr "Pravilo uklonjeno"
3556
3557-#: src/backend_iptables.py:984
3558+#: src/backend_iptables.py:997
3559 msgid "Rule added"
3560-msgstr ""
3561+msgstr "Pravilo dodano"
3562
3563-#: src/backend_iptables.py:999 src/backend_iptables.py:1087
3564+#: src/backend_iptables.py:1012 src/backend_iptables.py:1100
3565 msgid "Could not update running firewall"
3566-msgstr ""
3567+msgstr "Nije moguće ažuriranje aktivnog firewall-a"
3568
3569-#: src/backend_iptables.py:1054
3570+#: src/backend_iptables.py:1067
3571 #, python-format
3572 msgid "Could not perform '%s'"
3573-msgstr ""
3574+msgstr "Nije moguće izvršiti '% s'"
3575
3576-#: src/backend_iptables.py:1078
3577+#: src/backend_iptables.py:1091
3578 msgid "Couldn't update rules file for logging"
3579 msgstr ""
3580
3581-#: src/backend_iptables.py:1132 src/backend.py:530
3582+#: src/backend_iptables.py:1149 src/backend.py:571
3583 #, python-format
3584 msgid "Invalid log level '%s'"
3585-msgstr ""
3586+msgstr "Nevažeća prijava nivo '%s'"
3587
3588-#: src/backend_iptables.py:1228
3589+#: src/backend_iptables.py:1246
3590 #, python-format
3591 msgid "Could not find '%s'. Aborting"
3592 msgstr ""
3593
3594-#: src/backend_iptables.py:1240
3595+#: src/backend_iptables.py:1258
3596 #, python-format
3597 msgid "'%s' already exists. Aborting"
3598 msgstr ""
3599
3600-#: src/backend_iptables.py:1246
3601+#: src/backend_iptables.py:1264
3602 #, python-format
3603 msgid "Backing up '%(old)s' to '%(new)s'\n"
3604 msgstr ""
3605
3606-#: src/backend_iptables.py:1262 src/backend.py:140
3607+#: src/backend_iptables.py:1280 src/backend.py:180
3608 #, python-format
3609 msgid "Couldn't stat '%s'"
3610-msgstr ""
3611+msgstr "Nije moguće stat '%s'"
3612
3613-#: src/backend_iptables.py:1267
3614+#: src/backend_iptables.py:1285
3615 #, python-format
3616 msgid "WARN: '%s' is world writable"
3617 msgstr ""
3618
3619-#: src/backend_iptables.py:1269
3620+#: src/backend_iptables.py:1287
3621 #, python-format
3622 msgid "WARN: '%s' is world readable"
3623 msgstr ""
3624
3625-#: src/backend.py:96
3626+#: src/backend.py:136
3627 msgid "Checks disabled"
3628 msgstr "Provjere isključene"
3629
3630-#: src/backend.py:102
3631+#: src/backend.py:142
3632 msgid "ERROR: this script should not be SUID"
3633 msgstr "GREŠKA:ova skripta ne treba imati SUID"
3634
3635-#: src/backend.py:105
3636+#: src/backend.py:145
3637 msgid "ERROR: this script should not be SGID"
3638-msgstr ""
3639+msgstr "GREŠKA:ova skripta netreba imati SGID"
3640
3641-#: src/backend.py:110
3642+#: src/backend.py:150
3643 msgid "You need to be root to run this script"
3644 msgstr "Trebaš biti root da pokreneš ovu skriptu"
3645
3646-#: src/backend.py:120
3647+#: src/backend.py:160
3648 #, python-format
3649 msgid "'%s' does not exist"
3650 msgstr "'%s' ne postoji"
3651
3652-#: src/backend.py:146
3653+#: src/backend.py:186
3654 #, python-format
3655 msgid "uid is %(uid)s but '%(path)s' is owned by %(st_uid)s"
3656 msgstr ""
3657
3658-#: src/backend.py:153
3659+#: src/backend.py:193
3660 #, python-format
3661 msgid "%s is world writable!"
3662-msgstr ""
3663+msgstr "%s je svjetski zapisivo!"
3664
3665-#: src/backend.py:157
3666+#: src/backend.py:197
3667 #, python-format
3668 msgid "%s is group writable!"
3669-msgstr ""
3670+msgstr "%s je upisiv za grupu!"
3671
3672-#: src/backend.py:170
3673+#: src/backend.py:210
3674 #, python-format
3675 msgid "'%(f)s' file '%(name)s' does not exist"
3676 msgstr ""
3677
3678-#: src/backend.py:195
3679+#: src/backend.py:235
3680 #, python-format
3681 msgid "Missing policy for '%s'"
3682 msgstr ""
3683
3684-#: src/backend.py:200
3685+#: src/backend.py:240
3686 #, python-format
3687 msgid "Invalid policy '%(policy)s' for '%(chain)s'"
3688 msgstr ""
3689
3690-#: src/backend.py:207
3691+#: src/backend.py:247
3692 msgid "Invalid option"
3693-msgstr ""
3694+msgstr "Nevažeća opcija"
3695
3696-#: src/backend.py:278
3697+#: src/backend.py:318
3698 #, python-format
3699 msgid "Default application policy changed to '%s'"
3700-msgstr ""
3701+msgstr "zadana politika za aplikacije promijenjena u '%s'"
3702
3703-#: src/backend.py:360
3704+#: src/backend.py:400
3705 msgid "No rules found for application profile"
3706-msgstr ""
3707+msgstr "Nisu pronađena pravila za aplikacijski profil"
3708
3709-#: src/backend.py:419
3710+#: src/backend.py:459
3711 #, python-format
3712 msgid "Rules updated for profile '%s'"
3713-msgstr ""
3714+msgstr "Pravila ažurirana za profil '%s'"
3715
3716-#: src/backend.py:425
3717+#: src/backend.py:465
3718 msgid "Couldn't update application rules"
3719-msgstr ""
3720+msgstr "Nije moguće ažurirati aplikacijska pravila"
3721
3722-#: src/backend.py:447
3723+#: src/backend.py:487
3724 #, python-format
3725 msgid "Found multiple matches for '%s'. Please use exact profile name"
3726 msgstr ""
3727+"Pronađena višestruka poklapanja za '%s'. Molimo vas koristite isto ime "
3728+"profila"
3729
3730-#: src/backend.py:448
3731+#: src/backend.py:489
3732 #, python-format
3733 msgid "Could not find a profile matching '%s'"
3734-msgstr ""
3735+msgstr "Nije moguće pronaći profil koji se poklapa sa '%s'"
3736
3737-#: src/backend.py:514
3738+#: src/backend.py:555
3739 msgid "Logging: "
3740-msgstr ""
3741+msgstr "Prijavljivanje: "
3742
3743-#: src/backend.py:518
3744+#: src/backend.py:559
3745 msgid "unknown"
3746-msgstr ""
3747+msgstr "Nepoznato"
3748
3749-#: src/backend.py:548
3750+#: src/backend.py:589
3751 msgid "Logging disabled"
3752-msgstr ""
3753+msgstr "Prijava je onemogućena"
3754
3755-#: src/backend.py:550
3756+#: src/backend.py:591
3757 msgid "Logging enabled"
3758-msgstr ""
3759+msgstr "Prijava je omogućena"
3760
3761 #: src/common.py:186
3762 #, python-format
3763@@ -445,15 +455,15 @@
3764 #: src/common.py:251
3765 #, python-format
3766 msgid "Unsupported protocol '%s'"
3767-msgstr ""
3768+msgstr "Nepodržan protokol '%s'"
3769
3770 #: src/common.py:279
3771 msgid "Bad source address"
3772-msgstr ""
3773+msgstr "Pogrešna izvorna adresa"
3774
3775 #: src/common.py:289
3776 msgid "Bad destination address"
3777-msgstr ""
3778+msgstr "Pogrešna odredišna adresa"
3779
3780 #: src/common.py:297
3781 msgid "Bad interface type"
3782@@ -475,31 +485,27 @@
3783 #: src/common.py:326
3784 #, python-format
3785 msgid "Invalid log type '%s'"
3786-msgstr ""
3787+msgstr "Nevažeći tip prijave '%s'"
3788
3789 #: src/common.py:334
3790 #, python-format
3791 msgid "Unsupported direction '%s'"
3792 msgstr ""
3793
3794-#: src/common.py:346
3795-msgid "Could not normalize source address"
3796-msgstr ""
3797-
3798-#: src/common.py:356
3799+#: src/common.py:355
3800 msgid "Could not normalize destination address"
3801-msgstr ""
3802+msgstr "Nije moguće normalizirati destinacijsku adresu"
3803
3804-#: src/common.py:417
3805+#: src/common.py:416
3806 msgid "Found exact match"
3807-msgstr ""
3808+msgstr "Pronađeno tačno poklapanje"
3809
3810-#: src/common.py:421
3811+#: src/common.py:420
3812 #, python-format
3813 msgid "Found non-action/non-logtype match (%(xa)s/%(ya)s %(xl)s/%(yl)s)"
3814 msgstr ""
3815
3816-#: src/frontend.py:93
3817+#: src/frontend.py:88
3818 #, python-format
3819 msgid ""
3820 "\n"
3821@@ -530,77 +536,77 @@
3822 " %(appdefault)-31s set default application policy\n"
3823 msgstr ""
3824
3825-#: src/frontend.py:168
3826+#: src/frontend.py:160
3827 msgid "n"
3828-msgstr ""
3829+msgstr "n"
3830
3831-#: src/frontend.py:169
3832+#: src/frontend.py:161
3833 msgid "y"
3834-msgstr ""
3835+msgstr "d"
3836
3837-#: src/frontend.py:170
3838+#: src/frontend.py:162
3839 msgid "yes"
3840-msgstr ""
3841+msgstr "da"
3842
3843-#: src/frontend.py:215
3844+#: src/frontend.py:207
3845 msgid "Firewall is active and enabled on system startup"
3846 msgstr ""
3847
3848-#: src/frontend.py:222
3849+#: src/frontend.py:214
3850 msgid "Firewall stopped and disabled on system startup"
3851 msgstr ""
3852
3853-#: src/frontend.py:273
3854+#: src/frontend.py:265
3855 msgid "Could not get listening status"
3856 msgstr ""
3857
3858-#: src/frontend.py:360 src/frontend.py:458 src/frontend.py:468
3859+#: src/frontend.py:356 src/frontend.py:454 src/frontend.py:464
3860 #, python-format
3861 msgid "Invalid IP version '%s'"
3862 msgstr ""
3863
3864-#: src/frontend.py:391
3865+#: src/frontend.py:387
3866 msgid "Invalid position '"
3867 msgstr ""
3868
3869-#: src/frontend.py:465
3870+#: src/frontend.py:461
3871 msgid "IPv6 support not enabled"
3872 msgstr ""
3873
3874-#: src/frontend.py:476
3875+#: src/frontend.py:472
3876 msgid "Rule changed after normalization"
3877 msgstr ""
3878
3879+#: src/frontend.py:496
3880+#, python-format
3881+msgid "Could not back out rule '%s'"
3882+msgstr "Nije moguće povratiti pravilo '%s'"
3883+
3884 #: src/frontend.py:500
3885-#, python-format
3886-msgid "Could not back out rule '%s'"
3887-msgstr ""
3888-
3889-#: src/frontend.py:504
3890 msgid ""
3891 "\n"
3892 "Error applying application rules."
3893 msgstr ""
3894
3895-#: src/frontend.py:506
3896+#: src/frontend.py:502
3897 msgid " Some rules could not be unapplied."
3898 msgstr ""
3899
3900-#: src/frontend.py:508
3901+#: src/frontend.py:504
3902 msgid " Attempted rules successfully unapplied."
3903 msgstr ""
3904
3905-#: src/frontend.py:519
3906+#: src/frontend.py:515
3907 #, python-format
3908 msgid "Could not find rule '%s'"
3909 msgstr ""
3910
3911-#: src/frontend.py:524 src/frontend.py:529
3912+#: src/frontend.py:520 src/frontend.py:525
3913 #, python-format
3914 msgid "Could not find rule '%d'"
3915 msgstr ""
3916
3917-#: src/frontend.py:541
3918+#: src/frontend.py:537
3919 #, python-format
3920 msgid ""
3921 "Deleting:\n"
3922@@ -608,229 +614,252 @@
3923 "Proceed with operation (%(yes)s|%(no)s)? "
3924 msgstr ""
3925
3926-#: src/frontend.py:572
3927+#: src/frontend.py:568
3928 msgid "Unsupported default policy"
3929 msgstr ""
3930
3931-#: src/frontend.py:599 src/frontend.py:744
3932+#: src/frontend.py:595 src/frontend.py:740
3933 msgid "Firewall reloaded"
3934-msgstr ""
3935+msgstr "Ponovno učitavanje Firewall-a"
3936
3937-#: src/frontend.py:601
3938+#: src/frontend.py:597
3939 msgid "Firewall not enabled (skipping reload)"
3940 msgstr ""
3941
3942-#: src/frontend.py:618 src/frontend.py:632 src/frontend.py:669
3943+#: src/frontend.py:614 src/frontend.py:628 src/frontend.py:665
3944 msgid "Invalid profile name"
3945 msgstr ""
3946
3947-#: src/frontend.py:637 src/frontend.py:819
3948+#: src/frontend.py:633 src/frontend.py:815
3949 #, python-format
3950 msgid "Unsupported action '%s'"
3951-msgstr ""
3952+msgstr "Nepodržana akcija '%s'"
3953
3954-#: src/frontend.py:656
3955+#: src/frontend.py:652
3956 msgid "Available applications:"
3957 msgstr ""
3958
3959-#: src/frontend.py:677
3960+#: src/frontend.py:673
3961 #, python-format
3962 msgid "Could not find profile '%s'"
3963 msgstr ""
3964
3965-#: src/frontend.py:682
3966+#: src/frontend.py:678
3967 msgid "Invalid profile"
3968-msgstr ""
3969+msgstr "Nevažeći profil"
3970
3971-#: src/frontend.py:685
3972+#: src/frontend.py:681
3973 #, python-format
3974 msgid "Profile: %s\n"
3975-msgstr ""
3976+msgstr "Profil: %s\n"
3977
3978-#: src/frontend.py:686
3979+#: src/frontend.py:682
3980 #, python-format
3981 msgid "Title: %s\n"
3982-msgstr ""
3983+msgstr "Naslov: %s\n"
3984
3985-#: src/frontend.py:689
3986+#: src/frontend.py:685
3987 #, python-format
3988 msgid ""
3989 "Description: %s\n"
3990 "\n"
3991 msgstr ""
3992+"Opis: %s\n"
3993+"\n"
3994
3995-#: src/frontend.py:695
3996+#: src/frontend.py:691
3997 msgid "Ports:"
3998-msgstr ""
3999+msgstr "Portovi:"
4000
4001-#: src/frontend.py:697
4002+#: src/frontend.py:693
4003 msgid "Port:"
4004-msgstr ""
4005+msgstr "Port:"
4006
4007-#: src/frontend.py:746
4008+#: src/frontend.py:742
4009 msgid "Skipped reloading firewall"
4010 msgstr ""
4011
4012-#: src/frontend.py:756
4013+#: src/frontend.py:752
4014 msgid "Cannot specify 'all' with '--add-new'"
4015 msgstr ""
4016
4017-#: src/frontend.py:771
4018+#: src/frontend.py:767
4019 #, python-format
4020 msgid "Unknown policy '%s'"
4021 msgstr ""
4022
4023-#: src/frontend.py:828
4024+#: src/frontend.py:824
4025 #, python-format
4026 msgid ""
4027 "Command may disrupt existing ssh connections. Proceed with operation "
4028 "(%(yes)s|%(no)s)? "
4029 msgstr ""
4030
4031+#: src/frontend.py:837
4032+#, python-format
4033+msgid ""
4034+"Resetting all rules to installed defaults. Proceed with operation "
4035+"(%(yes)s|%(no)s)? "
4036+msgstr ""
4037+
4038 #: src/frontend.py:841
4039 #, python-format
4040 msgid ""
4041-"Resetting all rules to installed defaults. Proceed with operation "
4042-"(%(yes)s|%(no)s)? "
4043-msgstr ""
4044-
4045-#: src/frontend.py:845
4046-#, python-format
4047-msgid ""
4048 "Resetting all rules to installed defaults. This may disrupt existing ssh "
4049 "connections. Proceed with operation (%(yes)s|%(no)s)? "
4050 msgstr ""
4051
4052-#: src/parser.py:109
4053+#: src/parser.py:107
4054 #, python-format
4055 msgid "Cannot insert rule at position '%s'"
4056 msgstr ""
4057
4058-#: src/parser.py:147
4059+#: src/parser.py:145
4060 msgid "Invalid interface clause"
4061 msgstr ""
4062
4063-#: src/parser.py:173
4064+#: src/parser.py:171
4065 msgid "Option 'log' not allowed here"
4066 msgstr ""
4067
4068-#: src/parser.py:177
4069+#: src/parser.py:175
4070 msgid "Option 'log-all' not allowed here"
4071 msgstr ""
4072
4073-#: src/parser.py:210 src/parser.py:224
4074+#: src/parser.py:208 src/parser.py:222
4075 msgid "Bad port"
4076-msgstr ""
4077+msgstr "Pogrešan port"
4078
4079-#: src/parser.py:215 src/parser.py:335
4080+#: src/parser.py:213 src/parser.py:333
4081 msgid "Port ranges must be numeric"
4082-msgstr ""
4083+msgstr "Domet portova mora biti numerički"
4084
4085-#: src/parser.py:229 src/parser.py:426
4086+#: src/parser.py:227 src/parser.py:419
4087 #, python-format
4088 msgid "Invalid port with protocol '%s'"
4089 msgstr ""
4090
4091-#: src/parser.py:233
4092+#: src/parser.py:231
4093 msgid "Wrong number of arguments"
4094-msgstr ""
4095+msgstr "Netačan broj argumenata"
4096
4097-#: src/parser.py:237
4098+#: src/parser.py:235
4099 msgid "Need 'to' or 'from' clause"
4100-msgstr ""
4101+msgstr "Potrebna 'to' ili 'from' klauzula"
4102
4103-#: src/parser.py:252
4104+#: src/parser.py:250
4105 msgid "Improper rule syntax"
4106 msgstr ""
4107
4108-#: src/parser.py:259
4109+#: src/parser.py:257
4110 #, python-format
4111 msgid "Invalid token '%s'"
4112 msgstr ""
4113
4114-#: src/parser.py:268
4115+#: src/parser.py:266
4116 msgid "Invalid 'proto' clause"
4117 msgstr ""
4118
4119-#: src/parser.py:280
4120+#: src/parser.py:278
4121 #, python-format
4122 msgid "Invalid '%s' clause"
4123 msgstr ""
4124
4125-#: src/parser.py:299
4126+#: src/parser.py:297
4127 msgid "Invalid 'from' clause"
4128 msgstr ""
4129
4130-#: src/parser.py:318
4131+#: src/parser.py:316
4132 msgid "Invalid 'to' clause"
4133 msgstr ""
4134
4135-#: src/parser.py:323
4136+#: src/parser.py:321
4137 #, python-format
4138 msgid "Need 'from' or 'to' with '%s'"
4139 msgstr ""
4140
4141-#: src/parser.py:347
4142+#: src/parser.py:345
4143 msgid "Invalid 'port' clause"
4144 msgstr ""
4145
4146-#: src/parser.py:356
4147+#: src/parser.py:354
4148 msgid "Mixed IP versions for 'from' and 'to'"
4149 msgstr ""
4150
4151-#: src/parser.py:370 src/parser.py:377 src/parser.py:383
4152+#: src/parser.py:368 src/parser.py:375 src/parser.py:381
4153 msgid "Could not find protocol"
4154 msgstr ""
4155
4156-#: src/parser.py:390
4157+#: src/parser.py:388
4158 msgid "Protocol mismatch (from/to)"
4159 msgstr ""
4160
4161-#: src/parser.py:397
4162+#: src/parser.py:395
4163 #, python-format
4164 msgid "Protocol mismatch with specified protocol %s"
4165 msgstr ""
4166
4167+#: src/parser.py:402
4168+#, python-format
4169+msgid "Improper rule syntax ('%s' specified with app rule)"
4170+msgstr ""
4171+
4172 #: src/parser.py:409
4173 #, python-format
4174-msgid "Improper rule syntax ('%s' specified with app rule)"
4175-msgstr ""
4176-
4177-#: src/parser.py:416
4178-#, python-format
4179 msgid "Invalid IPv6 address with protocol '%s'"
4180 msgstr ""
4181
4182-#: src/parser.py:745
4183+#: src/parser.py:738
4184 #, python-format
4185 msgid "Invalid command '%s'"
4186 msgstr ""
4187
4188-#: src/parser.py:767
4189+#: src/parser.py:760
4190 #, python-format
4191 msgid "Command '%s' already exists"
4192 msgstr ""
4193
4194-#: src/util.py:386
4195+#: src/util.py:414
4196 msgid "Couldn't find pid (is /proc mounted?)"
4197 msgstr ""
4198
4199-#: src/util.py:390
4200+#: src/util.py:418
4201 #, python-format
4202 msgid "Couldn't find parent pid for '%s'"
4203 msgstr ""
4204
4205-#: src/util.py:400
4206+#: src/util.py:428
4207 #, python-format
4208 msgid "Couldn't find '%s'"
4209-msgstr ""
4210+msgstr "Nije moguće pronaći '%s'"
4211
4212-#: src/util.py:406
4213+#: src/util.py:434
4214 #, python-format
4215 msgid "Could not find executable for '%s'"
4216 msgstr ""
4217
4218-#: src/util.py:871
4219+#: src/util.py:985
4220 #, python-format
4221 msgid "Could not get statistics for '%s'"
4222 msgstr ""
4223+
4224+#~ msgid "Profile '%s' has empty required field '%s'"
4225+#~ msgstr "Profil '%s' ima prazno potrebno polje '%s'"
4226+
4227+#~ msgid "Skipping '%s': value too long for '%s'"
4228+#~ msgstr "Preskakanje '%s': vrijednost prevelika za '%s'"
4229+
4230+#~ msgid "Profile '%s' missing required field '%s'"
4231+#~ msgstr "Profil '%s' nedostaje potrebno polje '%s'"
4232+
4233+#~ msgid "'%s' file '%s' does not exist"
4234+#~ msgstr "'&s' datoteka '&s' ne postoji"
4235+
4236+#~ msgid "uid is %s but '%s' is owned by %s"
4237+#~ msgstr "uid je %s ali '%s' je u vlasništvu %s"
4238+
4239+#~ msgid "--"
4240+#~ msgstr "--"
4241+
4242+#~ msgid "No match"
4243+#~ msgstr "Nema poklapanja"
4244
4245=== modified file 'locales/po/ca.po'
4246--- locales/po/ca.po 2012-04-04 20:44:20 +0000
4247+++ locales/po/ca.po 2013-11-11 16:00:06 +0000
4248@@ -7,169 +7,168 @@
4249 msgstr ""
4250 "Project-Id-Version: ufw\n"
4251 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
4252-"POT-Creation-Date: 2011-03-22 10:34-0500\n"
4253+"POT-Creation-Date: 2012-07-29 09:48-0500\n"
4254 "PO-Revision-Date: 2009-08-26 19:14+0000\n"
4255 "Last-Translator: Xan <dxpublica@telefonica.net>\n"
4256 "Language-Team: Catalan <ca@li.org>\n"
4257 "MIME-Version: 1.0\n"
4258 "Content-Type: text/plain; charset=UTF-8\n"
4259 "Content-Transfer-Encoding: 8bit\n"
4260-"X-Launchpad-Export-Date: 2012-02-13 23:52+0000\n"
4261-"X-Generator: Launchpad (build 14781)\n"
4262-
4263-#: src/ufw:46
4264-msgid ": Need at least python 2.5)\n"
4265-msgstr ": Almenys es necessita python 2.5)\n"
4266-
4267-#: src/ufw:103 src/frontend.py:554 src/frontend.py:854
4268+"X-Launchpad-Export-Date: 2012-08-12 01:56+0000\n"
4269+"X-Generator: Launchpad (build 15780)\n"
4270+
4271+#: src/ufw:56
4272+msgid ": Need at least python 2.6)\n"
4273+msgstr ""
4274+
4275+#: src/ufw:109 src/frontend.py:550 src/frontend.py:850
4276 msgid "Aborted"
4277 msgstr ""
4278
4279-#: src/applications.py:32
4280+#: src/applications.py:36
4281 msgid "Profiles directory does not exist"
4282 msgstr ""
4283
4284-#: src/applications.py:64
4285+#: src/applications.py:68
4286 #, python-format
4287 msgid "Skipping '%s': couldn't stat"
4288 msgstr ""
4289
4290-#: src/applications.py:69
4291+#: src/applications.py:73
4292 #, python-format
4293 msgid "Skipping '%s': too big"
4294 msgstr ""
4295
4296-#: src/applications.py:74
4297+#: src/applications.py:78
4298 #, python-format
4299 msgid "Skipping '%s': too many files read already"
4300 msgstr ""
4301
4302-#: src/applications.py:84
4303+#: src/applications.py:92
4304 #, python-format
4305 msgid "Skipping '%s': couldn't process"
4306 msgstr ""
4307
4308-#: src/applications.py:91
4309+#: src/applications.py:99
4310 #, python-format
4311 msgid "Skipping '%s': name too long"
4312 msgstr ""
4313
4314-#: src/applications.py:96
4315+#: src/applications.py:104
4316 #, python-format
4317 msgid "Skipping '%s': invalid name"
4318 msgstr ""
4319
4320-#: src/applications.py:102
4321+#: src/applications.py:110
4322 #, python-format
4323 msgid "Skipping '%s': also in /etc/services"
4324 msgstr ""
4325
4326-#: src/applications.py:111
4327+#: src/applications.py:119
4328 #, python-format
4329 msgid "Skipping '%s': field too long"
4330 msgstr ""
4331
4332-#: src/applications.py:116
4333+#: src/applications.py:124
4334 #, python-format
4335 msgid "Skipping '%(value)s': value too long for '%(field)s'"
4336 msgstr ""
4337
4338-#: src/applications.py:126
4339+#: src/applications.py:134
4340 #, python-format
4341 msgid "Duplicate profile '%s', using last found"
4342 msgstr ""
4343
4344-#: src/applications.py:156
4345+#: src/applications.py:171
4346 #, python-format
4347 msgid "Profile '%(fn)s' missing required field '%(f)s'"
4348 msgstr ""
4349
4350-#: src/applications.py:161
4351+#: src/applications.py:176
4352 #, python-format
4353 msgid "Profile '%(fn)s' has empty required field '%(f)s'"
4354 msgstr ""
4355
4356-#: src/applications.py:167
4357+#: src/applications.py:182
4358 #, python-format
4359 msgid "No ports found in profile '%s'"
4360 msgstr ""
4361
4362-#: src/applications.py:180
4363+#: src/applications.py:195
4364 #, python-format
4365 msgid "Invalid ports in profile '%s'"
4366 msgstr ""
4367
4368-#: src/backend_iptables.py:87
4369+#: src/backend_iptables.py:72
4370 msgid "New profiles:"
4371 msgstr ""
4372
4373-#: src/backend_iptables.py:103 src/backend.py:275
4374+#: src/backend_iptables.py:88 src/backend.py:315
4375 #, python-format
4376 msgid "Unsupported policy '%s'"
4377 msgstr "Política '%s' no suportada"
4378
4379-#: src/backend_iptables.py:107
4380+#: src/backend_iptables.py:92
4381 #, python-format
4382 msgid "Unsupported policy for direction '%s'"
4383 msgstr ""
4384
4385-#: src/backend_iptables.py:165
4386+#: src/backend_iptables.py:150
4387 #, python-format
4388 msgid "Default %(direction)s policy changed to '%(policy)s'\n"
4389 msgstr ""
4390
4391-#: src/backend_iptables.py:167
4392+#: src/backend_iptables.py:152
4393 msgid "(be sure to update your rules accordingly)"
4394 msgstr "(aneu amb compte d'actualitzar les vostres regles consegüentment)"
4395
4396-#: src/backend_iptables.py:174
4397+#: src/backend_iptables.py:159
4398 msgid "Checking raw iptables\n"
4399 msgstr ""
4400
4401-#: src/backend_iptables.py:175
4402+#: src/backend_iptables.py:160
4403 msgid "Checking raw ip6tables\n"
4404 msgstr ""
4405
4406-#: src/backend_iptables.py:178 src/backend_iptables.py:269
4407-#: src/backend_iptables.py:448 src/backend_iptables.py:459
4408-#: src/backend_iptables.py:507
4409-msgid "problem running"
4410-msgstr ""
4411-
4412-#: src/backend_iptables.py:264
4413+#: src/backend_iptables.py:250
4414 msgid "Checking iptables\n"
4415 msgstr "Verificant iptables\n"
4416
4417-#: src/backend_iptables.py:266
4418+#: src/backend_iptables.py:252
4419 msgid "Checking ip6tables\n"
4420 msgstr "Verificant ip6tables\n"
4421
4422-#: src/backend_iptables.py:275
4423+#: src/backend_iptables.py:255 src/backend_iptables.py:435
4424+#: src/backend_iptables.py:446 src/backend_iptables.py:497
4425+msgid "problem running"
4426+msgstr ""
4427+
4428+#: src/backend_iptables.py:261
4429 msgid "Status: inactive"
4430 msgstr ""
4431
4432-#: src/backend_iptables.py:411
4433+#: src/backend_iptables.py:397
4434 msgid "To"
4435 msgstr "A"
4436
4437-#: src/backend_iptables.py:412
4438+#: src/backend_iptables.py:398
4439 msgid "From"
4440 msgstr "Des de"
4441
4442-#: src/backend_iptables.py:413
4443+#: src/backend_iptables.py:399
4444 msgid "Action"
4445 msgstr "Acció"
4446
4447-#: src/backend_iptables.py:428
4448+#: src/backend_iptables.py:415
4449 msgid "\n"
4450 msgstr "\n"
4451
4452-#: src/backend_iptables.py:436
4453+#: src/backend_iptables.py:423
4454 #, python-format
4455 msgid "Default: %(in)s (incoming), %(out)s (outgoing)"
4456 msgstr ""
4457
4458-#: src/backend_iptables.py:440
4459+#: src/backend_iptables.py:427
4460 #, python-format
4461 msgid ""
4462 "Status: active\n"
4463@@ -178,262 +177,267 @@
4464 "%(app)s%(status)s"
4465 msgstr ""
4466
4467-#: src/backend_iptables.py:444
4468+#: src/backend_iptables.py:431
4469 #, python-format
4470 msgid "Status: active%s"
4471 msgstr ""
4472
4473-#: src/backend_iptables.py:450 src/backend_iptables.py:461
4474+#: src/backend_iptables.py:437 src/backend_iptables.py:448
4475 msgid "running ufw-init"
4476 msgstr ""
4477
4478-#: src/backend_iptables.py:474
4479+#: src/backend_iptables.py:461
4480 msgid "Could not set LOGLEVEL"
4481 msgstr ""
4482
4483-#: src/backend_iptables.py:480
4484+#: src/backend_iptables.py:467
4485 msgid "Could not load logging rules"
4486 msgstr ""
4487
4488-#: src/backend_iptables.py:629 src/backend.py:181
4489+#: src/backend_iptables.py:619 src/backend.py:221
4490 #, python-format
4491 msgid "Couldn't open '%s' for reading"
4492 msgstr "No es pot obrir '%s' per a llegir"
4493
4494-#: src/backend_iptables.py:638
4495+#: src/backend_iptables.py:628
4496 #, python-format
4497 msgid "Skipping malformed tuple (bad length): %s"
4498 msgstr ""
4499
4500-#: src/backend_iptables.py:668
4501+#: src/backend_iptables.py:659
4502 #, python-format
4503 msgid "Skipping malformed tuple: %s"
4504 msgstr ""
4505
4506-#: src/backend_iptables.py:690 src/backend.py:213
4507+#: src/backend_iptables.py:681 src/backend.py:253
4508 #, python-format
4509 msgid "'%s' is not writable"
4510 msgstr ""
4511
4512-#: src/backend_iptables.py:830
4513+#: src/backend_iptables.py:839
4514 msgid "Adding IPv6 rule failed: IPv6 not enabled"
4515 msgstr ""
4516
4517-#: src/backend_iptables.py:834
4518+#: src/backend_iptables.py:843
4519 #, python-format
4520 msgid "Skipping unsupported IPv6 '%s' rule"
4521 msgstr ""
4522
4523-#: src/backend_iptables.py:837
4524+#: src/backend_iptables.py:847
4525+#, python-format
4526+msgid "Skipping unsupported IPv4 '%s' rule"
4527+msgstr ""
4528+
4529+#: src/backend_iptables.py:850
4530 msgid "Must specify 'tcp' or 'udp' with multiple ports"
4531 msgstr ""
4532
4533-#: src/backend_iptables.py:849
4534+#: src/backend_iptables.py:862
4535 msgid "Skipping IPv6 application rule. Need at least iptables 1.4"
4536 msgstr ""
4537
4538-#: src/backend_iptables.py:854
4539+#: src/backend_iptables.py:867
4540 #, python-format
4541 msgid "Invalid position '%d'"
4542 msgstr ""
4543
4544-#: src/backend_iptables.py:858
4545+#: src/backend_iptables.py:871
4546 msgid "Cannot specify insert and delete"
4547 msgstr ""
4548
4549-#: src/backend_iptables.py:861
4550+#: src/backend_iptables.py:874
4551 #, python-format
4552 msgid "Cannot insert rule at position '%d'"
4553 msgstr ""
4554
4555-#: src/backend_iptables.py:919
4556+#: src/backend_iptables.py:932
4557 msgid "Skipping inserting existing rule"
4558 msgstr ""
4559
4560-#: src/backend_iptables.py:930 src/frontend.py:365
4561+#: src/backend_iptables.py:943 src/frontend.py:361
4562 msgid "Could not delete non-existent rule"
4563 msgstr ""
4564
4565-#: src/backend_iptables.py:935
4566+#: src/backend_iptables.py:948
4567 msgid "Skipping adding existing rule"
4568 msgstr ""
4569
4570-#: src/backend_iptables.py:951
4571+#: src/backend_iptables.py:964
4572 msgid "Couldn't update rules file"
4573 msgstr "No es pot actualitzar l'arxiu de regles"
4574
4575-#: src/backend_iptables.py:956
4576+#: src/backend_iptables.py:969
4577 msgid "Rules updated"
4578 msgstr "Regles actualitzades"
4579
4580-#: src/backend_iptables.py:958
4581+#: src/backend_iptables.py:971
4582 msgid "Rules updated (v6)"
4583 msgstr "Regles actualitzades (v6)"
4584
4585-#: src/backend_iptables.py:966
4586+#: src/backend_iptables.py:979
4587 msgid "Rule inserted"
4588 msgstr ""
4589
4590-#: src/backend_iptables.py:968
4591+#: src/backend_iptables.py:981
4592 msgid "Rule updated"
4593 msgstr "Regla actualitzada"
4594
4595-#: src/backend_iptables.py:978
4596+#: src/backend_iptables.py:991
4597 msgid " (skipped reloading firewall)"
4598 msgstr ""
4599
4600-#: src/backend_iptables.py:981
4601+#: src/backend_iptables.py:994
4602 msgid "Rule deleted"
4603 msgstr "Regla esborrada"
4604
4605-#: src/backend_iptables.py:984
4606+#: src/backend_iptables.py:997
4607 msgid "Rule added"
4608 msgstr "Regla afegida"
4609
4610-#: src/backend_iptables.py:999 src/backend_iptables.py:1087
4611+#: src/backend_iptables.py:1012 src/backend_iptables.py:1100
4612 msgid "Could not update running firewall"
4613 msgstr "No es pot actualitzar el tallafocs en execució"
4614
4615-#: src/backend_iptables.py:1054
4616+#: src/backend_iptables.py:1067
4617 #, python-format
4618 msgid "Could not perform '%s'"
4619 msgstr ""
4620
4621-#: src/backend_iptables.py:1078
4622+#: src/backend_iptables.py:1091
4623 msgid "Couldn't update rules file for logging"
4624 msgstr ""
4625
4626-#: src/backend_iptables.py:1132 src/backend.py:530
4627+#: src/backend_iptables.py:1149 src/backend.py:571
4628 #, python-format
4629 msgid "Invalid log level '%s'"
4630 msgstr ""
4631
4632-#: src/backend_iptables.py:1228
4633+#: src/backend_iptables.py:1246
4634 #, python-format
4635 msgid "Could not find '%s'. Aborting"
4636 msgstr ""
4637
4638-#: src/backend_iptables.py:1240
4639+#: src/backend_iptables.py:1258
4640 #, python-format
4641 msgid "'%s' already exists. Aborting"
4642 msgstr ""
4643
4644-#: src/backend_iptables.py:1246
4645+#: src/backend_iptables.py:1264
4646 #, python-format
4647 msgid "Backing up '%(old)s' to '%(new)s'\n"
4648 msgstr ""
4649
4650-#: src/backend_iptables.py:1262 src/backend.py:140
4651+#: src/backend_iptables.py:1280 src/backend.py:180
4652 #, python-format
4653 msgid "Couldn't stat '%s'"
4654 msgstr ""
4655
4656-#: src/backend_iptables.py:1267
4657+#: src/backend_iptables.py:1285
4658 #, python-format
4659 msgid "WARN: '%s' is world writable"
4660 msgstr ""
4661
4662-#: src/backend_iptables.py:1269
4663+#: src/backend_iptables.py:1287
4664 #, python-format
4665 msgid "WARN: '%s' is world readable"
4666 msgstr ""
4667
4668-#: src/backend.py:96
4669+#: src/backend.py:136
4670 msgid "Checks disabled"
4671 msgstr "Comprovació desactivada"
4672
4673-#: src/backend.py:102
4674+#: src/backend.py:142
4675 msgid "ERROR: this script should not be SUID"
4676 msgstr ""
4677
4678-#: src/backend.py:105
4679+#: src/backend.py:145
4680 msgid "ERROR: this script should not be SGID"
4681 msgstr ""
4682
4683-#: src/backend.py:110
4684+#: src/backend.py:150
4685 msgid "You need to be root to run this script"
4686 msgstr "Necessiteu ser root per executar aquest programa"
4687
4688-#: src/backend.py:120
4689+#: src/backend.py:160
4690 #, python-format
4691 msgid "'%s' does not exist"
4692 msgstr ""
4693
4694-#: src/backend.py:146
4695+#: src/backend.py:186
4696 #, python-format
4697 msgid "uid is %(uid)s but '%(path)s' is owned by %(st_uid)s"
4698 msgstr ""
4699
4700-#: src/backend.py:153
4701+#: src/backend.py:193
4702 #, python-format
4703 msgid "%s is world writable!"
4704 msgstr ""
4705
4706-#: src/backend.py:157
4707+#: src/backend.py:197
4708 #, python-format
4709 msgid "%s is group writable!"
4710 msgstr ""
4711
4712-#: src/backend.py:170
4713+#: src/backend.py:210
4714 #, python-format
4715 msgid "'%(f)s' file '%(name)s' does not exist"
4716 msgstr ""
4717
4718-#: src/backend.py:195
4719+#: src/backend.py:235
4720 #, python-format
4721 msgid "Missing policy for '%s'"
4722 msgstr ""
4723
4724-#: src/backend.py:200
4725+#: src/backend.py:240
4726 #, python-format
4727 msgid "Invalid policy '%(policy)s' for '%(chain)s'"
4728 msgstr ""
4729
4730-#: src/backend.py:207
4731+#: src/backend.py:247
4732 msgid "Invalid option"
4733 msgstr "Opció invàlida"
4734
4735-#: src/backend.py:278
4736+#: src/backend.py:318
4737 #, python-format
4738 msgid "Default application policy changed to '%s'"
4739 msgstr ""
4740
4741-#: src/backend.py:360
4742+#: src/backend.py:400
4743 msgid "No rules found for application profile"
4744 msgstr ""
4745
4746-#: src/backend.py:419
4747+#: src/backend.py:459
4748 #, python-format
4749 msgid "Rules updated for profile '%s'"
4750 msgstr ""
4751
4752-#: src/backend.py:425
4753+#: src/backend.py:465
4754 msgid "Couldn't update application rules"
4755 msgstr ""
4756
4757-#: src/backend.py:447
4758+#: src/backend.py:487
4759 #, python-format
4760 msgid "Found multiple matches for '%s'. Please use exact profile name"
4761 msgstr ""
4762
4763-#: src/backend.py:448
4764+#: src/backend.py:489
4765 #, python-format
4766 msgid "Could not find a profile matching '%s'"
4767 msgstr ""
4768
4769-#: src/backend.py:514
4770+#: src/backend.py:555
4771 msgid "Logging: "
4772 msgstr ""
4773
4774-#: src/backend.py:518
4775+#: src/backend.py:559
4776 msgid "unknown"
4777 msgstr ""
4778
4779-#: src/backend.py:548
4780+#: src/backend.py:589
4781 msgid "Logging disabled"
4782 msgstr ""
4783
4784-#: src/backend.py:550
4785+#: src/backend.py:591
4786 msgid "Logging enabled"
4787 msgstr ""
4788
4789@@ -482,24 +486,20 @@
4790 msgid "Unsupported direction '%s'"
4791 msgstr ""
4792
4793-#: src/common.py:346
4794-msgid "Could not normalize source address"
4795-msgstr ""
4796-
4797-#: src/common.py:356
4798+#: src/common.py:355
4799 msgid "Could not normalize destination address"
4800 msgstr ""
4801
4802-#: src/common.py:417
4803+#: src/common.py:416
4804 msgid "Found exact match"
4805 msgstr "S'ha trobat una coincidència exacta"
4806
4807-#: src/common.py:421
4808+#: src/common.py:420
4809 #, python-format
4810 msgid "Found non-action/non-logtype match (%(xa)s/%(ya)s %(xl)s/%(yl)s)"
4811 msgstr ""
4812
4813-#: src/frontend.py:93
4814+#: src/frontend.py:88
4815 #, python-format
4816 msgid ""
4817 "\n"
4818@@ -530,77 +530,77 @@
4819 " %(appdefault)-31s set default application policy\n"
4820 msgstr ""
4821
4822-#: src/frontend.py:168
4823+#: src/frontend.py:160
4824 msgid "n"
4825 msgstr ""
4826
4827-#: src/frontend.py:169
4828+#: src/frontend.py:161
4829 msgid "y"
4830 msgstr ""
4831
4832-#: src/frontend.py:170
4833+#: src/frontend.py:162
4834 msgid "yes"
4835 msgstr ""
4836
4837-#: src/frontend.py:215
4838+#: src/frontend.py:207
4839 msgid "Firewall is active and enabled on system startup"
4840 msgstr ""
4841
4842-#: src/frontend.py:222
4843+#: src/frontend.py:214
4844 msgid "Firewall stopped and disabled on system startup"
4845 msgstr ""
4846
4847-#: src/frontend.py:273
4848+#: src/frontend.py:265
4849 msgid "Could not get listening status"
4850 msgstr ""
4851
4852-#: src/frontend.py:360 src/frontend.py:458 src/frontend.py:468
4853+#: src/frontend.py:356 src/frontend.py:454 src/frontend.py:464
4854 #, python-format
4855 msgid "Invalid IP version '%s'"
4856 msgstr "La versió de la IP '%s' no és vàlida"
4857
4858-#: src/frontend.py:391
4859+#: src/frontend.py:387
4860 msgid "Invalid position '"
4861 msgstr ""
4862
4863-#: src/frontend.py:465
4864+#: src/frontend.py:461
4865 msgid "IPv6 support not enabled"
4866 msgstr "El suport per a IPv6 no està habilitat"
4867
4868-#: src/frontend.py:476
4869+#: src/frontend.py:472
4870 msgid "Rule changed after normalization"
4871 msgstr ""
4872
4873+#: src/frontend.py:496
4874+#, python-format
4875+msgid "Could not back out rule '%s'"
4876+msgstr ""
4877+
4878 #: src/frontend.py:500
4879-#, python-format
4880-msgid "Could not back out rule '%s'"
4881-msgstr ""
4882-
4883-#: src/frontend.py:504
4884 msgid ""
4885 "\n"
4886 "Error applying application rules."
4887 msgstr ""
4888
4889-#: src/frontend.py:506
4890+#: src/frontend.py:502
4891 msgid " Some rules could not be unapplied."
4892 msgstr ""
4893
4894-#: src/frontend.py:508
4895+#: src/frontend.py:504
4896 msgid " Attempted rules successfully unapplied."
4897 msgstr ""
4898
4899-#: src/frontend.py:519
4900+#: src/frontend.py:515
4901 #, python-format
4902 msgid "Could not find rule '%s'"
4903 msgstr ""
4904
4905-#: src/frontend.py:524 src/frontend.py:529
4906+#: src/frontend.py:520 src/frontend.py:525
4907 #, python-format
4908 msgid "Could not find rule '%d'"
4909 msgstr ""
4910
4911-#: src/frontend.py:541
4912+#: src/frontend.py:537
4913 #, python-format
4914 msgid ""
4915 "Deleting:\n"
4916@@ -608,229 +608,229 @@
4917 "Proceed with operation (%(yes)s|%(no)s)? "
4918 msgstr ""
4919
4920-#: src/frontend.py:572
4921+#: src/frontend.py:568
4922 msgid "Unsupported default policy"
4923 msgstr ""
4924
4925-#: src/frontend.py:599 src/frontend.py:744
4926+#: src/frontend.py:595 src/frontend.py:740
4927 msgid "Firewall reloaded"
4928 msgstr ""
4929
4930-#: src/frontend.py:601
4931+#: src/frontend.py:597
4932 msgid "Firewall not enabled (skipping reload)"
4933 msgstr ""
4934
4935-#: src/frontend.py:618 src/frontend.py:632 src/frontend.py:669
4936+#: src/frontend.py:614 src/frontend.py:628 src/frontend.py:665
4937 msgid "Invalid profile name"
4938 msgstr ""
4939
4940-#: src/frontend.py:637 src/frontend.py:819
4941+#: src/frontend.py:633 src/frontend.py:815
4942 #, python-format
4943 msgid "Unsupported action '%s'"
4944 msgstr ""
4945
4946-#: src/frontend.py:656
4947+#: src/frontend.py:652
4948 msgid "Available applications:"
4949 msgstr ""
4950
4951-#: src/frontend.py:677
4952+#: src/frontend.py:673
4953 #, python-format
4954 msgid "Could not find profile '%s'"
4955 msgstr ""
4956
4957-#: src/frontend.py:682
4958+#: src/frontend.py:678
4959 msgid "Invalid profile"
4960 msgstr ""
4961
4962-#: src/frontend.py:685
4963+#: src/frontend.py:681
4964 #, python-format
4965 msgid "Profile: %s\n"
4966 msgstr ""
4967
4968-#: src/frontend.py:686
4969+#: src/frontend.py:682
4970 #, python-format
4971 msgid "Title: %s\n"
4972 msgstr ""
4973
4974-#: src/frontend.py:689
4975+#: src/frontend.py:685
4976 #, python-format
4977 msgid ""
4978 "Description: %s\n"
4979 "\n"
4980 msgstr ""
4981
4982-#: src/frontend.py:695
4983+#: src/frontend.py:691
4984 msgid "Ports:"
4985 msgstr ""
4986
4987-#: src/frontend.py:697
4988+#: src/frontend.py:693
4989 msgid "Port:"
4990 msgstr ""
4991
4992-#: src/frontend.py:746
4993+#: src/frontend.py:742
4994 msgid "Skipped reloading firewall"
4995 msgstr ""
4996
4997-#: src/frontend.py:756
4998+#: src/frontend.py:752
4999 msgid "Cannot specify 'all' with '--add-new'"
5000 msgstr ""
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches